From 755e511024f29df150d9d150d19c849e59c1e216 Mon Sep 17 00:00:00 2001 From: Pascal Rigaux Date: Fri, 2 Jul 1999 09:25:48 +0000 Subject: *** empty log message *** --- perl-install/my_gtk.pm | 30 ++++++++++++++++++------------ 1 file changed, 18 insertions(+), 12 deletions(-) (limited to 'perl-install/my_gtk.pm') diff --git a/perl-install/my_gtk.pm b/perl-install/my_gtk.pm index 1205a7eda..7d92617ad 100644 --- a/perl-install/my_gtk.pm +++ b/perl-install/my_gtk.pm @@ -6,7 +6,7 @@ use vars qw(@ISA %EXPORT_TAGS @EXPORT_OK); @ISA = qw(Exporter); %EXPORT_TAGS = ( - all => [ qw(ask_warn ask_yesorno ask_from_entry ask_from_list create_yesorno createScrolledWindow create_menu create_notebook create_packtable create_hbox create_adjustment gtksignal_connect gtkpack gtkpack_ gtkappend gtkadd gtkset_usize gtkset_justify gtkshow gtkdestroy) ], + all => [ qw(ask_warn ask_okcancel ask_yesorno ask_from_entry ask_from_list create_okcancel createScrolledWindow create_menu create_notebook create_packtable create_hbox create_adjustment gtksignal_connect gtkpack gtkpack_ gtkappend gtkadd gtkset_usize gtkset_justify gtkshow gtkdestroy) ], ); @EXPORT_OK = map { @$_ } values %EXPORT_TAGS; @@ -26,13 +26,17 @@ sub new { $o->{window} = $o->_create_window($title); $o; } -sub main($) { - my $o = shift; - $o->{window}->show; - Gtk->main; +sub main($;$) { + my ($o, $f) = @_; + $o->show; + do { Gtk->main } while ($o->{retval} && $f && !&$f()); $o->destroy; $o->{retval} } +sub show($) { + my ($o) = @_; + $o->{window}->show; +} sub destroy($) { my ($o) = @_; $o->{window}->destroy; @@ -114,12 +118,12 @@ sub gtkadd($@) { # these functions return a widget ################################################################################ -sub create_yesorno($) { - my ($w) = @_; +sub create_okcancel($;$$) { + my ($w, $ok, $cancel) = @_; gtkadd(create_hbox(), - gtksignal_connect($w->{ok} = new Gtk::Button("Ok"), "clicked" => sub { $w->{retval} = 1; Gtk->main_quit }), - gtksignal_connect(new Gtk::Button("Cancel"), "clicked" => sub { $w->{retval} = 0; Gtk->main_quit }), + gtksignal_connect($w->{ok} = new Gtk::Button($ok || "Ok"), "clicked" => sub { $w->{retval} = 1; Gtk->main_quit }), + gtksignal_connect(new Gtk::Button($cancel || "Cancel"), "clicked" => sub { $w->{retval} = 0; Gtk->main_quit }), ); } @@ -210,7 +214,8 @@ sub _create_window($$) { ################################################################################ sub ask_warn { my $w = my_gtk->new(shift @_); $w->_ask_warn(@_); main($w); } -sub ask_yesorno { my $w = my_gtk->new(shift @_); $w->_ask_yesorno(@_, "Is it ok?"); main($w); } +sub ask_yesorno { my $w = my_gtk->new(shift @_); $w->_ask_okcancel(@_, "Yes", "No"); main($w); } +sub ask_okcancel { my $w = my_gtk->new(shift @_); $w->_ask_okcancel(@_, "Is it ok?", "Ok", "Cancel"); main($w); } sub ask_from_entry { my $w = my_gtk->new(shift @_); $w->_ask_from_entry(@_); main($w); } sub ask_from_list { my $w = my_gtk->new(shift @_); $w->_ask_from_list(pop @_, @_); main($w); } @@ -254,12 +259,13 @@ sub _ask_warn($@) { $w->grab_focus(); } -sub _ask_yesorno($@) { +sub _ask_okcancel($@) { my ($o, @msgs) = @_; + my ($ok, $cancel) = splice @msgs, -2; gtkadd($o->{window}, gtkpack(create_box_with_title($o, @msgs), - create_yesorno($o), + create_okcancel($o, $ok, $cancel), ) ); $o->{ok}->grab_focus(); -- cgit v1.2.1