summaryrefslogtreecommitdiffstats
path: root/control-center3
diff options
context:
space:
mode:
authordamien <damien@mandriva.com>2001-03-23 17:58:30 +0000
committerdamien <damien@mandriva.com>2001-03-23 17:58:30 +0000
commitf4c5cf7352a4df562fea502708c2fb1ee4f57576 (patch)
tree0882a2e3862c8730b327c41f6cef9692546f8d12 /control-center3
parent4b6bdb6b8689b560faaf59a3fc233ed1f2faa811 (diff)
downloadcontrol-center-f4c5cf7352a4df562fea502708c2fb1ee4f57576.tar
control-center-f4c5cf7352a4df562fea502708c2fb1ee4f57576.tar.gz
control-center-f4c5cf7352a4df562fea502708c2fb1ee4f57576.tar.bz2
control-center-f4c5cf7352a4df562fea502708c2fb1ee4f57576.tar.xz
control-center-f4c5cf7352a4df562fea502708c2fb1ee4f57576.zip
cleaning
Diffstat (limited to 'control-center3')
-rwxr-xr-xcontrol-center3550
1 files changed, 0 insertions, 550 deletions
diff --git a/control-center3 b/control-center3
deleted file mode 100755
index 54dac2e8..00000000
--- a/control-center3
+++ /dev/null
@@ -1,550 +0,0 @@
-#!/usr/bin/perl -w
-
-# Control-center
-
-# Copyright (C) 1999 MandrakeSoft
-# Damien Krotkine (damien@mandrakesoft.com)
-# Daouda Lo (daouda@mandrakesoft.com)
-#
-# This program is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation; either version 2, or (at your option)
-# any later version.
-#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with this program; if not, write to the Free Software
-# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
-
-use Config;
-use POSIX;
-# for i18n
-use Locale::GetText;
-
-setlocale (LC_ALL, "");
-Locale::GetText::textdomain ("DrakConf");
-
-import Locale::GetText I_;
-#*_ = *I_;
-
-my $_xbindir = "/usr/X11R6/bin";
-my $_bindir = "/usr/bin";
-my $_sbindir = "/usr/sbin";
-my $_iconsdir = "/usr/share/icons";
-my $_docdir = "/usr/share/doc";
-
-sub _ {
- my $s = shift @_; my $t = I_($s);
- $t && ref $t or return sprintf $t, @_;
- my ($T, @p) = @$t;
- sprintf $T, @_[@p];
-}
-
-!$ENV{DISPLAY} and exec ("$_sbindir/drakxconf; reset");
-
-require Gtk;
-require Gtk::Gdk::ImlibImage;
-init Gtk;
-Gtk::Gdk::ImlibImage->init;
-
-
-my %pixmaps_global;
-my $xpm_path="$_iconsdir";
-my $xpm_path_l="$_iconsdir";
-my $tree_depth_max = 1;
-my @treeitem_sub;
-
-my $nb_pages=0;
-my $window_global = new Gtk::Window -toplevel;
-$window_global->signal_connect ( delete_event => sub { quit_global(); });
-$window_global->set_position(1);
-$window_global->set_title(_("Mandrake Control Center"));
-$window_global->border_width(0);
-
-my $vbox_global = new Gtk::VBox(0, 0);
-$window_global->add($vbox_global);
-
-######### menus
-my @item_factory_entries = (
- [_("/_File"), undef, 0, "<Branch>"],
- {
- 'path' => _("/File/_Quit"),
- 'accelerator' => _("<control>Q"),
- 'action' => 1,
- 'type' => '<Item>'
- },
- [_("/_Help"), undef, 0, "<Branch>"],
- [_("/Help/_Mandrake Control Center"), undef, 2],
- [_("/Help/_Report Bug"), undef, 3 ],
- [_("/Help/_About..."), undef, 4 ],
- );
-
-my $accel_group = new Gtk::AccelGroup;
-my $item_factory = new Gtk::ItemFactory('Gtk::MenuBar', "<main>", $accel_group);
-
-$accel_group->attach($window_global);
-$item_factory->create_item($_, \&item_factory_cb) foreach (@item_factory_entries);
-
-$vbox_global->pack_start($item_factory->get_widget('<main>'), 0, 0, 0);
-$vbox_global->pack_start(new Gtk::HSeparator, 0, 1, 0);
-
-my $hpane_global = new Gtk::HPaned;
-$vbox_global->pack_start($hpane_global, 1, 1, 0);
-$hpane_global->border_width(5);
-my $scrolled_global = new Gtk::ScrolledWindow;
-$scrolled_global->set_policy('automatic','automatic');
-$scrolled_global->set_usize(210, 0);
-$scrolled_global->set_name("icons_back");
-$hpane_global->pack1($scrolled_global,0,1);
-
-my $notebook_global = new Gtk::Notebook;
-$notebook_global->set_show_border(0);
-$notebook_global->set_show_tabs(0);
-$hpane_global->pack2($notebook_global,0,1);
-
-#-------------------------------- splash screeen --------------------------------------------------------
-
-my ($pix_splash_map, $pix_splash_mask) = gtkcreate_png("$xpm_path_l/splash.png");
-
-my @anim;
-($anim[$_]->[0], $anim[$_]->[1]) = gtkcreate_png("$xpm_path_l/anim_" . ($_ + 1) . ".png") foreach (0..9);
-
-my $vbox_about = new Gtk::VBox(0,0);
-my $darea1= new Gtk::DrawingArea();
-$darea1->size(540,460);
-$darea1->set_usize(540,460);
-$vbox_about->pack_start($darea1,1,1,0);
-$notebook_global->append_page($vbox_about, undef);
-
-my $vbox_global_left = new Gtk::VBox(0,0);
-$scrolled_global->add_with_viewport($vbox_global_left);
-
-$window_global->realize;
-
-my $tree= new Gtk::Tree;
-$tree->set_selection_mode('browse');
-$tree->set_view_lines(0);
-$tree->set_view_mode('item');
-$vbox_global_left->pack_start($tree,1,1,0);
-map {
- create_tree_item($tree, $_->[0] , "$xpm_path_l/$_->[1]",1);
-} ([_("Boot"), 'boot-mdk.png'] , [_("Hardware"), 'drakhard-mdk.png'] ,
-#[_("User and Groups"),'adduserdrake-mdk.png'],
- [_("Network & Internet"),'net-mdk.png'] , [_("System"),'system-mdk.png']);
-
-map {
- create_tree_item($treeitem_sub[int($_->[2])],$_->[0], "$xpm_path_l/$_->[1]",0);
-} ([_("Boot Config"),'drakboot-mdk.png',3] , [_("Boot Disk"), 'drakfloppy-mdk.png',3] ,
- [_("Display"),'XFdrake-mdk.png',2] , [_("Hardware"),'harddrake-mdk.png',2] , [_("Mouse"), 'mousedrake-mdk.png',2] ,
- [_("Printer"),'printer-mdk.png',2] , [_("Keyboard"), 'keyboard-mdk.png',2],
-# [_("Users Config"),'item.png',3] ,
- [_("Connection") , 'draknet-mdk.png',1] , [_("Connection Sharing"),'drakgw-mdk.png',1], [_("Firewalling"), 'firewall-mdk.png',1],
- [_("System Menus") , 'menudrake-mdk.png',0], [_("Root Menus") , 'menudrake-mdk.png',0] , [_("Services") , 'service-mdk.png' , 0],
- [_("Fonts"), 'drakfont-mdk.png',0], [_("Date & Time") , 'time-mdk.png',0],
- [_("Package Management"), 'harddrake-mdk.png',0]
-# [_("Root Password") , 'passwd-mdk.png',0]
- );
-
-my %tree_exec = (_("Boot Config") => "$_sbindir/drakboot", _("Boot Disk") => "$_xbindir/drakfloppy",
- _("Display") => "$_sbindir/XFdrake" ,
- _("Hardware") => "$_bindir/harddrake-auth" , _("Mouse") => "$_sbindir/mousedrake" ,
- _("Printer") => "$_sbindir/printerdrake" , _("Keyboard") => "$_sbindir/keyboarddrake" ,
-# _("Users Config") => "$_bindir/userdrake" ,
- _("Connection") => "$_sbindir/draknet" ,
- _("Connection Sharing") => "$_sbindir/drakgw" ,
- _("Firewalling") => "$_sbindir/tinyfirewall" ,
- _("Date & Time") => "$_sbindir/clock.pm",
- _("Root Menus") => "$_bindir/menudrake --usermenu" , _("Services") => "$_sbindir/drakxservices",
- _("System Menus") => "$_bindir/menudrake --systemmenu", _("Fonts") => "$_xbindir/drakfont",
- _("Package Management") => "$_bindir/rpmdrake",
- _("Root Password") => "$_sbindir/drakpasswd",
-# _("Fonts") => "$_xbindir/drakfont"
- );
-
-my @pid_launched;
-my %tree_launched;
-
-$window_global->show_all;
-
-$SIG{USR1} = sub {
- ${$tree_launched{$_}->[1]}->deselect() foreach (keys %tree_launched);
- $notebook_global->set_page(0);
-}; # embedded applications will send me that signal in order to "hide" them
-$SIG{TERM} = \&quit_global; # embedded applications will send me that signal in order to quit the cc.
-my $global_vbox;
-my $global_time_tag;
-my $lock_time_tag;
-my $global_socket;
-$SIG{USR2} = sub { Gtk->timeout_remove($lock_time_tag);
- $$global_vbox->hide; Gtk->timeout_remove($global_time_tag); $$global_socket->show;
- ${$tree_launched{$_}->[1]} and ${$tree_launched{$_}->[1]}->set_sensitive(1) foreach (keys %tree_launched);
- };
-
-#$SIG{CHLD} = \&chld_handler;
-
-my $pix_dbl = new Gtk::Gdk::Pixmap($darea1->window, 540,460);
-draw_exposed($pix_dbl);
-$darea1->signal_connect( expose_event => sub { $darea1->window->draw_pixmap
- ($darea1->style->white_gc,
- $pix_dbl, 0, 0,
- ($darea1->allocation->[2]-540)/2, ($darea1->allocation->[3]-460)/2,
- 540, 460);
- });
-Gtk->main;
-
-sub draw_exposed {
- my ( $pix )=@_;
- $pix->draw_pixmap($darea1->style->white_gc, $pix_splash_map,
- 0, 0, 0, 0, 540, 460);
- my $style = new Gtk::Style;
- my $style_dflt = new Gtk::Style;
- $style->font(Gtk::Gdk::Font->fontset_load("-adobe-times-bold-r-normal--17-*-100-100-p-*-iso8859-*,*-r-*"));
- $pix->draw_string($style->font, $darea1->style->black_gc, 73, 170, ("The place where you can configure your Mandrake Box") );
-
- my @revtree;
- open VERS, "/etc/redhat-release" or die( sprintf _("cannot open this file for read: $!"));
- while (<VERS>) { push (@revtree,$_) }
- my @info_tree = split / /, $revtree[0];
-
- my ($sysname, $nodename, $release, $version, $machine ) = POSIX::uname();
-# my $username= POSIX::cuserid();
-
- my $style1 = new Gtk::Style;
- $style1->font(Gtk::Gdk::Font->fontset_load("-adobe-times-bold-r-normal--14-*-100-100-p-*-iso8859-*,*-r-*"));
-
- my $i=0;
- foreach( #[_("User:"), $username],
- [_("System:"), "$info_tree[0] $info_tree[1] $info_tree[3] $info_tree[4]"],
- [_("Hostname:"), $nodename],
- [_("Kernel Version:"), "$release $version"],
- [_("Machine:"), $machine] ) {
- $pix->draw_string($style1->font, $darea1->style->black_gc, 80, 250+$i, $_->[0]);
- $pix->draw_string($style_dflt->font, $darea1->style->black_gc, 200, 250+$i, $_->[1]);
- $i+=20;
- }
-}
-
-sub gtkcreate_png {
- my ($f) = @_;
- my $im = Gtk::Gdk::ImlibImage->load_image($f) or die "gtkcreate_png: missing png file $f";
- $im->render($im->rgb_width, $im->rgb_height);
- ($im->move_image(), $im->move_mask);
-}
-
-sub quit_global {
- foreach(@pid_launched)
- {
- kill TERM, $_;
- }
- Gtk->exit(0);
-}
-
-sub about_mdk_cc {
- my $window_about = new Gtk::Dialog();
- $window_about->set_position(1);
-
- my $bbox1 = new Gtk::HButtonBox;
- $window_about->action_area->pack_start($bbox1,0,0,0);
-
- my $button = new Gtk::Button(_("Close"));
- $button->signal_connect_object("clicked",$window_about => 'destroy');
- $bbox1->add($button);
-
- my $label = new Gtk::Label( _("Mandrake Control Center 0.61 \n Copyright (C) 2001 Mandrakesoft SA\n") );
- my $style1 = new Gtk::Style;
- $style1->font(Gtk::Gdk::Font->fontset_load("-adobe-times-bold-r-normal--14-*-100-100-p-*-iso8859-*,*-r-*"));
- $label->set_style($style1);
- $window_about->vbox->pack_start( $label, 1, 1, 0 );
-
- $window_about->vbox->pack_start( new Gtk::Label( _("Authors: ") . "\n\n Daouda Lo <daouda\@mandrakesoft.com> \n \n Damien Krotkine <dams\@mandrakesoft.com>\n"), 1, 1, 0 );
-
- $window_about->show_all();
- $window_about->set_modal(1);
-}
-
-sub splash_warning {
- my ($label) = @_;
- my $win_about = new Gtk::Dialog();
- $win_about->set_position(1);
-
- my $bbox1 = new Gtk::HButtonBox;
- $win_about->action_area->pack_start($bbox1,0,0,0);
-
- my $button = new Gtk::Button(_("Close"));
- $button->signal_connect_object("clicked",$win_about => 'destroy');
- $bbox1->add($button);
-
- my $lab = new Gtk::Label($label);
- my $style1 = new Gtk::Style;
- $win_about->vbox->pack_start( $lab, 1, 1, 0 );
-
- $win_about->show_all();
- $win_about->set_modal(1);
-}
-
-sub connect_to_site {
- my ($link,$help)=@_;
- if($help) {
- my $browser=$ENV{'BROWSER'};
- system("$browser -geometry 600x800+10+10 $link&");
- } else
- {
- splash_warning(_("\nIf you want to report bug please connect as normal user to \n \nhttps://qa.mandrakesoft.com and fill a bug report\n\n"));
- }
-}
-
-# my $left = sub { &$next_child($_[0]->parent, 0); };
-# my $right = sub {
-# print "RRRRRRRRRR\n";
-# my ($c) = @_;
-# if ($c->subtree) {
-# $c->expand;
-# ($c->subtree->children)[0];
-# } else {
-# $c;
-# }
-# };
-# my $down = sub {
-# my ($c) = @_;
-# return &$right($c) if ref $c eq "Gtk::TreeItem" && $c->subtree && $c->expanded;
-
-# if (my $n = &$next_child($c, 1)) {
-# $n;
-# } else {
-# return if ref $c->parent ne 'Gtk::Tree';
-# &$down($c->parent);
-# }
-# };
-# my $up = sub {
-# my ($c) = @_;
-# if (my $n = &$next_child($c, -1)) {
-# $n = ($n->subtree->children)[-1] while ref $n eq "Gtk::TreeItem" && $n->subtree && $n->expanded;
-# $n;
-# } else {
-# return if ref $c->parent ne 'Gtk::Tree';
-# &$left($c);
-# }
-# };
-
-my $treeitem_old;
-sub create_tree_item {
- my ($parent_tree, $label, $pixmap, $tree_depth_max) =@_;
-
- my $expanded=0;
- my ($treeitem, $treebox, $new_subtree);
- $treeitem = new Gtk::TreeItem();
- $treebox = xpm_label_box($window_global,$pixmap,$label, !$tree_depth_max);
- $treeitem->add($treebox);
- if ($tree_depth_max == 0) {
- $tree_launched{$label}->[1]=\$treeitem;
- $treeitem->signal_connect('select', sub { exec_treeitem($label, $tree_exec{$label}, -e $tree_exec{$label} ) });
- } else {
- $treeitem->signal_connect('button_press_event', sub { $expanded ? $treeitem->collapse : $treeitem->expand; $expanded = !$expanded });
- $treeitem->signal_connect('select', sub { $treeitem_old and $$treeitem_old->collapse(); $treeitem->expand(); $treeitem_old=\$treeitem;
- $expanded=1;
- });
- }
- $parent_tree->append($treeitem);
- $treeitem->show_all();
-
- if ($tree_depth_max) {
- $tree_depth_max-- ;
- $new_subtree= new Gtk::Tree();
- $treeitem->set_subtree($new_subtree);
- $new_subtree->ref();
- unshift(@treeitem_sub, $new_subtree);
- }
-
-# $treeitem->signal_connect(key_press_event => sub {
-# my (undef, $e) = @_;
-# local $_ = chr ($e->{keyval});
-
-# if ($e->{keyval} > 0x100) {
-# my $n;
-# $n = &$left($treeitem) if /[Q´\x96]/;
-# print "RRRRRRRR\n";
-# $n = &$right($treeitem) if /[S¶\x98]/;
-# print "RRRRRRRR\n";
-# $n = &$up($treeitem) if /[R¸\x97]/;
-# $n = &$down($treeitem) if /[T²\x99]/;
-# if ($n) {
-# $n->focus('up');
-# $treeitem->signal_emit_stop("key_press_event");
-# }
-# $treeitem->expand if /[+«]/;
-# $treeitem->collapse if /[-\xad]/;
-# do {
-# $treeitem->expanded ? $treeitem->collapse : $treeitem->expand;
-# $treeitem->signal_emit_stop("key_press_event");
-# } if /[\r\x8d]/;
-# }
-# 1;
-# });
-}
-
-sub xpm_label_box {
- my ( $parent, $xpm_filename, $label_text, $is_last ) = @_;
- # Create box for xpm and label
- my $box = new Gtk::HBox( 0, 0 );
- my $box2;
- if ($is_last) {
- $box2 = new Gtk::HBox( 0, 0 );
- $box2->set_usize(20, 0);
- $box->pack_start($box2, 0, 0, 0);
- }
- # Get the style of the button to get the background color.
- my $style = $parent->get_style()->bg( 'normal' );
- # Now on to the xpm stuff
- my ($pixmap, $mask) = gtkcreate_png($xpm_filename );
- my $pixmapwid = new Gtk::Pixmap( $pixmap, $mask );
- # Create a label for the button
- my $label = new Gtk::Label( $label_text );
- # Pack the pixmap and label into the box
- $box->pack_start( $pixmapwid, 0, 0, 3 );
- $box->pack_start( $label, 0, 0, 3 );
- $box->border_width( 2 );
- return ( $box );
-}
-
-sub exec_treeitem {
- my ($label, $exec_string, $available) = @_;
- if (!$available) {
- my $vbox = new Gtk::VBox(0, 0);
- $vbox->pack_start( new Gtk::Label (_("The application cannot be loaded,\nthe file '%s' has not be found.\nTry to install it.", $exec_string)), 1, 0, 0);
- $vbox->show_all;
- $notebook_global->append_page($vbox, "");
- $pid_launched[$nb_pages] = undef;
- $nb_pages++;
- $tree_launched{$label}->[0]=$nb_pages;
- $notebook_global->set_page($nb_pages);
- return;
- }
- if (!$tree_launched{$label}->[0]) {
- my $vbox = new Gtk::VBox(0, 0);
- $vbox->show;
- my $vbox2 = new Gtk::VBox(0, 0);
- $vbox2->show;
- $global_vbox=\$vbox2;
- $vbox->pack_start($vbox2,1,0,0);
- my $label_ = new Gtk::Label (_("Please wait while loading ..."));
- $vbox2->pack_start( $label_, 0, 0, 0);
- $label_->show;
- my $hbox = new Gtk::HBox(0, 0);
- $hbox->show;
- $vbox2->pack_start($hbox,0,0,0);
- my $darea1= new Gtk::DrawingArea();
- $darea1->size(350,12);
- $darea1->set_usize(340,12);
- $frame0 = new Gtk::Frame;
- $frame0->add($darea1);
- $frame0->show;
- $darea1->show;
- $frame0->set_shadow_type('etched_out');
- $hbox->pack_start($frame0,1,0,0);
- my $socket = new Gtk::Socket;
- $global_socket = \$socket;
- $vbox->pack_start($socket, 1, 1, 0);
- $notebook_global->append_page($vbox, "");
- $nb_pages++;
- $tree_launched{$label}->[0]=$nb_pages;
- $notebook_global->set_page($nb_pages);
- $tree_launched{$_}->[0] or ${$tree_launched{$_}->[1]} and ${$tree_launched{$_}->[1]}->set_sensitive(0) foreach (keys %tree_launched);
- my $anim_nb=0;
- $global_time_tag = Gtk->timeout_add(100, sub {
- $darea1->window->draw_pixmap
- ($darea1->style->white_gc,
- $anim[$anim_nb]->[0], 0, 0,
- ($darea1->allocation->[2]-340)/2, ($darea1->allocation->[3]-15)/2,
- 350, 13);
- $anim_nb++;
- $anim_nb > 9 and $anim_nb=0;
- 1;
- });
- $lock_time_tag = Gtk->timeout_add(15000, sub {
- Gtk->timeout_remove($global_time_tag);
- ${$tree_launched{$_}->[1]} and ${$tree_launched{$_}->[1]}->set_sensitive(1) foreach (keys %tree_launched);
- $vbox->pack_start(new Gtk::Label (_("After 20 sec., Failed to launch \nSee if it's installed")), 1, 1, 0);
- $label_->set(_("After 15 sec., Failed to launch \nSee if it's installed")); $darea1->hide;
- });
-
-$socket->realize;
-# $label->destroy;
-my $a = $exec_string . " --embedded " . $socket->window->XWINDOW . " " . $$;
-my $pid;
-#($pid = fork) ? $pid_launched[$nb_pages] = $pid : system($a) == 0 or splash_warning(_("couldn't exec $a: $!"));
-unless ($pid = fork) {
- splash_warning(_("cannot fork: $~")) unless defined $pid;
- exec("$a");
-}
-
-$pid_launched[$nb_pages-1] = $pid;
-
-print "test 1\n $nb_pages\n";
-print "$pid_launched[$nb_pages]\n";
-} else {
- $notebook_global->set_page($tree_launched{$label}->[0]);
-}
-}
-
-sub item_factory_cb {
- my ($widget, $action, @data) = @_;
- print "ItemFactory: activated ", $widget->item_factory_path(), " -> ", $action, "\n";
- $action == 1 and quit_global();
- $action == 4 and about_mdk_cc();
- $action == 2 and connect_to_site("$_docdir/DrakConf/DrakeConf.html",1);
- $action == 3 and connect_to_site("https://qa.mandrakesoft.com",0);
-
-}
-
-sub create_item_factory {
- if (!defined $item_factory_window) {
- my ($accel_group, $item_factory, $box1, $label, $box2);
- my ($separator, $button, $dummy);
-
- $item_factory_window = new Gtk::Window('toplevel');
- signal_connect $item_factory_window destroy => \&destroy_window, \$item_factory_window;
- signal_connect $item_factory_window "delete-event" => \&destroy_window, \$item_factory_window;
-
- $accel_group = new Gtk::AccelGroup;
- $item_factory = new Gtk::ItemFactory('Gtk::MenuBar', "<main>", $accel_group);
-
- #$item_factory_window->set_data('<main>', $item_factory);
- $accel_group->attach($item_factory_window);
- # $item_factory->create_items();
- foreach (@item_factory_entries) {
- $item_factory->create_item($_, \&item_factory_cb);
- }
-
- $item_factory_window->set_title(_("Item Factory"));
- $item_factory_window->set_border_width(0);
-
- $box1 = new Gtk::VBox(0, 0);
- $item_factory_window->add($box1);
- $box1->pack_start($item_factory->get_widget('<main>'), 0, 0, 0);
-
- $label = new Gtk::Label( _("Type\n<alt>\nto start") );
-
- $label->set_usize(200, 200);
- $label->set_alignment(0.5, 0.5);
- $box1->pack_start($label, 1, 1, 0);
-
- $separator = new Gtk::HSeparator;
- $box1->pack_start($separator, 0, 1, 0);
-
- $box2 = new Gtk::VBox(0, 10);
- $box2->set_border_width(10);
- $box1->pack_start($box2, 0, 1, 0);
-
- $button = new Gtk::Button(_("Close"));
- $button->signal_connect('clicked', sub {$item_factory_window->destroy;});
- $box2->pack_start($button, 1, 1, 0);
- $button->can_default(1);
- $button->grab_default;
- }
-
- (!visible $item_factory_window) ? show_all $item_factory_window : destroy $item_factory_window;
-}