# 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;