From 5798823e331c86fb3f97593b0cd2820224767d15 Mon Sep 17 00:00:00 2001 From: pad Date: Sun, 5 Sep 1999 22:59:26 +0000 Subject: focus_out --- perl-install/commands.pm | 2 -- perl-install/install_steps_interactive.pm | 2 +- perl-install/interactive_gtk.pm | 21 +++++++++++++++++---- perl-install/log.pm | 12 +++++++++++- 4 files changed, 29 insertions(+), 8 deletions(-) (limited to 'perl-install') diff --git a/perl-install/commands.pm b/perl-install/commands.pm index bd511c850..b345acacb 100644 --- a/perl-install/commands.pm +++ b/perl-install/commands.pm @@ -10,7 +10,6 @@ my $BUFFER_SIZE = 1024; 1; - sub getopts { my $o = shift; my @r = map { '' } (@_ = split //, $_[0]); @@ -212,7 +211,6 @@ sub ls { } else { print "$_\n"; } } } - sub cp { my ($force) = getopts(\@_, qw(f)); @_ >= 2 or die "usage: cp [-f] \n(this cp does -Rl by default)\n"; diff --git a/perl-install/install_steps_interactive.pm b/perl-install/install_steps_interactive.pm index 15292eb39..a4571ec7b 100644 --- a/perl-install/install_steps_interactive.pm +++ b/perl-install/install_steps_interactive.pm @@ -225,7 +225,7 @@ name (often lp) and a spool directory associated with it. What name and directory should be used for this queue?"), [_("Name of queue:"), _("Spool directory:")], [\$o->{printer}{QUEUE}, \$o->{printer}{SPOOLDIR}], - changed => sub + focus_out => sub { $o->{printer}{SPOOLDIR} = "$printer::spooldir/$o->{printer}{QUEUE}" unless $_[0]; diff --git a/perl-install/interactive_gtk.pm b/perl-install/interactive_gtk.pm index 6a0b1d1d2..cb3258d3b 100644 --- a/perl-install/interactive_gtk.pm +++ b/perl-install/interactive_gtk.pm @@ -77,9 +77,10 @@ sub ask_many_from_list_refW($$$$$) { sub ask_from_entries_refW { my ($o, $title, $messages, $l, $val, %hcallback) = @_; my $num_champs = @{$l}; - my $ignore = 0; + my $ignore = 0; #to handle recursivity my $w = my_gtk->new($title, %$o); + #the widgets my @entries = map { if ($_->{type} eq "list") { my $depth_combo = new Gtk::Combo; @@ -111,7 +112,9 @@ sub ask_from_entries_refW { for (my $i = 0; $i < $num_champs; $i++) { - my $ind = $i; + my $ind = $i; #cos lexical bindings pb !! + my $entry = $entries[$i]; + #changed callback my $callback = sub { return if $ignore; #handle recursive deadlock &{$updates[$ind]}; @@ -121,9 +124,19 @@ sub ask_from_entries_refW { $ignore = 1; foreach (@updates_inv) { &{$_};} $ignore = 0; - } + }; }; - my $entry = $entries[$i]; + if ($hcallback{focus_out}) { + my $callfocusout = sub { + return if $ignore; + &{$hcallback{focus_out}}($ind); + #update all the value + $ignore = 1; + foreach (@updates_inv) { &{$_};} + $ignore = 0; + }; + comb_entry($entry,$val->[$i])->signal_connect(focus_out_event => $callfocusout); + } comb_entry($entry,$val->[$i])->signal_connect(changed => $callback); comb_entry($entry,$val->[$i])->signal_connect(activate => sub { ($ind == ($num_champs -1)) ? diff --git a/perl-install/log.pm b/perl-install/log.pm index 1d4ba05b4..3f119b365 100644 --- a/perl-install/log.pm +++ b/perl-install/log.pm @@ -4,11 +4,16 @@ use diagnostics; use strict; +#-##################################################################################### +#- Globals +#-##################################################################################### my $logOpen = 0; my $logDebugMessages = 0; -1; +#-###################################################################################### +#- Functions +#-###################################################################################### sub fd() { fileno LOG } sub l { @@ -35,3 +40,8 @@ sub openLog(;$) { } sub closeLog() { close LOG; close LOG2; } + +#-###################################################################################### +#- Wonderful perl :( +#-###################################################################################### +1; # -- cgit v1.2.1