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 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137
| #!/usr/bin/perl
use warnings;
use Carp;
use strict;
use Tk;
use Tk::Photo;
use Tk::PNG;
use Connexion;
# Connexion au serveur ftp
my $file = '/home/seb/workspace/Islo_People/Configuration';
my $ObjetConnexion = new Connexion($file);
#Création de la fenêtre principale
my $fenetre = MainWindow->new();
#Définition de la taille min de la fenêtre
$fenetre->minsize( '500', '300' );
#Définition du title de la fenêtre
$fenetre->title("Islo People");
#Création de la barre de menu
my $barre_menu = $fenetre->Frame( -relief => 'groove', -borderwidth => 2 );
#Création de la barre du menu général
my $menu_gen = $barre_menu->Menubutton(
-text => 'Menu',
-font => '{Garamond} 10',
-tearoff => 0,
-menuitems => [
[ 'command' => 'Quitter',
-font => '{Garamond} 10',
-command => [\&Quitter, $ObjetConnexion],
]
]
);
# Création d'un cadre
my $frame1
= $fenetre->Frame()->pack( -side => "bottom", -padx => 0, -pady => 0 );
#Affichage du menu général à gauche
$menu_gen->pack( -side => 'left' );
#Affichage de la barre de menu en haut de la fenêtre
$barre_menu->pack( -side => 'top', -anchor => 'n', -fill => 'x' );
my $ObjImage = $fenetre->Photo(
-format => "png",
-file => "/home/seb/Desktop/Islo_people/logo.png"
);
my $bouton2 = $fenetre->Button( -image => $ObjImage )->pack();
#parcourir
my $chemin;
my $BoutonParcourir = $frame1->Button(
-text => 'Parcourir',
-command => [ \&Chemin, $fenetre, \$chemin ],
)->pack();
# Envoyer
my $BoutonEnvoyer = $frame1->Button(
-text => 'Envoyer',
-command => sub {
$ObjetConnexion->Transfert($chemin);
},
)->pack();
#my $status_var =0;
#$frame1->ProgressBar(
# -borderwidth => 10,
# -relief => 'sunken',
# -width => 35,
# -length => 500,
# -padx => 0,
# -pady => 0,
# -variable => \$status_var,
# -colors => [0, 'green'],
# -resolution => 0,
# -blocks => 50,
# -anchor => 'w',
# -from =>'0',
# -to => '100'
# )->pack(
# -padx => 10,
# -pady => 10,
## -fill => 'both'
# );
# La boucle dans laquelle la variable de ProgressBar change
#for (my $lostime = 0 ; $lostime < 101 ; $lostime += 5)
#{
# sleep 1 ;
# $status_var=$lostime ;
# l'instruction suivante permet la prise en compte
# des changements de valeurs de $status_var dans Perl/Tk,
# ici le widget Progressbar
# $fenetre->update;
# }
# sleep 5;
#print "Fin de l'exemple update \n";
# $fenetre->destroy;
#Création de notre barre de statut à l'aide d'un Label
#my $barre_statut = $fenetre->Label(-relief => 'groove', -text => "Islo people", -font => '{Garamond} 10');
#On l'ajoute en bas de la fenêtre afin de lui donner l'effet barre de statut
#$barre_statut->pack( -side => 'bottom', -fill => 'both');
MainLoop;
#Définition de la fonction de fermeture de l'application
sub Quitter {
my ( $ObjetConnexion ) = @_;
$ObjetConnexion->FermerConnexion();
exit(0);
}
sub Chemin {
my ( $fenetre, $RefChemin ) = @_;
${$RefChemin} = $fenetre->getOpenFile( -initialdir => '/home', );
return;
} |