diff options
-rw-r--r-- | DrakConf.spec | 30 | ||||
-rwxr-xr-x | cest_ton_boot | 223 | ||||
-rwxr-xr-x | control-center | 4 | ||||
-rwxr-xr-x | relcontrolcenter | 447 |
4 files changed, 695 insertions, 9 deletions
diff --git a/DrakConf.spec b/DrakConf.spec index 92888d7e..47e48231 100644 --- a/DrakConf.spec +++ b/DrakConf.spec @@ -5,7 +5,7 @@ Summary: The Mandrake Control Center Name: %{name} Version: %{version} -Release: 1mdk +Release: 6mdk # get the source from our cvs repository (see # http://www.linuxmandrake.com/en/cvs.php3) Source0: %{name}-%{version}.tar.bz2 @@ -14,21 +14,22 @@ Source2: drakconf32.xpm.bz2 Source3: drakconf48.xpm.bz2 Copyright: GPL Group: System/Configuration/Other -Requires: drakxtools, gtk+mdk, perl, usermode, drakfloppy, harddrake, DrakeLogo, drakfont +Requires: drakxtools >= 1.1.5-39mdk, gtk+mdk, perl, usermode, drakfloppy >= 0.42-1mdk, harddrake >= 0.9.3-14mdk, DrakeLogo >= 1.0-18mdk, drakfont >= 0.58-1mdk, XFree86-100dpi-fonts BuildRoot: %{_tmppath}/%{name}-buildroot %description -DrakFont is an interface to multiple utilities from DrakXtools. It +DrakConf is an interface to multiple utilities from DrakXtools. It allows you to launch : - * KeyboardDrake: configures your keyboard. + * Hardrake : detection of the hardware + * KeyboardDrake: configures your keyboard * MouseDrake: configures and autodetects your mouse * PrinterDrake: detects and configures your printer - * Diskdrake: partitions your hard disk. + * Diskdrake: partitions your hard disk * XfDrake: configure your graphic card easily and change - the resolution. + the resolution -and many other tools in an embedded way . +and many other tools in an embedded way %prep %setup -q @@ -87,6 +88,21 @@ rm -rf $RPM_BUILD_ROOT %config(noreplace) %{_sysconfdir}/security/console.apps/DrakConf %changelog +* Mon Feb 12 2001 Daouda Lo <daouda@mandrakesoft.com> 0.61-6mdk +- corrected typo + +* Mon Feb 12 2001 Daouda Lo <daouda@mandrakesoft.com> 0.61-5mdk +- release 5mdk . + +* Mon Feb 12 2001 Daouda Lo <daouda@mandrakesoft.com> 0.61-4mdk +- features add-ons + +* Fri Feb 9 2001 Daouda Lo <daouda@mandrakesoft.com> 0.61-3mdk +- fix typo in description . + +* Thu Feb 8 2001 dam's <damien@mandrakesoft.com> 0.61-2mdk +- corrected require + * Thu Feb 8 2001 dam's <damien@mandrakesoft.com> 0.61-1mdk - added application killing when leaving. diff --git a/cest_ton_boot b/cest_ton_boot new file mode 100755 index 00000000..8b4763a9 --- /dev/null +++ b/cest_ton_boot @@ -0,0 +1,223 @@ +#!/usr/bin/perl -w + +# Control-center + +# Copyright (C) 2001 MandrakeSoft +# Yves Duret <yduret at 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; +init Gtk; +use POSIX; +use Locale::GetText; + +setlocale (LC_ALL, ""); +Locale::GetText::textdomain ("c'est ton boot !"); +#Locale::GetText::bindtextdomain ("drakfloppy", "/usr/share/locale"); + +import Locale::GetText I_; + +$::isEmbedded = ($::XID, $::CCPID) = "@ARGV" =~ /--embedded (\S*) (\S*)/; +if ($::isEmbedded) { + print "EMBED\n"; + print "XID : $::XID\n"; + print "CCPID : $::CCPID\n"; +} + +local $_ = join '', @ARGV; + +/-h/ and die I_("usage: drakfloppy\n"); + +$x_mode = 0; +$a_mode = (-e "/etc/aurora/Monitor"); + +my @xpm_data = ( "16 16 4 1", + " c None s None", + ". c black", + "X c #808080", + "o c white", + " ", + " .. ", + " .Xo. ... ", + " .Xoo. ..oo. ", + " .Xooo.Xooo... ", + " .Xooo.oooo.X. ", + " .Xooo.Xooo.X. ", + " .Xooo.oooo.X. ", + " .Xooo.Xooo.X. ", + " .Xooo.oooo.X. ", + " .Xoo.Xoo..X. ", + " .Xo.o..ooX. ", + " .X..XXXXX. ", + " ..X....... ", + " .. ", + " "); + +my $window = $::isEmbedded ? new Gtk::Plug ($::XID) : new Gtk::Window ("toplevel"); +$window->signal_connect( 'delete_event', sub { $::isEmbedded ? kill(USR1, $::CCPID) : Gtk->exit(0) }); +$window->set_title( I_("ce soir tu choisis ton boot") ); +#$window->set_policy('automatic', 'automatic'); +$window->set_policy(0, 0, 0); +$window->border_width (10); +$window->realize; + + +### menus definition +# the menus are not shown +# but they provides shiny shortcut like C-q +my @menu_items = ( { path => I_("/_File"), + type => '<Branch>' }, + { path => I_("/File/_New"), + accelerator => I_("<control>N"), + callback => \&print_hello }, + { path => I_("/File/_Open"), + accelerator => I_("<control>O"), + callback => \&print_hello }, + { path => I_("/File/_Save"), + accelerator => I_("<control>S"), + callback => \&print_hello }, + { path => I_("/File/Save _As") }, + { path => I_("/File/-"), + type => '<Separator>' }, + { path => I_("/File/_Quit"), + accelerator => I_("<control>Q"), + callback => sub { $::isEmbedded ? kill(USR1, $::CCPID) : Gtk->exit(0) } }, + + { path => I_("/_Options"), + type => '<Branch>' }, + { path => I_("/Options/Test") }, + + { path => I_("/_Help"), + type => '<LastBranch>' }, + { path => I_("/Help/_About...") } ); + +my $menubar = get_main_menu( $window ); + +######### menus end + +my $global_vbox = new Gtk::VBox(); + +$global_vbox->pack_start (new Gtk::Label(I_("special c'est ton choix")), 0, 0, 0); + +######## aurora part +my $aurora_frame = new Gtk::Frame( I_("Boot mode") ); +my $a_main_hbox = new Gtk::HBox; + +my $a_dedans = new Gtk::VBox( 0, 10 ); +$a_dedans->border_width (5); +my $a_box = new Gtk::VBox(0, 0 ); + +my $a_button = new Gtk::CheckButton( I_("Launch Aurora at boot time") ); +$a_button->signal_connect( "clicked", sub { + ($a_mode) ? $a_box->set_sensitive(0) : $a_box->set_sensitive(1); + $a_mode = !$a_mode; + }); +$a_dedans->pack_start ($a_button, 0, 0, 0); + +my $a_h_button = new Gtk::RadioButton I_("horizontal nice looking aurora"); +$a_h_button->set_active(1); +$a_box->pack_start($a_h_button, 1, 1, 0); + +my $a_v_button = new Gtk::RadioButton I_("vertical traditionnal aurora"), $a_h_button; +$a_box->pack_start($a_v_button, 1, 1, 0); + +my $a_g_button = new Gtk::RadioButton I_("gMonitor (choose this only if you have a non FrameBuffer kernel"), $a_h_button; +$a_box->pack_start($a_g_button, 1, 1, 0); + +$a_box->set_sensitive (0); +$a_dedans->pack_start ($a_box, 0, 0, 0); + +# now for the pixmap from gdk +my ( $pixmap, $mask ) = Gtk::Gdk::Pixmap->create_from_xpm( $window->window, $window->get_style()->bg( 'normal' ), "./c.xpm" ); + +# a pixmap widget to contain the pixmap +my $pixmapwid = new Gtk::Pixmap( $pixmap, $mask ); +$pixmapwid->show(); + +$a_main_hbox->pack_start ($a_dedans, 0, 0, 0); +$a_main_hbox->pack_start ($pixmapwid, 0, 0, 0); +$aurora_frame->add($a_main_hbox); +$global_vbox->pack_start ($aurora_frame, 1, 1, 0); + +### X mode +my $x_main_frame = new Gtk::Frame( I_("System mode") ); +my $x_dedans = new Gtk::VBox( 0, 10 ); +$x_dedans->border_width (5); +my $x_box = new Gtk::VBox(0, 0 ); + +my $x_button = new Gtk::CheckButton( I_("Launch the X-Window system at start") ); +$x_button->signal_connect( "clicked", sub { + ($x_mode) ? $x_box->set_sensitive(0) : $x_box->set_sensitive(1); + $x_mode = !$x_mode; + }); +$x_dedans->pack_start ($x_button, 0, 0, 0); + + +my $x_no_button = new Gtk::RadioButton I_("no, I do not want autologin"); +#$x_no_button->set_active(1); +$x_box->pack_start($x_no_button, 1, 1, 0); + +my $x_yes_button = new Gtk::RadioButton I_("yes, I want autologin with this user"), $x_no_button; +$x_box->pack_start($x_yes_button, 1, 1, 0); + +my $user_dedans = new Gtk::VBox( 0, 10 ); +$user_dedans->border_width (0); + +my $user_combo = new Gtk::Combo; +$user_combo->set_popdown_strings( "you", "me", "rms", "linus"); +$user_dedans->pack_start($user_combo, 0, 0, 0); +$x_box->pack_start ($user_dedans, 0, 0, 0); +$x_box->set_sensitive (0); +$x_dedans->pack_start ($x_box, 0, 0, 0); +$x_main_frame->add($x_dedans); +$global_vbox->pack_start ($x_main_frame, 1, 1, 0); + +### final buttons +my $build_button = new Gtk::Button( I_("OK") ); +my $cancel_button = new Gtk::Button( I_("Cancel") ); +xmy $fin_hbox = new Gtk::HBox( 0, 0 ); +$cancel_button->signal_connect( 'clicked', sub {$::isEmbedded ? kill(USR1, $::CCPID) : Gtk->exit(0)}); +$build_button->signal_connect('clicked', \&print_hello); +$fin_hbox->pack_end($cancel_button, 0, 0, 0); +$fin_hbox->pack_end($build_button, 0, 0, 10); +$global_vbox->pack_start ($fin_hbox, 0, 0, 0); + +### back to window +$window->add( $global_vbox ); + +$window->show_all(); + +main Gtk; + +#------------------------------------------------------------- +# menu callback functions +#------------------------------------------------------------- + +sub print_hello { + print( "mcdtg !\n" ); +} + +sub get_main_menu { + my ( $window ) = @_; + + my $accel_group = new Gtk::AccelGroup(); + my $item_factory = new Gtk::ItemFactory( 'Gtk::MenuBar', '<main>', $accel_group ); + $item_factory->create_items( @menu_items ); + $window->add_accel_group( $accel_group ); + return ( $item_factory->get_widget( '<main>' ) ); +} diff --git a/control-center b/control-center index 54dac2e8..58bf0f66 100755 --- a/control-center +++ b/control-center @@ -145,7 +145,7 @@ map { [_("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] + [_("Software Manager"), 'harddrake-mdk.png',0] # [_("Root Password") , 'passwd-mdk.png',0] ); @@ -160,7 +160,7 @@ my %tree_exec = (_("Boot Config") => "$_sbindir/drakboot", _("Boot Disk") => "$_ _("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", + _("Software Manager") => "$_bindir/rpmdrake", _("Root Password") => "$_sbindir/drakpasswd", # _("Fonts") => "$_xbindir/drakfont" ); diff --git a/relcontrolcenter b/relcontrolcenter new file mode 100755 index 00000000..5d6ee122 --- /dev/null +++ b/relcontrolcenter @@ -0,0 +1,447 @@ +#!/usr/bin/perl -w + +# Control-center + +# Copyright (C) 1999-2001 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 $tree_depth_max = 1; +my @ctree_sib; + +my $window_global = new Gtk::Window -toplevel; +$window_global->set_usize(800, 600); +$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, 2], + [_("/Help/_Report Bug"), undef, 3 ], + [_("/Help/_About..."), undef, 4 ] + ); + +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(180, 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); + +#-------------------------------- splash screeen -------------------------------------------------------- + +<<<<<<< relcontrolcenter +sub splash { +======= +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 (_("The place where you can configure your Mandrake Box")); +$vbox_about->pack_start($label_about3, 0, 0, 0); + +$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 "cannot open this file for read: $!"; +while (<VERS>) { + push (@revtree,$_); +} +@info_tree = split / /, $revtree[0]; +>>>>>>> 1.3 + + 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->load('-adobe-times-bold-r-normal--25-180-100-100-p-132-iso8859-1')); + 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 ("The place where you can configure your Mandrake Box"); + $vbox_about->pack_start($label_about3, 0, 0, 0); + + $table_info1 = new Gtk::Table(6,2,1); + $table_info1->set_row_spacings(15); + $table_info1->set_col_spacings(10); + +<<<<<<< relcontrolcenter + + my @revtree; + my @infotree; + open VERS, "/etc/redhat-release" or die "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->load('-adobe-times-bold-r-normal--14-100-100-100-p-76-iso8859-1')); + + 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 $ld4 = new Gtk::Label("$machine"); + $table_info1->attach($ld4, 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; + + my $ctree_parent = new Gtk::CTree(0,1,0); + $vbox_global_left->pack_start($ctree_parent,1,1,0); +} +======= +my $style1 = new Gtk::Style; +$style1->font(Gtk::Gdk::Font->fontset_load(_("-adobe-times-bold-r-normal--14-*-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 $ld4 = new Gtk::Label("$machine"); +$table_info1->attach($ld4, 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; + +my $ctree_parent = new Gtk::CTree(0,1,0); +$vbox_global_left->pack_start($ctree_parent,1,1,0); +>>>>>>> 1.3 + +map { + create_ctree($ctree_parent ,$_->[0], "$xpm_path/$_->[1]",0 , 1 , undef , undef); +} ([_("Boot Configuration"), 'logo.xpm'] , [_("Hardware Configuration"), 'logo.xpm'] , [_("User and Groups Management"),'logo.xpm'], + [_("Network and Internet Connection"),'logo.xpm'] , [_("Menu Customization"),'logo.xpm'] , [_("Font Management"),'logo.xpm']); + +map { + create_ctree($ctree_parent ,$_->[0], "$xpm_path/$_->[1]", 1, 0, $_->[2],$_->[3] ); +} ([_("Drakboot"),'item.xpm',1,0] , [_("Drakfloppy"), 'item.xpm',2,0] , [_("Drakelogo"), 'item.xpm',3,0], + [_("XFDrake"),'item.xpm',4,1] , [_("HardDrake"),'item.xpm',5,1] , [_("Mousedrake"), 'item.xpm',6,1] , [_("Printerdrake"),'item.xpm',7,1] , [_("Keyboarddrake"), 'item.xpm',8,1], + [_("Userdrake"),'item.xpm',9,2] , + [_("Draknet") , 'item.xpm',10,3] , [_("Drakgw"),'item.xpm',10,3], + [_("Menudrake") , 'item.xpm',11,4] , + [_("Drakfont"), 'item.xpm', 12,5]); + +%tree_exec = ([_("Drakboot") => "drakeboot"], [_("Drakfloppy") => "drakfloppy"], + [_("Drakelogo") => "DrakeLogo"] , [_("XFDrake") => "XFDrake"] , + [_("HardDrake") => "harddrake-auth"] , [_("Mousedrake") => "mousedrake"] , + [_("Printerdrake") => "printerdrake"] , [_("Keyboarddrake") => "keyboarddrake"] , + [_("Userdrake") => "userdrake"] , [_("Draknet") => "draknet"] , + [_("Drakgw") => "drakgw"] , [_("Menudrake") => "menudrake"] , [_("Drakfont") => "drakfont"] + ); + +my $rc = "control-center.rc"; + Gtk::Rc->parse($rc); +$window_global->show_all; + + +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 about_mdk_cc() +{ + my $window_about = new Gtk::Dialog(); + $window_about->set_position(1); + my $button = new Gtk::Button(_("Close")); + $button->signal_connect_object("clicked",$window_about => destroy); + $window_about->action_area->pack_start($button,$true,$true,0); + $button->show(); + + my $label = new Gtk::Label( _("Mandrake Control Center 1.0 \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, $true, $true, 0 ); + $label->show(); + + my $label1 = new Gtk::Label( _("Authors: ") . "\n\n Daouda Lo <daouda\@mandrakesoft.com> \n \n Damien Krotkine <dams\@mandrakesoft.com>\n" ); + $window_about->vbox->pack_start( $label1, $true, $true, 0 ); + $label1->show(); + + $window_about->show(); + +} + +sub create_ctree { + my ($ctree, $label , $xpm_filename, $is_leaf , $is_expand, $num, $tree_pos)= @_; + + my ($pixmap, $mask ); + my $sibling = undef; + my $parent = undef; + + # Now on to the xpm stuff + ($pixmap, $mask) = Gtk::Gdk::Pixmap->create_from_xpm($parent->window, $style, $xpm_filename ); + my $pixmapwid = new Gtk::Pixmap( $pixmap, $mask ); + + if(!$is_leaf) { + $sibling=$ctree->insert_node ( + $parent, + $sibling, + $label, + 5, + $pixmap, + $mask, + $pixmap, + $mask, + $is_leaf, + $is_expand + ); + push(@ctree_sib,$sibling); + }; + if($is_leaf) { + $sibling=$ctree->insert_node ( + $ctree_sib[tree_pos], + $sibling, + $label, + 5, + $pixmap, + $mask, + $pixmap, + $mask, + $is_leaf, + $is_expand, + ); + $ctree->signal_connect( 'tree_select_row', sub { + my ($ct, $node) = @_; + my ($t); + ($t, undef, undef) = $ct->node_get_pixtext($node); + exec_treeitem($tree_exec[$ct],$num); + } ); + +} + +} + +sub exec_treeitem { + my ($exec_string,$num) = @_; + + 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); + $notebook_global->set_page($num); + } +} + +sub item_factory_cb { + my ($widget, $action, @data) = @_; + + print "ItemFactory: activated ", $widget->item_factory_path(), " -> ", $action, "\n"; + $action == 1 and Gtk->exit(0); + $action == 4 and about_mdk_cc(); +} + + +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; + } +} |