SUCCESS!!! (except for making it modal. I looked at the code in Show that handles modal-ness and my eyes kind of glazed over ... any insight into how that stuff works would be appreciated! :o)) The following does pretty much just what I wanted. Only slight problem is where the TL pops up -- a little more research in how how the PopUp stuff handles "make the thing pop up HERE" and I think I've got what I was looking for!
Meta question: is this worth cleaning up and turning into a real widget, or should I just go back into my hole and use it for my app?
#!/usr/bin/perl
# Test to see if we can make our own multi-column menu out of
## a toplevel and radiobuttons
use strict ;
use warnings ;
use Tk ;
my $mw = MainWindow->new ;
$mw->Button(-text => "Make menu", -command => \&GenMenu)->pack ;
my $picked ;
$mw->Entry(-state => 'disabled', -textvariable => \$picked)->pack ;
MainLoop() ;
my $menuselect ;
my $TL ;
sub GenMenu
{ $TL = $mw->Toplevel ;
for my $f (1 .. 3)
{ my $frame = $TL->Frame->pack(-side => 'left');
for my $menu (1 .. 5)
{ Radio($frame, "Column $f, Row $menu", $f*5 + $menu) ; }
}
$TL->focus ;
}
sub PickedMenu
{ $picked = "You picked entry $menuselect" ;
$TL->destroy ;
}
sub Radio
{ $_[0]->Radiobutton(-text => $_[1],
-value => $_[2],
-variable => \$menuselect,
-indicatoron => undef,
-command => \&PickedMenu)->pack(-fill => 'x') ;
}
|