1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113
| #!/usr/bin/perl
use warnings;
use strict;
use Tk;
use Tk::Balloon;
use Tk::NoteBook;
use Tk::Dialog;
#Création du menu fichier, avec des sous-menus
#tableau contenant toutes les fonctions à lancer
my @fonction = (
'creerAfficherInf', 'creerafficherDonClassique',
'creerafficherDonavcan', 'creerAfficherLoi',
'creerAfficherCan', 'creerAfficherMaskcla',
'creerAfficherCancla', 'creerAfficherChgt',
'creerAfficherChgclass', 'ouvrirInf',
'ouvrirDon', 'ouvrirLoi',
'ouvrirCan', 'ouvrirMaskcla',
'ouvrirCancla', 'ouvrirChgt',
'ouvrirChgclass',
);
#tableau contenant les noms des sous menus
my @fichier = ( "Nouveau...", "Ouvrir" );
#tableau contenant le nom des commandes dans le sous-menu Nouveau...
my @Nouveau = (
"fichier .INF",
"fichier .DON classique",
"fichier .DON canal temporel \& spectral",
"fichier .LOI",
"fichier .CAN",
"fichier .MASKCLA",
"fichier .CANCLA",
"fichier .CHGT",
"fichier .CHGCLASS",
);
#tableau contenant le nom des commandes dans le sous-menu Ouvrir
my @Ouvrir = (
"fichier .INF",
"fichier .DON",
"fichier .LOI",
"fichier .CAN",
"fichier .MASKCLA",
"fichier .CANCLA",
"fichier .CHGT",
"fichier .CHGCLASS",
);
#On précise quelles commandes correspondent à quel sous-menu
my %sous_menu = (
"Nouveau..." => \@Nouveau,
Ouvrir => \@Ouvrir
);
my %sous_menuref;
my $fenetre = new MainWindow();
$fenetre->maxsize( 640, 600 );
$fenetre->minsize( 640, 600 );
$fenetre->title("Cesbio TITE");
my $zoneMenu = $fenetre->Frame( -relief => 'groove' );
#création du menu Fichier
my $b_menu = $zoneMenu->Menubutton(
-text => 'Fichier',
-relief => 'flat',
-tearoff => 0,
-menuitems => [ [ 'command' => 'Quitter', -command => sub { exit(0); } ] ]
)->pack( -side => 'left' );
#création du menu Création
my $c_menu = $zoneMenu->Menubutton(
-text => 'Création',
-relief => 'flat',
-tearoff => 0,
-menuitems => [
[ 'command' => 'auto_max_vrai07', -command => \&lancerAuto_max_vrai ],
[ 'command' => 'auto_comp_matcnf04', -command => \&lancerAuto_comp ],
]
)->pack( -side => 'left' );
#Création des sous menus avec leurs commandes
foreach my $m (@fichier) {
$sous_menuref{$m} = $b_menu->menu->Menu;
#print"@{$sous_menu{$m}}\n";
my @a = values(%sous_menu);
#print "@a\n";
map( $sous_menuref{$m}->add( 'command', -label => $_ ),
@{ $sous_menu{$m} } );
$b_menu->cascade( -label => $m );
#affichage des contenus des sous-menus Nouveau... et Ouvrir
$b_menu->entryconfigure( $m, -menu => $sous_menuref{$m} );
}
$zoneMenu->pack( -side => 'top', -anchor => 'n', -expand => 1, -fill => 'x' );
$fenetre->Label( -text => "Gestion de fichier TITE" )
->pack( -side => 'top', -anchor => 'n' );
my $zoneRecap = $fenetre->Scrolled(
"Text",
-width => 70,
-height => 70,
-background => "white"
)->pack();
MainLoop(); |
Partager