#!/usr/bin/perl -w
######################################################################
# (c) Michael Schilli 1999
######################################################################

use Tk;

my $top = MainWindow->new();

                            # Listbox erzeugen
$listbox = $top->ScrlListbox(-label => "LIST", 
                             -height => 6,
                             -selectmode => "extended");

                            # Buttons
$exitbutton   = $top->Button(-text => "Exit", 
                             -command => \&exit);
$selectbutton = $top->Button(-text => "Select", 
                             -command => \&proc_selection);

                            # Anzeige
$frame = $top->Frame(-relief => "sunken", 
                     -borderwidth => 2);
$label = $frame->Label(-text => "Selected: ");
$entry = $frame->Label(-textvariable => \$seltext, 
                       -relief => "sunken");

                            # Alles Packen
$listbox->pack(-fill   => "both", "-expand" => "yes");
$exitbutton->pack(-side => "left");
$selectbutton->pack(-side => "left");
$frame->pack(-side => "right", "-anchor" => "se");
$label->pack(-side => "left");
$entry->pack(-side => "left");

                            # Listbox füllen
foreach $i (1..20) {
    $listbox->insert("end", "Item $i");
}
                            # Vorauswahl setzen
$listbox->selection("set", 0);
                            # Auswahl simulieren
$seltext = proc_selection();

                            # Aktion bei Doppel-Klick auf 
                            # Listbox-Eintrag definieren
$listbox->bind("<Double-Button-1>" => \&proc_selection);

MainLoop;


###
### proc_selection() - Selektion-Event verarbeiten
###
sub 
proc_selection {
                           # Selektierte Einträge holen, zu
                           # einem String und in der Text-
                           # variablen des Labelwidgets ab-
                           # legen
   $seltext = join('  ', $listbox->Getselected);
}
