class="hl kwb">@boot_thms = (($themes{'default'})?():qw(default));chdir($themes{'path'});#- we must change directory for correct @thms assignementforeach(all('.')) {if(-d $themes{'path'} .$_&&m/^[^.]/) {push@thms, $_;-f $themes{'path'} .$_.$themes{'lilo'}{'file'}and push@lilo_thms, $_;-f $themes{'path'} .$_.$themes{'boot'}{'path'} ."bootsplash-$cur_res.jpg"and push@boot_thms, $_;}# $_ eq $themes{'defaut'} and $default = $themes{'defaut'};}my%combo= ('thms'=>'','lilo'=>'','boot'=>'');foreach(keys(%combo)) {$combo{$_} = new Gtk::Combo;$combo{$_}->set_value_in_list(1,0);}$combo{'thms'}->set_popdown_strings(@thms);$combo{'lilo'}->set_popdown_strings(@lilo_thms);$combo{'boot'}->set_popdown_strings(@boot_thms)if(!$no_bootsplash);my$lilo_pixbuf;my$lilo_pic= gtkpng($themes{'def_thmb'});my$boot_pixbuf;my$boot_pic= gtkpng($themes{'def_thmb'});my$thm_button= new Gtk::Button(_("Install themes"));my$logo_thm= new Gtk::CheckButton(_("Display theme under console"));my$B_create= new Gtk::Button(_("Create new theme"));my$keep_logo=1;$logo_thm->set_active(1);$logo_thm->signal_connect(clicked =>sub{ invbool(\$keep_logo) });$B_create->signal_connect(clicked =>sub{$::isEmbedded ? (kill('USR1', $::CCPID)and system('/usr/sbin/draksplash ')) :system('/usr/sbin/draksplash ') ;});#- ******** action to take on changing combos values$combo{'thms'}->entry->signal_connect(changed =>sub{my$thm_txt=$combo{'thms'}->entry->get_text();$combo{'lilo'}->entry->set_text(member($thm_txt, @lilo_thms) ? $thm_txt: ($themes{'default'} ||'default'));$combo{'boot'}->entry->set_text(member($thm_txt, @boot_thms) ? $thm_txt: ($themes{'default'} ||'default'));});$combo{'lilo'}->entry->signal_connect(changed =>sub{my$new_file=$themes{'path'} .$combo{'lilo'}->entry->get_text() .$themes{'lilo'}{'thumb'};undef($lilo_pixbuf);$lilo_pixbuf= gtkcreate_png_pixbuf(-r $new_file ? $new_file:$themes{'def_thmb'});$lilo_pic->set($lilo_pixbuf->render_pixmap_and_mask(0),'');});$no_bootsplash==0and$combo{'boot'}->entry->signal_connect( changed =>sub{local$img_file=$themes{'path'}.$combo{'boot'}->entry->get_text().$themes{'boot'}{'path'}."bootsplash-$cur_res.jpg";undef($boot_pixmap);$boot_pixmap= gtkcreate_png_pixbuf($img_file);$boot_pixmap=$boot_pixmap->scale_simple(159,119,0);$boot_pic->set($boot_pixmap->render_pixmap_and_mask(0),'');});$combo{'thms'}->entry->set_text($themes{'default'});$thm_button->signal_connect('clicked',sub{my$error=0;my$boot_conf_file='/etc/sysconfig/bootsplash';my$lilomsg='/boot/lilo-graphic/message';#lilo installationif(-f $themes{'path'}.$combo{'lilo'}->entry->get_text() .$themes{'lilo'}{'file'}) {use File::Copy;( copy($lilomsg,"/boot/lilo-graphic/message.old")and standalone::explanations(_("Backup%sto%s.old",$lilomsg,$lilomsg)) )or$in->ask_warn(_("Error"), _("unable to backup lilo message"));( copy($themes{'path'} .$combo{'lilo'}->entry->get_text() .$themes{'lilo'}{'file'},$lilomsg)and standalone::explanations(_("Copy%sto%s",$themes{'path'} .$combo{'lilo'}->entry->get_text() .$themes{'lilo'}{'file'},$lilomsg)) )or$in->ask_warn(_("Error"), _("can't change lilo message"));}else{$error=1;$in->ask_warn(_("Error"), _("Lilo message not found"));}#bootsplash installif( -f $themes{'path'} .$combo{'boot'}->entry->get_text() .$themes{'boot'}{'path'} ."bootsplash-$cur_res.jpg") {$bootsplash_cont="# -*- Mode: shell-script -*-# Specify here if you want add the splash logo to initrd when# generating an initrd. You can specify :## SPLASH=no to don't have a splash screen## SPLASH=auto to make autodetect the splash screen## SPLASH=INT When Integer could be 800x600 1024x768 1280x1024#SPLASH=$cur_res# Choose the themes. The should be based in# /usr/share/bootsplash/themes/THEME=".$combo{'boot'}->entry->get_text() ."# Say yes here if you want to leave the logo on the console.# Three options :## LOGO_CONSOLE=no don't display logo under console.## LOGO_CONSOLE=yes display logo under console.## LOGO_CONSOLE=theme leave the theme to decide.#LOGO_CONSOLE=". ($keep_logo ? 'yes':'no') ."\n";if(-f $boot_conf_file) {eval{ output($boot_conf_file, $bootsplash_cont) };$@and$in->ask_warn(_("Error"), _("Can't write /etc/sysconfig/bootsplash."))or standalone::explanations(_("Write%s",$boot_conf_file));}else{$in->ask_warn(_("Error"), _("Can't write /etc/sysconfig/bootsplash\nFile not found."));$error=1;}}else{$in->ask_warn("Error","BootSplash screen not found");}#here is mkinitrd timeif(!$error) {foreach(map{ if_(m|^initrd-(.*)\.img|,$1) } all('/boot')){if(system("mkinitrd -f /boot/initrd-$_.img$_") ) {$in->ask_warn(_("Error"),
_("Can't launch mkinitrd -f /boot/initrd-%s.img%s.",$_,$_));$error=1;}else{
standalone::explanations(_("Make initrd 'mkinitrd -f /boot/initrd-%s.img%s'.",$_,$_));}}}if(system('lilo')) {$in->ask_warn(_("Error"),
_("Can't relaunch LiLo!Launch\"lilo\"as root in command line to complete LiLo theme installation."));$error=1;}else{
standalone::explanations(_("Relaunch 'lilo'"));}$in->ask_warn(_(($error)?"Error":"Notice"),
_($error?"Theme installation failed!":"LiLo and Bootsplash themes installation successfull"));});
gtkadd($window,
gtkpack__ (my$global_vbox= new Gtk::VBox(0,0),
gtkadd (new Gtk::Frame ("$disp_mode"),# gtkpack__(new Gtk::VBox(0,0),(gtkpack_(gtkset_border_width(new Gtk::HBox(0,0),5),1,_("You are currently using%sas your boot manager.Click on Configure to launch the setup wizard.",$lilogrub),0,gtksignal_connect(new Gtk::Button (_("Configure")), clicked => $::lilo_choice),)),# "" #we need some place under the button -- replaced by gtkset_border_width( for the moment# )),#Splash Selector
gtkadd(my$thm_frame= new Gtk::Frame( _("Splash selection") ),
gtkpack__(gtkset_border_width(new Gtk::HBox(0,5),5),
gtkpack__(new Gtk::VBox(0,5),
_("Themes"),$combo{'thms'},
_("\nSelect a theme for\nlilo and bootsplash,\nyou can choose\nthem separatly"),$logo_thm),
gtkpack__(new Gtk::VBox(0,5),
_("Lilo screen"),$combo{'lilo'},$lilo_pic,$B_create),
gtkpack__(new Gtk::VBox(0,5),
_("Bootsplash"),$combo{'boot'},$boot_pic,$thm_button))),# aurora# gtkadd (new Gtk::Frame (_("Boot mode")),# gtkpack__ (new Gtk::HBox(0,0),# gtkpack__ (new Gtk::VBox(0, 5),# gtksignal_connect ($a_button, clicked => sub {# if ($inmain) {# $a_box->set_sensitive(!$a_mode);# $a_mode = !$a_mode;# if ($a_mode) {# $pixmap->set($c_pixmap, $c_mask) if $a_c_button->get_active();# $pixmap->set($h_pixmap, $h_mask) if $a_h_button->get_active();# $pixmap->set($v_pixmap, $v_mask) if $a_v_button->get_active();# $pixmap->set($g_pixmap, $g_mask) if $a_g_button->get_active();# } else {# $pixmap->set($t_pixmap, $t_mask);# }# }# }),# gtkpack__ (gtkset_sensitive ($a_box, $a_mode),# gtksignal_connect ($a_c_button,clicked => sub{$pixmap->set($c_pixmap, $c_mask)}),# gtksignal_connect ($a_h_button,clicked => sub{$pixmap->set($h_pixmap, $h_mask)}),# gtksignal_connect ($a_v_button,clicked => sub{$pixmap->set($v_pixmap, $v_mask)}),# gtksignal_connect ($a_g_button,clicked => sub{$pixmap->set($g_pixmap, $g_mask)})# )# ),# gtkpack__ (new Gtk::HBox(0,0), $pixmap)# )# ),# X
gtkadd (new Gtk::Frame (_("System mode")),
gtkpack__ (new Gtk::VBox(0,5),
gtksignal_connect(gtkset_active(new Gtk::CheckButton (_("Launch the graphical environment when your system starts")),$x_mode), clicked =>sub{$x_box->set_sensitive(!$x_mode);$x_mode= !$x_mode;}),
gtkpack__ (gtkset_sensitive ($x_box, $x_mode),
gtkset_active($x_no_button= new Gtk::RadioButton (_("No, I don't want autologin")), !$l_mode),
gtkpack__ (new Gtk::HBox(0,10),
gtkset_active($x_yes_button= new Gtk::RadioButton((_("Yes, I want autologin with this (user, desktop)")),$x_no_button),$l_mode),
gtkpack__ (new Gtk::VBox(0,10),$user_combo,$desktop_combo))))),
gtkadd (gtkset_layout(new Gtk::HButtonBox,-end),
gtksignal_connect(new Gtk::Button(_("OK")), clicked =>sub{ updateInit(); updateAutologin(); updateAurora(); $::isEmbedded ? kill('USR1',$::CCPID) : Gtk->exit(0) }),
gtksignal_connect(new Gtk::Button(_("Cancel")), clicked =>sub{ $::isEmbedded ? kill('USR1', $::CCPID) : Gtk->exit(0) }))));#$a_button->set_active($a_mode); # up == false == "0"#if ($a_mode) {# my $a = readlink "/etc/aurora/Monitor";# $a =~ s#/lib/aurora/Monitors/##;# if ($a eq "NewStyle-Categorizing-WsLib") { $a_c_button->set_active(1); $pixmap->set($c_pixmap, $c_mask) }# if ($a eq "NewStyle-WsLib") { $a_h_button->set_active(1); $pixmap->set($h_pixmap, $h_mask) }# if ($a eq "Traditional-WsLib") { $a_v_button->set_active(1); $pixmap->set($v_pixmap, $v_mask) } # if ($a eq "Traditional-Gtk+") { $a_g_button->set_active(1); $pixmap->set($g_pixmap, $g_mask) }#} else {## $pixmap->set($t_pixmap, $t_mask);#}$window->show_all();$no_bootsplashand$thm_frame->hide();
Gtk->main_iterationwhile Gtk->events_pending;$::isEmbedded and kill'USR2', $::CCPID;$inmain=1;
Gtk->main;
Gtk->exit(0);