line |
stmt |
bran |
cond |
sub |
pod |
time |
code |
1
|
|
|
|
|
|
|
package Games::Sudoku::SudokuTk; |
2
|
|
|
|
|
|
|
|
3
|
1
|
|
|
1
|
|
57222
|
use 5.008008; |
|
1
|
|
|
|
|
5
|
|
|
1
|
|
|
|
|
50
|
|
4
|
|
|
|
|
|
|
#use strict; |
5
|
1
|
|
|
1
|
|
8
|
use warnings; |
|
1
|
|
|
|
|
2
|
|
|
1
|
|
|
|
|
179
|
|
6
|
|
|
|
|
|
|
|
7
|
|
|
|
|
|
|
require Exporter; |
8
|
|
|
|
|
|
|
|
9
|
|
|
|
|
|
|
our @ISA = qw(Exporter); |
10
|
|
|
|
|
|
|
|
11
|
|
|
|
|
|
|
# Items to export into callers namespace by default. Note: do not export |
12
|
|
|
|
|
|
|
# names by default without a very good reason. Use EXPORT_OK instead. |
13
|
|
|
|
|
|
|
# Do not simply export all your public functions/methods/constants. |
14
|
|
|
|
|
|
|
|
15
|
|
|
|
|
|
|
# This allows declaration use Games::Sudoku::SudokuTk ':all'; |
16
|
|
|
|
|
|
|
# If you do not need this, moving things directly into @EXPORT or @EXPORT_OK |
17
|
|
|
|
|
|
|
# will save memory. |
18
|
|
|
|
|
|
|
our %EXPORT_TAGS = ( 'all' => [ qw( |
19
|
|
|
|
|
|
|
|
20
|
|
|
|
|
|
|
) ] ); |
21
|
|
|
|
|
|
|
|
22
|
|
|
|
|
|
|
our @EXPORT_OK = ( @{ $EXPORT_TAGS{'all'} } ); |
23
|
|
|
|
|
|
|
|
24
|
|
|
|
|
|
|
our @EXPORT = qw( |
25
|
|
|
|
|
|
|
|
26
|
|
|
|
|
|
|
); |
27
|
|
|
|
|
|
|
|
28
|
|
|
|
|
|
|
our $VERSION = '0.14'; |
29
|
|
|
|
|
|
|
sudoku(); |
30
|
|
|
|
|
|
|
# Preloaded methods go here. |
31
|
|
|
|
|
|
|
|
32
|
|
|
|
|
|
|
1; |
33
|
|
|
|
|
|
|
|
34
|
|
|
|
|
|
|
sub sudoku { |
35
|
1
|
|
|
1
|
|
1135
|
use Tk; |
|
0
|
|
|
|
|
|
|
|
0
|
|
|
|
|
|
|
36
|
|
|
|
|
|
|
use Tk::Balloon; |
37
|
|
|
|
|
|
|
use Games::Sudoku::menu; |
38
|
|
|
|
|
|
|
use Games::Sudoku::affichgrille; |
39
|
|
|
|
|
|
|
use Games::Sudoku::tr1; |
40
|
|
|
|
|
|
|
use Games::Sudoku::conf; |
41
|
|
|
|
|
|
|
conf(); |
42
|
|
|
|
|
|
|
foreach $a (@INC) { # we verifie that drawings are here |
43
|
|
|
|
|
|
|
$retour = opendir('DIRECTORY',$a . '/Games/Sudoku/photos'); |
44
|
|
|
|
|
|
|
$b = $a; |
45
|
|
|
|
|
|
|
if ($retour) { |
46
|
|
|
|
|
|
|
last; |
47
|
|
|
|
|
|
|
} |
48
|
|
|
|
|
|
|
} |
49
|
|
|
|
|
|
|
closedir('DIRECTORY'); |
50
|
|
|
|
|
|
|
#print ("fichier " . "$b" . "\n"); |
51
|
|
|
|
|
|
|
$system = $^O; # we find the system |
52
|
|
|
|
|
|
|
#print "system $system\n"; |
53
|
|
|
|
|
|
|
$pref = "$b" . "/Games/Sudoku"; |
54
|
|
|
|
|
|
|
@precarre = ""; |
55
|
|
|
|
|
|
|
@wprecarre = ""; |
56
|
|
|
|
|
|
|
# Definition of main window |
57
|
|
|
|
|
|
|
$langue = ""; |
58
|
|
|
|
|
|
|
$dessin = "chiffres"; |
59
|
|
|
|
|
|
|
$MaxiSudoku = 0; # 0 non choisi 1 choisi 2 autre choisi |
60
|
|
|
|
|
|
|
$Normal = 0; # idem |
61
|
|
|
|
|
|
|
$Enfant = 0; # idem |
62
|
|
|
|
|
|
|
$Simpliste = 0; # idem |
63
|
|
|
|
|
|
|
$Ardu = 0; # idem |
64
|
|
|
|
|
|
|
$trait = "sudoku"; |
65
|
|
|
|
|
|
|
$main = MainWindow->new(); |
66
|
|
|
|
|
|
|
menu($trait); |
67
|
|
|
|
|
|
|
if ($skin == 1) { |
68
|
|
|
|
|
|
|
# --------------------------------------------------------- |
69
|
|
|
|
|
|
|
# frame1 |frame3 frame31 | |
70
|
|
|
|
|
|
|
# frame2 |---------------------- |
71
|
|
|
|
|
|
|
# frame4 |frame32 |34frame35 | |
72
|
|
|
|
|
|
|
# |frame33 | |frame37 | |
73
|
|
|
|
|
|
|
# |frame38 | | | |
74
|
|
|
|
|
|
|
# | | | | |
75
|
|
|
|
|
|
|
# | | | | |
76
|
|
|
|
|
|
|
#-----------------------------------| | | | |
77
|
|
|
|
|
|
|
# frame5 | | | | |
78
|
|
|
|
|
|
|
#-----------------------------------| | | | |
79
|
|
|
|
|
|
|
# frame6 frame7 |frame8 | | | | |
80
|
|
|
|
|
|
|
#-----------------------------------|---------------------- |
81
|
|
|
|
|
|
|
# frame9 |frame36 | |
82
|
|
|
|
|
|
|
#---------------------------------------------------------- |
83
|
|
|
|
|
|
|
$frame1 = $main->Frame(-background => $couleurfond)->pack(); |
84
|
|
|
|
|
|
|
$frame2 = $frame1->Frame(-background => $couleurfond)->pack(-side => 'left'); |
85
|
|
|
|
|
|
|
$frame3 = $frame1->Frame(-background => $couleurfond)->pack(-side => 'right'); |
86
|
|
|
|
|
|
|
$frame4 = $frame2->Frame(-background => $couleurfond)->pack(); |
87
|
|
|
|
|
|
|
$canvas = $frame4->Canvas(-width => 500, -height => 300); |
88
|
|
|
|
|
|
|
$frame4->Photo("imagesudoku", -file => $pref . '/photos/sudoku.bmp'); |
89
|
|
|
|
|
|
|
$canvas->createImage(250 ,0,-anchor => 'n', -image => "imagesudoku"); |
90
|
|
|
|
|
|
|
$canvas->pack; |
91
|
|
|
|
|
|
|
|
92
|
|
|
|
|
|
|
$frame5 = $frame2->Frame(-background => $couleurfond)->pack(); |
93
|
|
|
|
|
|
|
$frame5->Photo('imagenormal', -file => $pref . '/photos/button/' . $langue . '/normal.bmp'); |
94
|
|
|
|
|
|
|
$rbutton1= $frame5->Button(-command => [\&CType,'Normal'], |
95
|
|
|
|
|
|
|
-image => "imagenormal")->pack(-side => 'left'); |
96
|
|
|
|
|
|
|
my $balloon1 = $rbutton1->Balloon(); |
97
|
|
|
|
|
|
|
$balloon1->attach($rbutton1, -msg => tr1("Grille 9x9 normale")); |
98
|
|
|
|
|
|
|
$frame6 = $frame2->Frame(-background => $couleurfond)->pack(); |
99
|
|
|
|
|
|
|
$frame7 = $frame6->Frame(-background => $couleurfond)->pack(-side => 'left'); |
100
|
|
|
|
|
|
|
$frame7->Photo('imagesimpliste', -file => $pref . '/photos/button/' . $langue . '/simpliste.bmp'); |
101
|
|
|
|
|
|
|
$rbutton2= $frame7->Button(-command => [\&CType,'Simpliste'], |
102
|
|
|
|
|
|
|
-image => "imagesimpliste")->pack(-side => 'left'); |
103
|
|
|
|
|
|
|
my $balloon2 = $rbutton2->Balloon(); |
104
|
|
|
|
|
|
|
$balloon2->attach($rbutton2, -msg => tr1("Grille 6x6 facile")); |
105
|
|
|
|
|
|
|
$frame8 = $frame6->Frame(-background => $couleurfond)->pack(-side => 'left'); |
106
|
|
|
|
|
|
|
$frame8->Photo('imageardu', -file => $pref . '/photos/button/' . $langue . '/ardu.bmp'); |
107
|
|
|
|
|
|
|
$rbutton3= $frame8->Button(-command => [\&CType,'Ardu'], |
108
|
|
|
|
|
|
|
-image => "imageardu")->pack(-side => 'left'); |
109
|
|
|
|
|
|
|
my $balloon3 = $rbutton3->Balloon(); |
110
|
|
|
|
|
|
|
$balloon3->attach($rbutton3, -msg => tr1("Grille 8x8 pas facile")); |
111
|
|
|
|
|
|
|
$frame9 = $frame2->Frame(-background => $couleurfond)->pack(); |
112
|
|
|
|
|
|
|
$frame9->Photo('imagedifficile', -file => $pref . '/photos/button/' . $langue . '/difficile.bmp'); |
113
|
|
|
|
|
|
|
$rbutton6= $frame9->Button(-command => [\&CType,'Difficile'], |
114
|
|
|
|
|
|
|
-image => "imagedifficile")->pack(-side => 'left'); |
115
|
|
|
|
|
|
|
my $balloon6 = $rbutton6->Balloon(); |
116
|
|
|
|
|
|
|
$balloon6->attach($rbutton6, -msg => tr1("Grille 10x10 difficile")); |
117
|
|
|
|
|
|
|
$frame9->Photo('imagemaxisudoku', -file => $pref . '/photos/button/' . $langue . '/maxisudoku.bmp'); |
118
|
|
|
|
|
|
|
$rbutton4= $frame9->Button(-command => [\&CType,'MaxiSudoku'], |
119
|
|
|
|
|
|
|
-image => "imagemaxisudoku")->pack(-side => 'left'); |
120
|
|
|
|
|
|
|
my $balloon4 = $rbutton4->Balloon(); |
121
|
|
|
|
|
|
|
$balloon4->attach($rbutton4, -msg => tr1("Grille 16x16 très difficile")); |
122
|
|
|
|
|
|
|
$frame10 = $frame2->Frame(-background => $couleurfond)->pack(); |
123
|
|
|
|
|
|
|
my $frame11 = $frame10->Frame(-background => $couleurfond)->pack(-side => 'left'); |
124
|
|
|
|
|
|
|
my $button6 = $frame11->Label(-text => ' ', -background => $couleurfond, |
125
|
|
|
|
|
|
|
-height => 2, -width => 50)->pack; |
126
|
|
|
|
|
|
|
$frame12 = $frame10->Frame->pack(-side => 'right'); |
127
|
|
|
|
|
|
|
$frame12->Photo('imagetresdifficile', -file => $pref . '/photos/button/' . |
128
|
|
|
|
|
|
|
$langue . '/tresdifficile.bmp'); |
129
|
|
|
|
|
|
|
$rbutton7 = $frame12->Button(-command => [\&CType,'Tresdifficile'], |
130
|
|
|
|
|
|
|
-image => "imagetresdifficile")->pack(-side => 'left'); |
131
|
|
|
|
|
|
|
my $balloon7 = $rbutton7->Balloon(); |
132
|
|
|
|
|
|
|
$balloon7->attach($rbutton7, -msg => tr1("Grille 12x12 très difficile")); |
133
|
|
|
|
|
|
|
$frame12->Photo('imageenfant', -file => $pref . '/photos/button/' . $langue . '/enfant.bmp'); |
134
|
|
|
|
|
|
|
$rbutton5 = $frame12->Button(-command => [\&CType,'Enfant'], |
135
|
|
|
|
|
|
|
-image => "imageenfant")->pack(-side => 'left'); |
136
|
|
|
|
|
|
|
my $balloon5 = $rbutton5->Balloon(); |
137
|
|
|
|
|
|
|
$balloon5->attach($rbutton5, -msg => tr1("Grille 4x4 très facile\navec dessins d'animaux\npar défaut")); |
138
|
|
|
|
|
|
|
my $frame31 = $frame3->Frame(-height => 3, -background => $couleurfond)->pack(); |
139
|
|
|
|
|
|
|
my $frame32 = $frame3->Frame(-background => $couleurfond)->pack(); |
140
|
|
|
|
|
|
|
my $frame33 = $frame32->Frame(-background => $couleurfond)->pack(-side => 'left'); |
141
|
|
|
|
|
|
|
my $frame34 = $frame32->Frame(-background => $couleurfond)->pack(-side => 'left'); |
142
|
|
|
|
|
|
|
my $frame35 = $frame32->Frame(-background => $couleurfond)->pack(-side => 'left'); |
143
|
|
|
|
|
|
|
my $canvas3 = $frame34->Canvas('-width' => 5, '-height' => 500, -background => 'black')->pack(); |
144
|
|
|
|
|
|
|
my $frame36 = $frame32->Frame(-height => 3, -background => $couleurfond)->pack(); |
145
|
|
|
|
|
|
|
my $frame37 = $frame32->Frame(-background => $couleurfond)->pack(-side => 'left'); |
146
|
|
|
|
|
|
|
my $frame38 = $frame32->Frame(-background => $couleurfond)->pack(-side => 'left'); |
147
|
|
|
|
|
|
|
|
148
|
|
|
|
|
|
|
# Left column ------------------------------- |
149
|
|
|
|
|
|
|
|
150
|
|
|
|
|
|
|
$frame33->Photo('imageresoudre', -file => $pref . '/photos/button/' . $langue . '/resoudre.bmp'); |
151
|
|
|
|
|
|
|
$rbutton10 = $frame33->Button(-command => [\&affichgrille,"R"], |
152
|
|
|
|
|
|
|
#-text => "Resoudre une grille")->pack(); |
153
|
|
|
|
|
|
|
-image => "imageresoudre")->pack(); |
154
|
|
|
|
|
|
|
my $balloon10 = $rbutton10->Balloon(); |
155
|
|
|
|
|
|
|
$balloon10->attach($rbutton10, -msg => tr1("Saisir une grille\npour la résoudre")); |
156
|
|
|
|
|
|
|
$frame33->Photo('imagecreer', -file => $pref . '/photos/button/' . $langue . '/creer.bmp'); |
157
|
|
|
|
|
|
|
$rbutton12 = $frame33->Button(-command => [\&creation_grille], |
158
|
|
|
|
|
|
|
#-text => "Creer une grille")->pack(); |
159
|
|
|
|
|
|
|
-image => "imagecreer")->pack(); |
160
|
|
|
|
|
|
|
my $balloon12 = $rbutton12->Balloon(); |
161
|
|
|
|
|
|
|
$balloon12->attach($rbutton12, -msg => tr1("Créer une grille soi même")); |
162
|
|
|
|
|
|
|
$frame33->Photo('imagechiffres', -file => $pref . '/photos/button/' . $langue . '/chiffres.bmp'); |
163
|
|
|
|
|
|
|
if ($dessin ne "chiffres") { |
164
|
|
|
|
|
|
|
$rbutton13 = $frame33->Button(-command => [sub{$dessin = "chiffres"}], |
165
|
|
|
|
|
|
|
#-text => "Résoudre avec\ndes chiffres")->pack(); |
166
|
|
|
|
|
|
|
-image => "imagechiffres")->pack(); |
167
|
|
|
|
|
|
|
} else { |
168
|
|
|
|
|
|
|
$rbutton13 = $frame33->Label(-background => $couleurfond, |
169
|
|
|
|
|
|
|
#-text => "Résoudre avec\ndes chiffres")->pack(); |
170
|
|
|
|
|
|
|
-image => "imagechiffres")->pack(); |
171
|
|
|
|
|
|
|
} |
172
|
|
|
|
|
|
|
my $balloon13 = $rbutton13->Balloon(); |
173
|
|
|
|
|
|
|
$balloon13->attach($rbutton13, -msg => tr1("Il y a des chiffres\n dans les cases")); |
174
|
|
|
|
|
|
|
$frame38->Photo('imagecouleurs', -file => $pref . '/photos/button/' . $langue . '/couleurs.bmp'); |
175
|
|
|
|
|
|
|
if ($dessin ne "couleurs") { |
176
|
|
|
|
|
|
|
$rbutton21 = $frame33->Button(-command => [sub{$dessin = "couleurs"}], |
177
|
|
|
|
|
|
|
#-text => "Résoudre avec\ndes lettres")->pack(); |
178
|
|
|
|
|
|
|
-image => "imagecouleurs")->pack(); |
179
|
|
|
|
|
|
|
} else { |
180
|
|
|
|
|
|
|
$rbutton21 = $frame33->Label( |
181
|
|
|
|
|
|
|
#-text => "Résoudre avec\ndes lettres")->pack(); |
182
|
|
|
|
|
|
|
-image => "imagecouleurs")->pack(); |
183
|
|
|
|
|
|
|
} |
184
|
|
|
|
|
|
|
my $balloon21 = $rbutton21->Balloon(); |
185
|
|
|
|
|
|
|
$balloon21->attach($rbutton21, -msg => tr1("Il y a des couleurs\n dans les cases")); |
186
|
|
|
|
|
|
|
my $Label5 = $frame33->Label(-text => tr1('Langues'), |
187
|
|
|
|
|
|
|
-font => "Nimbus 20", |
188
|
|
|
|
|
|
|
-background => $couleurfond, |
189
|
|
|
|
|
|
|
-height => 2, -width => 10)->pack; |
190
|
|
|
|
|
|
|
$frame33->Photo('imagefr', -file => $pref . '/photos/button/fr/drapeau.gif'); |
191
|
|
|
|
|
|
|
if ($langue ne "fr") { |
192
|
|
|
|
|
|
|
$rbutton14 = $frame33->Button(-command => [\&changelang,"fr"], |
193
|
|
|
|
|
|
|
#-text => "Français")->pack(); |
194
|
|
|
|
|
|
|
-background => $couleurfond, |
195
|
|
|
|
|
|
|
-image => "imagefr")->pack(); |
196
|
|
|
|
|
|
|
} else { |
197
|
|
|
|
|
|
|
$rbutton14 = $frame33->Label(-background => $couleurfond, |
198
|
|
|
|
|
|
|
#-text => "Français")->pack(); |
199
|
|
|
|
|
|
|
-background => $couleurfond, |
200
|
|
|
|
|
|
|
-image => "imagefr")->pack(); |
201
|
|
|
|
|
|
|
} |
202
|
|
|
|
|
|
|
my $balloon14 = $rbutton14->Balloon(); |
203
|
|
|
|
|
|
|
$balloon14->attach($rbutton14, -msg => tr1("français")); |
204
|
|
|
|
|
|
|
$frame33->Photo('imagege', -file => $pref . '/photos/button/ge/drapeau.gif'); |
205
|
|
|
|
|
|
|
if ($langue ne "ge") { |
206
|
|
|
|
|
|
|
$rbutton15 = $frame33->Button(-command => [\&changelang,"ge"], |
207
|
|
|
|
|
|
|
-background => $couleurfond, |
208
|
|
|
|
|
|
|
-image => "imagege")->pack(); |
209
|
|
|
|
|
|
|
} else { |
210
|
|
|
|
|
|
|
$rbutton15 = $frame33->Label(-background => $couleurfond, |
211
|
|
|
|
|
|
|
-background => $couleurfond, |
212
|
|
|
|
|
|
|
-image => "imagege")->pack(); |
213
|
|
|
|
|
|
|
} |
214
|
|
|
|
|
|
|
my $balloon15 = $rbutton15->Balloon(); |
215
|
|
|
|
|
|
|
$balloon15->attach($rbutton15, -msg => tr1("allemand")); |
216
|
|
|
|
|
|
|
$frame33->Photo('imageit', -file => $pref . '/photos/button/it/drapeau.gif'); |
217
|
|
|
|
|
|
|
if ($langue ne "it") { |
218
|
|
|
|
|
|
|
$rbutton16 = $frame33->Button(-command => [\&changelang,"it"], |
219
|
|
|
|
|
|
|
-background => $couleurfond, |
220
|
|
|
|
|
|
|
-image => "imageit")->pack(); |
221
|
|
|
|
|
|
|
} else { |
222
|
|
|
|
|
|
|
$rbutton16 = $frame33->Label(-background => $couleurfond, |
223
|
|
|
|
|
|
|
-background => $couleurfond, |
224
|
|
|
|
|
|
|
-image => "imageit")->pack(); |
225
|
|
|
|
|
|
|
} |
226
|
|
|
|
|
|
|
my $balloon16 = $rbutton16->Balloon(); |
227
|
|
|
|
|
|
|
$balloon16->attach($rbutton16, -msg => tr1("italien")); |
228
|
|
|
|
|
|
|
|
229
|
|
|
|
|
|
|
# Right column ------------------------------ |
230
|
|
|
|
|
|
|
|
231
|
|
|
|
|
|
|
$frame35->Photo('imagenewgrille', -file => $pref . '/photos/button/' . $langue . '/newgrille.bmp'); |
232
|
|
|
|
|
|
|
$rbutton17 = $frame35->Button(-command => [\&affichgrille,"C"], |
233
|
|
|
|
|
|
|
#-text => "Demander\nune nouvelle grille")->pack(); |
234
|
|
|
|
|
|
|
-image => "imagenewgrille")->pack(); |
235
|
|
|
|
|
|
|
my $balloon17 = $rbutton17->Balloon(); |
236
|
|
|
|
|
|
|
$balloon17->attach($rbutton17, -msg => tr1("Demander une nouvelle grille")); |
237
|
|
|
|
|
|
|
$frame33->Photo('imageanimaux', -file => $pref . '/photos/button/' . $langue . '/animaux.bmp'); |
238
|
|
|
|
|
|
|
my $button18 = $frame35->Label(-text => ' ', -background => $couleurfond, |
239
|
|
|
|
|
|
|
-height => 4, -width => 10)->pack; |
240
|
|
|
|
|
|
|
if ($dessin ne "animaux") { |
241
|
|
|
|
|
|
|
$rbutton19 = $frame35->Button(-command => [sub{$dessin = "animaux"}], |
242
|
|
|
|
|
|
|
#-text => "Résoudre avec\ndes animaux")->pack(); |
243
|
|
|
|
|
|
|
-image => "imageanimaux")->pack(); |
244
|
|
|
|
|
|
|
} else { |
245
|
|
|
|
|
|
|
$rbutton19 = $frame35->Label( |
246
|
|
|
|
|
|
|
#-text => "Résoudre avec\ndes animaux")->pack(); |
247
|
|
|
|
|
|
|
-image => "imageanimaux")->pack(); |
248
|
|
|
|
|
|
|
} |
249
|
|
|
|
|
|
|
my $balloon19 = $rbutton19->Balloon(); |
250
|
|
|
|
|
|
|
$balloon19->attach($rbutton19, -msg => tr1("Il y a des animaux\n dans les cases")); |
251
|
|
|
|
|
|
|
$frame37->Photo('imagelettres', -file => $pref . '/photos/button/' . $langue . '/lettres.bmp'); |
252
|
|
|
|
|
|
|
if ($dessin ne "lettres") { |
253
|
|
|
|
|
|
|
$rbutton20 = $frame35->Button(-command => [sub{$dessin = "lettres"}], |
254
|
|
|
|
|
|
|
#-text => "Résoudre avec\ndes lettres")->pack(); |
255
|
|
|
|
|
|
|
-image => "imagelettres")->pack(); |
256
|
|
|
|
|
|
|
} else { |
257
|
|
|
|
|
|
|
$rbutton20 = $frame35->Label( |
258
|
|
|
|
|
|
|
#-text => "Résoudre avec\ndes lettres")->pack(); |
259
|
|
|
|
|
|
|
-image => "imagelettres")->pack(); |
260
|
|
|
|
|
|
|
} |
261
|
|
|
|
|
|
|
my $balloon20 = $rbutton20->Balloon(); |
262
|
|
|
|
|
|
|
$balloon20->attach($rbutton20, -msg => tr1("Il y a des lettres\n dans les cases")); |
263
|
|
|
|
|
|
|
#my $Label6 = $frame35->Label(-text => ' ', -background => $couleurfond, |
264
|
|
|
|
|
|
|
# -height => 4, -width => 10)->pack; |
265
|
|
|
|
|
|
|
my $Label6 = $frame35->Label(-text => ' ', -background => $couleurfond, |
266
|
|
|
|
|
|
|
-height => 4, -width => 10)->pack; |
267
|
|
|
|
|
|
|
$frame35->Photo('imageen', -file => $pref . '/photos/button/en/drapeau.gif'); |
268
|
|
|
|
|
|
|
if ($langue ne "en") { |
269
|
|
|
|
|
|
|
$rbutton22 = $frame35->Button(-command => [\&changelang,"en"], |
270
|
|
|
|
|
|
|
-background => $couleurfond, |
271
|
|
|
|
|
|
|
#-text => "English")->pack(); |
272
|
|
|
|
|
|
|
-image => "imageen")->pack(); |
273
|
|
|
|
|
|
|
} else { |
274
|
|
|
|
|
|
|
$rbutton22 = $frame35->Label( |
275
|
|
|
|
|
|
|
#-text => "English")->pack(); |
276
|
|
|
|
|
|
|
-background => $couleurfond, |
277
|
|
|
|
|
|
|
-image => "imageen")->pack(); |
278
|
|
|
|
|
|
|
} |
279
|
|
|
|
|
|
|
my $balloon22 = $rbutton22->Balloon(); |
280
|
|
|
|
|
|
|
$balloon22->attach($rbutton22, -msg => tr1("anglais")); |
281
|
|
|
|
|
|
|
$frame35->Photo('imagesp', -file => $pref . '/photos/button/sp/drapeau.gif'); |
282
|
|
|
|
|
|
|
if ($langue ne "sp") { |
283
|
|
|
|
|
|
|
$rbutton23 = $frame35->Button(-command => [\&changelang,"sp"], |
284
|
|
|
|
|
|
|
-background => $couleurfond, |
285
|
|
|
|
|
|
|
-image => "imagesp")->pack(); |
286
|
|
|
|
|
|
|
} else { |
287
|
|
|
|
|
|
|
$rbutton23 = $frame35->Label( |
288
|
|
|
|
|
|
|
-background => $couleurfond, |
289
|
|
|
|
|
|
|
-image => "imagesp")->pack(); |
290
|
|
|
|
|
|
|
} |
291
|
|
|
|
|
|
|
my $balloon23 = $rbutton23->Balloon(); |
292
|
|
|
|
|
|
|
$balloon23->attach($rbutton23, -msg => tr1("espagnol")); |
293
|
|
|
|
|
|
|
$frame35->Photo('imagept', -file => $pref . '/photos/button/pt/drapeau.gif'); |
294
|
|
|
|
|
|
|
if ($langue ne "pt") { |
295
|
|
|
|
|
|
|
$rbutton24 = $frame35->Button(-command => [\&changelang,"pt"], |
296
|
|
|
|
|
|
|
-background => $couleurfond, |
297
|
|
|
|
|
|
|
-image => "imagept")->pack(); |
298
|
|
|
|
|
|
|
} else { |
299
|
|
|
|
|
|
|
$rbutton24 = $frame35->Label( |
300
|
|
|
|
|
|
|
-background => $couleurfond, |
301
|
|
|
|
|
|
|
-image => "imagept")->pack(); |
302
|
|
|
|
|
|
|
} |
303
|
|
|
|
|
|
|
my $balloon24 = $rbutton24->Balloon(); |
304
|
|
|
|
|
|
|
$balloon24->attach($rbutton24, -msg => tr1("portugais")); |
305
|
|
|
|
|
|
|
} else { # normal look |
306
|
|
|
|
|
|
|
$canvas = $main->Label(-text => 'Sudoku', |
307
|
|
|
|
|
|
|
-height => 4, -width => 10, |
308
|
|
|
|
|
|
|
-font => "Nimbus 80")->pack; |
309
|
|
|
|
|
|
|
$framed1 = $main->Frame->pack(); |
310
|
|
|
|
|
|
|
$framed2 = $main->Frame->pack(); |
311
|
|
|
|
|
|
|
$canvas1 = $framed1->Canvas('-width' => 100, |
312
|
|
|
|
|
|
|
-height => 80); |
313
|
|
|
|
|
|
|
$framed1->Photo('image1', -file => $pref . '/photos/20.gif'); |
314
|
|
|
|
|
|
|
$canvas1->createImage(0, 0, -anchor => 'nw', |
315
|
|
|
|
|
|
|
-image => image1); |
316
|
|
|
|
|
|
|
$canvas1->pack; |
317
|
|
|
|
|
|
|
$rbutton1= $framed1->Radiobutton(-text |
318
|
|
|
|
|
|
|
=> tr1('Normal'), |
319
|
|
|
|
|
|
|
-font => "Nimbus 20", |
320
|
|
|
|
|
|
|
-value => 1, # valeur transmise de la variable |
321
|
|
|
|
|
|
|
-command => [\&CType], |
322
|
|
|
|
|
|
|
-variable => \$Normal |
323
|
|
|
|
|
|
|
)->pack(-side => 'left'); |
324
|
|
|
|
|
|
|
$rbutton2= $framed1->Radiobutton(-text |
325
|
|
|
|
|
|
|
=> tr1('Simpliste'), |
326
|
|
|
|
|
|
|
-font => "Nimbus 20", |
327
|
|
|
|
|
|
|
-value => 1, |
328
|
|
|
|
|
|
|
-command => [\&CType], |
329
|
|
|
|
|
|
|
-variable => \$Simpliste |
330
|
|
|
|
|
|
|
)->pack(-side => 'left'); |
331
|
|
|
|
|
|
|
$rbutton3= $framed1->Radiobutton(-text |
332
|
|
|
|
|
|
|
=> tr1('Ardu'), |
333
|
|
|
|
|
|
|
-font => "Nimbus 20", |
334
|
|
|
|
|
|
|
-value => 1, |
335
|
|
|
|
|
|
|
-command => [\&CType], |
336
|
|
|
|
|
|
|
-variable => \$Ardu |
337
|
|
|
|
|
|
|
)->pack(-side => 'left'); |
338
|
|
|
|
|
|
|
$rbutton4= $framed2->Radiobutton(-text |
339
|
|
|
|
|
|
|
=> tr1('MaxiSudoku'), |
340
|
|
|
|
|
|
|
-font => "Nimbus 20", |
341
|
|
|
|
|
|
|
-value => 1, |
342
|
|
|
|
|
|
|
-command => [\&CType], |
343
|
|
|
|
|
|
|
-variable => \$MaxiSudoku |
344
|
|
|
|
|
|
|
)->pack(-side => 'left'); |
345
|
|
|
|
|
|
|
$rbutton5= $framed2->Radiobutton(-text |
346
|
|
|
|
|
|
|
=> tr1('Enfant'), |
347
|
|
|
|
|
|
|
-font => "Nimbus 20", |
348
|
|
|
|
|
|
|
-value => 1, |
349
|
|
|
|
|
|
|
-command => [\&CType], |
350
|
|
|
|
|
|
|
-variable => \$Enfant |
351
|
|
|
|
|
|
|
)->pack(-side => 'left'); |
352
|
|
|
|
|
|
|
$rbutton6= $framed2->Radiobutton(-text |
353
|
|
|
|
|
|
|
=> tr1('Difficile'), |
354
|
|
|
|
|
|
|
-font => "Nimbus 20", |
355
|
|
|
|
|
|
|
-value => 1, |
356
|
|
|
|
|
|
|
-command => [\&CType], |
357
|
|
|
|
|
|
|
-variable => \$Difficile |
358
|
|
|
|
|
|
|
)->pack(-side => 'left'); |
359
|
|
|
|
|
|
|
$rbutton7= $framed2->Radiobutton(-text |
360
|
|
|
|
|
|
|
=> tr1('Très difficile'), |
361
|
|
|
|
|
|
|
-font => "Nimbus 20", |
362
|
|
|
|
|
|
|
-value => 1, |
363
|
|
|
|
|
|
|
-command => [\&CType], |
364
|
|
|
|
|
|
|
-variable => \$Tresdifficile |
365
|
|
|
|
|
|
|
)->pack(-side => 'left'); |
366
|
|
|
|
|
|
|
} |
367
|
|
|
|
|
|
|
$wcanvas = 1; |
368
|
|
|
|
|
|
|
MainLoop; |
369
|
|
|
|
|
|
|
} |
370
|
|
|
|
|
|
|
__END__ |