diff options
Diffstat (limited to 'Master/tlpkg/tlperl0/lib/auto/Tk/Listbox/FETCH.al')
-rwxr-xr-x | Master/tlpkg/tlperl0/lib/auto/Tk/Listbox/FETCH.al | 56 |
1 files changed, 56 insertions, 0 deletions
diff --git a/Master/tlpkg/tlperl0/lib/auto/Tk/Listbox/FETCH.al b/Master/tlpkg/tlperl0/lib/auto/Tk/Listbox/FETCH.al new file mode 100755 index 00000000000..fbbe7a3ce9a --- /dev/null +++ b/Master/tlpkg/tlperl0/lib/auto/Tk/Listbox/FETCH.al @@ -0,0 +1,56 @@ +# NOTE: Derived from ..\blib\lib\Tk\Listbox.pm. +# Changes made here will be lost when autosplit is run again. +# See AutoSplit.pm. +package Tk::Listbox; + +#line 176 "..\blib\lib\Tk\Listbox.pm (autosplit into ..\blib\lib\auto\Tk\Listbox\FETCH.al)" +# FETCH +# ----- +# Return either the full contents or only the selected items in the +# box depending on whether we tied it to an array or scalar respectively +sub FETCH { + my $class = shift; + + my $self = ${$class->{OBJECT}}; + my %options = %{$class->{OPTION}} if defined $class->{OPTION};; + + # Define the return variable + my $result; + + # Check whether we are have a tied array or scalar quantity + if ( @_ ) { + my $i = shift; + # The Tk:: Listbox has been tied to an array, we are returning + # an array list of the current items in the Listbox + $result = $self->get($i); + } else { + # The Tk::Listbox has been tied to a scalar, we are returning a + # reference to an array or hash containing the currently selected items + my ( @array, %hash ); + + if ( defined $options{ReturnType} ) { + + # THREE-WAY SWITCH + if ( $options{ReturnType} eq "index" ) { + $result = [$self->curselection]; + } elsif ( $options{ReturnType} eq "element" ) { + foreach my $selection ( $self->curselection ) { + push(@array,$self->get($selection)); } + $result = \@array; + } elsif ( $options{ReturnType} eq "both" ) { + foreach my $selection ( $self->curselection ) { + %hash = ( %hash, $selection => $self->get($selection)); } + $result = \%hash; + } + } else { + # return elements (default) + foreach my $selection ( $self->curselection ) { + push(@array,$self->get($selection)); } + $result = \@array; + } + } + return $result; +} + +# end of Tk::Listbox::FETCH +1; |