]> cvs.zerfleddert.de Git - micropolis/blob - res/wgraph.tcl
prevent forking a huge number of player processes by limiting them to
[micropolis] / res / wgraph.tcl
1 # Window: Graphs of money, crime, etc, 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 GraphWindows
62 set n [Unique]
63 set parent [WindowLink $head.col2]
64 set win $parent.graph$n
65 set GraphWindows [linsert $GraphWindows 0 $win]
66
67 LinkWindow $head.graph $win
68 LinkWindow $win.head $head
69 LinkWindow $win.parent $parent
70 LinkWindow $win.top $win
71
72 catch "destroy $win"
73 frame $win
74
75 SetHelp $win Graph
76
77 bind $win <Visibility> {[WindowLink %W.graphview] Visible [string compare %s FullyObscured]}
78 bind $win <Map> {[WindowLink %W.graphview] Visible 1}
79 bind $win <Unmap> {[WindowLink %W.graphview] Visible 0}
80
81 #wm title $win {Micropolis Graph}
82 #wm iconname $win {Micropolis Graph}
83 #wm group $win $head
84 #wm geometry $win 550x200+440+730
85 #wm positionfrom $win user
86 #wm withdraw $win
87 #wm maxsize $win 1000 500
88 #wm minsize $win 150 85
89 #wm protocol $win delete "DeleteWindow graph GraphWindows"
90
91
92 frame $win.centerframe\
93 -borderwidth 1\
94 -relief raised
95
96 SetHelp $win.centerframe Graph.View
97
98 graphview $win.centerframe.graph\
99 -font [Font $win Small]
100 LinkWindow $win.centerframe.graph.pallet $win.leftframe
101 LinkWindow $win.graphview $win.centerframe.graph
102
103 pack append $win.centerframe\
104 $win.centerframe.graph {top frame center fill expand}
105
106 frame $win.leftframe\
107 -borderwidth 1\
108 -relief raised
109
110 frame $win.leftframe.left\
111 -borderwidth 0
112
113 button $win.leftframe.left.res\
114 -bitmap "@images/grres.xpm"\
115 -font [Font $win Medium]\
116 -borderwidth 0\
117 -relief flat\
118 -padx 0\
119 -pady 0\
120 -text {}\
121 -command "GraphPallet $win 0"
122
123 SetHelp $win.leftframe.left.res Graph.Res
124
125 button $win.leftframe.left.com\
126 -bitmap "@images/grcom.xpm"\
127 -font [Font $win Medium]\
128 -borderwidth 0\
129 -relief flat\
130 -padx 0\
131 -pady 0\
132 -text {}\
133 -command "GraphPallet $win 1"
134
135 SetHelp $win.leftframe.left.com Graph.Com
136
137 button $win.leftframe.left.ind\
138 -bitmap "@images/grind.xpm"\
139 -font [Font $win Medium]\
140 -borderwidth 0\
141 -relief flat\
142 -padx 0\
143 -pady 0\
144 -text {}\
145 -command "GraphPallet $win 2"
146
147 SetHelp $win.leftframe.left.ind Graph.Ind
148
149 pack append $win.leftframe.left\
150 $win.leftframe.left.res {top frame center padx 2 pady 2} \
151 $win.leftframe.left.com {top frame center padx 2 pady 2} \
152 $win.leftframe.left.ind {top frame center padx 2 pady 2}
153
154 frame $win.leftframe.right\
155 -borderwidth 0
156
157 button $win.leftframe.right.money\
158 -bitmap "@images/grmony.xpm"\
159 -font [Font $win Medium]\
160 -borderwidth 0\
161 -relief flat\
162 -padx 0\
163 -pady 0\
164 -text {}\
165 -command "GraphPallet $win 3"
166
167 SetHelp $win.leftframe.right.money Graph.Money
168
169 button $win.leftframe.right.crime\
170 -bitmap "@images/grcrim.xpm"\
171 -font [Font $win Medium]\
172 -borderwidth 0\
173 -relief flat\
174 -padx 0\
175 -pady 0\
176 -text {}\
177 -command "GraphPallet $win 4"
178
179 SetHelp $win.leftframe.right.crime Graph.Crime
180
181 button $win.leftframe.right.pollution\
182 -bitmap "@images/grpoll.xpm"\
183 -font [Font $win Medium]\
184 -borderwidth 0\
185 -relief flat\
186 -padx 0\
187 -pady 0\
188 -text {}\
189 -command "GraphPallet $win 5"
190
191 SetHelp $win.leftframe.right.pollution Graph.Pollution
192
193 pack append $win.leftframe.right\
194 $win.leftframe.right.money {top frame center padx 2 pady 2} \
195 $win.leftframe.right.crime {top frame center padx 2 pady 2} \
196 $win.leftframe.right.pollution {top frame center padx 2 pady 2}
197
198 frame $win.leftframe.year\
199 -borderwidth 0
200
201 button $win.leftframe.year.year10\
202 -bitmap "@images/gr10.xpm"\
203 -font [Font $win Medium]\
204 -borderwidth 0\
205 -relief flat\
206 -padx 0\
207 -pady 0\
208 -text {}\
209 -command "GraphYearPallet $win 0"
210
211 SetHelp $win.leftframe.year.year10 Graph.10Years
212
213 button $win.leftframe.year.year120\
214 -bitmap "@images/gr120.xpm"\
215 -font [Font $win Medium]\
216 -borderwidth 0\
217 -relief flat\
218 -padx 0\
219 -pady 0\
220 -text {}\
221 -command "GraphYearPallet $win 1"
222
223 SetHelp $win.leftframe.year.year120 Graph.120Years
224
225 pack append $win.leftframe.year\
226 $win.leftframe.year.year10 {top frame center} \
227 $win.leftframe.year.year120 {top frame center} \
228
229 pack append $win.leftframe\
230 $win.leftframe.year {top frame center padx 2 pady 2} \
231 $win.leftframe.left {left frame center} \
232 $win.leftframe.right {right frame center} \
233
234
235 frame $win.bottomframe\
236 -borderwidth 0
237
238 SetHelp $win.bottomframe Graph.Dismiss
239
240 button $win.bottomframe.button\
241 -font [Font $win Large]\
242 -text {Dismiss Graph}\
243 -borderwidth 1 \
244 -command "pack unpack $win"
245
246 pack append $win.bottomframe\
247 $win.bottomframe.button {top frame center expand fillx}
248
249 pack append $win\
250 $win.bottomframe {bottom frame center fillx}\
251 $win.leftframe {left frame center filly} \
252 $win.centerframe {right frame center expand fill}
253
254 InitGraph $win
255
256 update idletasks
Impressum, Datenschutz