#!/usr/bin/perl -w use POSIX; use Gtk; use lib qw(/usr/lib/libDrakX); use interactive; use standalone; init Gtk; Gtk->set_locale; use strict; #------------------------------------------------------------- # i18n routines # IMPORTANT: next two routines have to be redefined here to # get correct namespace (drakconf instead of libDrakX) # (This version is now UTF8 compliant - Sg 2001-08-18) #------------------------------------------------------------- sub _ { my $s = shift @_; my $t = translate($s); sprintf $t, @_; } sub translate { my ($s) = @_; $s ? c::dgettext('drakconf', $s) : ''; } my $_bindir = "/usr/bin/"; my $window = $::isEmbedded ? new Gtk::Plug ($::XID) : new Gtk::Window -toplevel; $window->signal_connect ( delete_event => \&quit_global ); my $vbox = new Gtk::VBox(0,0); $window->set_title(_("Menu Configuration Center")); $window->add($vbox); $vbox->pack_start(new Gtk::Label(_("Menu Configuration Center") . _("\n\nChoose which menu you want to configure")),0,0,5); $vbox->pack_start(new Gtk::HSeparator,0,0,5); my $table = new Gtk::Table (3,2, 0); $table->set_border_width(5); $table->set_row_spacings(5); $table->set_col_spacings(5); my $hbox = new Gtk::HBox(0,0); $vbox->pack_start($hbox,1,1,1); $hbox->pack_start($table,0,0,5); $table->attach (new Gtk::Label(_("System menu")), 0, 1, 0, 1, 'fill', 'fill', 0, 0); my $b1 = new Gtk::Button(_("Configure...")); $b1->signal_connect( clicked => sub { system("$_bindir/menudrake --systemmenu & "); } ); $table->attach ($b1, 1, 2, 0, 1, 'fill', 'fill', 0, 0); $table->attach (new Gtk::Label(_("User menu")), 0, 1, 1, 2, 'fill', 'fill', 0, 0); my (@user_info, @usernames); setpwent(); do { @user_info = getpwent(); my ($uname, $uid) = @user_info[0,2]; push (@usernames, $uname) if ($uid > 500 && $uname eq $ENV{INITIAL_USER}); } while (@user_info); my $combo = new Gtk::Combo; $combo->set_popdown_strings (@usernames, "root"); $table->attach ($combo, 2, 3, 1, 2, 'fill', 'fill', 0, 0); my $b2 = new Gtk::Button(_("Configure...")); $b2->signal_connect( clicked => sub { my $a = $combo->entry->get_text(); $a eq "root" ? system("$_bindir/menudrake --usermenu &") : system(" su $a -c \"$_bindir/menudrake &\""); } ); $table->attach ($b2, 1, 2, 1, 2, 'fill', 'fill', 0, 0); $vbox->pack_start(new Gtk::HSeparator,0,0,5); my $bbox = new Gtk::HButtonBox; $vbox->pack_start($bbox,0,0,5); $bbox->set_layout(-end); my $button_ok = new Gtk::Button _("Done"); $button_ok->signal_connect ( clicked => sub { $::isEmbedded ? kill('USR1', $::CCPID) : Gtk->exit(0); }); $button_ok->can_default(1); $bbox->add($button_ok); $window->show_all; Gtk->main_iteration while Gtk->events_pending; $::isEmbedded and kill 'USR2', $::CCPID; Gtk->main;