#!/usr/bin/perl -w use strict; use Tk; my @VehicleProgram=('AA','BB'); my @CrashMode=('12','13'); my @Load=('AA_121','AA_13','BB_12','CC_12','AA_122'); my @LoadArrayRef=@Load; my $sw4; my $sw1; my $menub2; my $Program = 'undef'; my $CrashMode = 'undef'; my $Drive = 'undef'; my $Side = 'undef'; my $dummy = 'undef'; my $Load = 'undef'; my $Error ='no'; my $mw = MainWindow->new; #my $toplevel = $mw->toplevel; my $MFrame1 = $mw->Frame()->pack(-side=>'top'); my $MFrame2 = $mw->Frame()->pack(-side=>'bottom'); my $Frame1 = $MFrame1->Frame()->pack(-side=>'left'); my $Frame2 = $MFrame1->Frame()->pack(-side=>'left'); my $Frame3 = $MFrame1->Button(-text => 'Exit', -borderwidth=>'0', -command => sub{exit})->pack(-side=>'right'); my $Frame4 = $MFrame2->Frame()->pack(-side=>'bottom', -fill => 'both', -expand=> '1'); my $menubar = $Frame1->Menu(-type => 'menubar', -relief=>'groove', -borderwidth=>'0')->pack; my $w1 = $menubar->cascade(-label => 'Program',-tearoff => 0); my $w2 = $menubar->cascade(-label => 'Crash Mode',-tearoff => 0); $sw1 = $Frame2->Frame()->pack(); my $menub = $sw1 ->Menubutton(-text => "Load", -relief=>'groove', -borderwidth=>'0')->pack(); foreach my $i (@VehicleProgram) { $w1->radiobutton (-label => "$i", -command => \&set_bg, -variable => \$Program, -value => "$i") } foreach my $i (@CrashMode) { $w2->radiobutton (-label => "$i", -command => \&set_bg, -variable => \$CrashMode, -value => "$i") } MainLoop; sub set_bg { $sw1->destroy if Exists($sw1); $sw4->destroy if Exists($sw4); $sw4 = $Frame4->Frame(-relief => 'ridge', -bd => 2,-height=>'40')->pack(); $sw4->Label(-text => "$Program",) ->pack(-side => 'left',-anchor => 'w'); $sw4->Label(-text => "$CrashMode", )->pack(-side => 'left',-anchor => 'w'); $sw4->Label(-text => "$Drive",) ->pack(-side => 'left',-anchor => 'w'); $sw4->Label(-text => "$Side",) ->pack(-side => 'left',-anchor => 'w'); $sw4->Label(-text => "$dummy",) ->pack(-side => 'left',-anchor => 'w'); $sw4->Label(-text => "$Load",) ->pack(-side => 'left',-anchor => 'w'); @LoadArrayRef=@Load; UpdateLoadArray (); $sw1 = $Frame2->Frame()->pack(); my $menub = $sw1->Menubutton(-text => "Load")->pack(); foreach my $i (@LoadArrayRef) { $menub->radiobutton( -label => "$i", -command => \&set_bg, -variable => \$Load, -value => "$i" ); } } sub UpdateLoadArray { my (@new); foreach (@LoadArrayRef) { if ($_ !~ /$Program/) {next} if ($_ !~ /$CrashMode/) {next} # print "$_\n"; push (@new,$_); } @LoadArrayRef=@new; # print "-----\n"; # print "Program:$Program CrashMode:$CrashMode\n"; # foreach (@LoadArrayRef) {print "$_\n"} # print "-----\n"; } sub CreateRun { }