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