diff options
-rwxr-xr-x | perl-install/standalone/drakfont | 160 |
1 files changed, 95 insertions, 65 deletions
diff --git a/perl-install/standalone/drakfont b/perl-install/standalone/drakfont index d63fc73d2..3d5324b97 100755 --- a/perl-install/standalone/drakfont +++ b/perl-install/standalone/drakfont @@ -149,7 +149,7 @@ my $pbar1; my $pbar2; my $pbar3; my $font_box; -my $table; +my $central_widget; sub list_fontpath { foreach (grep { /\d+:\s/ } `$chkfontpath -l`) { @@ -182,12 +182,17 @@ sub search_windows_font { my $nb_dir = @list_fonts_win + @list_fonts_winnt; if(!@list_fonts_win && !@list_fonts_winnt) { print "[35mdrakfont:: could not find any font in $win_dir/win*/fonts [0m\n"; + $interactive and display_error(_("could not find any font in %s/win*/fonts", $win_dir)); return 0; } foreach $_ ([\@list_fonts_win, "windows"], [\@list_fonts_winnt, "winnt"]) { foreach my $i (@{$_->[0]}) { - $interactive && $nb_dir and progress($pbar, 100/$nb_dir); -# $interactive && !$nb_dir and sub { $table->destroy(); gtkpack($font_box, _("no fonts found")) }; #fixme msg + if($interactive) { + if($nb_dir) { progress($pbar, 100/$nb_dir) } else { + display_error(_("no fonts found")); + return 0; + } + } !$replace && grep(/$i/, @installed_fonts) and next; grep ( /$i$/, @font_list) or push @font_list, "$win_dir/$_->[1]/fonts/$i"; } @@ -353,7 +358,7 @@ sub remove_fonts { -e "/usr/share/ghostscript" and rm_rf("$drakfont_dir/remove"); } -sub lisence_msg { +sub license_msg { print _("Before installing any fonts, be sure that you have the right to use and install them on your system.\n\n-You can install the fonts using the normal way. In rare cases, bogus fonts may hang up your X Server.\n-You can install the fonts with strong verification. In this case, bogus fonts won't be installed, but some useable fonts won't be too.\n\nIf you have many fonts, or exotic fonts, I recommend strong verification mode.")."\n"; } @@ -364,7 +369,7 @@ sub backend_mod { system ("xlsfonts"); } if ($windows) { - lisence_msg(); + license_msg(); print "........Windows fonts Installation........\n\n"; search_installed_fonts(); if(search_windows_font()) { @@ -375,7 +380,7 @@ sub backend_mod { } if (@install) { - lisence_msg(); + license_msg(); print ".......Install Specifics Fonts...........\n\n"; search_installed_fonts(); search_dir_font $_ foreach (@install); @@ -386,7 +391,7 @@ sub backend_mod { } if (@uninstall) { - lisence_msg(); + license_msg(); print "........Uninstall Specifics Fonts........\n\n"; search_installed_fonts_full_path(); search_dir_font_uninstall $_ foreach (@uninstall); @@ -404,53 +409,68 @@ my $check1; my $check2; my $check3; +sub create_fontsel { + my $font_sel; + gtkpack($font_box, + $font_sel = new Gtk::FontSelection, + ); + $central_widget = \$font_sel; +} + +sub display_error { + my $message = @_; + ${$central_widget}->destroy(); + gtkpack($font_box, $message); +} + sub interactive_mode { -$interactive = 1; - -init Gtk; - - -my $window1 = $::isEmbedded ? new Gtk::Plug ($::XID) : new Gtk::Window -toplevel; -$window1->signal_connect (delete_event => sub { Gtk->exit(0) }); -$window1->set_position(1); -$window1->set_title(_("Fonts Importation")); -$window1->set_border_width(5); - -my $font_sel; -gtkadd($window1, - gtkpack_(new Gtk::HBox(0,2), - 1, gtkpack_(new Gtk::VBox(0,0), - 1, new Gtk::VBox(0,0), - 0, gtkpack($font_box = new Gtk::VBox(0,5), - $font_sel = new Gtk::FontSelection, - ), - 1, new Gtk::VBox(0,0) - ), - 0, gtkpack_(new Gtk::VBox(0,5), - 0, _("DrakFont"), - 0, gtkadd(gtkset_layout(new Gtk::VButtonBox, -end), - gtksignal_connect(new Gtk::Button(_("Windows Importation")), clicked => - sub { gtkdestroy($font_sel); $windows = 1; backend_mod(); lisence(); }), - gtksignal_connect(new Gtk::Button(_("Advanced Importation")), clicked => - sub { }), - gtksignal_connect(new Gtk::Button(_("Uninstall Fonts")), clicked => sub { Gtk->main_quit() }), - ), - 1, new Gtk::VBox(0,0), - 0, gtkadd(gtkset_layout(new Gtk::VButtonBox, -end), - gtksignal_connect(new Gtk::Button(_("Help")), clicked => sub { print _("Help\n") }), - gtksignal_connect(new Gtk::Button(_("Close")), clicked => sub { Gtk->main_quit() }), - ), - ) - ), - ); -$window1->show_all; -$window1->realize; -$window1->show_all(); -#} -# import_status(); -#main_gi; -Gtk->main; -Gtk->exit(0); + my $font_sel; + $interactive = 1; + + init Gtk; + + + my $window1 = $::isEmbedded ? new Gtk::Plug ($::XID) : new Gtk::Window -toplevel; + $window1->signal_connect (delete_event => sub { Gtk->exit(0) }); + $window1->set_position(1); + $window1->set_title(_("Fonts Importation")); + $window1->set_border_width(5); + + gtkadd($window1, + gtkpack_(new Gtk::HBox(0,2), + 1, gtkpack_(new Gtk::VBox(0,0), + 1, new Gtk::VBox(0,0), + 1, gtkpack($font_box = new Gtk::VBox(0,5), + $font_sel = new Gtk::FontSelection, + ), + 1, new Gtk::VBox(0,0) + ), + 0, gtkpack_(new Gtk::VBox(0,5), + 0, _("DrakFont"), + 0, gtkadd(gtkset_layout(new Gtk::VButtonBox, -end), + gtksignal_connect(new Gtk::Button(_("Windows Importation")), clicked => + sub { gtkdestroy($central_widget); $windows = 1; license() }), + gtksignal_connect(new Gtk::Button(_("Advanced Importation")), clicked => + sub { }), + gtksignal_connect(new Gtk::Button(_("Uninstall Fonts")), clicked => sub { Gtk->main_quit() }), + ), + 1, new Gtk::VBox(0,0), + 0, gtkadd(gtkset_layout(new Gtk::VButtonBox, -end), + gtksignal_connect(new Gtk::Button(_("Help")), clicked => sub { print _("Help\n") }), + gtksignal_connect(new Gtk::Button(_("Close")), clicked => sub { Gtk->main_quit() }), + ), + ) + ), + ); + $central_widget = $font_sel; + $window1->show_all; + $window1->realize; + $window1->show_all(); + #} + # import_status(); + #main_gi; + Gtk->main; + Gtk->exit(0); } @@ -458,16 +478,24 @@ my $text; my $vscrollbar; -sub lisence { - gtkpack($font_box, - $text = new Gtk::Text( undef, undef ), - $text->set_editable( 0 ), - $text->show(), - $vscrollbar = new Gtk::VScrollbar( $text->vadj ), - $vscrollbar->show(), - $text->insert( undef, $text->style->black, undef, "Before installing any fonts, be sure that you have the right to use and install them on your system.\n\n-You can install the fonts using the normal way. In rare cases, bogus fonts may hang up your X Server.\n-You can install the fonts with strong verification. In this case, bogus fonts won't be installed, but some useable fonts won't be too.\n\nIf you have many fonts, or exotic fonts, I recommend strong verification mode. " ), - ); +# $vscrollbar = new Gtk::VScrollbar( $text->vadj ), +sub license { + my $text = new Gtk::Text(undef, undef); + my $license_box; + gtkpack($font_box, + $license_box = gtkpack_(new Gtk::VBox(0,0), + 1, gtkpack_(new Gtk::HBox(0,0), + 1, gtktext_insert(gtkset_editable($text, 1), "Before installing any fonts, be sure that you have the right to use and install them on your system.\n\n-You can install the fonts using the normal way. In rare cases, bogus fonts may hang up your X Server.\n-You can install the fonts with strong verification. In this case, bogus fonts won't be installed, but some useable fonts won't be too.\n\nIf you have many fonts, or exotic fonts, I recommend strong verification mode."), + 0, new Gtk::VScrollbar($text->vadj), + ), + 0, gtkadd(gtkset_layout(new Gtk::HButtonBox, -end), + gtksignal_connect(new Gtk::Button(_("OK")), clicked => sub { ${$central_widget}->destroy(); import_status() }), + gtksignal_connect(new Gtk::Button(_("Cancel")), clicked => sub { ${$central_widget}->destroy(); create_fontsel() }), + ), + ) + ); + $central_widget = \$license_box; $font_box->show_all(); } @@ -496,20 +524,22 @@ sub import_status { my $adj1 = new Gtk::Adjustment( 0, 1, 100, 0, 0, 0 ); my $adj2 = new Gtk::Adjustment( 0, 1, 100, 0, 0, 0 ); my $adj3 = new Gtk::Adjustment( 0, 1, 100, 0, 0, 0 ); + my $table; gtkpack($font_box, $table = create_packtable({ col_spacings => 30, row_spacings => 20}, - [_("Search Fonts on your System"), $pbar = new_with_adjustment Gtk::ProgressBar($adj), gtkset_sensitive($check1 = new Gtk::CheckButton(), 0)], + if_($windows, [_("Search Fonts on your System"), $pbar = new_with_adjustment Gtk::ProgressBar($adj), gtkset_sensitive($check1 = new Gtk::CheckButton(), 0)]), ["Supress Doublons ", $pbar1 = new_with_adjustment Gtk::ProgressBar($adj1), gtkset_sensitive($check2 = new Gtk::CheckButton(), 0)], ["Install Fonts ", $pbar2 = new_with_adjustment Gtk::ProgressBar($adj2), gtkset_sensitive($check3 = new Gtk::CheckButton(), 0)], ["Post Install Fonts ", $pbar3 = new_with_adjustment Gtk::ProgressBar($adj3), gtkset_sensitive($check4 = new Gtk::CheckButton(), 0)], ), ); - $font_box->show_all(); + $central_widget = \$table; +# $font_box->show_all(); # my $timer = Gtk->timeout_add( 5, \&progress_timeout ); # my $timer1 = Gtk->timeout_add( 10, \&progress_timeout1 ); # my $timer2 = Gtk->timeout_add( 15, \&progress_timeout2 ); # my $timer3 = Gtk->timeout_add( 20, \&progress_timeout3 ); - my $timer4 = Gtk->timeout_add( 5000, sub { $table->destroy(); gtkpack($font_box, "c fini") }); + backend_mod(); } sub progress { |