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
| #!/usr/local/bin/perl
use warnings;
use strict;
use Tk;
use Tk::BrowseEntry;
use File::Copy;
my ( $repertoire, $fichier_output );
my $fenetre_principale = MainWindow->new( -title => 'Numérobis' , -background => '#CF0063',);
$fenetre_principale->minsize( 400, 200 );
####################################
## POUR CENTRER MA FENETRE A L'ECRAN
####################################
CentrerWidget($fenetre_principale);
sub CentrerWidget {
unless ( scalar(@_) == 1 ) {
die('Usage : CentrerWidget( $fenetre_principale );');
}
my ($Widget) = @_;
# Height and width of the screen
my $LargeurEcran = $Widget->screenwidth();
my $HauteurEcran = $Widget->screenheight();
# update le widget pour recuperer les vraies dimensions
$Widget->update;
my $LargeurWidget = $Widget->width;
my $HauteurWidget = $Widget->height;
# On centre le widget en fonction de la taille de l'ecran
my $NouvelleLargeur = int( ( $LargeurEcran - $LargeurWidget ) / 2 );
my $NouvelleHauteur = int( ( $HauteurEcran - $HauteurWidget ) / 2 );
$Widget->geometry( $LargeurWidget . "x" . $HauteurWidget . "+$NouvelleLargeur+$NouvelleHauteur" );
$Widget->update;
return;
}
####################################
## selection du repertoire à traiter
####################################
my $LabelInput = $fenetre_principale->Label( -text => 'Quel dossier traiter ? : ' );
my $BoutonInput = $fenetre_principale->Button(
-text => ' ... ',
-command => sub { $repertoire = $fenetre_principale->chooseDirectory(
-title => "Mon titre", # Titre fenêtre
-initialdir => "C:/", # Répertoire par défaut D:/ScanImag/
-mustexist => 1, # Le répertoire sélectionné doit exister
); }
);
my $AfficheInput = $fenetre_principale->Label( -textvariable => \$repertoire );
#################
## menu déroulant
#################
my $mon_choix;
my $menu_deroulant = $fenetre_principale->BrowseEntry(
-label => 'Action : ',
-choices => ['Numéroter les fichiers', 'Re-numéroter suite à la suppression de fichiers', 'Re-numérotation sans suppression de fichiers', 'Contrôle de fin de traitement'],
-variable => \$mon_choix,
)->pack(qw/ -padx 10 -pady 5/);
################
## bouton action
################
my $BoutonGO = $fenetre_principale->Button(
-text => " Lancer le traitement ",
-command => [&go, \&mon_choix],
)->pack(qw/ -padx 10 -pady 5/);
###########################
## disposition des éléments
###########################
$LabelInput->grid( $AfficheInput,$BoutonInput, qw/ -sticky new -pady 25 -padx 15/ );
$menu_deroulant->grid( '-', qw/ -sticky nsew -pady 15 -padx 15/ );
$BoutonGO->grid( '-', qw/ -sticky nsew -pady 25 -padx 15/ );
MainLoop;
sub go {
my ($ref_choix) = @_;
my $choix = ${$ref_choix};
if ( $choix eq 'Numéroter les fichiers' ) { Num_Fichiers(); }
elsif ( $choix eq 'Re-numéroter suite à la suppression de fichiers' ) { ReNum_eff(); }
elsif ( $choix eq 'Re-numérotation sans suppression de fichiers' ) { ReNum(); }
elsif ( $choix eq 'Contrôle de fin de traitement' ) { controle(); }
}
sub Num_Fichiers {
print "OK num";
}
sub ReNum {
print "OK renum";
}
sub ReNum_eff {
print "OK num eff";
}
sub controle {
print "OK controle";
} |
Partager