]> git.zerfleddert.de Git - micropolis/blob - res/wbudget.tcl
use $(MAKE) in recursion to subdirectories
[micropolis] / res / wbudget.tcl
1 # Window: Budget, for Unix Micropolis
2 #
3 # Micropolis, Unix Version. This game was released for the Unix platform
4 # in or about 1990 and has been modified for inclusion in the One Laptop
5 # Per Child program. Copyright (C) 1989 - 2007 Electronic Arts Inc. If
6 # you need assistance with this program, you may contact:
7 # http://wiki.laptop.org/go/Micropolis or email micropolis@laptop.org.
8 #
9 # This program is free software: you can redistribute it and/or modify
10 # it under the terms of the GNU General Public License as published by
11 # the Free Software Foundation, either version 3 of the License, or (at
12 # your option) any later version.
13 #
14 # This program is distributed in the hope that it will be useful, but
15 # WITHOUT ANY WARRANTY; without even the implied warranty of
16 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
17 # General Public License for more details. You should have received a
18 # copy of the GNU General Public License along with this program. If
19 # not, see <http://www.gnu.org/licenses/>.
20 #
21 # ADDITIONAL TERMS per GNU GPL Section 7
22 #
23 # No trademark or publicity rights are granted. This license does NOT
24 # give you any right, title or interest in the trademark SimCity or any
25 # other Electronic Arts trademark. You may not distribute any
26 # modification of this program using the trademark SimCity or claim any
27 # affliation or association with Electronic Arts Inc. or its employees.
28 #
29 # Any propagation or conveyance of this program must include this
30 # copyright notice and these terms.
31 #
32 # If you convey this program (or any modifications of it) and assume
33 # contractual liability for the program to recipients of it, you agree
34 # to indemnify Electronic Arts for any liability that those contractual
35 # assumptions impose on Electronic Arts.
36 #
37 # You may not misrepresent the origins of this program; modified
38 # versions of the program must be marked as such and not identified as
39 # the original program.
40 #
41 # This disclaimer supplements the one included in the General Public
42 # License. TO THE FULLEST EXTENT PERMISSIBLE UNDER APPLICABLE LAW, THIS
43 # PROGRAM IS PROVIDED TO YOU "AS IS," WITH ALL FAULTS, WITHOUT WARRANTY
44 # OF ANY KIND, AND YOUR USE IS AT YOUR SOLE RISK. THE ENTIRE RISK OF
45 # SATISFACTORY QUALITY AND PERFORMANCE RESIDES WITH YOU. ELECTRONIC ARTS
46 # DISCLAIMS ANY AND ALL EXPRESS, IMPLIED OR STATUTORY WARRANTIES,
47 # INCLUDING IMPLIED WARRANTIES OF MERCHANTABILITY, SATISFACTORY QUALITY,
48 # FITNESS FOR A PARTICULAR PURPOSE, NONINFRINGEMENT OF THIRD PARTY
49 # RIGHTS, AND WARRANTIES (IF ANY) ARISING FROM A COURSE OF DEALING,
50 # USAGE, OR TRADE PRACTICE. ELECTRONIC ARTS DOES NOT WARRANT AGAINST
51 # INTERFERENCE WITH YOUR ENJOYMENT OF THE PROGRAM; THAT THE PROGRAM WILL
52 # MEET YOUR REQUIREMENTS; THAT OPERATION OF THE PROGRAM WILL BE
53 # UNINTERRUPTED OR ERROR-FREE, OR THAT THE PROGRAM WILL BE COMPATIBLE
54 # WITH THIRD PARTY SOFTWARE OR THAT ANY ERRORS IN THE PROGRAM WILL BE
55 # CORRECTED. NO ORAL OR WRITTEN ADVICE PROVIDED BY ELECTRONIC ARTS OR
56 # ANY AUTHORIZED REPRESENTATIVE SHALL CREATE A WARRANTY. SOME
57 # JURISDICTIONS DO NOT ALLOW THE EXCLUSION OF OR LIMITATIONS ON IMPLIED
58 # WARRANTIES OR THE LIMITATIONS ON THE APPLICABLE STATUTORY RIGHTS OF A
59 # CONSUMER, SO SOME OR ALL OF THE ABOVE EXCLUSIONS AND LIMITATIONS MAY
60 # NOT APPLY TO YOU.
61 global BudgetWindows
62 set n [Unique]
63 set win .budget$n
64 set BudgetWindows [linsert $BudgetWindows 0 $win]
65
66 LinkWindow $head.budget $win
67 LinkWindow $win.head $head
68
69 catch "destroy $win"
70 toplevel $win -screen $display
71
72 SetHelp $win Budget
73
74 global [set var $win.visible]
75 set $var 0
76
77 wm title $win {Micropolis Budget}
78 wm iconname $win {Micropolis Budget}
79 wm group $win $head
80 wm geometry $win 600x600+5+5
81 wm positionfrom $win user
82 wm maxsize $win 700 700
83 wm minsize $win 150 200
84 wm protocol $win delete "BudgetCancel"
85 wm transient $win $head
86
87 label $win.label\
88 -borderwidth 1\
89 -relief raised\
90 -font [Font $win Large]\
91 -text {Micropolis has paused to set the budget...}
92
93 SetHelp $win.label Budget.Label
94
95 frame $win.rightframe\
96 -borderwidth 0
97
98 frame $win.rightframe.roadframe\
99 -borderwidth 1\
100 -relief raised
101
102 SetHelp $win.rightframe.roadframe Budget.Road
103
104 label $win.rightframe.roadframe.label\
105 -relief flat\
106 -font [Font $win Large]\
107 -text { Road Fund }
108
109 frame $win.rightframe.roadframe.frame\
110 -borderwidth 2\
111 -relief flat
112 LinkWindow $win.road $win.rightframe.roadframe.frame
113
114 label $win.rightframe.roadframe.frame.request\
115 -relief flat\
116 -font [Font $win Medium]\
117 -text {100% of $0 = $0}
118
119 scale $win.rightframe.roadframe.frame.fund\
120 -command {BudgetSetRoadFund}\
121 -font [Font $win Medium]\
122 -orient horizontal\
123 -showvalue false\
124 -sliderlength 15\
125 -to 100\
126 -width 10
127
128 pack append $win.rightframe.roadframe.frame\
129 $win.rightframe.roadframe.frame.fund {top frame center expand fill} \
130 $win.rightframe.roadframe.frame.request {top frame center expand fill}
131
132 pack append $win.rightframe.roadframe\
133 $win.rightframe.roadframe.label {top frame center fillx} \
134 $win.rightframe.roadframe.frame {top frame center expand fill}
135
136
137 frame $win.rightframe.fireframe\
138 -borderwidth 1\
139 -relief raised
140
141 SetHelp $win.rightframe.fireframe Budget.Fire
142
143 label $win.rightframe.fireframe.label\
144 -font [Font $win Large]\
145 -relief flat\
146 -text {Fire Fund}
147
148 frame $win.rightframe.fireframe.frame\
149 -borderwidth 2\
150 -relief flat
151 LinkWindow $win.fire $win.rightframe.fireframe.frame
152
153 label $win.rightframe.fireframe.frame.request\
154 -relief flat\
155 -font [Font $win Medium]\
156 -text {100% of $0 = $0}
157
158 scale $win.rightframe.fireframe.frame.fund\
159 -command {BudgetSetFireFund}\
160 -font [Font $win Medium]\
161 -orient horizontal\
162 -showvalue false\
163 -sliderlength 15\
164 -to 100\
165 -width 10
166
167 pack append $win.rightframe.fireframe.frame\
168 $win.rightframe.fireframe.frame.fund {top frame center expand fill} \
169 $win.rightframe.fireframe.frame.request {top frame center expand fill}
170
171 pack append $win.rightframe.fireframe\
172 $win.rightframe.fireframe.label {top frame center fillx} \
173 $win.rightframe.fireframe.frame {top frame center expand fill}
174
175
176 frame $win.rightframe.policeframe\
177 -borderwidth 1\
178 -relief raised
179
180 SetHelp $win.rightframe.policeframe Budget.Police
181
182 label $win.rightframe.policeframe.label\
183 -relief flat\
184 -font [Font $win Large]\
185 -text {Police Fund}
186
187 frame $win.rightframe.policeframe.frame\
188 -borderwidth 2\
189 -relief flat
190 LinkWindow $win.police $win.rightframe.policeframe.frame
191
192 label $win.rightframe.policeframe.frame.request\
193 -relief flat\
194 -font [Font $win Medium]\
195 -text {100% of $0 = $0}
196
197 scale $win.rightframe.policeframe.frame.fund\
198 -command {BudgetSetPoliceFund}\
199 -font [Font $win Medium]\
200 -orient horizontal\
201 -showvalue false\
202 -sliderlength 15\
203 -to 100\
204 -width 10
205
206 pack append $win.rightframe.policeframe.frame\
207 $win.rightframe.policeframe.frame.fund {top frame center expand fill}\
208 $win.rightframe.policeframe.frame.request {top frame center expand fill}
209
210 pack append $win.rightframe.policeframe\
211 $win.rightframe.policeframe.label {top frame center fillx} \
212 $win.rightframe.policeframe.frame {top frame center expand fill}
213
214
215 frame $win.rightframe.taxrateframe\
216 -borderwidth 1\
217 -relief raised
218
219 SetHelp $win.rightframe.taxrateframe Budget.Tax
220
221 label $win.rightframe.taxrateframe.label\
222 -relief flat\
223 -font [Font $win Large]\
224 -text {Tax Rate}
225
226 frame $win.rightframe.taxrateframe.frame\
227 -borderwidth 2\
228 -relief flat
229
230 label $win.rightframe.taxrateframe.frame.rate\
231 -relief flat\
232 -font [Font $win Medium]\
233 -text {7%}
234 LinkWindow $win.taxlabel $win.rightframe.taxrateframe.frame.rate
235
236 scale $win.rightframe.taxrateframe.frame.scale\
237 -command {BudgetSetTaxRate}\
238 -font [Font $win Medium]\
239 -orient horizontal\
240 -showvalue false\
241 -sliderlength 15\
242 -to 20\
243 -width 10
244 LinkWindow $win.taxrate $win.rightframe.taxrateframe.frame.scale
245
246 pack append $win.rightframe.taxrateframe.frame\
247 $win.rightframe.taxrateframe.frame.scale {top frame center expand fill}\
248 $win.rightframe.taxrateframe.frame.rate {top frame center expand fill}
249
250 pack append $win.rightframe.taxrateframe\
251 $win.rightframe.taxrateframe.label {top frame center fillx} \
252 $win.rightframe.taxrateframe.frame {top frame center expand fill}
253
254
255 pack append $win.rightframe\
256 $win.rightframe.roadframe {top frame center expand fill} \
257 $win.rightframe.fireframe {top frame center expand fill} \
258 $win.rightframe.policeframe {top frame center expand fill} \
259 $win.rightframe.taxrateframe {top frame center expand fill}
260
261
262 frame $win.leftframe\
263 -borderwidth 0
264
265 frame $win.leftframe.collectedframe\
266 -borderwidth 1\
267 -relief raised
268
269 SetHelp $win.leftframe.collectedframe Budget.Collected
270
271 label $win.leftframe.collectedframe.label\
272 -relief flat\
273 -font [Font $win Large]\
274 -text {Taxes Collected}
275
276 label $win.leftframe.collectedframe.value\
277 -relief flat\
278 -font [Font $win Medium]\
279 -text {$0}
280 LinkWindow $win.collected $win.leftframe.collectedframe.value
281
282 pack append $win.leftframe.collectedframe\
283 $win.leftframe.collectedframe.label {top frame center fillx} \
284 $win.leftframe.collectedframe.value {top frame center expand fill}
285
286 frame $win.leftframe.cashflowframe\
287 -borderwidth 1\
288 -relief raised
289 LinkWindow $win.cashflow $win.leftframe.cashflowframe.value
290
291 SetHelp $win.leftframe.cashflowframe Budget.Flow
292
293 label $win.leftframe.cashflowframe.label\
294 -relief flat\
295 -font [Font $win Large]\
296 -text {Cash Flow}
297
298 label $win.leftframe.cashflowframe.value\
299 -relief flat\
300 -font [Font $win Medium]\
301 -text {+$0}
302
303 pack append $win.leftframe.cashflowframe\
304 $win.leftframe.cashflowframe.label {top frame center fillx} \
305 $win.leftframe.cashflowframe.value {top frame center expand fill}
306
307 frame $win.leftframe.previousframe\
308 -borderwidth 1\
309 -relief raised
310 LinkWindow $win.previous $win.leftframe.previousframe.value
311
312 SetHelp $win.leftframe.previousframe Budget.Previous
313
314 label $win.leftframe.previousframe.label\
315 -relief flat\
316 -font [Font $win Large]\
317 -text {Previous Funds}
318
319 label $win.leftframe.previousframe.value\
320 -relief flat\
321 -font [Font $win Medium]\
322 -text {$0}
323
324 pack append $win.leftframe.previousframe\
325 $win.leftframe.previousframe.label {top frame center fillx} \
326 $win.leftframe.previousframe.value {top frame center expand fill}
327
328 frame $win.leftframe.currentframe\
329 -borderwidth 1\
330 -relief raised
331 LinkWindow $win.current $win.leftframe.currentframe.value
332
333 SetHelp $win.leftframe.currentframe Budget.Current
334
335 label $win.leftframe.currentframe.label\
336 -relief flat\
337 -font [Font $win Large]\
338 -text {Current Funds}
339
340 label $win.leftframe.currentframe.value\
341 -relief flat\
342 -font [Font $win Medium]\
343 -text {$0}
344
345 pack append $win.leftframe.currentframe\
346 $win.leftframe.currentframe.label {top frame center fillx} \
347 $win.leftframe.currentframe.value {top frame center expand fill}
348
349 pack append $win.leftframe\
350 $win.leftframe.collectedframe {top frame center expand fill} \
351 $win.leftframe.cashflowframe {top frame center expand fill} \
352 $win.leftframe.previousframe {top frame center expand fill} \
353 $win.leftframe.currentframe {top frame center expand fill}
354
355 frame $win.bottomframe\
356 -borderwidth 0
357
358 frame $win.bottomframe.voteframe \
359 -borderwidth 0 \
360 -relief raised
361 LinkWindow $win.voteframe $win.bottomframe.voteframe
362
363 button $win.bottomframe.voteframe.continue\
364 -text {Continue With These Figures}\
365 -font [Font $win Large]\
366 -relief raised \
367 -command "DoVote $win Budget BudgetContinue {}"
368 LinkWindow $win.vote $win.bottomframe.voteframe.continue
369
370 SetHelp $win.bottomframe.voteframe Budget.Continue
371
372 pack append $win.bottomframe.voteframe\
373 $win.bottomframe.voteframe.continue {top frame center fillx}
374
375 BindVotingButton $win $win.bottomframe.voteframe.continue Budget
376
377 button $win.bottomframe.reset\
378 -text {Reset to Original Figures}\
379 -font [Font $win Large]\
380 -command "BudgetReset"
381
382 SetHelp $win.bottomframe.reset Budget.Reset
383
384 button $win.bottomframe.cancel\
385 -text {Cancel Changes and Continue}\
386 -font [Font $win Large]\
387 -command "BudgetCancel"
388
389 SetHelp $win.bottomframe.cancel Budget.Cancel
390
391 button $win.bottomframe.timer\
392 -text {Timeout in 0 seconds ...}\
393 -font [Font $win Large]\
394 -command "ToggleBudgetTimer"
395 LinkWindow $win.timer $win.bottomframe.timer
396
397 SetHelp $win.bottomframe.timer Budget.AutoCancel
398
399 button $win.bottomframe.autobudget\
400 -text {Enable Auto Budget}\
401 -font [Font $win Large]\
402 -command "ToggleAutoBudget"
403 LinkWindow $win.autobudget $win.bottomframe.autobudget
404
405 SetHelp $win.bottomframe.autobudget Budget.AutoBudget
406
407 pack append $win.bottomframe\
408 $win.bottomframe.voteframe {top frame center expand fillx}\
409 $win.bottomframe.reset {top frame center expand fillx}\
410 $win.bottomframe.cancel {top frame center expand fillx}\
411 $win.bottomframe.timer {top frame center expand fillx}\
412 $win.bottomframe.autobudget {top frame center expand fillx}
413
414 pack append $win\
415 $win.label {top frame center fillx} \
416 $win.bottomframe {bottom frame center fillx} \
417 $win.leftframe {left frame center expand fill} \
418 $win.rightframe {right frame center expand fill}
419
420 sim UpdateBudget
421
422 update idletasks
423
Impressum, Datenschutz