From 3a88ad93c9165176b292d10afd0c271303f5538f Mon Sep 17 00:00:00 2001 From: merlin Date: Mon, 26 Nov 2007 08:49:36 +0000 Subject: Ajout de la possibilite de supprimer un element du mfocuser --- src/MTools/Comp/MFocuser.pm | 23 ++++++++++++++++++++--- 1 file changed, 20 insertions(+), 3 deletions(-) (limited to 'src/MTools') diff --git a/src/MTools/Comp/MFocuser.pm b/src/MTools/Comp/MFocuser.pm index 7d984da..91afd48 100644 --- a/src/MTools/Comp/MFocuser.pm +++ b/src/MTools/Comp/MFocuser.pm @@ -41,10 +41,13 @@ sub new { my $self = new MTools::MObjet (); bless $self, $class; + $self -> recordProperty (focused => undef); $self -> recordEvent ('GET_FOCUS'); $self -> recordEvent ('SET_FOCUS'); - - $self -> {__targets} = \@targets; + if (defined @targets) + { + $self -> {__targets} = \@targets; + } for (my $i; $i < @targets; $i++) { $targets [$i] -> binding ('GET_FOCUS', ['setFocused', $self]); @@ -61,12 +64,26 @@ sub add { $tg -> binding ('GET_FOCUS', ['setFocused', $self]); } +sub remove { + my ($self, $tg) = @_; + if (!defined $self -> {__targets}) {return;} + my @tgs = @{$self -> {__targets}}; + for (my $i = 0; $i < @tgs; $i++) + { + if ($tgs [$i] == $tg) { + splice (@{$self -> {__targets}}, $i, 1); + return; + } + } +} + sub setFocused { my ($self, $tg) = @_; + $self -> mconfigure (focused => $tg); if (!defined $self -> {__targets}) {return;} my @tgs = @{$self -> {__targets}}; my $from_children = 0; - for (my $i; $i < @tgs; $i++) + for (my $i = 0; $i < @tgs; $i++) { if ($tgs [$i] ne $tg) { -- cgit v1.1