FACORAT Fabrice <[EMAIL PROTECTED]> writes:

> > as i'm currently playing with perl-Gtk2, could you resend me all
> > what you see once i upload a perl-Gtk2 aware drakxtools ?
> 
> sure, no pb.

if some people want to test:
Index: install_gtk.pm
===================================================================
RCS file: /cooker/gi/perl-install/install_gtk.pm,v
retrieving revision 1.81
diff -u -p -r1.81 install_gtk.pm
--- install_gtk.pm	13 Mar 2003 13:50:19 -0000	1.81
+++ install_gtk.pm	8 Jul 2003 19:01:10 -0000
@@ -118,7 +118,7 @@ sub create_help_window {
     } else {
 	$w = $o->{help_window} = bless {}, 'ugtk2';
 	$w->{rwindow} = $w->{window} = Gtk2::Window->new('toplevel');
-	$w->{rwindow}->set_uposition($::rootwidth - $::helpwidth, $::rootheight - $::helpheight);
+#	$w->{rwindow}->set_uposition($::rootwidth - $::helpwidth, $::rootheight - $::helpheight);
 	$w->{rwindow}->set_size_request($::helpwidth, $::helpheight);
 	$w->{rwindow}->set_title('skip');
     };
@@ -136,7 +136,7 @@ sub create_steps_window {
     $o->{steps_window} and $o->{steps_window}->destroy;
     my $w = bless {}, 'ugtk2';
     $w->{rwindow} = $w->{window} = Gtk2::Window->new('toplevel');
-    $w->{rwindow}->set_uposition(lang::text_direction_rtl() ? ($::rootwidth - $::stepswidth - 8) : 8, 150);
+#    $w->{rwindow}->set_uposition(lang::text_direction_rtl() ? ($::rootwidth - $::stepswidth - 8) : 8, 150);
     $w->{rwindow}->set_size_request($::stepswidth, -1);
     $w->{rwindow}->set_name('Steps');
     $w->{rwindow}->set_title('skip');
@@ -185,7 +185,7 @@ sub create_logo_window {
 
     my $w = bless {}, 'ugtk2';
     $w->{rwindow} = $w->{window} = Gtk2::Window->new('toplevel');
-    $w->{rwindow}->set_uposition(0, 0);
+#    $w->{rwindow}->set_position(0, 0);
     $w->{rwindow}->set_size_request($::logowidth, $::logoheight);
     $w->{rwindow}->set_name("logo");
     $w->{rwindow}->set_title('skip');
@@ -199,7 +199,7 @@ sub create_logo_window {
 #------------------------------------------------------------------------------
 sub init_gtk() {
     symlink("/tmp/stage2/etc/$_", "/etc/$_") foreach qw(gtk-2.0 pango fonts);
-    Gtk2->init([EMAIL PROTECTED]);
+    Gtk2::init(@ARGV);
     Gtk2->set_locale;
 }
 
Index: mouse.pm
===================================================================
RCS file: /cooker/gi/perl-install/mouse.pm,v
retrieving revision 1.145
diff -u -p -r1.145 mouse.pm
--- mouse.pm	24 Apr 2003 19:00:11 -0000	1.145
+++ mouse.pm	8 Jul 2003 19:01:10 -0000
@@ -501,8 +501,8 @@ sub test_mouse {
 		$draw_pixbuf->($xpms{ad}, 102, 131, 6, 8);
 	    }
 	    $draw_pixbuf->($xpms{middle}, 98, 67, 13, 62);
-	    $timeout and Gtk2->timeout_remove($timeout);
-	    $timeout = Gtk2->timeout_add(100, sub { $drawarea->(); $timeout = 0; 0 });
+	    $timeout and Glib::Source->remove($timeout);
+	    $timeout = Glib::Timeout->add(100, sub { $drawarea->(); $timeout = 0; 0 });
 	}
     };
     
Index: services.pm
===================================================================
RCS file: /cooker/gi/perl-install/services.pm,v
retrieving revision 1.74
diff -u -p -r1.74 services.pm
--- services.pm	6 Jul 2003 17:58:21 -0000	1.74
+++ services.pm	8 Jul 2003 19:01:10 -0000
@@ -219,7 +219,7 @@ sub ask_standalone_gtk {
 		  gtkpack__(Gtk2::HBox->new(0,0), gtksignal_connect(Gtk2::Button->new_from_stock('gtk-dialog-info'), clicked => sub { $display->($infos) })),
                   gtkpack__(Gtk2::HBox->new(0,0), gtkset_active(gtksignal_connect(
                           Gtk2::CheckButton->new(N("On boot")),
-                          clicked => sub { if ($_[0]->active) {
+                          clicked => sub { if ($_[0]->get_active) {
                                                push @$on_services, $service if !member($service, @$on_services);
                                            } else {
                                                @$on_services = grep { $_ ne $service } @$on_services;
Index: ugtk2.pm
===================================================================
RCS file: /cooker/gi/perl-install/ugtk2.pm,v
retrieving revision 1.129
diff -u -p -r1.129 ugtk2.pm
--- ugtk2.pm	6 Jul 2003 17:58:21 -0000	1.129
+++ ugtk2.pm	8 Jul 2003 19:01:10 -0000
@@ -40,7 +40,7 @@ unless ($::no_ugtk_init) {
     !check_for_xserver() and die "Cannot be run in console mode.\n";
     $::one_message_has_been_translated and warn("N() was called from $::one_message_has_been_translated BEFORE gtk2 initialisation, replace it with a N_() AND a translate() later.\n"), c::_exit(1);
 
-    Gtk2->init([EMAIL PROTECTED]);
+    Gtk2->init();
     c::bind_textdomain_codeset($_, 'UTF8') foreach 'libDrakX', @::textdomains;
     $::need_utf8_i18n = 1;
 }
@@ -58,7 +58,7 @@ $border = 5;
 # you're building.
 
 sub gtkdestroy                { $_[0] and $_[0]->destroy }
-sub gtkflush()                  { Gtk2->update_ui }
+sub gtkflush()                { Gtk2->main_iteration while Gtk2->events_pending }
 sub gtkhide                   { $_[0]->hide; $_[0] }
 sub gtkmove                   { $_[0]->window->move($_[1], $_[2]); $_[0] }
 sub gtkpack                   { gtkpowerpack(1, 1, @_) }
@@ -150,7 +150,7 @@ sub gtkradio {
 
 sub gtkroot() {
     my $root if 0;
-    $root ||= Gtk2::Gdk::Window->foreign_new(Gtk2::Gdk->ROOT_WINDOW);
+    $root ||= Gtk2::Gdk->get_default_root_window();
 }
 
 sub gtkset_text {
@@ -167,8 +167,7 @@ sub gtkcombo_setpopdown_strings {
 
 sub gtkset_mousecursor {
     my ($type, $w) = @_;
-    ($w || gtkroot())->set_cursor(my $c = Gtk2::Gdk::Cursor->new($type));
-    $c->unref;
+    ($w || gtkroot())->set_cursor(Gtk2::Gdk::Cursor->new($type));
 }
 
 sub gtksignal_connect {
@@ -402,13 +401,13 @@ sub create_vbox { gtkset_layout(Gtk2::VB
 sub create_factory_menu_ {
     my ($type, $name, $window, @menu_items) = @_;
     my $widget = Gtk2::ItemFactory->new($type, $name, my $accel_group = Gtk2::AccelGroup->new);
-    $widget->create_items([ @menu_items ]);
+    $widget->create_items($window, @menu_items);
     $window->add_accel_group($accel_group);
     ($widget->get_widget($name), $widget);
 }
 
-sub create_factory_popup_menu { create_factory_menu_(Gtk2::Menu->get_type, '<main>', @_) }
-sub create_factory_menu { create_factory_menu_(Gtk2::MenuBar->get_type, '<main>', @_) }
+sub create_factory_popup_menu { create_factory_menu_("Gtk2::Menu", '<main>', @_) }
+sub create_factory_menu { create_factory_menu_("Gtk2::MenuBar", '<main>', @_) }
 
 sub create_menu {
     my $title = shift;
@@ -531,25 +530,27 @@ sub gtktext_insert {
     my ($textview, $t, %opts) = @_;
     my $buffer = $textview->get_buffer;
     if (ref($t) eq 'ARRAY') {
-        $opts{append} or $buffer->set_text('', -1);
+        $opts{append} or $buffer->set_text('');
         foreach my $token (@$t) {
-            my ($iter1, $iter2);
+            my $iter1 = $buffer->get_end_iter;
             my $c = $buffer->get_char_count;
-            $buffer->insert($iter1 = $buffer->get_end_iter, $token->[0], -1);
-            $iter1->free;
+            if ($token->[0] =~ /^Gtk2::Gdk::Pixbuf/) {
+                $buffer->insert_pixbuf($iter1, $token->[0]);
+                next;
+            }
+            $buffer->insert($iter1, $token->[0]);
             if ($token->[1]) {
-                my $tag = $buffer->create_tag(undef);
+                my $tag = $buffer->create_tag(rand());
                 $tag->set(%{$token->[1]});
-                $buffer->apply_tag($tag, $iter1 = $buffer->get_iter_at_offset($c), $iter2 = $buffer->get_end_iter);
-                $iter1->free; $iter2->free;
+                $buffer->apply_tag($tag, $iter1 = $buffer->get_iter_at_offset($c), my $iter2 = $buffer->get_end_iter);
             }
         }
     } else {
-        $buffer->set_text($t, -1);
+        $buffer->set_text($t);
     }
     #- the following line is needed to move the cursor to the beginning, so that if the
     #- textview has a scrollbar, it won't scroll to the bottom when focusing (#3633)
-    $buffer->place_cursor(my $iter = $buffer->get_start_iter); $iter->free;
+    $buffer->place_cursor(my $iter = $buffer->get_start_iter);
     $textview->set_wrap_mode($opts{wrap_mode} || 'word');
     $textview->set_editable($opts{editable} || 0);
     $textview->set_cursor_visible($opts{visible} || 0);
@@ -560,14 +561,13 @@ sub gtktext_insert {
 sub gtkfontinfo {
     my ($widget) = @_;
     my $context = $widget->get_pango_context;
-    my $metrics = $context->get_metrics($widget->style->get_font_desc, $context->get_language);
+    my $metrics = $context->get_metrics($context->get_font_description, $context->get_language);
     my %fontinfo;
     foreach (qw(ascent descent approximate_char_width approximate_digit_width)) {
 	no strict;
 	my $func = "get_$_";
-	$fontinfo{$_} = Gtk2::Pango->PANGO_PIXELS($metrics->$func);
+	$fontinfo{$_} = Gtk2::Pango->pixels($metrics->$func);
     }
-    $metrics->unref;
     %fontinfo;
 }
 
@@ -624,7 +624,6 @@ sub string_size {
     my ($widget, $text) = @_;
     my $layout = $widget->create_pango_layout($text);
     my @size = $layout->get_pixel_size;
-    $layout->unref;
     @size;
 }
 
@@ -749,7 +748,6 @@ sub gtkset_background {
     $root->set_background($color);
     my ($w, $h) = $root->get_size;
     $root->draw_rectangle($gc, 1, 0, 0, $w, $h);
-    $gc->unref;
 }
 
 sub add_icon_path { push @icon_paths, @_ }
@@ -775,6 +773,7 @@ add_icon_path(@icon_paths,
 sub new {
     my ($type, $title, %opts) = @_;
 
+
     my $o = bless { %opts }, $type;
     $o->_create_window($title);
     while (my $e = shift @tempory::objects) { $e->destroy }
@@ -791,7 +790,6 @@ sub new {
 
     if ($::isWizard && !$o->{pop_it}) {
 	$o->{isWizard} = 1;
-	$o->{window}->sink; $o->{rwindow}->sink;  #- free memory
 	$o->{window} = Gtk2::VBox->new(0,0);
 	$o->{window}->set_border_width($::Wizard_splash ? 0 : 10);
 	$o->{rwindow} = $o->{window};
@@ -832,7 +830,6 @@ sub new {
 									      0, 0, 0, $height*$i, -1, -1, 'none', 0, 0);
 					       my $layout = $draw1->create_pango_layout($::Wizard_title);
 					       $draw1->window->draw_layout($draw1->style->white_gc, 40, 62, $layout);
-					       $layout->unref;
 					   }
 				       });
 		$draw2->signal_connect(expose_event => sub {
@@ -874,8 +871,8 @@ sub new {
 sub main {
     my ($o, $o_completed, $o_canceled) = @_;
     gtkset_mousecursor_normal();
-    my $timeout = Gtk2->timeout_add(1000, sub { gtkset_mousecursor_normal(); 1 });
-    my $_b = MDK::Common::Func::before_leaving { Gtk2->timeout_remove($timeout) };
+    my $timeout = Glib::Timeout->add(1000, sub { gtkset_mousecursor_normal(); 1 });
+    my $_b = MDK::Common::Func::before_leaving { Glib::Source->remove($timeout) };
     $o->show;
 
     do {
@@ -960,7 +957,7 @@ sub _create_window($$) {
 
 sub ask_warn       { my $w = ugtk2->new(shift @_, grab => 1); $w->_ask_warn(@_); main($w) }
 sub ask_yesorno    { my $w = ugtk2->new(shift @_, grab => 1); $w->_ask_okcancel(@_, N("Yes"), N("No")); main($w) }
-sub ask_okcancel   { my $w = ugtk2->new(shift @_, grab => 1); $w->_ask_okcancel(@_, N("Is this correct?"), N("Ok"), N("Cancel")); main($w) }
+sub ask_okcancel   { my $w = ugtk2->new(shift @_, grab => 1); $w->_ask_okcancel(@_, N("Is this correct?"), 'gtk-ok', 'gtk-cancel'); main($w) }
 sub ask_from_entry { my $w = ugtk2->new(shift @_, grab => 1); $w->_ask_from_entry(@_); main($w) }
 sub ask_dir        { my $w = ugtk2->new(shift @_, grab => 1); $w->_ask_dir(@_); main($w) }
 
@@ -1022,7 +1019,7 @@ sub _ask_dir {
     $f->selection_entry->get_parent->hide;
     $f->ok_button->signal_connect(clicked => sub {
 				      my ($model, $iter) = $f->dir_list->get_selection->get_selected;
-				      if ($model) { $o->{retval} .= $model->get($iter, 0); $iter->free }
+				      $o->{retval} .= $model->get($iter, 0) if $model;
 				  });
 }
 
@@ -1031,7 +1028,7 @@ sub ask_browse_tree_info {
 
     my $w = ugtk2->new($common->{title});
 
-    my $tree_model = Gtk2::TreeStore->new(Gtk2::GType->STRING, Gtk2::GType->OBJECT, Gtk2::GType->STRING);
+    my $tree_model = Gtk2::TreeStore->new("Glib::String", "Gtk2::Gdk::Pixbuf", "Glib::String");
     my $tree = Gtk2::TreeView->new_with_model($tree_model);
     $tree->get_selection->set_mode('browse');
     $tree->append_column(my $textcolumn = Gtk2::TreeViewColumn->new_with_attributes(undef, Gtk2::CellRendererText->new, 'text' => 0));
@@ -1132,7 +1129,6 @@ sub ask_browse_tree_info_given_widgets {
 		my @list = grep { $stats->{$_} > 0 } keys %$stats;
 		my $new_state = @list == 1 ? $list[0] : 'semiselected';
 		$node_state{$parent_str} ne $new_state and $set_node_state_tree->($parent, $new_state);
-		$parent->free;
 	    }
 	    $w->{tree_model}->set($iter, [ 1 => $pix{$state} ]);
 	    $node_state{$iter_str} = $state;  #- cache for efficiency
@@ -1172,21 +1168,19 @@ sub ask_browse_tree_info_given_widgets {
 	    #- if leaf is void, we may create the parent and one child (to have the [+] in front of the parent in the ctree)
 	    #- though we use '' as the label of the child; then rpmdrake will connect on tree_expand, and whenever
 	    #- the first child has '' as the label, it will remove the child and add all the "right" children
-	    $options->{nochild} or $w->{tree_model}->append_set($parent, [ 0 => '' ])->free;
+	    $options->{nochild} or $w->{tree_model}->append_set($parent, [ 0 => '' ]);
 	}
     };
     my $clear_all_caches = sub {
 	foreach (values %ptree) {
 	    foreach my $n (@$_) {
 		delete $node_state{$w->{tree_model}->get_path_str($n)};
-		$n->free;
 	    }
 	}
 	foreach (values %wtree) {
 	    my $iter_str = $w->{tree_model}->get_path_str($_);
 	    delete $node_state{$iter_str};
 	    delete $state_stats{$iter_str};
-	    $_->free;
 	}
 	%ptree = %wtree = ();
     };
@@ -1222,13 +1216,11 @@ sub ask_browse_tree_info_given_widgets {
 			delete $wtree{$_->[1]};
 			delete $node_state{$w->{tree_model}->get_path_str($_->[0])};
 			delete $state_stats{$w->{tree_model}->get_path_str($_->[0])};
-			$_->[0]->free;
 		    }
 		}
 	    }
 	    foreach (@to_remove) {
 		delete $node_state{$w->{tree_model}->get_path_str($_)};
-		$_->free;
 	    }
 	    @{$ptree{$_}} = difference2($ptree{$_}, [EMAIL PROTECTED]);
 	}
@@ -1237,7 +1229,6 @@ sub ask_browse_tree_info_given_widgets {
 	    delete $node_state{$iter_str};
 	    delete $state_stats{$iter_str};
 	    $w->{tree_model}->remove($wtree{$cat});
-	    $wtree{$cat}->free;
 	    delete $wtree{$cat};
 	}
 	&$update_size;
@@ -1249,11 +1240,10 @@ sub ask_browse_tree_info_given_widgets {
     };
     
     $common->{display_info} = sub { gtktext_insert($w->{info}, $common->{get_info}($curr)); 0 };
-    my $children = sub { map { my $v = $w->{tree_model}->get($_, 0); $_->free; $v } gtktreeview_children($w->{tree_model}, $_[0]) };
+    my $children = sub { map { my $v = $w->{tree_model}->get($_, 0); $v } gtktreeview_children($w->{tree_model}, $_[0]) };
     my $toggle = sub {
 	if (ref($curr) && !$_[0]) {
 	    $w->{tree}->toggle_expansion(my $path = $w->{tree_model}->get_path($curr));
-	    $path->free;
 	} else {
 	    if (ref $curr) {
 		my @_a = $children->($curr);
@@ -1282,12 +1272,11 @@ sub ask_browse_tree_info_given_widgets {
     $w->{tree}->get_selection->signal_connect(changed => sub {
 	my ($model, $iter) = $_[0]->get_selected;
 	$model && $iter or return;
-	Gtk2->timeout_remove($idle) if $idle;
+	Glib::Source->remove($idle) if $idle;
 	
-	$curr->free if ref $curr;
 	if (!$model->iter_has_child($iter)) {
 	    $curr = $model->get($iter, 0);
-	    $idle = Gtk2->timeout_add(100, $common->{display_info});
+	    $idle = Glib::Timeout->add(100, $common->{display_info});
 	} else {
 	    $curr = $iter;
 	}
@@ -1304,7 +1293,6 @@ sub ask_browse_tree_info_given_widgets {
 	my ($returns, $path, $column) = $w->{tree}->get_path_at_pos($_[1]->x, $_[1]->y);
 	if ($returns) {
 	    Gtk2->equals($column, $w->{pixcolumn}) and $mouse_toggle_pending = $w->{tree_model}->get($path, 0);
-	    $path->free;
 	}
     });
     $common->{rebuild_tree}->();
@@ -1313,4 +1301,37 @@ sub ask_browse_tree_info_given_widgets {
     $w->{w}->main;
 }
 
+# misc helpers:
+
+package Gtk2::TreeStore;
+sub append_set {
+    my ($model, $parent, @values) = @_;
+    # compatibility:
+    @values = @{$values[0]} if $#values == 0 && ref($values[0]) eq 'ARRAY';
+    my $iter = $model->append($parent);
+    $model->set($iter, @values);
+    return $iter;
+}
+
+package Gtk2::ListStore;
+# Append a new row, set the values, return the TreeIter
+sub append_set {
+    my ($model, @values) = @_;
+    # compatibility:
+    @values = @{$values[0]} if $#values == 0 && ref($values[0]) eq 'ARRAY';
+    my $iter = $model->append();
+    $model->set($iter, @values);
+    return $iter;
+}
+
+package Gtk2::TreeModel;
+# gets the string representation of a TreeIter
+sub get_path_str {
+    my ($self, $iter) = @_;
+    my $path = $self->get_path($iter);
+    $path or return;
+    $path->to_string;
+}
+
 1;
+
Index: Xconfig/resolution_and_depth.pm
===================================================================
RCS file: /cooker/gi/perl-install/Xconfig/resolution_and_depth.pm,v
retrieving revision 1.32
diff -u -p -r1.32 resolution_and_depth.pm
--- Xconfig/resolution_and_depth.pm	30 Apr 2003 10:09:26 -0000	1.32
+++ Xconfig/resolution_and_depth.pm	8 Jul 2003 19:01:10 -0000
@@ -269,7 +269,7 @@ sub choose_gtk {
 						   ),
 					  ),
 			       ),
-		    0, gtkadd($W->create_okcancel(N("Ok"), N("Cancel"), '', if_($help_sub, [ N("Help"), $help_sub, 1 ]))),
+		    0, gtkadd($W->create_okcancel('gtk-ok', 'gtk-cancel', '', if_($help_sub, [ 'gtk-help', $help_sub, 1 ]))),
 		    ));
     $depth_combo->disable_activate;
     $depth_combo->set_use_arrows_always(1);
Index: Xconfig/test.pm
===================================================================
RCS file: /cooker/gi/perl-install/Xconfig/test.pm,v
retrieving revision 1.24
diff -u -p -r1.24 test.pm
--- Xconfig/test.pm	9 Mar 2003 20:31:02 -0000	1.24
+++ Xconfig/test.pm	8 Jul 2003 19:01:10 -0000
@@ -128,7 +128,7 @@ sub test {
 	$ugtk2::force_focus = 1;
         my $text = Gtk2::Label->new;
         my $time = 12;
-        Gtk2->timeout_add(1000, sub {
+        Glib::Timeout->add(1000, sub {
 	    $text->set(sprintf(translate("%s"), $time));
 	    $time-- or Gtk2->main_quit;
             1;
Index: diskdrake/hd_gtk.pm
===================================================================
RCS file: /cooker/gi/perl-install/diskdrake/hd_gtk.pm,v
retrieving revision 1.35
diff -u -p -r1.35 hd_gtk.pm
--- diskdrake/hd_gtk.pm	6 Jul 2003 17:58:21 -0000	1.35
+++ diskdrake/hd_gtk.pm	8 Jul 2003 19:01:10 -0000
@@ -150,7 +150,7 @@ sub add_kind2notebook {
 
 sub general_action_box {
     my ($box, $nowizard, $interactive_help) = @_;
-    $_->widget->destroy foreach $box->children;
+    $_->destroy foreach $box->get_children;
 
     gtkadd($box, gtksignal_connect(Gtk2::Button->new_from_stock('gtk-help'), clicked => $interactive_help)) if $interactive_help;
 
@@ -165,7 +165,7 @@ sub general_action_box {
 }
 sub per_kind_action_box {
     my ($box, $kind) = @_;
-    $_->widget->destroy foreach $box->children;
+    $_->destroy foreach $box->get_children;
 
     $kind->{type} =~ /hd|lvm/ or return;
 
@@ -177,7 +177,7 @@ sub per_kind_action_box {
 }
 sub per_entry_action_box {
     my ($box, $kind, $entry) = @_;
-    $_->widget->destroy foreach $box->children;
+    $_->destroy foreach $box->get_children;
 
     if ($entry) {
 	my @buttons = map { 
@@ -200,7 +200,7 @@ I suggest you first resize that partitio
 
 sub per_entry_info_box {
     my ($box, $kind, $entry) = @_;
-    $_->widget->destroy foreach $box->children;
+    $_->destroy foreach $box->get_children;
     my $info;
     if ($entry) {
 	$info = diskdrake::interactive::format_part_info(kind2hd($kind), $entry);
@@ -213,7 +213,7 @@ sub per_entry_info_box {
 sub current_kind_changed {
     my ($_in, $kind) = @_;
 
-    $_->widget->destroy foreach $kind->{display_box}->children;
+    $_->destroy foreach $kind->{display_box}->get_children;
 
     my $v = $kind->{val};
     my @parts = 
Index: interactive/gtk.pm
===================================================================
RCS file: /cooker/gi/perl-install/interactive/gtk.pm,v
retrieving revision 1.65
diff -u -p -r1.65 gtk.pm
--- interactive/gtk.pm	7 Jul 2003 11:31:29 -0000	1.65
+++ interactive/gtk.pm	8 Jul 2003 19:01:10 -0000
@@ -67,7 +67,7 @@ sub create_treeview_list {
     my ($e, $may_go_to_next, $changed, $double_click) = @_;
     my $curr;
 
-    my $list = Gtk2::ListStore->new(Gtk2::GType->STRING);
+    my $list = Gtk2::ListStore->new("Glib::String");
     my $list_tv = Gtk2::TreeView->new_with_model($list);
     $list_tv->set_headers_visible(0);
     $list_tv->get_selection->set_mode('browse');
@@ -85,7 +85,7 @@ sub create_treeview_list {
         my ($_w, $event) = @_;
 	my $c = chr($event->keyval & 0xff);
 
-	Gtk2->timeout_remove($timeout) if $timeout; $timeout = '';
+	Glib::Source->remove($timeout) if $timeout; $timeout = '';
 	
 	if ($event->keyval >= 0x100) {
 	    &$may_go_to_next if member($event->keyval, (Gtk2::Gdk::Event::Key->Sym_Return, Gtk2::Gdk::Event::Key->Sym_KP_Enter));
@@ -109,24 +109,21 @@ sub create_treeview_list {
 	    if ($j == @l) {
 		$starting_word = '';
 	    } else {
-		my $path = Gtk2::TreePath->new_from_string(($j + $curr) % @l);
-		$select->($path);
-		$path->free;
+		$select->(Gtk2::TreePath->new_from_string(($j + $curr) % @l));
 	    }
 
-	    $timeout = Gtk2->timeout_add($forgetTime, sub { $timeout = $starting_word = ''; 0 });
+	    $timeout = Glib::Timeout->add($forgetTime, sub { $timeout = $starting_word = ''; 0 });
 	}
 	0;
     });
     $list_tv->show;
 
-    $list->append_set([ 0 => $_ ])->free foreach @{$e->{formatted_list}};
+    $list->append_set([ 0 => $_ ]) foreach @{$e->{formatted_list}};
 
     $list_tv->get_selection->signal_connect(changed => sub {
 	my ($model, $iter) = $_[0]->get_selected;
 	$model && $iter or return;
 	my $row = $model->get_path_str($iter);
-	$iter->free;
 	${$e->{val}} = $e->{list}[$curr = $row];
 	&$changed;
     });
@@ -139,9 +136,8 @@ sub create_treeview_list {
 	    my ($old_path) = $list_tv->get_cursor;
 	    if (!$old_path || $nb != $old_path->to_string) {
 		$select->(my $path = Gtk2::TreePath->new_from_string($nb));
-		$path->free;
 	    }
-	    $old_path->free if $old_path;
+	    undef $old_path if $old_path;
 	};
     };
 }
@@ -152,7 +148,7 @@ sub create_treeview_tree {
     $tree_expanded = to_bool($tree_expanded); #- to reduce "Use of uninitialized value", especially when debugging
 
     my $sep = quotemeta $e->{separator};
-    my $tree_model = Gtk2::TreeStore->new(Gtk2::GType->STRING, Gtk2::GType->OBJECT, Gtk2::GType->STRING);
+    my $tree_model = Gtk2::TreeStore->new("Glib::String", "Gtk2::Gdk::Pixbuf", "Glib::String");
     my $tree = Gtk2::TreeView->new_with_model($tree_model);
     $tree->get_selection->set_mode('browse');
     $tree->append_column(Gtk2::TreeViewColumn->new_with_attributes(undef, Gtk2::CellRendererText->new, 'text' => 0));
@@ -195,23 +191,20 @@ sub create_treeview_tree {
 	my $iter = $tree_model->append_set($parent->($root), $build_value->($leaf));
 	$clean_image->();
 	my $pathstr = $tree_model->get_path_str($iter);
-	$iter->free;
 	$precomp{$pathstr} = { value => $leaf, fullvalue => $_[0], listvalue => $_[1] };
 	push @ordered_keys, $pathstr;
 	$wleaves{$_[0]} = $pathstr;
     } $e->{formatted_list}, $e->{list};
-    $_->free foreach values %wtree;
+    undef $_ foreach values %wtree;
     undef %wtree;
 
     my $select = sub {
 	my ($path_str) = @_;
+	$tree->expand_to_path(Gtk2::TreePath->new_from_string($path_str));
 	my $path = Gtk2::TreePath->new_from_string($path_str);
-	$tree->expand_to_path($path);
-	$path->free;
-	$path = Gtk2::TreePath->new_from_string($path_str);
 	$tree->set_cursor($path, undef, 0);
 	$tree->scroll_to_cell($path, undef, 1, 0.5, 0);
-	$path->free;
+
     };
 
     my $curr = $tree_model->get_iter_first; #- default value
@@ -220,7 +213,7 @@ sub create_treeview_tree {
     $tree->get_selection->signal_connect(changed => sub {
 	my ($model, $iter) = $_[0]->get_selected;
 	$model && $iter or return;
-	$curr->free if ref $curr;
+	undef $curr if ref $curr;
 	my $path = $tree_model->get_path($curr = $iter);
 	if (!$tree_model->iter_has_child($iter)) {
 	    ${$e->{val}} = $precomp{$path->to_string}{listvalue};
@@ -228,16 +221,14 @@ sub create_treeview_tree {
 	} else {
 	    $tree->expand_row($path, 0) if $selected_via_click;
 	}
-	$path->free;
     });
     my ($starting_word, $start_reg) = ('', "^");
     my $timeout;
 
     my $toggle = sub {
 	if ($tree_model->iter_has_child($curr)) {
-	    my $path = $tree_model->get_path($curr);
-	    $tree->toggle_expansion($path, 0);
-	    $path->free;
+	    $tree->toggle_expansion($tree_model->get_path($curr), 0);
+
 	} else {
 	    &$may_go_to_next;
 	}
@@ -248,7 +239,7 @@ sub create_treeview_tree {
 	$selected_via_click = 0;
 	my $c = chr($event->keyval & 0xff);
 	$curr or return;
-	Gtk2->timeout_remove($timeout) if $timeout; $timeout = '';
+	Glib::Source->remove($timeout) if $timeout; $timeout = '';
 
 	if ($event->keyval >= 0x100) {
 	    &$toggle if member($event->keyval, (Gtk2::Gdk::Event::Key->Sym_Return, Gtk2::Gdk::Event::Key->Sym_KP_Enter));
@@ -286,7 +277,7 @@ sub create_treeview_tree {
 		$starting_word = '';
 	    }
 
-	    $timeout = Gtk2->timeout_add($forgetTime, sub { $timeout = $starting_word = ''; 0 });
+	    $timeout = Glib::Timeout->add($forgetTime, sub { $timeout = $starting_word = ''; 0 });
 	}
 	0;
     });
@@ -299,7 +290,7 @@ sub create_treeview_tree {
 	my $v = may_apply($e->{format}, $_[0]);
 	my ($model, $iter) = $tree->get_selection->get_selected;
 	$select->($wleaves{$v} || return) if !$model || $wleaves{$v} ne $model->get_path_str($iter);
-	$iter->free if ref $iter;
+	undef $iter if ref $iter;
     }, $size;
 }
 
@@ -441,7 +432,7 @@ sub ask_fromW {
 		$mainw->{rwindow}->show;
 		$set_all->();
 	    });
-	    $set = sub { $w->child->set(may_apply($e->{format}, $_[0])) };
+	    $set = sub { $w->child->set_label(may_apply($e->{format}, $_[0])) };
 	    $width = length may_apply($e->{format}, ${$e->{val}});
 	} elsif ($e->{type} eq 'range') {
 	    my $want_scale = !$::expert;
@@ -474,7 +465,7 @@ sub ask_fromW {
 		    $e->{formatted_list} = [ map { may_apply($e->{format}, $_) } @{$e->{list}} ];
 		    my $list = $w->get_model;
 		    $list->clear;
-		    $list->append_set([ 0 => $_ ])->free foreach @{$e->{formatted_list}};
+		    $list->append_set([ 0 => $_ ]) foreach @{$e->{formatted_list}};
 		    $changed->();
 		    $buttons{$_}->set_sensitive(@{$e->{list}} != ()) foreach 'Modify', 'Remove';
 		};
@@ -543,7 +534,7 @@ sub ask_fromW {
 		#- FIXME workaround gtk suckiness (set_text generates two 'change' signals, one when removing the whole, one for inserting the replacement..)
 		my $idle;
 		$w->signal_connect(changed => sub {
-		    $idle ||= Gtk2->idle_add(sub { undef $idle; $changed->(); 0 });
+		    $idle ||= Glib::Idle->add(sub { undef $idle; $changed->(); 0 });
 		});
 
 		$set = sub {
@@ -610,7 +601,7 @@ sub ask_fromW {
 			    sub { 
 				my ($w) = @_;
 				$set_advanced->(!$advanced);
-				$w->child->set($advanced ? $common->{advanced_label_close} : $common->{advanced_label});
+				$w->child->set_label($advanced ? $common->{advanced_label_close} : $common->{advanced_label});
 			    } ];
 
     my $create_widgets = sub {
Index: interactive/newt.pm
===================================================================
RCS file: /cooker/gi/perl-install/interactive/newt.pm,v
retrieving revision 1.34
diff -u -p -r1.34 newt.pm
--- interactive/newt.pm	26 May 2003 09:13:34 -0000	1.34
+++ interactive/newt.pm	8 Jul 2003 19:01:10 -0000
@@ -296,8 +296,8 @@ sub ask_fromW_real {
     };
 
     my ($ok, $cancel) = ($common->{ok}, $common->{cancel});
-    $cancel = $::isWizard ? N("<- Previous") : N("Cancel") if !defined $cancel && !defined $ok;
-    $ok ||= $::isWizard ? ($::Wizard_finished ? N("Finish") : N("Next ->")) : N("Ok");
+    $cancel = $::isWizard ? 'gtk-go-back"' : 'gtk-cancel' if !defined $cancel && !defined $ok;
+    $ok ||= $::isWizard ? ($::Wizard_finished ? N("Finish") : '"gtk-go-forward') : 'gtk-ok';
 
     my @okcancel = grep { $_ } $ok, $cancel;
     @okcancel = reverse(@okcancel) if $::isWizard;
Index: standalone/drakTermServ
===================================================================
RCS file: /cooker/gi/perl-install/standalone/drakTermServ,v
retrieving revision 1.40
diff -u -p -r1.40 drakTermServ
--- standalone/drakTermServ	26 Jun 2003 01:12:16 -0000	1.40
+++ standalone/drakTermServ	8 Jul 2003 19:01:10 -0000
@@ -531,7 +531,7 @@ sub make_nbi() {
 		"via-rhine", "winbond-840", "xircom_cb", "xircom_tulip_cb", "yellowfin");
 	
 	#- kernel/module info in tree view
-	my $model = Gtk2::TreeStore->new(Gtk2::GType->STRING);
+	my $model = Gtk2::TreeStore->new("Glib::String");
     my $tree_kernels = Gtk2::TreeView->new_with_model($model);
     $tree_kernels->append_column(Gtk2::TreeViewColumn->new_with_attributes(undef, Gtk2::CellRendererText->new, 'text' => 0));
     $tree_kernels->set_headers_visible(0);
@@ -546,7 +546,6 @@ sub make_nbi() {
     		$model->append($k_detail, $t_kernel);
     		$model->set($k_detail, [ 0 => $_ ]);
 		}
-		$k_detail->free;
 	}	
 
 	$tree_kernels->get_selection->signal_connect(changed => sub {
@@ -566,7 +565,7 @@ sub make_nbi() {
 	});
 	
 	# existing nbi images in list
-	my $list_model = Gtk2::ListStore->new(Gtk2::GType->STRING);
+	my $list_model = Gtk2::ListStore->new("Glib::String");
 	my $list_nbis = Gtk2::TreeView->new_with_model($list_model);
 	$list_nbis->append_column(Gtk2::TreeViewColumn->new_with_attributes(undef, Gtk2::CellRendererText->new, 'text' => 0));
 	$list_nbis->set_headers_visible(0);	
@@ -671,7 +670,7 @@ sub maintain_users() {
 	#- use /homes to filter system daemons
 	my @homes = all("/home");
 	
-	my $list_model = Gtk2::ListStore->new(Gtk2::GType->STRING);
+	my $list_model = Gtk2::ListStore->new("Glib::String");
 	my $list_sys_users = Gtk2::TreeView->new_with_model($list_model);
 	$list_sys_users->append_column(Gtk2::TreeViewColumn->new_with_attributes(undef, Gtk2::CellRendererText->new, 'text' => 0));
 	$list_sys_users->set_headers_visible(0);
@@ -686,7 +685,6 @@ sub maintain_users() {
     		$list_model->set($iter, [ 0 => $s_label ]);
 		}
 	}
-	$iter->free;
 
 	$list_sys_users->get_selection->signal_connect(changed => sub {
     	my ($model, $iter) = $_[0]->get_selected;
@@ -694,7 +692,7 @@ sub maintain_users() {
     	$sys_user = $model->get($iter, 0);
 	});
 
-	$list_model = Gtk2::ListStore->new(Gtk2::GType->STRING);
+	$list_model = Gtk2::ListStore->new("Glib::String");
 	my $list_ts_users = Gtk2::TreeView->new_with_model($list_model);
 	$list_ts_users->append_column(Gtk2::TreeViewColumn->new_with_attributes(undef, Gtk2::CellRendererText->new, 'text' => 0));
 	$list_ts_users->set_headers_visible(0);
@@ -757,7 +755,7 @@ sub maintain_clients() {
 	my $button_delete;
 	
 	#- client info in tree view
-	my $model = Gtk2::TreeStore->new(Gtk2::GType->STRING);
+	my $model = Gtk2::TreeStore->new("Glib::String");
     my $tree_clients = Gtk2::TreeView->new_with_model($model);
     $tree_clients->append_column(Gtk2::TreeViewColumn->new_with_attributes(undef, Gtk2::CellRendererText->new, 'text' => 0));
     $tree_clients->set_headers_visible(0);
Index: standalone/drakautoinst
===================================================================
RCS file: /cooker/gi/perl-install/standalone/drakautoinst,v
retrieving revision 1.38
diff -u -p -r1.38 drakautoinst
--- standalone/drakautoinst	23 May 2003 16:10:03 -0000	1.38
+++ standalone/drakautoinst	8 Jul 2003 19:01:10 -0000
@@ -317,7 +317,7 @@ sub create_entry_element {
     } else {
 	$e = new Gtk2::Entry;
 	$e->{value} = $value;
-	my $tag = Gtk2->timeout_add(1000, sub { $e->set_text($text); 0 });
+	my $tag = Glib::Timeout->add(1000, sub { $e->set_text($text); 0 });
 	gtksignal_connect($e, changed => sub {
 			      my $exe = $e->{value} . "='" . $e->get_text . "'";
 			      print "EXEC : $exe\n ";
Index: standalone/drakbackup
===================================================================
RCS file: /cooker/gi/perl-install/standalone/drakbackup,v
retrieving revision 1.181
diff -u -p -r1.181 drakbackup
--- standalone/drakbackup	3 Jul 2003 22:56:07 -0000	1.181
+++ standalone/drakbackup	8 Jul 2003 19:01:10 -0000
@@ -1036,7 +1036,7 @@ sub spawn_progress {
 
 	$interactive and progress($pbar3, $plabel3, 0, translate($descr));
 	$interactive and $pbar3->set_fraction(0);
-	$interactive and $timer = Gtk2->timeout_add(2, \&progress_timeout);
+	$interactive and $timer = Glib::Timeout->add(2, \&progress_timeout);
 
 	$log_buff .= "\n" . $descr . ":\n";
 	$log_buff .= $command . "\n\n";
@@ -1051,7 +1051,7 @@ sub spawn_progress {
 		}			
 	}
 	close TMP;
-	$interactive and Gtk2->timeout_remove($timer);
+	$interactive and Glib::Source->remove($timer);
 }
 
 sub progress_timeout() {
@@ -1772,7 +1772,7 @@ sub advanced_what_other() {
 	$iter = Gtk2::TreeIter->new;
 	my $other_file;
 			
-	$list_model = Gtk2::ListStore->new(Gtk2::GType->STRING);
+	$list_model = Gtk2::ListStore->new("Glib::String");
 	my $list_others = Gtk2::TreeView->new_with_model($list_model);
 	$list_others->append_column(Gtk2::TreeViewColumn->new_with_attributes(undef, Gtk2::CellRendererText->new, 'text' => 0));
 	$list_others->set_headers_visible(0);	
@@ -1795,8 +1795,8 @@ sub advanced_what_other() {
 				1, create_scrolled_window($list_others),
 			),
 			0, gtkadd(gtkset_layout(new Gtk2::HButtonBox, 'spread'),
-				gtksignal_connect(new Gtk2::Button(N("Add")), clicked => sub { filedialog() }),
-				gtksignal_connect(new Gtk2::Button(N("Remove Selected")), clicked => sub { 
+				gtksignal_connect(Gtk2::Button->new(N("Add")), clicked => sub { filedialog() }),
+				gtksignal_connect(Gtk2::Button->new(N("Remove Selected")), clicked => sub { 
 					$list_model->remove($file_iter); 
 					my $iindex = 0; 
 					foreach (@list_other) {
@@ -1837,9 +1837,9 @@ sub advanced_what_entire_sys() {
 		     1, new Gtk2::VBox(0, 5),
 		     1, gtkpack_(new Gtk2::VBox(0, 15),	
 				 1, new Gtk2::VBox(0, 5),
-				 1, gtksignal_connect(my $button_what_other = new Gtk2::Button(), 
+				 1, gtksignal_connect(my $button_what_other = Gtk2::Button->new, 
 						      clicked => sub { destroy_widget(); message_underdevel() }),
-				 1, gtksignal_connect(my $button_what_all = new Gtk2::Button(), 
+				 1, gtksignal_connect(my $button_what_all = Gtk2::Button->new, 
 						      clicked => sub { destroy_widget(); message_underdevel() }),
 				 1, new Gtk2::VBox(0, 5),
 				 ),
@@ -1868,13 +1868,13 @@ sub advanced_what() {
 		     1, new Gtk2::VBox(0, 5),
 		     1, gtkpack_(new Gtk2::VBox(0, 15),	
 				 1, new Gtk2::VBox(0, 5),
-				 1, gtksignal_connect(my $button_what_sys = new Gtk2::Button(), 
+				 1, gtksignal_connect(my $button_what_sys = Gtk2::Button->new, 
 						      clicked => sub { $box_what->destroy; advanced_what_sys() }),
-				 1, gtksignal_connect(my $button_what_user = new Gtk2::Button(), 
+				 1, gtksignal_connect(my $button_what_user = Gtk2::Button->new, 
 						      clicked => sub { destroy_widget(); advanced_what_user() }),
-				 1, gtksignal_connect(my $button_what_other = new Gtk2::Button(), 
+				 1, gtksignal_connect(my $button_what_other = Gtk2::Button->new, 
 						      clicked => sub { destroy_widget(); advanced_what_other() }),
-#				 1, gtksignal_connect(my $button_what_all = new Gtk2::Button(), 
+#				 1, gtksignal_connect(my $button_what_all = Gtk2::Button->new, 
 #						  clicked => sub { destroy_widget(); advanced_what_entire_sys(); }),
 				 1, new Gtk2::VBox(0, 5),
 				 ),
@@ -1922,7 +1922,7 @@ sub advanced_where_net_types {
 	 		0, gtkpack_(new Gtk2::HBox(0,5),
 	   			0, gtkset_sensitive(my $check_use_expect = new Gtk2::CheckButton(N("Use Expect for SSH")), ($where_net && $net_proto eq 'ssh')),
 	   			0, gtkset_sensitive(my $check_xfer_keys = new Gtk2::CheckButton(N("Create/Transfer\nbackup keys for SSH")), ($where_net && $net_proto eq 'ssh')),
-				0, gtkset_sensitive(my $button_xfer_keys = new Gtk2::Button(N("  Transfer  \nNow")), $xfer_keys),
+				0, gtkset_sensitive(my $button_xfer_keys = Gtk2::Button->new_from_stock(N("  Transfer  \nNow")), $xfer_keys),
 	   			0, gtkset_sensitive(my $check_user_keys = new Gtk2::CheckButton(N("Other (not drakbackup)\nkeys in place already")), ($where_net && $net_proto eq 'ssh')),
 			),
 	 		0, new Gtk2::HSeparator,
@@ -2076,7 +2076,7 @@ sub advanced_where_cd {
 			0, new Gtk2::VBox(0, 5),
 	 		0, gtkpack_(new Gtk2::HBox(0,10),
 	 			0, gtkset_sensitive(new Gtk2::Label(N("Please check if you want to erase your RW media (1st Session)")), $cdrw && $where_cd),
-				0, gtkset_sensitive(my $button_erase_now = new Gtk2::Button(N(" Erase Now ")), $cdrw),			
+				0, gtkset_sensitive(my $button_erase_now = Gtk2::Button->new_from_stock(N(" Erase Now ")), $cdrw),			
 	    		1, new Gtk2::VBox(0, 5),
 	    		0, gtkset_sensitive(my $check_cdrw_erase = new Gtk2::CheckButton(), $cdrw && $where_cd),
 			),
@@ -2275,7 +2275,7 @@ sub advanced_where_hd {
 				0, gtkset_sensitive(new Gtk2::Label(N("Please enter the directory to save to:")), $where_hd),
 				1, new Gtk2::VBox(0, 6),
 				0, gtkset_size_request(gtkset_sensitive($save_path_entry = new Gtk2::Entry(), $where_hd), 152, 20),
-				0, gtkset_sensitive($button = gtksignal_connect(new Gtk2::Button(),  clicked => sub {
+				0, gtkset_sensitive($button = gtksignal_connect(Gtk2::Button->new,  clicked => sub {
 					filedialog_where_hd() 
 				}), $where_hd),
 			),
@@ -2327,11 +2327,11 @@ sub advanced_where() {
 				  1, new Gtk2::VBox(0, 5),
 				  1, gtkpack_(new Gtk2::VBox(0, 15),	
 					  1, new Gtk2::VBox(0, 5),
-					  1, gtksignal_connect(my $button_where_net = new Gtk2::Button(), clicked => sub { 
+					  1, gtksignal_connect(my $button_where_net = Gtk2::Button->new, clicked => sub { 
 					      destroy_widget();
 					      advanced_where_net_types(); 
 					  }),
-					  1, gtksignal_connect(my $button_where_cd = new Gtk2::Button(),  clicked => sub { 
+					  1, gtksignal_connect(my $button_where_cd = Gtk2::Button->new,  clicked => sub { 
 					      destroy_widget(); 
 					      if (require_rpm("mkisofs", "cdrecord")) { 
 					      	advanced_where_cd();
@@ -2340,11 +2340,11 @@ sub advanced_where() {
 						  	install_rpm(\&advanced_where);
 						  }
 					  }),
-					  1, gtksignal_connect(my $button_where_hd = new Gtk2::Button(),  clicked => sub { 
+					  1, gtksignal_connect(my $button_where_hd = Gtk2::Button->new,  clicked => sub { 
 					      destroy_widget(); 
 					      advanced_where_hd();
 					  }),
-					  1, gtksignal_connect(my $button_where_tape = new Gtk2::Button(),  clicked => sub { 
+					  1, gtksignal_connect(my $button_where_tape = Gtk2::Button->new,  clicked => sub { 
 					      destroy_widget(); 
 						  # message_underdevel();
 						  advanced_where_tape() }),
@@ -2484,13 +2484,13 @@ sub advanced_box() {
 			1, new Gtk2::VBox(0, 5),	
 			1, gtkpack_(new Gtk2::VBox(0, 15),	
 				1, new Gtk2::VBox(0, 5),	
-				1, gtksignal_connect(my $button_what = new Gtk2::Button(), clicked => sub { 
+				1, gtksignal_connect(my $button_what = Gtk2::Button->new, clicked => sub { 
 				    destroy_widget(); advanced_what() }),
-				1, gtksignal_connect(my $button_where = new Gtk2::Button(), clicked => sub { 
+				1, gtksignal_connect(my $button_where = Gtk2::Button->new, clicked => sub { 
 				    destroy_widget();  advanced_where() }),
-				1, gtksignal_connect(my $button_when = new Gtk2::Button(), clicked => sub { 
+				1, gtksignal_connect(my $button_when = Gtk2::Button->new, clicked => sub { 
 				    destroy_widget();  advanced_when() }),
-				1, gtksignal_connect(my $button_options = new Gtk2::Button(), clicked => sub {
+				1, gtksignal_connect(my $button_options = Gtk2::Button->new, clicked => sub {
 					destroy_widget(); advanced_options() }),
 				1, new Gtk2::VBox(0, 5),	
 			),
@@ -2557,7 +2557,7 @@ sub wizard_step2() {
 				0, gtkpack_(new Gtk2::HBox(0, 15),	      
 					0, my $check_wizard_hd = new Gtk2::CheckButton(N("on Hard Drive")),
 					1, new Gtk2::VBox(0, 5),
-					0, gtkset_sensitive(gtksignal_connect(new Gtk2::Button(N("Configure")), clicked => sub {
+					0, gtkset_sensitive(gtksignal_connect(Gtk2::Button->new_from_stock(N("Configure")), clicked => sub {
 						destroy_widget();
 						to_ok();
 						advanced_where_hd(\&wizard_step2);
@@ -2567,7 +2567,7 @@ sub wizard_step2() {
 				0, gtkpack_(new Gtk2::HBox(0, 15),	      
 					0, my $check_wizard_net = new Gtk2::CheckButton(N("across Network")),
 					1, new Gtk2::VBox(0, 5),
-					0, gtkset_sensitive(gtksignal_connect(new Gtk2::Button(N("Configure")), clicked => sub {
+					0, gtkset_sensitive(gtksignal_connect(Gtk2::Button->new_from_stock(N("Configure")), clicked => sub {
 						destroy_widget();
 						to_ok();
 						advanced_where_net_types(\&wizard_step2);
@@ -2577,7 +2577,7 @@ sub wizard_step2() {
  				0, gtkpack_(new Gtk2::HBox(0, 15),	      
  					0, my $check_wizard_cd = new Gtk2::CheckButton(N("on CDROM")),
  					1, new Gtk2::VBox(0, 5),	
- 					0, gtkset_sensitive(gtksignal_connect(new Gtk2::Button(N("Configure")), clicked => sub {
+ 					0, gtkset_sensitive(gtksignal_connect(Gtk2::Button->new_from_stock(N("Configure")), clicked => sub {
  						destroy_widget();
  						advanced_where_cd(\&wizard_step2);
  					}), $where_cd),
@@ -2585,7 +2585,7 @@ sub wizard_step2() {
  				0, gtkpack_(new Gtk2::HBox(0, 15),	      
  					0, my $check_wizard_tape = new Gtk2::CheckButton(N("on Tape Device")),
  					1, new Gtk2::VBox(0, 5),
- 					0, gtkset_sensitive(gtksignal_connect(new Gtk2::Button(N("Configure")), clicked => sub {
+ 					0, gtkset_sensitive(gtksignal_connect(Gtk2::Button->new_from_stock(N("Configure")), clicked => sub {
  						destroy_widget();
  						advanced_where_tape(\&wizard_step2);
  					}), $where_tape),
@@ -2631,7 +2631,7 @@ sub wizard()   {
 				0, my $check_wizard_user = new Gtk2::CheckButton(N("Backup Users")),
 				0, gtkpack_(new Gtk2::HBox(0, 15),
 					1, new Gtk2::VBox(0, 5),	
-					0, gtksignal_connect(new Gtk2::Button(N("Select user manually")), clicked => sub {
+					0, gtksignal_connect(Gtk2::Button->new_from_stock(N("Select user manually")), clicked => sub {
 						destroy_widget();
 						advanced_what_user(\&wizard);
 					}),
@@ -2907,7 +2907,7 @@ sub show_backup_details {
 				0, new Gtk2::VScrollbar($text->vadj),
 			),
 			0, gtkadd(gtkset_layout(new Gtk2::HButtonBox, 'spread'),
-				gtksignal_connect(new Gtk2::Button(N("Done")), clicked => sub { 
+				gtksignal_connect(Gtk2::Button->new_from_stock(N("Done")), clicked => sub { 
 					destroy_widget(); 
 					$function->() }),
 			),
@@ -3132,7 +3132,7 @@ sub restore_step_user() {
 					my @user_list_tmp;
 					my $restore_row = new Gtk2::HBox(0,5);
 					my $b = new Gtk2::CheckButton($name_complet);
-					my $details = new Gtk2::Button(" Details ");
+					my $details = Gtk2::Button->new_from_stock(" Details ");
 					
 					$restore_row->pack_start($b, 1, 1, 0);
 					$restore_row->pack_end(new Gtk2::VBox(1,5), 0, 0, 0);
@@ -3206,7 +3206,7 @@ sub restore_step_sys() {
 			0, gtkpack_(new Gtk2::HBox(0,10),
 				1, N("please choose the date to restore"),
 				0, $combo_restore_step_sys,
-				0, my $details = new Gtk2::Button(" Details "),
+				0, my $details = Gtk2::Button->new_from_stock(" Details "),
 				0, new Gtk2::HBox(0,10),
 			),
 			1, new Gtk2::VBox(0,10),
@@ -3247,7 +3247,7 @@ sub restore_other_media_hd {
 		    	0, gtkset_sensitive(new Gtk2::Label(N("Please enter the directory to save:")), $where_hd),
 		    	1, new Gtk2::VBox(0, 6),
 		    	0, gtkset_size_request(gtkset_sensitive($save_path_entry = new Gtk2::Entry(), $where_hd), 152, 20),
-		    	0, gtkset_sensitive($button = gtksignal_connect(new Gtk2::Button(),  clicked => sub {
+		    	0, gtkset_sensitive($button = gtksignal_connect(Gtk2::Button->new,  clicked => sub {
 				filedialog_where_hd() }), $where_hd),
 			),
 	 		0, new Gtk2::VBox(0, 6),
@@ -3289,7 +3289,7 @@ sub restore_other_media() {
 				0, gtkset_sensitive(new Gtk2::Label(N("Please enter the directory where backups are stored")), $other_media_hd),
 				1, new Gtk2::VBox(0, 6),
 				0, gtkset_size_request(gtkset_sensitive($restore_find_path_entry = new Gtk2::Entry(), $other_media_hd), 152, 20),
-				0, gtkset_sensitive($button = gtksignal_connect(new Gtk2::Button(),  clicked => sub {
+				0, gtkset_sensitive($button = gtksignal_connect(Gtk2::Button->new,  clicked => sub {
 				     filedialog_restore_find_path(); 
 				}), $other_media_hd),
 			),
@@ -3299,7 +3299,7 @@ sub restore_other_media() {
 # 					 0, new Gtk2::VBox(0, 6),
 # 					 1, gtkpack(new Gtk2::HBox(0,10),
 # 						    new Gtk2::VBox(0, 6),
-# 						    gtkset_sensitive(gtksignal_connect(new Gtk2::Button("Network"),  clicked => sub {
+# 						    gtkset_sensitive(gtksignal_connect(Gtk2::Button->new_from_stock("Network"),  clicked => sub {
 # 							destroy_widget();
 # 							restore_find_net(\&restore_other_media);}), !$other_media_hd),
 # 						    new Gtk2::VBox(0, 6),
@@ -3357,7 +3357,7 @@ sub restore_step2() {
 			0, gtkpack_(new Gtk2::HBox(0,10),
 				0, my $check_restore_other_src = new Gtk2::CheckButton(N("Select another media to restore from")),
 				1, new Gtk2::HBox(0,10),
-				0, gtkset_sensitive(gtksignal_connect(new Gtk2::Button(N("Other Media")), clicked => sub {
+				0, gtkset_sensitive(gtksignal_connect(Gtk2::Button->new_from_stock(N("Other Media")), clicked => sub {
 					destroy_widget();
 					restore_other_media();
 				}), $restore_other_src),
@@ -3421,7 +3421,7 @@ sub catalog_restore() {
 	my $restore_path_entry;
 		
 	#- catalog info in tree view
-	my $model = Gtk2::TreeStore->new(Gtk2::GType->STRING);
+	my $model = Gtk2::TreeStore->new("Glib::String");
     my $tree_catalog = Gtk2::TreeView->new_with_model($model);
     $tree_catalog->append_column(Gtk2::TreeViewColumn->new_with_attributes(undef, Gtk2::CellRendererText->new, 'text' => 0));
     $tree_catalog->set_headers_visible(0);
@@ -3478,7 +3478,6 @@ sub catalog_restore() {
 			}
 			$indexer++;
 		}
-		$c_detail->free;		
 	}	
 		
 	gtkpack($advanced_box,
@@ -3490,7 +3489,7 @@ sub catalog_restore() {
 					1, create_scrolled_window($list_bu_files),
 				),
 				0, gtkpack_(new Gtk2::HBox(1, 10),
-					1, gtksignal_connect(new Gtk2::Button(N("Restore Selected\nCatalog Entry")), clicked => sub { 
+					1, gtksignal_connect(Gtk2::Button->new_from_stock(N("Restore Selected\nCatalog Entry")), clicked => sub { 
 						if ($cat_entry) {
 							my $media_check = restore_catalog_entry($cat_entry, ());
 							if ($media_check) {
@@ -3500,7 +3499,7 @@ sub catalog_restore() {
 							} 
 						} 
 					}),
-					1, gtksignal_connect(new Gtk2::Button(N("Restore Selected\nFiles")), clicked => sub { 							
+					1, gtksignal_connect(Gtk2::Button->new_from_stock(N("Restore Selected\nFiles")), clicked => sub { 							
 						my $files = @restore_files;
 						#- grab the array before the widget clears it 
 						my @passed_files = @restore_files;
@@ -3517,7 +3516,7 @@ sub catalog_restore() {
 						0, new Gtk2::Label("Restore To Path"),
 		    			0, $restore_path_entry = new Gtk2::Entry(),
 					),
-					1, gtksignal_connect(new Gtk2::Button(N("Change\nRestore Path")), clicked => sub { 							
+					1, gtksignal_connect(Gtk2::Button->new_from_stock(N("Change\nRestore Path")), clicked => sub { 							
 						filedialog_generic("Path To Restore To", \$restore_path_entry, \$restore_path);
 					}),						
 				),
@@ -3903,7 +3902,7 @@ sub restore_box() {
 				1, gtkpack_(new Gtk2::VBox(0,10),
 					1, new Gtk2::VBox(0,10),
 					1, new Gtk2::VBox(0,10),
-					1, gtksignal_connect(new Gtk2::Button(N("Restore all backups")), clicked => sub { 
+					1, gtksignal_connect(Gtk2::Button->new_from_stock(N("Restore all backups")), clicked => sub { 
 						$retore_box->destroy;
 						button_box_restore();
 						@user_list_to_restore2 = sort @user_backuped; 
@@ -3912,7 +3911,7 @@ sub restore_box() {
 						$restore_user = 1;
 						restore_do() 
 					}),
-					1, gtksignal_connect(new Gtk2::Button(N("Custom Restore")), clicked => sub { 
+					1, gtksignal_connect(Gtk2::Button->new_from_stock(N("Custom Restore")), clicked => sub { 
 						$retore_box->destroy;
 						button_box_restore(); 
 						restore_step2();
@@ -3955,15 +3954,15 @@ sub restore_find_media_box() {
 			1, gtkpack(new Gtk2::HBox(0, 15),
 				new Gtk2::VBox(0, 5),
 				gtkpack(new Gtk2::VBox(0, 10),
-					gtkset_sensitive(gtksignal_connect(new Gtk2::Button(N("CD in place - continue.")), clicked => sub {  
+					gtkset_sensitive(gtksignal_connect(Gtk2::Button->new_from_stock(N("CD in place - continue.")), clicked => sub {  
 						$good_restore_path = 1;
 						interactive_mode_box("restore");
 					}), $mount_media),
 					$new_path_entry = gtkset_sensitive(new Gtk2::Entry(), $mount_media),
-					gtkset_sensitive(gtksignal_connect(new Gtk2::Button(N("Browse to new restore repository.")), clicked => sub {  
+					gtkset_sensitive(gtksignal_connect(Gtk2::Button->new_from_stock(N("Browse to new restore repository.")), clicked => sub {  
 						filedialog_generic("Directory To Restore From", \$new_path_entry, \$path_to_find_restore);
 					}), $mount_media),
-					gtksignal_connect(new Gtk2::Button(N("Restore From Catalog")), clicked => sub {  
+					gtksignal_connect(Gtk2::Button->new_from_stock(N("Restore From Catalog")), clicked => sub {  
 						$box2->destroy;
 						catalog_restore();
 					}),
@@ -4016,18 +4015,18 @@ sub button_box_adv() {
     $button_box_tmp->destroy;
     gtkpack($button_box,
 		$button_box_tmp = gtkpack_(new Gtk2::HButtonBox,
-			0, gtksignal_connect(new Gtk2::Button(N("Cancel")), clicked => sub { 
+			0, gtksignal_connect(Gtk2::Button->new_from_stock('gtk-cancel'), clicked => sub { 
 				interactive_mode_box();
 			}),
-			0, gtksignal_connect(new Gtk2::Button(N("Help")), clicked => sub { 
+			0, gtksignal_connect(Gtk2::Button->new_from_stock('gtk-help'), clicked => sub { 
 				adv_help(\&$current_widget, $custom_help);
 			}),
 			1, new Gtk2::HBox(0, 1),	
-			0, gtksignal_connect(new Gtk2::Button(N("Previous")), clicked => sub { 
+			0, gtksignal_connect(Gtk2::Button->new_from_stock('gtk-go-back'), clicked => sub { 
 				destroy_widget();
 				$previous_widget->();
 			}),
-			0, gtksignal_connect(new Gtk2::Button(N("Save")), clicked => sub { 
+			0, gtksignal_connect(Gtk2::Button->new_from_stock('gtk-save'), clicked => sub { 
 				destroy_widget();
 				unless (check_pkg_needs()) {
 					save_conf_file();
@@ -4043,19 +4042,19 @@ sub button_box_restore_main() {
 
     gtkpack($button_box,
 	    $button_box_tmp = gtkpack_(gtkpack_(new Gtk2::HButtonBox, 
-			0, gtksignal_connect(new Gtk2::Button(N("Cancel")), clicked => sub { 
+			0, gtksignal_connect(Gtk2::Button->new_from_stock('gtk-cancel'), clicked => sub { 
 				destroy_widget(); 
 				interactive_mode_box();
 			}),
-			0, gtksignal_connect(new Gtk2::Button(N("Help")), clicked => sub {
+			0, gtksignal_connect(Gtk2::Button->new_from_stock('gtk-help'), clicked => sub {
 				adv_help(\&$current_widget, $custom_help);
 			}),
 			1, new Gtk2::HBox(0, 1),	
-			0, gtksignal_connect(new Gtk2::Button(N("Previous")), clicked => sub { 
+			0, gtksignal_connect(Gtk2::Button->new_from_stock('gtk-go-back'), clicked => sub { 
 				destroy_widget(); 
 				interactive_mode_box() 
 			}),
-			0, gtksignal_connect(new Gtk2::Button(N("Ok")), clicked => sub { 
+			0, gtksignal_connect(Gtk2::Button->new_from_stock('gtk-ok'), clicked => sub { 
 				destroy_widget(); 
 				interactive_mode_box() }),
 			),
@@ -4069,7 +4068,7 @@ sub button_box_log_main() {
     gtkpack($button_box,
 	    $button_box_tmp = gtkpack_(gtkpack_(new Gtk2::HButtonBox, 
 			1, new Gtk2::HBox(0, 1),	
-			0, gtksignal_connect(new Gtk2::Button(N("Ok")), clicked => sub { 
+			0, gtksignal_connect(Gtk2::Button->new_from_stock('gtk-ok'), clicked => sub { 
 				destroy_widget(); 
 				interactive_mode_box() }),
 			),
@@ -4083,19 +4082,19 @@ sub button_box_backup_end() {
 
     gtkpack($button_box,
 	    $button_box_tmp = gtkpack_(new Gtk2::HButtonBox,
-			0, gtksignal_connect(new Gtk2::Button(N("Cancel")), clicked => sub { 
+			0, gtksignal_connect(Gtk2::Button->new_from_stock('gtk-cancel'), clicked => sub { 
 				destroy_widget(); 
 				interactive_mode_box() 
 			}),
-			0, gtksignal_connect(new Gtk2::Button(N("Help")), clicked => sub { 
+			0, gtksignal_connect(Gtk2::Button->new_from_stock('gtk-help'), clicked => sub { 
 				adv_help(\&$current_widget, $custom_help) 
 			}),
 			1, new Gtk2::HBox(0, 1),	
-			0, gtksignal_connect(new Gtk2::Button(N("Previous")), clicked => sub { 
+			0, gtksignal_connect(Gtk2::Button->new_from_stock('gtk-go-back'), clicked => sub { 
 				destroy_widget(); 
 				$previous_widget->() 
 			}),
-			0, gtksignal_connect(new Gtk2::Button(N("Build Backup")), clicked => sub { 
+			0, gtksignal_connect(Gtk2::Button->new_from_stock(N("Build Backup")), clicked => sub { 
 				destroy_widget();
 				build_backup_status();
 				build_backup_files(); 
@@ -4109,19 +4108,19 @@ sub button_box_wizard_end() {
 
     gtkpack($button_box,
 		$button_box_tmp = gtkpack_(new Gtk2::HButtonBox,
-			0, gtksignal_connect(new Gtk2::Button(N("Cancel")), clicked => sub { 
+			0, gtksignal_connect(Gtk2::Button->new_from_stock('gtk-cancel'), clicked => sub { 
 				destroy_widget();
 				interactive_mode_box();
 			}),
-			0, gtksignal_connect(new Gtk2::Button(N("Help")), clicked => sub { 
+			0, gtksignal_connect(Gtk2::Button->new_from_stock('gtk-help'), clicked => sub { 
 				adv_help(\&$current_widget, $custom_help);
 			}),
 			1, new Gtk2::HBox(0, 1),	
-			0, gtksignal_connect(new Gtk2::Button(N("Previous")), clicked => sub { 
+			0, gtksignal_connect(Gtk2::Button->new_from_stock('gtk-go-back'), clicked => sub { 
 				destroy_widget(); 
 				$previous_widget->();
 			}),
-			0, gtksignal_connect(new Gtk2::Button(N("Save")), clicked => sub { 
+			0, gtksignal_connect(Gtk2::Button->new_from_stock('gtk-save'), clicked => sub { 
 				destroy_widget();
 				save_conf_file();
 				interactive_mode_box();
@@ -4135,19 +4134,19 @@ sub button_box_restore_end() {
 
     gtkpack($button_box,
 	    $button_box_tmp = gtkpack_(new Gtk2::HButtonBox,
-			0, gtksignal_connect(new Gtk2::Button(N("Cancel")), clicked => sub { 
+			0, gtksignal_connect(Gtk2::Button->new_from_stock('gtk-cancel'), clicked => sub { 
 				destroy_widget();
 				interactive_mode_box();
 			}),
-			0, gtksignal_connect(new Gtk2::Button(N("Help")), clicked => sub { 
+			0, gtksignal_connect(Gtk2::Button->new_from_stock('gtk-help'), clicked => sub { 
 				adv_help(\&$current_widget, $custom_help);
 			}),
 			1, new Gtk2::HBox(0, 1),	
-			0, gtksignal_connect(new Gtk2::Button(N("Previous")), clicked => sub { 
+			0, gtksignal_connect(Gtk2::Button->new_from_stock('gtk-go-back'), clicked => sub { 
 				destroy_widget();
 				$previous_widget->();
 			}),
-			0, gtksignal_connect(new Gtk2::Button(N("Restore")), clicked => sub { 
+			0, gtksignal_connect(Gtk2::Button->new(N("Restore")), clicked => sub { 
  				destroy_widget();
 				restore_backend(); 
 			}),
@@ -4162,7 +4161,7 @@ sub button_box_build_backup_end() {
 	    $button_box_tmp = gtkpack_(new Gtk2::HButtonBox, 
 			1, new Gtk2::HBox(0, 5),	
 			1, new Gtk2::HBox(0, 5),	
-			0, gtksignal_connect(new Gtk2::Button(N("Ok")), clicked => sub { 
+			0, gtksignal_connect(Gtk2::Button->new_from_stock('gtk-ok'), clicked => sub { 
 #				destroy_widget();
 				interactive_mode_box();  
 			}),
@@ -4177,10 +4176,10 @@ sub button_box_restore_pbs_end() {
 		$button_box_tmp = gtkpack_(new Gtk2::HButtonBox, 
 			1, new Gtk2::HBox(0, 5),	
 			1, new Gtk2::HBox(0, 5),	
-			1, gtksignal_connect(new Gtk2::Button(N("Help")), clicked => sub {
+			1, gtksignal_connect(Gtk2::Button->new_from_stock('gtk-help'), clicked => sub {
 				adv_help(\&$current_widget, $custom_help);
 			}),
-			0, gtksignal_connect(new Gtk2::Button(N("Ok")), clicked => sub { 
+			0, gtksignal_connect(Gtk2::Button->new_from_stock('gtk-ok'), clicked => sub { 
 				destroy_widget();
 				interactive_mode_box();
 			}),
@@ -4193,19 +4192,19 @@ sub button_box_build_backup() {
 
 	gtkpack($button_box,
 		$button_box_tmp = gtkpack_(new Gtk2::HButtonBox,
-			1, gtksignal_connect(new Gtk2::Button(N("Cancel")), clicked => sub { 
+			1, gtksignal_connect(Gtk2::Button->new_from_stock('gtk-cancel'), clicked => sub { 
 				destroy_widget(); 
 				interactive_mode_box();
 			}),
-			1, gtksignal_connect(new Gtk2::Button(N("Help")), clicked => sub {
+			1, gtksignal_connect(Gtk2::Button->new_from_stock('gtk-help'), clicked => sub {
 				adv_help(\&$current_widget, $custom_help); 
 			}),
 			1, new Gtk2::HBox(0, 0),
-			0, gtksignal_connect(new Gtk2::Button(N("Previous")), clicked => sub { 
+			0, gtksignal_connect(Gtk2::Button->new_from_stock('gtk-go-back'), clicked => sub { 
 				destroy_widget();
 				$previous_widget->();
 			}),
-			1, gtksignal_connect(new Gtk2::Button(N("Next")), clicked => sub {
+			1, gtksignal_connect(Gtk2::Button->new_from_stock('gtk-go-forward'), clicked => sub {
 				destroy_widget();
 				$next_widget->();
 			}),
@@ -4219,19 +4218,19 @@ sub button_box_restore() {
 
     gtkpack($button_box,
 	    $button_box_tmp = gtkpack_(new Gtk2::HButtonBox,
-			1, gtksignal_connect(new Gtk2::Button(N("Cancel")), clicked => sub { 
+			1, gtksignal_connect(Gtk2::Button->new_from_stock('gtk-cancel'), clicked => sub { 
 				destroy_widget(); 
 				interactive_mode_box();  
 			}),
-			1, gtksignal_connect(new Gtk2::Button(N("Help")), clicked => sub {
+			1, gtksignal_connect(Gtk2::Button->new_from_stock('gtk-help'), clicked => sub {
 				adv_help(\&$current_widget, $custom_help);
 			}),
 			1, new Gtk2::HBox(0, 0),
-			0, gtksignal_connect(new Gtk2::Button(N("Previous")), clicked => sub { 
+			0, gtksignal_connect(Gtk2::Button->new_from_stock('gtk-go-back'), clicked => sub { 
 				destroy_widget(); 
 				$previous_widget->(); 
 			}),
-			1, gtksignal_connect(new Gtk2::Button(N("Next")), clicked => sub {
+			1, gtksignal_connect(Gtk2::Button->new_from_stock('gtk-go-forward'), clicked => sub {
 				destroy_widget(); 
 				$next_widget->();
 			}),
@@ -4248,20 +4247,20 @@ sub button_box_find_media {
 
     gtkpack($button_box,
 	    $button_box_tmp = gtkpack_(new Gtk2::HButtonBox,
-			1, gtksignal_connect(new Gtk2::Button(N("Cancel")), clicked => sub { 
+			1, gtksignal_connect(Gtk2::Button->new_from_stock('gtk-cancel'), clicked => sub { 
 				$central_widget = \$box2;
 				interactive_mode_box();  
 			}),
-			1, gtksignal_connect(new Gtk2::Button(N("Help")), clicked => sub {
+			1, gtksignal_connect(Gtk2::Button->new_from_stock('gtk-help'), clicked => sub {
 				$central_widget = \$box2; 
 				adv_help(\&restore_find_media_box, $custom_help);
 			}),
 			1, new Gtk2::HBox(0, 0),
-			0, gtksignal_connect(new Gtk2::Button(N("Previous")), clicked => sub {
+			0, gtksignal_connect(Gtk2::Button->new_from_stock('gtk-go-back'), clicked => sub {
 				$central_widget = \$box2;
 				interactive_mode_box();  
 			}),
-			1, gtkset_sensitive(gtksignal_connect(new Gtk2::Button(N("Next")), clicked => sub {
+			1, gtkset_sensitive(gtksignal_connect(Gtk2::Button->new_from_stock('gtk-go-forward'), clicked => sub {
 				interactive_mode_box("restore"); 
 			}), $mount_media),
 		),
@@ -4273,19 +4272,19 @@ sub button_box_wizard() {
 
     gtkpack($button_box,
 	    $button_box_tmp = gtkpack_(new Gtk2::HButtonBox,
-			1, gtksignal_connect(new Gtk2::Button(N("Cancel")), clicked => sub { 
+			1, gtksignal_connect(Gtk2::Button->new_from_stock('gtk-cancel'), clicked => sub { 
 				destroy_widget(); 
 				interactive_mode_box() 
 			}),
-			1, gtksignal_connect(new Gtk2::Button(N("Help")), clicked => sub {
+			1, gtksignal_connect(Gtk2::Button->new_from_stock('gtk-help'), clicked => sub {
 				adv_help(\&$current_widget, $custom_help) 
 			}),
 			1, new Gtk2::HBox(0, 0),
-			0, gtksignal_connect(new Gtk2::Button($next_widget ? N("Previous") : N("OK")), clicked => sub { 
+			0, gtksignal_connect(Gtk2::Button->new_from_stock($next_widget ? 'gtk-go-back' : 'gtk-ok'), clicked => sub { 
 				destroy_widget();
 				$previous_widget ? $previous_widget->() : $next_widget->();
 			}),
-			if_($next_widget, 1, gtksignal_connect(new Gtk2::Button(N("Next")), clicked => sub {
+			if_($next_widget, 1, gtksignal_connect(Gtk2::Button->new_from_stock('gtk-go-forward'), clicked => sub {
 				destroy_widget();
 				$next_widget ? $next_widget->() : $previous_widget->();
 			})),
@@ -4298,8 +4297,8 @@ sub button_box_main() {
 
     gtkpack($button_box,
 	    $button_box_tmp = gtkpack(gtkset_layout(new Gtk2::HButtonBox, 'start'),
-			gtksignal_connect(new Gtk2::Button(N("Close")), clicked => sub { ugtk2->exit(0) }),
-			gtksignal_connect(new Gtk2::Button(N("Help")), clicked => sub { 
+			gtksignal_connect(Gtk2::Button->new_from_stock('gtk-close'), clicked => sub { ugtk2->exit(0) }),
+			gtksignal_connect(Gtk2::Button->new_from_stock('gtk-help'), clicked => sub { 
 				adv_help(\&interactive_mode_box, $custom_help) 
 			}),
 		),
@@ -4352,7 +4351,7 @@ sub install_rpm {
 	    $box_what_user = gtkpack_(new Gtk2::VBox(0, 15),
 			0, N("The following packages need to be installed:\n") . join(' ', @list_of_rpm_to_install),
 				0, new Gtk2::HSeparator,
-				0, gtksignal_connect(new Gtk2::Button(N("Install")), clicked => sub {  
+				0, gtksignal_connect(Gtk2::Button->new_from_stock(N("Install")), clicked => sub {  
 					system("/usr/sbin/urpmi --X @list_of_rpm_to_install"); 
 					destroy_widget();
 					$previous_widget->();		  
@@ -4635,12 +4634,12 @@ sub build_backup_box() {
 			1, new Gtk2::VBox(0, 5),	
 			1, gtkpack_(new Gtk2::VBox(0, 15),	
 				1, new Gtk2::VBox(0, 5),	
-				1, gtksignal_connect(my $button_from_conf_file = new Gtk2::Button(), clicked => sub { 
+				1, gtksignal_connect(my $button_from_conf_file = Gtk2::Button->new, clicked => sub { 
 					destroy_widget();
 					build_backup_box_see_conf();
 				}),
  				0, new Gtk2::VBox(0, 5),	
-				1, gtksignal_connect(my $button_see_conf = new Gtk2::Button(), clicked => sub { 
+				1, gtksignal_connect(my $button_see_conf = Gtk2::Button->new, clicked => sub { 
 					destroy_widget();
 					build_backup_box_see_conf();
 				}),
@@ -4683,33 +4682,33 @@ sub interactive_mode_box {
 			1, new Gtk2::VBox(0, 5),	
 			1, gtkpack_(new Gtk2::VBox(0, 5),	
 				1, new Gtk2::VBox(0, 5),	
-				1, gtksignal_connect(new Gtk2::Button(N("Wizard Configuration")), clicked => sub { 
+				1, gtksignal_connect(Gtk2::Button->new_from_stock(N("Wizard Configuration")), clicked => sub { 
 					destroy_widget();
 					read_conf_file();
 					wizard(); 
 				}),
-				1, gtksignal_connect(new Gtk2::Button(N("Advanced Configuration")), clicked => sub { 
+				1, gtksignal_connect(Gtk2::Button->new_from_stock(N("Advanced Configuration")), clicked => sub { 
 					button_box_adv();
 					destroy_widget();
 					advanced_box(); 
 				}),
-				1, gtksignal_connect(new Gtk2::Button(N("View Configuration")), clicked => sub { 
+				1, gtksignal_connect(Gtk2::Button->new_from_stock(N("View Configuration")), clicked => sub { 
 					destroy_widget();
 					build_backup_box_see_conf("interactive");
 				}),
-				1, gtksignal_connect(new Gtk2::Button(N("View Last Log")), clicked => sub { 
+				1, gtksignal_connect(Gtk2::Button->new_from_stock(N("View Last Log")), clicked => sub { 
 					$results = cat_($log_file);
 					button_box_log_main();
 					show_status();
 				}),				
-				1, gtksignal_connect(new Gtk2::Button(N("Backup Now")), clicked => sub { 
+				1, gtksignal_connect(Gtk2::Button->new_from_stock(N("Backup Now")), clicked => sub { 
 					if ($cfg_file_exist) { 
 						build_backup_box();
 					} else { 
 						message_noconf_box();
 					}
 				}),
-				1, gtksignal_connect(new Gtk2::Button(N("Restore")), clicked => sub {
+				1, gtksignal_connect(Gtk2::Button->new_from_stock(N("Restore")), clicked => sub {
 					destroy_widget(); 
 					restore_box();
 				}),
@@ -4965,7 +4964,7 @@ backup data files by hand.
 
 			1, create_scrolled_window($text), 
 			0, gtkadd(gtkset_layout(new Gtk2::HButtonBox, 'spread'),
-				gtksignal_connect(new Gtk2::Button(N("OK")), clicked => sub { 
+				gtksignal_connect(Gtk2::Button->new_from_stock(N("OK")), clicked => sub { 
 					destroy_widget(); 
 					$function->();
 				}),
Index: standalone/drakboot
===================================================================
RCS file: /cooker/gi/perl-install/standalone/drakboot,v
retrieving revision 1.59
diff -u -p -r1.59 drakboot
--- standalone/drakboot	23 May 2003 16:10:03 -0000	1.59
+++ standalone/drakboot	8 Jul 2003 19:01:10 -0000
@@ -61,9 +61,8 @@ unless ($::isEmbedded) {
 
     ### menus definition
     # the menus are not shown but they provides shiny shortcut like C-q
-    my @menu_items = ({ path => N("/_File"), type => '<Branch>' },
-                      {
-                       path => N("/File/_Quit"), accelerator => N("<control>Q"), callback    => sub { ugtk2->exit(0) } },
+    my @menu_items = ([ N("/_File"), undef, undef, undef, '<Branch>' ],
+                      [ N("/File/_Quit"), N("<control>Q"), sub { ugtk2->exit(0) }, undef, '<Item>' ],
                      );
     create_factory_menu($w->{rwindow}, @menu_items);
     ######### menus end
Index: standalone/drakbug
===================================================================
RCS file: /cooker/gi/perl-install/standalone/drakbug,v
retrieving revision 1.50
diff -u -p -r1.50 drakbug
--- standalone/drakbug	6 Jul 2003 17:58:21 -0000	1.50
+++ standalone/drakbug	8 Jul 2003 19:01:10 -0000
@@ -66,7 +66,7 @@ my $kernel_release = chomp_(`uname -r`);
 
 my $table = create_packtable({ col_spacings => 5, row_spacings => 10 },
                              [ new Gtk2::Label(N("Application:")), my $comb_app = gtkset_size_request(Gtk2::Combo->new, 270, -1) ],
-                             [ new Gtk2::Label(N("Package: ")), my $package = new Gtk2::Entry("...") ],
+                             [ new Gtk2::Label(N("Package: ")), my $package = new Gtk2::Entry("...") ], # complain on [EMAIL PROTECTED]
                              [ Gtk2::Label->new(N("Kernel:")), gtkset_editable(Gtk2::Entry->new($kernel_release), 0) ],
                              [ Gtk2::Label->new(N("Release: ")), gtkset_editable(Gtk2::Entry->new(mandrake_release()), 0) ]
                              );
Index: standalone/drakconnect
===================================================================
RCS file: /cooker/gi/perl-install/standalone/drakconnect,v
retrieving revision 1.52
diff -u -p -r1.52 drakconnect
--- standalone/drakconnect	6 Jul 2003 18:00:44 -0000	1.52
+++ standalone/drakconnect	8 Jul 2003 19:01:10 -0000
@@ -164,7 +164,7 @@ $int_connect->signal_connect(clicked => 
 my $button_internet = gtksignal_connect(Gtk2::Button->new(N("Configure Internet Access...")),
                                 clicked => sub { configure_net('', $netcnx, $netc, $intf) });
 
-my $tree_model = Gtk2::TreeStore->new(Gtk2::GType->OBJECT, map { Gtk2::GType->STRING } 2..6);
+my $tree_model = Gtk2::TreeStore->new("Gtk2::Gdk::Pixbuf", map { "Glib::String" } 2..6);
 my $list = Gtk2::TreeView->new_with_model($tree_model);
 $list->append_column(Gtk2::TreeViewColumn->new_with_attributes(undef, Gtk2::CellRendererPixbuf->new, 'pixbuf' => 0));
 each_index {
@@ -281,7 +281,7 @@ $combo1->entry->signal_connect('changed'
 $window1->{rwindow}->show_all;
 $_->hide foreach $button_internet, $button_lan;
 gtkflush();
-my $tag = Gtk2->timeout_add(4000, \&update2);
+my $tag = Glib::Timeout->add(4000, \&update2);
 $window1->main;
 ugtk2->exit(0);
 
@@ -302,7 +302,7 @@ sub build_list() {
             $ip = $intf->{"eth$i"}{IPADDR};
             $state = "n/a";
         }
-        $tree_model->append_set(undef, [ map_index { $::i => $_ } (gtkcreate_pixbuf("eth_card_mini2.png"), "eth$i", $ip , $intf->{"eth$i"}{BOOTPROTO}, $all_cards[$i][1], $state) ])->free;
+        $tree_model->append_set(undef, [ map_index { $::i => $_ } (gtkcreate_pixbuf("eth_card_mini2.png"), "eth$i", $ip , $intf->{"eth$i"}{BOOTPROTO}, $all_cards[$i][1], $state) ]);
     }
 }
 
Index: standalone/drakfloppy
===================================================================
RCS file: /cooker/gi/perl-install/standalone/drakfloppy,v
retrieving revision 1.32
diff -u -p -r1.32 drakfloppy
--- standalone/drakfloppy	6 Jul 2003 18:00:44 -0000	1.32
+++ standalone/drakfloppy	8 Jul 2003 19:01:10 -0000
@@ -40,7 +40,7 @@ require_root_capability();
 
 my $expert_mode = $::expert;
 
-my $list_model = Gtk2::ListStore->new((Gtk2::GType->STRING) x 2);
+my $list_model = Gtk2::ListStore->new(("Glib::String") x 2);
 my $list  = Gtk2::TreeView->new_with_model($list_model);
 each_index {
     $list->append_column(my $col = Gtk2::TreeViewColumn->new_with_attributes($_, Gtk2::CellRendererText->new, 'text' => $::i));
@@ -87,7 +87,7 @@ $kernel_combo->entry->signal_connect(cha
 
 
 # Create root tree
-my $tree_model = Gtk2::TreeStore->new((Gtk2::GType->STRING) x 2);
+my $tree_model = Gtk2::TreeStore->new(("Glib::String") x 2);
 my $tree = Gtk2::TreeView->new_with_model($tree_model);
 #$tree->get_selection->set_mode('browse');
 $tree->set_headers_visible(0);
@@ -229,7 +229,6 @@ sub selected_tree {
     my ($model, $iter) = $select->get_selected;
     return unless $model;       # no real selection
     my $file = $model->get($iter, 1);
-    $iter->free;
     
     return if -d $file;
 
@@ -238,7 +237,7 @@ sub selected_tree {
     return if member($file, @modules);
     push @modules, $file;
     $file =~ s|/lib/modules/.*?/||g;
-    $list_model->append_set([ 0 => $file, 1 => $size ])->free;
+    $list_model->append_set([ 0 => $file, 1 => $size ]);
 }
 
 
@@ -264,7 +263,7 @@ sub expand_tree {
                 #- if leaf is void, we may create the parent and one child (to have the [+] in front of the parent in the ctree)
                 #- though we use '' as the label of the child; then rpmdrake will connect on tree_expand, and whenever
                 #- the first child has '' as the label, it will remove the child and add all the "right" children
-                $tree_model->append_set($iter, [ 0 => '' ])->free if has_sub_trees($entry_path);
+                $tree_model->append_set($iter, [ 0 => '' ]) if has_sub_trees($entry_path);
             }
         }
     }
Index: standalone/drakfont
===================================================================
RCS file: /cooker/gi/perl-install/standalone/drakfont,v
retrieving revision 1.132
diff -u -p -r1.132 drakfont
--- standalone/drakfont	24 Jun 2003 11:26:11 -0000	1.132
+++ standalone/drakfont	8 Jul 2003 19:01:11 -0000
@@ -726,7 +726,7 @@ sub list_remove() { #- TODO : multi-sele
 
 sub advanced_install() {
     my $adv_box;
-    $model = Gtk2::TreeStore->new(Gtk2::GType->STRING);
+    $model = Gtk2::TreeStore->new("Glib::String");
     $list = Gtk2::TreeView->new_with_model($model);
     $list->append_column(Gtk2::TreeViewColumn->new_with_attributes(undef, Gtk2::CellRendererText->new, 'text' => 0));
     $list->set_headers_visible(0);
@@ -765,7 +765,7 @@ sub list_to_remove() {
 
 sub show_list_to_remove() {
     my $show_box;
-    my $model = Gtk2::TreeStore->new(Gtk2::GType->STRING);
+    my $model = Gtk2::TreeStore->new("Glib::String");
     my $list = Gtk2::TreeView->new_with_model($model);
     $list->append_column(Gtk2::TreeViewColumn->new_with_attributes(undef, Gtk2::CellRendererText->new, 'text' => 0));
     $list->set_headers_visible(0);
@@ -802,7 +802,7 @@ sub uninstall() { #- TODO : add item to 
     chk_empty_xfs_path();
     
     #- left part
-    $left_model = Gtk2::TreeStore->new(Gtk2::GType->STRING);
+    $left_model = Gtk2::TreeStore->new("Glib::String");
     $left_list = Gtk2::TreeView->new_with_model($left_model);
     $left_list->append_column(Gtk2::TreeViewColumn->new_with_attributes(undef, Gtk2::CellRendererText->new, 'text' => 0));
     $left_list->set_headers_visible(0);
@@ -812,7 +812,7 @@ sub uninstall() { #- TODO : add item to 
     $left_model->append_set(undef, [ 0 => $_ ]) foreach @installed_fonts_path;
 
     #- right part
-    $right_model = Gtk2::TreeStore->new(Gtk2::GType->STRING);;
+    $right_model = Gtk2::TreeStore->new("Glib::String");;
     $right_list = Gtk2::TreeView->new_with_model($right_model);
     $right_list->append_column(Gtk2::TreeViewColumn->new_with_attributes(undef, Gtk2::CellRendererText->new, 'text' => 0));
     $right_list->set_headers_visible(0);
Index: standalone/drakperm
===================================================================
RCS file: /cooker/gi/perl-install/standalone/drakperm,v
retrieving revision 1.38
diff -u -p -r1.38 drakperm
--- standalone/drakperm	6 Jul 2003 18:00:44 -0000	1.38
+++ standalone/drakperm	8 Jul 2003 19:01:11 -0000
@@ -32,7 +32,7 @@ my $w = ugtk2->new('drakperm');
 $w->{rwindow}->set_size_request(550, 400) unless $::isEmbedded;
 my $W = $w->{window};
 $W->signal_connect(delete_event => sub { ugtk2->exit });
-my $treeModel = Gtk2::TreeStore->new((Gtk2::GType->STRING) x 4);
+my $treeModel = Gtk2::TreeStore->new(("Glib::String") x 4);
 my $permList = Gtk2::TreeView->new_with_model($treeModel);
 
 my @column_sizes = (150, 100, 100, 15, -1);
@@ -65,7 +65,6 @@ my @buttons;
 sub del_callback() {
     my ($tree, $iter) = $permList->get_selection->get_selected;
     $tree->remove($iter);
-    $iter->free;
     sensitive_buttons(0);
     $modified++;
 }
@@ -74,33 +73,26 @@ sub down_callback() {
     my ($model, $iter) = $permList->get_selection->get_selected;
     return unless $iter;
     my $new_iter = $model->iter_next($iter);
-    goto CLEAN1 unless $new_iter;
+    return if !$new_iter;
 
     $model->move_after($iter, $new_iter);
     $model->move_after($iter, $new_iter);
     $permList->get_selection->select_iter($iter);
     $permList->queue_draw;
-    $new_iter->free;
-  CLEAN1: $iter->free;
 }
 
 sub up_callback() {
     my ($model, $iter) = $permList->get_selection->get_selected;
-    return unless $iter;
+    return if !$iter;
     my $path = $model->get_path($iter);
-    goto CLEAN1 unless $path;
+    return if !$path;
     $path->prev;
     my $prev_iter = $model->get_iter($path);
-    $path->free;
-    goto CLEAN2 unless $prev_iter;
+    return if !$prev_iter;
     $model->move_before($iter, $prev_iter);
     $model->move_before($iter, $prev_iter);
     $permList->get_selection->select_iter($iter);
     $permList->queue_draw;
-    
-    $prev_iter->free;
-  CLEAN2: $path->free;
-  CLEAN1: $iter->free;
 }
 
 my $combo_sig = $combo_perm->entry->signal_connect(changed => sub { display_perm($combo_perm->entry->get_text , @_) });
@@ -110,7 +102,6 @@ $permList->signal_connect(button_press_e
                      my (undef, $iter) = $permList->get_selection->get_selected;
                      return unless $iter;
                      row_setting_dialog($iter) if $event->type eq '2button-press';
-                     $iter->free;
                  });
 
 
@@ -155,7 +146,6 @@ $permList->get_selection->signal_connect
                                                my $editable = $editable;
                                                $editable = 0 unless $iter;
                                                sensitive_buttons($editable);
-                                               $iter->free if $iter;
                                            });
 
 $w->main;
@@ -210,7 +200,6 @@ sub save_perm() {
     $treeModel->foreach(sub {
                              my ($model, $_path, $iter) = @_;
                              my $line = $model->get($iter, 0) . "\t" . $model->get($iter,1) . ($model->get($iter,2) ? "." . $model->get($iter,2) : "") . "\t" . $model->get($iter,3) . "\n";
-                             $iter->free;
                              print F $line;
                              return 0;
                          }, $val);
@@ -334,7 +323,6 @@ sub row_setting_dialog {
                             $treeModel->set($iter, [ 3 => ($s || '') . $user . $group . $other ]);
                             $dlg->destroy;
                             $modified++;
-                            $iter->free;
                         });
     $usr_check->signal_connect(clicked => sub {
                         my $bool = $usr_check->get_active; 
Index: standalone/harddrake2
===================================================================
RCS file: /cooker/gi/perl-install/standalone/harddrake2,v
retrieving revision 1.85
diff -u -p -r1.85 harddrake2
--- standalone/harddrake2	7 Jul 2003 20:24:19 -0000	1.85
+++ standalone/harddrake2	8 Jul 2003 19:01:11 -0000
@@ -97,11 +97,11 @@ my @menu_items = 
      [ N("/_File"), undef, undef, undef, '<Branch>' ],
      [ N("/_File").N("/_Quit"), N("<control>Q"), \&quit_global, undef, '<StockItem>', 'gtk-quit' ],
      [ join('', @{$menu_options{PRINTERS_DETECTION}}), undef, 
-       sub { $options{PRINTERS_DETECTION} = $check_boxes{PRINTERS_DETECTION}->active }, undef, '<CheckItem>' ],
+       sub { $options{PRINTERS_DETECTION} = $check_boxes{PRINTERS_DETECTION}->get_active }, undef, '<CheckItem>' ],
      [ join('', @{$menu_options{MODEMS_DETECTION}}), undef,
-       sub { $options{MODEMS_DETECTION} = $check_boxes{MODEMS_DETECTION}->active }, undef, '<CheckItem>' ],
+       sub { $options{MODEMS_DETECTION} = $check_boxes{MODEMS_DETECTION}->get_active }, undef, '<CheckItem>' ],
      [ join('', @{$menu_options{JAZZ_DETECTION}}), undef,
-       sub { $options{JAZZ_DETECTION} = $check_boxes{JAZZ_DETECTION}->active }, undef, '<CheckItem>' ],
+       sub { $options{JAZZ_DETECTION} = $check_boxes{JAZZ_DETECTION}->get_active }, undef, '<CheckItem>' ],
      [ $menus{help}, undef, undef, undef, '<Branch>' ],
      [ $menus{help}.N("/_Help"), undef, sub { unless (fork()) { exec("drakhelp Drakxtools-Guide.html/harddrake.html") } }, undef, '<Item>' ],
      [ $menus{help}.N("/_Fields description"), undef, sub {
@@ -148,7 +148,7 @@ if ($::isEmbedded) {
     $w->{window}->set_size_request(805, 550);
 }
 
-my $tree_model = Gtk2::TreeStore->new(Gtk2::GType->OBJECT, Gtk2::GType->STRING, Gtk2::GType->INT);
+my $tree_model = Gtk2::TreeStore->new("Gtk2::Gdk::Pixbuf", "Glib::String", "Glib::Int");
 my ($statusbar, $sig_id);
 $w->{window}->add(gtkpack_(0, Gtk2::VBox->new(0, 0),
                            if_(!$::isEmbedded, 0, $menubar),
@@ -195,19 +195,19 @@ $tree->append_column(my $textcolumn = Gt
 $tree->set_headers_visible(0);
 $tree->get_selection->signal_connect('changed' => sub {
     my ($select) = @_;
-    my ($model, $iter) = $select->get_selected;
+    my ($model, $iter) = $select->get_selected; #BUG
+
     if ($model) {
         my $idx = $model->get($iter, 2);
-        $iter->free;
         $current_device = $data[$idx];
         
         if ($idx ne -1) {
+            use constant PANGO_WEIGHT_BOLD => 700;
             gtktext_insert($text, [ map  {
-
                 # The U+200E character is to force LTR display, as what what follows the colon is always in LTR (device names, paths, etc),
                 # this ensures proper displaying of names like /dev/fd0 (otherwise it gets 'dev/fd0/').
                 # it must come *after* the space, as the space must follow the colon following the direction of writting.
-                if_($_ && $fields{$_}[0], [ $fields{$_}[0] . ": \x{200e}", { 'foreground' => 'royalblue3', 'weight' => Gtk2::Pango->WEIGHT_BOLD } ],
+                if_($_ && $fields{$_}[0], [ $fields{$_}[0] . ": \x{200e}", { 'foreground' => 'royalblue3', 'weight' => 700 } ],
                     [ ($current_device->{$_} =~ /^(unknown)/ ? N("unknown") :
                        $current_device->{$_} =~ /^(Unknown)/ ? N("Unknown") : 
                        $current_device->{$_} eq 'yes' ? N("Yes") : 
@@ -227,7 +227,7 @@ $tree->get_selection->signal_connect('ch
             return 1;
         }
     }
-    $text->get_buffer->set_text(N("Click on a device in the left tree in order to display its information here."), -1);
+    $text->get_buffer->set_text(N("Click on a device in the left tree in order to display its information here."));
     $config_button->hide;
     $module_cfg_button->hide;
 });
@@ -294,12 +294,11 @@ foreach (@harddrake::data::tree) {
         foreach my $field (qw(devfs_device device)) {
             $_->{$field} = '/dev/'.$_->{$field} if $_->{$field};
         }
-        $tree_model->append_set($parent_iter, [ 1 => $custom_id, 2 => $index++ ])->free;
+        $tree_model->append_set($parent_iter, [ 1 => $custom_id, 2 => $index++ ]);
         push @data, $_;
         push @configurators, $configurator;
     }
     $tree->expand_row($tree_model->get_path($parent_iter), 1) unless $title eq N("Unknown/Others");
-    $parent_iter->free;
 }
 
 $SIG{CHLD} = sub {
@@ -327,7 +326,6 @@ $textcolumn->set_sizing('GTK_TREE_VIEW_C
 my $path = Gtk2::TreePath->new_first;
 $path->down unless $::isEmbedded;
 $tree->get_selection->select_path($path);
-$path->free;
 $w->{rwindow}->show_all;
 undef $wait;
 gtkset_mousecursor_normal();
Index: standalone/logdrake
===================================================================
RCS file: /cooker/gi/perl-install/standalone/logdrake,v
retrieving revision 1.79
diff -u -p -r1.79 logdrake
--- standalone/logdrake	7 Jul 2003 16:39:18 -0000	1.79
+++ standalone/logdrake	8 Jul 2003 19:01:11 -0000
@@ -298,7 +298,7 @@ sub parse_file {
       local $_;
       while (<F>) {}; #to prevent to output the file twice..
 #      $log_text->set_point($log_text->get_length());
-      $timer ||= Gtk2->timeout_add(1000, sub {
+      $timer ||= Glib::Timeout->add(1000, sub {
                                        logcolorize($_) while <F>;
                                        seek F, 0, 1;
                                    });
@@ -362,7 +362,6 @@ sub logcolorize {
 sub log_output {
     gtktext_append($log_text, [ [EMAIL PROTECTED] ]);
     $log_text->scroll_to_iter(my $iter = $log_buf->get_end_iter, 0, 1, 0.5, 0.5);
-    $iter->free;
 }
 
 
Index: standalone/mousedrake
===================================================================
RCS file: /cooker/gi/perl-install/standalone/mousedrake,v
retrieving revision 1.64
diff -u -p -r1.64 mousedrake
--- standalone/mousedrake	6 Jul 2003 17:58:22 -0000	1.64
+++ standalone/mousedrake	8 Jul 2003 19:01:11 -0000
@@ -29,7 +29,7 @@ if (!$mouse || !$::auto) {
     if ($::isEmbedded && $in->isa('interactive::gtk')) {
 	#- HACK: waiting for the ask_from_treelistf to attach itself
 	#- and adding the nice test mouse to it
-	Gtk2->timeout_add(100, sub {
+	Glib::Timeout->add(100, sub {
 			     defined $::Plug && defined $::Plug->child or return 1;
 			     $test_hbox = Gtk2::HBox->new(0, 0);
 			     $::WizardTable->attach($test_hbox, 2, 3, 1, 2, ['fill', 'expand'], ['fill', 'expand'], 0, 0);
known issues:
- moving up a row in drakperm eat all cpu (seems to be a gtk+2 bug)
- install not yet ready (window pixel placement being deprecated and
  the like)

Reply via email to