diff options
Diffstat (limited to 'control-center2')
-rwxr-xr-x | control-center2 | 399 |
1 files changed, 0 insertions, 399 deletions
diff --git a/control-center2 b/control-center2 deleted file mode 100755 index 47599211..00000000 --- a/control-center2 +++ /dev/null @@ -1,399 +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 Gtk; -use Config; -use POSIX; -# for i18n -use Locale::GetText; - -setlocale (LC_ALL, ""); -Locale::GetText::textdomain ("DrakConf"); - -import Locale::GetText I_; -*_ = *I_; - -init Gtk; -use Data::Dumper; - -my %pixmaps_global; -my $xpm_path="pixmaps"; - -my $window_global = new Gtk::Window -toplevel; -$window_global->set_usize(640, 480); -$window_global->signal_connect ( delete_event => sub { Gtk->exit(0); }); -$window_global->set_position(1); -$window_global->set_title(_("Mandrake Control Center")); -$window_global->border_width(0); - -$vbox_global = new Gtk::VBox(0, 0); -$window_global->add($vbox_global); - -######### menus -my @item_factory_entries = ( - [_("/_File"), undef, 0, "<Branch>"], - [_("/File/tearoff1"), undef, 0, "<Tearoff>"], - #[_("/File/_Quit"), _("<control>Q"), 5], - { - 'path' => _("/File/_Quit"), - 'accelerator' => _("<control>Q"), - 'action' => 1, - 'type' => '<Item>' - }, - [_("/_Help"), undef, 0, "<Branch>"], - [_("/Help/_Mandrake Control Center"), undef, 30], - [_("/Help/_Report Bug"), undef, 30], - [_("/Help/_About..."), undef, 30] - ); - -my ($accel_group, $item_factory, $box1, $label, $box2); -my ($separator, $button, $dummy); - -$accel_group = new Gtk::AccelGroup; -$item_factory = new Gtk::ItemFactory('Gtk::MenuBar', "<main>", $accel_group); - -$accel_group->attach($window_global); -foreach (@item_factory_entries) { - $item_factory->create_item($_, \&item_factory_cb); -} - -$vbox_global->pack_start($item_factory->get_widget('<main>'), 0, 0, 0); -$hseparator_global = new Gtk::HSeparator; -$vbox_global->pack_start($hseparator_global, 0, 1, 0); -######### menus end - - -my $hbox_global = new Gtk::HBox(0,0); -$vbox_global->pack_start($hbox_global, 1, 1, 0); -$hbox_global->border_width(5); -my $scrolled_global = new Gtk::ScrolledWindow; -$scrolled_global->set_policy('automatic','automatic'); -$scrolled_global->set_usize(100, 0); -$scrolled_global->set_name("icons_back"); -#$scrolled_global->window->draw_rectangle(nil,1, 0, 0, 70, 70); #$scrolled_global->window->style->bg_gc('normal') -$hbox_global->pack_start($scrolled_global,0,1,0); -my $vseparator_global = new Gtk::VSeparator; -$hbox_global->pack_start($vseparator_global,0,1,0); - -my $notebook_global = new Gtk::Notebook; -$notebook_global->set_show_border(0); -$notebook_global->set_show_tabs(0); -$hbox_global->pack_start($notebook_global,1,1,0); - -#-------------------------------- bal ----------------------------------------------------------- - -my $hbox1= new Gtk::HBox(0,20); -my ($pix_about_map, $pix_about_mask) = Gtk::Gdk::Pixmap->create_from_xpm(NULL, Gtk::Widget->get_default_style->bg('normal'), "$xpm_path/logo.xpm"); -my $pix_about = new Gtk::Pixmap ($pix_about_map, $pix_about_mask); -$pix_about->set_alignment(10,0); -$hbox1->pack_start($pix_about, 0, 1, 0); -my $style = new Gtk::Style; -$style->font(Gtk::Gdk::Font->fontset_load(_("-adobe-times-bold-r-normal--*-180-100-100-p-*-iso8859-*,*-r-*"))); -my $label_about2 = new Gtk::Label (_("Mandrake Control Center")); -$label_about2->set_alignment(0,0); -$label_about2->set_style($style); -$hbox1->pack_start($label_about2, 0, 1, 0); -my $vbox_about = new Gtk::VBox(0,10); -$vbox_about->pack_start($hbox1, 0, 1, 0); -my $label_about3 = new Gtk::Label (_("This is the Mandrake Control Center, The place where you can configure your Mandrake Box")); -$vbox_about->pack_start($label_about3, 0, 0, 0); - -my $table_info1 = new Gtk::Table(6,2,1); -$table_info1->set_row_spacings(15); -$table_info1->set_col_spacings(10); - -my @revtree; -my @infotree; -open VERS, "/etc/redhat-release" or die( sprintf _("cannot open this file for read:$!") ); -while (<VERS>) { - push (@revtree,$_); -} -@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--*-100-100-100-p-*-iso8859-*,*-r-*"))); - -my $ld = new Gtk::Label("$username"); -$table_info1->attach($ld, 1, 2, 0, 1, 0, 0, 0, 0); -my $label_user = new Gtk::Label(_("User: ")); -$label_user->set_style($style1); -$label_user->set_justify('right'); -$table_info1->attach($label_user, 0, 1, 0, 1, 0, 0, 0, 0); -my $ld1 = new Gtk::Label("$info_tree[0] $info_tree[1] $info_tree[3] $info_tree[4] "); -$table_info1->attach($ld1, 1, 2, 1, 2, 0, 0, 0, 0); -my $ld2 = new Gtk::Label("$nodename"); -$table_info1->attach($ld2, 1, 2, 2, 3, 0, 0, 0, 0); -my $ld3 = new Gtk::Label("$release $version"); -$table_info1->attach($ld3, 1, 2, 3, 4, 0, 0, 0, 0); -my $ld3 = new Gtk::Label("$machine"); -$table_info1->attach($ld3, 1, 2, 4, 5, 0, 0, 0, 0); -my $label_os = new Gtk::Label(_("System: ")); -$label_os->set_style($style1); -$label_os->set_justify('right'); -$table_info1->attach($label_os, 0, 1, 1, 2, 0, 0, 0, 0); -my $label_host = new Gtk::Label(_("Hostname: ")); -$label_host->set_style($style1); -$table_info1->attach_defaults($label_host, 0, 1, 2, 3); -my $label_kernel = new Gtk::Label(_("Kernel Version: ")); -$label_kernel->set_style($style1); -$table_info1->attach_defaults($label_kernel, 0, 1, 3, 4); -my $label_box = new Gtk::Label(_("Machine: ")); -$label_box->set_style($style1); -$table_info1->attach_defaults($label_box, 0, 1, 4, 5); - -$vbox_about->set_spacing(30); -$vbox_about->pack_start($table_info1, 0, 0, 0); -$vbox_about->reorder_child($table_info1,150); - - -$notebook_global->append_page($vbox_about, "$arg"); - -my $vbox_global_left = new Gtk::VBox(0,0); -$scrolled_global->add_with_viewport($vbox_global_left); - -$window_global->realize; -map { - $pixmaps_global{$_ . '_pixmap'} = - Gtk::Gdk::Pixmap->create_from_xpm($window_global->window, Gtk::Widget->get_default_style->bg('normal'), "$xpm_path/$_.xpm"); -} ('item1', 'item2', 'item3', 'item4', 'item5','draknet1','draknet2','draknet3','draknet4', 'draknet5', 'drakgw'); - -my %tree; -$tree{nb_groups}=2; -$tree[0]{name}=_("Boot Configuration"); -$tree[0]{nb_applis}=2; -$tree[0]{applis}[0]{name}=_("draknet"); -$tree[0]{applis}[0]{exec}='drakfont'; -$tree[0]{applis}[1]{name}=_("DrakeLogo"); -$tree[0]{applis}[1]{exec}='DrakeLogo'; -$tree[1]{name}="groupe2"; -$tree[1]{nb_applis}=1; -$tree[1]{applis}[0]{name}=_("DrakFont");#'drakxservices'; -$tree[1]{applis}[0]{exec}='drakfont';#'drakxservices'; -$tree[1]{applis}[1]{name}=_("DrakFloppy");#'drakboot'; -$tree[1]{applis}[1]{exec}='drakfloppy';#'drakboot'; -#print Data::Dumper->Dump([%tree], ['tree']) . "\n"; -print _("nb gr: ") . $tree{nb_groups} . "\n"; -my $num=0; -my $group; -for ( $group=0; $group<$tree{nb_groups}; $group++) { - print _("group: ") . "$group\n"; - draw_icon(56, 36, 'item', 0, "", $tree[$group]{name}, $group); - for ($item=0; $item<$tree[$group]{nb_applis}; $item++) { - print _("item: ") . "$item\n"; - draw_icon(56, 36, 'item', 1, $tree[$group]{applis}[$item]{exec}, $tree[$group]{applis}[$item]{name}, $num); - $num++; - } -} -print Data::Dumper->Dump([$tree[0]{applis}[0]], ['tree-applis->0-->']) . "\n"; - - ######### - - -my $area_global = new Gtk::DrawingArea; -$vbox_global_left->pack_start($area_global,1,1,0); -my $rc = "control-center.rc"; -Gtk::Rc->parse($rc); -$window_global->show_all; -for (my $i=0; $i<$tree{nb_groups}; $i++) { - for (my $j=0; $j<$tree[$i]{nb_applis}; $j++) { - $tree[$i]{applis}[$j]{darea}->hide; - $tree[$i]{applis}[$j]{label}->hide; - } -} -print _("num: ") . $notebook_global->page_num($vbox_about) . "\n"; -$notebook_global->set_page(0); -$SIG{USR1} = sub { $notebook_global->set_page(0); }; # embedded applications will send me that signal in order to "hide" them - -Gtk->main; - - -sub draw_icon { - my ($width, $height, $icon_name, $decalage, $exec_string, $name, $number ) = @_; - my %hash; - if ($exec_string) { - my $socket = new Gtk::Socket; - $socket->show; - $notebook_global->append_page($socket, ""); - $socket->realize; - printf (_("The XID of the sockets window nr. %s is [%s]\n"), $arg, $socket->window->XWINDOW ); - printf (_("My PID is [%s]\n"), $$ ); - my $a = $exec_string . " --embedded " . $socket->window->XWINDOW . " " . $$ . "&"; - print "$a\n"; - system ($a); - } - $hash{PIX_W} = $width; - $hash{PIX_H} = $height; - $hash{actual_pixmap}=1; - $hash{save_pixmap}=0; - $hash{anim_idle}=undef; - $hash{timeout}=undef; - $hash{darea} = new Gtk::DrawingArea; - $hash{label} = new Gtk::DrawingArea; - $hash{label}->set_usize(50, 12); - $hash{label}->signal_connect(expose_event => sub { - my $font = $hash{label}->style->font; - my $w = $font->string_width($name); - $hash{label}->window->draw_string($font, $hash{label}->style->fg_gc('normal'), ($hash{label}->allocation->[2] - $w) / 2 * 0 + $decalage*20, 9, $name ); #($hash{label}->allocation->[3]-40)/2 -# $hash{label}->window->draw_string($font, $hash{label}->style->bg_gc('normal'), 0, 10, "QQWWylt"); #($hash{label}->allocation->[3]-40)/2 -}); - - if ($exec_string) { - $tree[$group]{applis}[$item]{darea} = $hash{darea}; - $tree[$group]{applis}[$item]{label} = $hash{label}; - } - $hash{darea}->set_usize($width,$height); - $hash{darea}->set_events(['exposure_mask', 'enter_notify_mask', 'leave_notify_mask', 'button_press_mask', 'button_release_mask' ]); - $hash{darea}->signal_connect - (expose_event => sub { - $hash{darea}->window->draw_pixmap - ($hash{darea}->style->bg_gc('normal'), - $pixmaps_global{ $icon_name . $hash{actual_pixmap} . '_pixmap'}, 0, 0, - ($hash{darea}->allocation->[2]-$hash{PIX_W})/2*0+($decalage * 20), - ($hash{darea}->allocation->[3]-$hash{PIX_H})/2, - $hash{PIX_W} , $hash{PIX_H} ); - }); - - - $hash{darea}->signal_connect - (enter_notify_event => sub { - $hash{anim_idle} ||= Gtk->idle_add - ( sub { - $hash{actual_pixmap}==$hash{save_pixmap} and return 1; - $hash{darea}->window->draw_pixmap - ($hash{darea}->style->bg_gc('normal'), - $pixmaps_global{ $icon_name . 1 . '_pixmap'}, # $hash{actual_pixmap} . '_pixmap'}, - 0, 0, - ($hash{darea}->allocation->[2]-$hash{PIX_W})/2*0+($decalage * 20), - ($hash{darea}->allocation->[3]-$hash{PIX_H})/2, - $hash{PIX_W} , $hash{PIX_H} ); - $hash{save_pixmap}=$hash{actual_pixmap}; - return 1; - }); - - $hash{timeout} ||= Gtk->timeout_add - ( 50, sub { - $hash{actual_pixmap}++; - $hash{actual_pixmap}>5 and $hash{actual_pixmap}=1; - return 1; - }); - }); - - - $hash{darea}->signal_connect - (leave_notify_event => sub { - Gtk->main_iteration() while ($hash{save_pixmap}!=1); - Gtk->idle_remove($hash{anim_idle}); - Gtk->timeout_remove($hash{timeout}); - undef $hash{anim_idle}; - undef $hash{timeout}; - }); - # $hash{darea}->signal_connect(button_press_event => sub { }); - if ($exec_string) { - $hash{darea}->signal_connect(button_release_event => sub { $notebook_global->set_page($number+1); }); - } else { - $hash{darea}->signal_connect(button_release_event => sub { - print _("group: ") . "$number\n"; - for (my $i=0; $i<$tree{nb_groups}; $i++) { - for (my $j=0; $j<$tree[$i]{nb_applis}; $j++) { - if ($i==$number) { - #print "yep i: $i ; j: $j\n"; - #print Data::Dumper->Dump([$tree[$i]{applis}[$j]{darea}], ['darea-->']) . "\n"; - $tree[$i]{applis}[$j]{darea}->show; - $tree[$i]{applis}[$j]{label}->show; - } else { - #print "nope i: $i ; j: $j\n"; - $tree[$i]{applis}[$j]{darea}->hide; - $tree[$i]{applis}[$j]{label}->hide; - } - } - } - }); - } - $vbox_global_left->pack_start($hash{darea},0,1,0); - $vbox_global_left->pack_start($hash{label},0,1,0); -} - -sub item_factory_cb { - my ($widget, $action, @data) = @_; - - print "ItemFactory: activated ", $widget->item_factory_path(), " -> ", $action, "\n"; - $action == 1 and Gtk->exit(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; - - } - if (!visible $item_factory_window) { - show_all $item_factory_window; - } else { - destroy $item_factory_window; - } -} |