Hi, I would like to do a dynamic menu in Perl Tk ie I would like to display all 
available drive in my computer dynamically because now it has been hard written.
(A,B,C,D,E,F,G,H,I)
How I can do this.


My code:

sub makemenu{
my $menubar = $mw->Menu(-type => 'menubar',
                        -relief=>'flat');

$mw->configure(-menu => $menubar);

my $mnu0 = $menubar->cascade(-label => 'Control',
                             -tearoff => 0,
                             -font => "Arial 8 normal"
                             );

$mnu0->command( -label => 'Quitter',
                 -accelerator => 'Q',
                 -font => "Arial 8 normal",
                -command =>sub{$mw->destroy()});

$mnu0->separator();

my $mnu1 = $menubar->cascade(-label => '~Options',
                             -tearoff => 0,
                             -font => "Arial 8 normal"
 

                             );
                                
my $cc = $mnu1->cascade(-label=>'~Language');

$cc-> checkbutton (-label=>'Generic Alcatel', -variable => \$GENERIC);
$cc-> checkbutton (-label=>'French', -variable => \$FRENCH);


my $cc2 = $mnu1->cascade(-label=>'~Drive');

$cc2-> checkbutton (-label=>'A', -variable => \$A);
$cc2-> checkbutton (-label=>'B', -variable => \$B);
$cc2-> checkbutton (-label=>'C', -variable => \$C);
$cc2-> checkbutton (-label=>'D', -variable => \$D);
$cc2-> checkbutton (-label=>'E', -variable => \$E);
$cc2-> checkbutton (-label=>'F', -variable => \$F);
$cc2-> checkbutton (-label=>'G', -variable => \$G);
$cc2-> checkbutton (-label=>'H', -variable => \$H);
$cc2-> checkbutton (-label=>'I', -variable => \$I);

$mnu1->separator();

my $mnu2 = $menubar->cascade(-label => 'Alcatel',
                             -tearoff => 0,
                             -font => "Arial 8 normal"
                             );

$mnu2->command( -label => 'About',
                -accelerator => 'A',
                -font => "Arial 8 normal",
                -command =>sub{about()}
               );


} #end sub makemenu

 

Reply via email to