#!/usr/bin/perl -w
######################################################################
# menu.pl
######################################################################
# Perl Power! - Michael Schilli 1998
######################################################################

use Tk;

$top = MainWindow->new;

                              # menu bar
$menu = $top->Frame(-relief => 'raised', -bd => 2); 

                              # menu bar entries
$menu_pulldown1 = $menu->Menubutton(-text => "File", 
                                    -underline => 0); 
$menu_pulldown2 = $menu->Menubutton(-text => "Test", 
                                    -underline => 0); 

                              # popup menu as pushbutton
                              # in menu bar
$menu_popup = $menu->Button(-text => "Help", 
                            -command => 
                                sub { print "Help\n" } );

                              # normal pulldown entry
$menu_pulldown2->command(-label => "Exit", 
                         -command => sub { exit 0 });

$menu_pulldown2->separator(); # separator

                              # check button pulldown entry
$menu_pulldown2->checkbutton(-label => "Checkbutton1",
                             -underline => 0,
                             -variable => \$checkvar, 
                             -command => 
                                 sub { print "Check1\n" });
$menu_pulldown2->checkbutton(-label => "Checkbutton2",
                             -underline => 1,
                             -variable => \$checkvar,
                             -command => 
                                 sub { print "Check2\n" });
$checkvar = 1;

$menu_pulldown2->separator(); # separator

                              # radio button pulldown entry
$menu_pulldown2->radiobutton(-label => "Radiobutton1",
                             -underline => 11,
                             -variable => \$radiovar, 
                             -value => "Radio1",
                             -command => 
                              sub { print "$radiovar\n" });
$menu_pulldown2->radiobutton(-label => "Radiobutton2",
                             -underline => 11,
                             -variable => \$radiovar, 
                             -value => "Radio2",
                             -command => 
                              sub { print "$radiovar\n" });

$radiovar="Radio1";           # default value: radio button 1

$menu_pulldown2->separator(); # Separator

                              # cascade menu
$newmenu = $menu_pulldown2->cget(-menu)->Menu();

$menu_pulldown2->cascade(-label => "Cascade", 
                         -underline => 1,
                         -menu => $newmenu);

                              # normal entry in 
                              # cascaded menu
$newmenu->command(-label => "CascadeCommand", 
                  -command => sub { exit 0 });

                              # pack all
$menu->pack(-side => 'top', -fill => 'x');
$menu_pulldown1->pack(-side, 'left');
$menu_pulldown2->pack(-side, 'left');
$menu_popup->pack(-side, 'right');

MainLoop;

