1 # Window: Head (global controls & menus), for Unix Micropolis. 
   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. 
   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. 
  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/>. 
  21 #             ADDITIONAL TERMS per GNU GPL Section 7 
  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. 
  29 # Any propagation or conveyance of this program must include this 
  30 # copyright notice and these terms. 
  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. 
  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. 
  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 
  66 if {[catch "toplevel $win -screen $display"]} { 
  67   puts stderr 
"Couldn't open X11 display \"$display\"." 
  73 global HeadPanelHeight
 
  76 global NoticePanelWidth
 
  77 global NoticePanelHeight
 
  79 set visual 
[winfo screenvisual 
$win] 
  80 set depth 
[winfo screendepth 
$win] 
  81 set screenwidth 
[winfo screenwidth 
$win] 
  82 set screenheight 
[winfo screenheight 
$win] 
  86 if {$screenwidth < $initialwidth} { 
  87         set initialwidth 
$screenwidth 
  90 if {$screenheight < $initialheight} { 
  91         set initialheight 
$screenheight 
  95 if {!(("$visual" == "pseudocolor") ||
 
  96       ("$visual" == "truecolor") ||
 
  97       (("$visual" == "staticgray") && 
 100   puts stderr 
"Micropolis can't find an appropriate visual on display \"$display\"." 
 105 set HeadWindows 
[linsert $HeadWindows 0 $win] 
 109 LinkWindow 
$win.head 
$win 
 110 LinkWindow 
$win.editor 
{} 
 111 LinkWindow 
$win.map 
{} 
 112 LinkWindow 
$win.graph 
{} 
 113 LinkWindow 
$win.budget 
{} 
 114 LinkWindow 
$win.evaluation 
{} 
 115 LinkWindow 
$win.splash 
{} 
 116 LinkWindow 
$win.scenario 
{} 
 117 LinkWindow 
$win.
file {} 
 118 LinkWindow 
$win.config 
{} 
 119 LinkWindow 
$win.notice 
{} 
 120 LinkWindow 
$win.ask 
{} 
 122 tk_bindForTraversal 
$win 
 123 bind $win <F10
> {tk_firstMenu 
%W
}  
 124 bind $win <Alt-Key
> {tk_traverseToMenu 
%W 
%A
}  
 126 wm title 
$win "Micropolis Controls" 
 127 wm iconname 
$win {Micropolis Controls
} 
 128 wm geometry 
$win ${initialwidth
}x
${initialheight
}+0+0 
 129 #wm positionfrom $win user 
 131 wm maxsize 
$win $screenwidth $screenheight 
 132 wm minsize 
$win 100 100 
 133 wm protocol 
$win delete 
"DeleteHeadWindow $win ;" 
 134 wm fullscreen 
$win on
 
 136 global $win.postedMenu
 
 140 tk_bindForTraversal 
$win.col1
 
 142 LinkWindow 
$win.col1 
$win.col1
 
 145   -width $HeadPanelWidth\ 
 146   -height $HeadPanelHeight 
 147 tk_bindForTraversal 
$win.col1.w1
 
 149 frame $win.col1.w1.f1
\ 
 152 tk_bindForTraversal 
$win.col1.w1.f1
 
 153 bind $win.col1.w1.f1 
<F10
> {tk_firstMenu 
%W
}  
 154 bind $win.col1.w1.f1 
<Alt-Key
> {tk_traverseToMenu 
%W 
%A
}  
 156 SetHelp 
$win.col1.w1.f1.micropolis Head.MicropolisMenu
 
 158 menubutton $win.col1.w1.f1.micropolis
\ 
 159   -menu $win.col1.w1.f1.micropolis.m
\ 
 161   -font [Font 
$win Medium
]\ 
 162   -variable $win.postedMenu
 
 163 tk_bindForTraversal 
$win.col1.w1.f1.micropolis
 
 164 bind $win.col1.w1.f1.micropolis 
<F10
> {tk_firstMenu 
%W
}  
 165 bind $win.col1.w1.f1.micropolis 
<Alt-Key
> {tk_traverseToMenu 
%W 
%A
}  
 167 tk_menus 
$win $win.col1.w1.f1.micropolis
 
 169 menu $win.col1.w1.f1.micropolis.m
\ 
 170   -font [Font 
$win Medium
] 
 171 tk_bindForTraversal 
$win.col1.w1.f1.micropolis.m
 
 172 bind $win.col1.w1.f1.micropolis.m 
<F10
> {tk_firstMenu 
%W
}  
 173 bind $win.col1.w1.f1.micropolis.m 
<Alt-Key
> {tk_traverseToMenu 
%W 
%A
}  
 174   $win.col1.w1.f1.micropolis.m add command
\ 
 176     -command "UIShowPicture 300" 
 177   $win.col1.w1.f1.micropolis.m add command
\ 
 179     -command "UISaveCity $win" 
 180   $win.col1.w1.f1.micropolis.m add command
\ 
 181     -label {Save City as...
}\ 
 182     -command "UISaveCityAs $win" 
 183   if {[sim MultiPlayerMode
]} { 
 184     $win.col1.w1.f1.micropolis.m add command
\ 
 185       -label {Add Player...
}\ 
 186       -command "UIShowPlayer $win" 
 188   $win.col1.w1.f1.micropolis.m add command
\ 
 189     -label {Choose City
!}\ 
 190     -command "UISelectCity $win" 
 191   $win.col1.w1.f1.micropolis.m add command
\ 
 192     -label {Quit Playing
!}\ 
 193     -command "UIQuit $win" 
 195 SetHelp 
$win.col1.w1.f1.
options Head.OptionsMenu
 
 197 menubutton $win.col1.w1.f1.
options\ 
 198   -menu $win.col1.w1.f1.
options.m
\ 
 200   -font [Font 
$win Medium
]\ 
 201   -variable $win.postedMenu
 
 202 tk_bindForTraversal 
$win.col1.w1.f1.
options 
 203 bind $win.col1.w1.f1.
options <F10
> {tk_firstMenu 
%W
}  
 204 bind $win.col1.w1.f1.
options <Alt-Key
> {tk_traverseToMenu 
%W 
%A
}  
 206 tk_menus 
$win $win.col1.w1.f1.
options 
 208 menu $win.col1.w1.f1.
options.m
\ 
 209   -font [Font 
$win Medium
] 
 210 tk_bindForTraversal 
$win.col1.w1.f1.
options.m
 
 211 bind $win.col1.w1.f1.
options.m 
<F10
> {tk_firstMenu 
%W
}  
 212 bind $win.col1.w1.f1.
options.m 
<Alt-Key
> {tk_traverseToMenu 
%W 
%A
}  
 213   $win.col1.w1.f1.
options.m add 
checkbutton\ 
 214     -label {Auto Budget
}\ 
 215     -variable AutoBudget
\ 
 216     -command {sim AutoBudget 
$AutoBudget} 
 217   $win.col1.w1.f1.
options.m add 
checkbutton\ 
 218     -label {Auto Bulldoze
}\ 
 219     -variable AutoBulldoze
\ 
 220     -command {sim AutoBulldoze 
$AutoBulldoze} 
 221   $win.col1.w1.f1.
options.m add 
checkbutton\ 
 224     -command {sim Disasters 
$Disasters} 
 225   $win.col1.w1.f1.
options.m add 
checkbutton\ 
 228     -command {sim Sound 
$Sound} 
 229   $win.col1.w1.f1.
options.m add 
checkbutton\ 
 231     -variable DoAnimation
\ 
 232     -command {sim DoAnimation 
$DoAnimation} 
 233   $win.col1.w1.f1.
options.m add 
checkbutton\ 
 235     -variable DoMessages
\ 
 236     -command {sim DoMessages 
$DoMessages} 
 237   $win.col1.w1.f1.
options.m add 
checkbutton\ 
 240     -command {sim DoNotices 
$DoNotices} 
 242 SetHelp 
$win.col1.w1.f1.disasters Head.DisastersMenu
 
 244 menubutton $win.col1.w1.f1.disasters
\ 
 245   -menu $win.col1.w1.f1.disasters.m
\ 
 247   -font [Font 
$win Medium
]\ 
 248   -variable $win.postedMenu
 
 249 tk_bindForTraversal 
$win.col1.w1.f1.disasters
 
 250 bind $win.col1.w1.f1.disasters 
<F10
> {tk_firstMenu 
%W
}  
 251 bind $win.col1.w1.f1.disasters 
<Alt-Key
> {tk_traverseToMenu 
%W 
%A
}  
 253 tk_menus 
$win $win.col1.w1.f1.disasters
 
 255 menu $win.col1.w1.f1.disasters.m
\ 
 256   -font [Font 
$win Medium
] 
 257 tk_bindForTraversal 
$win.col1.w1.f1.disasters.m
 
 258 bind $win.col1.w1.f1.disasters.m 
<F10
> {tk_firstMenu 
%W
}  
 259 bind $win.col1.w1.f1.disasters.m 
<Alt-Key
> {tk_traverseToMenu 
%W 
%A
}  
 260   $win.col1.w1.f1.disasters.m add command
\ 
 262     -command "UIDisaster $win \"UIMakeMonster\" \"release a monster?\"" 
 263   $win.col1.w1.f1.disasters.m add command
\ 
 265     -command "UIDisaster $win \"sim MakeFire\" \"start a fire?\"" 
 266   $win.col1.w1.f1.disasters.m add command
\ 
 268     -command "UIDisaster $win \"sim MakeFlood\" \"bring on a flood?\"" 
 269   $win.col1.w1.f1.disasters.m add command
\ 
 271     -command "UIDisaster $win \"sim MakeMeltdown\" \"have a nuclear meltdown?\"" 
 272   if {[sim HasAirCrash
]} { 
 273     $win.col1.w1.f1.disasters.m add command
\ 
 275       -command "UIDisaster $win \"sim MakeAirCrash\" \"crash an airplane?\"" 
 277   $win.col1.w1.f1.disasters.m add command
\ 
 279     -command "UIDisaster $win \"sim MakeTornado\" \"spin up a tornado?\"" 
 280   $win.col1.w1.f1.disasters.m add command
\ 
 282     -command "UIDisaster $win \"sim MakeEarthquake\" \"cause an earthquake?\"" 
 284 SetHelp 
$win.col1.w1.f1.priority Head.PriorityMenu
 
 286 menubutton $win.col1.w1.f1.priority
\ 
 287   -menu $win.col1.w1.f1.priority.m
\ 
 289   -font [Font 
$win Medium
]\ 
 290   -variable $win.postedMenu
 
 291 tk_bindForTraversal 
$win.col1.w1.f1.priority
 
 292 bind $win.col1.w1.f1.priority 
<F10
> {tk_firstMenu 
%W
}  
 293 bind $win.col1.w1.f1.priority 
<Alt-Key
> {tk_traverseToMenu 
%W 
%A
}  
 295 tk_menus 
$win $win.col1.w1.f1.priority
 
 297 menu $win.col1.w1.f1.priority.m
\ 
 298   -font [Font 
$win Medium
] 
 299 tk_bindForTraversal 
$win.col1.w1.f1.priority.m
 
 300 bind $win.col1.w1.f1.priority.m 
<F10
> {tk_firstMenu 
%W
}  
 301 bind $win.col1.w1.f1.priority.m 
<Alt-Key
> {tk_traverseToMenu 
%W 
%A
}  
 302   $win.col1.w1.f1.priority.m add 
radiobutton\ 
 304     -command {SetPriority 
4}\ 
 307   $win.col1.w1.f1.priority.m add 
radiobutton\ 
 309     -command {SetPriority 
3}\ 
 312   $win.col1.w1.f1.priority.m add 
radiobutton\ 
 314     -command {SetPriority 
2}\ 
 317   $win.col1.w1.f1.priority.m add 
radiobutton\ 
 319     -command {SetPriority 
1}\ 
 322   $win.col1.w1.f1.priority.m add 
radiobutton\ 
 324     -command {SetPriority 
0}\ 
 327   $win.col1.w1.f1.priority.m add 
checkbutton\ 
 329     -command {TogglePause
}\ 
 332 SetHelp 
$win.col1.w1.f1.windows Head.WindowsMenu
 
 334 menubutton $win.col1.w1.f1.windows
\ 
 335   -menu $win.col1.w1.f1.windows.m
\ 
 337   -font [Font 
$win Medium
]\ 
 338   -variable $win.postedMenu
 
 339 tk_bindForTraversal 
$win.col1.w1.f1.windows
 
 340 bind $win.col1.w1.f1.windows 
<F10
> {tk_firstMenu 
%W
}  
 341 bind $win.col1.w1.f1.windows 
<Alt-Key
> {tk_traverseToMenu 
%W 
%A
}  
 343 tk_menus 
$win $win.col1.w1.f1.windows
 
 345 menu $win.col1.w1.f1.windows.m
\ 
 346   -font [Font 
$win Medium
] 
 347 tk_bindForTraversal 
$win.col1.w1.f1.windows.m
 
 348 bind $win.col1.w1.f1.windows.m 
<F10
> {tk_firstMenu 
%W
}  
 349 bind $win.col1.w1.f1.windows.m 
<Alt-Key
> {tk_traverseToMenu 
%W 
%A
}  
 350   $win.col1.w1.f1.windows.m add command
\ 
 352     -command "UIShowBudgetAndWait" 
 353   $win.col1.w1.f1.windows.m add command
\ 
 355     -command "ShowEvaluationOf $win" 
 356   $win.col1.w1.f1.windows.m add command
\ 
 358     -command "ShowGraphOf $win" 
 359   #$win.col1.w1.f1.windows.m add command\ 
 361   #  -command "ShowMapOf $win" 
 362   #$win.col1.w1.f1.windows.m add command\ 
 364   #  -command "ShowEditorOf $win" 
 365   #$win.col1.w1.f1.windows.m add command\ 
 367   #  -command "ShowFrobOf $win" 
 368   #$win.col1.w1.f1.windows.m add command\ 
 370   #  -command "NewMapOf $win" 
 371   #$win.col1.w1.f1.windows.m add command\ 
 372   #  -label {New Editor}\ 
 373   #  -command "NewEditorOf $win" 
 375 LinkWindow 
$win.m0 
$win.col1.w1.f1.micropolis.m
 
 376 LinkWindow 
$win.m1 
$win.col1.w1.f1.
options.m
 
 377 LinkWindow 
$win.m2 
$win.col1.w1.f1.disasters.m
 
 378 LinkWindow 
$win.m3 
$win.col1.w1.f1.priority.m
 
 379 LinkWindow 
$win.m4 
$win.col1.w1.f1.windows.m
 
 381 LinkWindow 
$win.b0 
$win.col1.w1.f1.micropolis
 
 382 LinkWindow 
$win.b1 
$win.col1.w1.f1.
options 
 383 LinkWindow 
$win.b2 
$win.col1.w1.f1.disasters
 
 384 LinkWindow 
$win.b3 
$win.col1.w1.f1.priority
 
 385 LinkWindow 
$win.b4 
$win.col1.w1.f1.windows
 
 387 pack append $win.col1.w1.f1
\ 
 388   $win.col1.w1.f1.micropolis    
{left 
frame nw
} \ 
 389   $win.col1.w1.f1.
options       {left 
frame nw
} \ 
 390   $win.col1.w1.f1.disasters     
{left 
frame nw
} \ 
 391   $win.col1.w1.f1.priority      
{left 
frame nw
} \ 
 392   $win.col1.w1.f1.windows       
{left 
frame nw
} 
 394 frame $win.col1.w1.f2
\ 
 395   -background #BFBFBF \ 
 399 frame $win.col1.w1.f2.f1
\ 
 400   -background #BFBFBF \ 
 404 frame $win.col1.w1.f2.f1.
frame \ 
 405   -background #BFBFBF \ 
 409 canvas $win.col1.w1.f2.f1.
frame.demand
\ 
 412   -background #BFBFBF \ 
 414 LinkWindow 
$win.demand 
$win.col1.w1.f2.f1.
frame.demand
 
 415 $win.col1.w1.f2.f1.
frame.demand create 
bitmap 41 4 \ 
 417   -bitmap "@images/demandg.xpm" \ 
 419 $win.col1.w1.f2.f1.
frame.demand create rectangle 
-10 -10 1 1 \ 
 421   -fill [Color 
$win #00ff00 #000000] 
 422 $win.col1.w1.f2.f1.
frame.demand create rectangle 
-10 -10 1 1 \ 
 424   -fill [Color 
$win #0000ff #000000] 
 425 $win.col1.w1.f2.f1.
frame.demand create rectangle 
-10 -10 1 1 \ 
 427   -fill [Color 
$win #ffff00 #000000] 
 428 $win.col1.w1.f2.f1.
frame.demand create 
bitmap 0 4 \ 
 430   -bitmap "@images/micropoliss.xpm" \ 
 433 $win.col1.w1.f2.f1.
frame.demand 
bind micropolis 
<1> {TogglePause
} 
 434 $win.col1.w1.f2.f1.
frame.demand 
bind micropolis 
<2> {TogglePause
} 
 435 $win.col1.w1.f2.f1.
frame.demand 
bind micropolis 
<3> {TogglePause
} 
 436 $win.col1.w1.f2.f1.
frame.demand 
bind picture 
<1> "ToggleEvaluationOf $win" 
 437 $win.col1.w1.f2.f1.
frame.demand 
bind picture 
<2> "ToggleEvaluationOf $win" 
 438 $win.col1.w1.f2.f1.
frame.demand 
bind picture 
<3> "ToggleEvaluationOf $win" 
 439 $win.col1.w1.f2.f1.
frame.demand 
bind r 
<1> "ToggleEvaluationOf $win" 
 440 $win.col1.w1.f2.f1.
frame.demand 
bind r 
<2> "ToggleEvaluationOf $win" 
 441 $win.col1.w1.f2.f1.
frame.demand 
bind r 
<3> "ToggleEvaluationOf $win" 
 442 $win.col1.w1.f2.f1.
frame.demand 
bind c 
<1> "ToggleEvaluationOf $win" 
 443 $win.col1.w1.f2.f1.
frame.demand 
bind c 
<2> "ToggleEvaluationOf $win" 
 444 $win.col1.w1.f2.f1.
frame.demand 
bind c 
<3> "ToggleEvaluationOf $win" 
 445 $win.col1.w1.f2.f1.
frame.demand 
bind i 
<1> "ToggleEvaluationOf $win" 
 446 $win.col1.w1.f2.f1.
frame.demand 
bind i 
<2> "ToggleEvaluationOf $win" 
 447 $win.col1.w1.f2.f1.
frame.demand 
bind i 
<3> "ToggleEvaluationOf $win" 
 449 SetHelp 
$win.col1.w1.f2.f1.
frame.demand Head.Demand
 
 451 frame $win.col1.w1.f2.f1.
frame.graphframe 
\ 
 452   -background #BFBFBF \ 
 456 graphview 
$win.col1.w1.f2.f1.
frame.graphframe.graph
\ 
 457   -background #BFBFBF \ 
 458   -font [Font 
$win Tiny
] 
 459 $win.col1.w1.f2.f1.
frame.graphframe.graph Range 
10 
 460 $win.col1.w1.f2.f1.
frame.graphframe.graph Mask 
7 
 461 LinkWindow 
$win.graphview 
$win.col1.w1.f2.f1.
frame.graphframe.graph
 
 462 bind $win.col1.w1.f2.f1.
frame.graphframe.graph 
<ButtonPress
> "ToggleGraphOf $win" 
 465 SetHelp 
$win.col1.w1.f2.f1.
frame.graphframe.graph Head.Graph
 
 467 pack append $win.col1.w1.f2.f1.
frame.graphframe 
\ 
 468   $win.col1.w1.f2.f1.
frame.graphframe.graph     
{left expand fill
} 
 470 pack append $win.col1.w1.f2.f1.
frame \ 
 471   $win.col1.w1.f2.f1.
frame.demand               
{left 
frame sw padx 
4} \ 
 472   $win.col1.w1.f2.f1.
frame.graphframe   
{right 
frame center expand fill
} 
 474 frame $win.col1.w1.f2.f1.
info\ 
 475   -background #BFBFBF \ 
 479 dateview 
$win.col1.w1.f2.f1.
info.date
\ 
 480   -background #BFBFBF \ 
 482   -font [Font 
$win Medium
] 
 483 LinkWindow 
$win.date 
$win.col1.w1.f2.f1.
info.date
 
 485 SetHelp 
$win.col1.w1.f2.f1.
info.date Head.Date
 
 487 label $win.col1.w1.f2.f1.
info.fundslabel
\ 
 488   -background #BFBFBF \ 
 490   -font [Font 
$win Medium
]\ 
 494 LinkWindow 
$win.funds 
$win.col1.w1.f2.f1.
info.fundslabel
 
 495 bind $win.col1.w1.f2.f1.
info.fundslabel 
<ButtonPress
> "UIShowBudgetAndWait" 
 497 SetHelp 
$win.col1.w1.f2.f1.
info.fundslabel Head.Funds
 
 499 label $win.col1.w1.f2.f1.
info.rate
\ 
 500   -background #BFBFBF \ 
 502   -font [Font 
$win Medium
]\ 
 503   -text {Tax Rate
: 7%} \ 
 506 LinkWindow 
$win.taxlabel 
$win.col1.w1.f2.f1.
info.rate
 
 507 bind $win.col1.w1.f2.f1.
info.rate 
<ButtonPress
> "UIShowBudgetAndWait" 
 510 scale $win.col1.w1.f2.f1.
info.
scale\ 
 511   -background #BFBFBF \ 
 512   -command {SetTaxRate
}\ 
 515   -font [Font 
$win Medium
]\ 
 518 $win.col1.w1.f2.f1.
info.
scale set 7 
 519 LinkWindow 
$win.taxrate 
$win.col1.w1.f2.f1.
info.
scale 
 522 pack append $win.col1.w1.f2.f1.
info \ 
 523   $win.col1.w1.f2.f1.
info.date          
{top 
frame nw
} \ 
 524   $win.col1.w1.f2.f1.
info.fundslabel    
{top 
frame nw
} \ 
 525   $win.col1.w1.f2.f1.
info.rate          
{top 
frame nw
} \ 
 526   $win.col1.w1.f2.f1.
info.
scale         {top 
frame nw fill expand
} 
 528 pack append $win.col1.w1.f2.f1 
\ 
 529   $win.col1.w1.f2.f1.
frame              {left 
frame nw expand fill
} \ 
 530   $win.col1.w1.f2.f1.
info               {left 
frame nw
} 
 532 frame $win.col1.w1.f2.f2
\ 
 535 tk_bindForTraversal 
$win.col1.w1.f2.f2
 
 536 bind $win.col1.w1.f2.f2 
<F10
> {tk_firstMenu 
%W
}  
 537 bind $win.col1.w1.f2.f2 
<Alt-Key
> {tk_traverseToMenu 
%W 
%A
}  
 539 SetHelp 
$win.col1.w1.f2.f2 Head.Log
 
 541 scrollbar $win.col1.w1.f2.f2.scroll
\ 
 542   -command "$win.col1.w1.f2.f2.text yview" \ 
 545 SetHelp 
$win.col1.w1.f2.f2.scroll Head.Scrollbar
 
 547 text $win.col1.w1.f2.f2.
text \ 
 548   -yscroll "$win.col1.w1.f2.f2.scroll set" \ 
 554   -font [Font 
$win Text
] 
 555 LinkWindow 
$win.
text $win.col1.w1.f2.f2.
text 
 557 $win.col1.w1.f2.f2.
text tag configure status 
\ 
 558   -font [Font 
$win Message
] 
 560 $win.col1.w1.f2.f2.
text tag configure 
message \ 
 561   -font [Font 
$win Message
] \ 
 562   -foreground #ffffff \ 
 565 $win.col1.w1.f2.f2.
text tag configure alert 
\ 
 566   -font [Font 
$win Alert
] \ 
 567   -foreground [Color 
$win #ff3f3f #000000] 
 569 pack append $win.col1.w1.f2.f2 
\ 
 570   $win.col1.w1.f2.f2.scroll     
{left 
frame center filly
} \ 
 571   $win.col1.w1.f2.f2.
text       {right 
frame center fill expand
} 
 573 if {[sim MultiPlayerMode
]} { 
 574   frame $win.col1.w1.f2.f3 
\ 
 577   tk_bindForTraversal 
$win.col1.w1.f2.f3
 
 578   bind $win.col1.w1.f2.f3 
<F10
> {tk_firstMenu 
%W
}  
 579   bind $win.col1.w1.f2.f3 
<Alt-Key
> {tk_traverseToMenu 
%W 
%A
}  
 581   button $win.col1.w1.f2.f3.chat 
\ 
 582     -font [Font 
$win Large
] \ 
 585   LinkWindow 
$win.chat 
$win.col1.w1.f2.f3.chat
 
 586   bind $win.col1.w1.f2.f3.chat 
<1> {ChatDown 
%W
} 
 587   bind $win.col1.w1.f2.f3.chat 
<ButtonRelease-1
> {ChatUp 
%W
} 
 589   SetHelp 
$win.col1.w1.f2.f3.chat Head.Chat
 
 591   entry $win.col1.w1.f2.f3.
entry \ 
 596     -textvariable $win.col1.w1.f2.f3.
entry.value
\ 
 597     -font [Font 
$win Message
] 
 598   global $win.col1.w1.f2.f3.
entry.value
 
 599   set $win.col1.w1.f2.f3.
entry.value 
"" 
 600   tk_bindForTraversal 
$win.col1.w1.f2.f3.
entry 
 601   bind $win.col1.w1.f2.f3.
entry <F10
> {tk_firstMenu 
%W
}  
 602   bind $win.col1.w1.f2.f3.
entry <Alt-Key
> {tk_traverseToMenu 
%W 
%A
} 
 603   bind $win.col1.w1.f2.f3.
entry <Return
> "DoEnterMessage %W %W.value" 
 604   bind $win.col1.w1.f2.f3.
entry <Escape
> "DoEvalMessage %W %W.value" 
 605   bind $win.col1.w1.f2.f3.
entry <Any-Enter
> {focus %W
} 
 606   LinkWindow 
$win.
entry $win.col1.w1.f2.f3.
entry 
 608   SetHelp 
$win.col1.w1.f2.f3.
entry Head.Entry
 
 612 tk_bindForTraversal 
$win.col1.w2
 
 614 LinkWindow 
$win.w2 
$win.col1.w2
 
 617 tk_bindForTraversal 
$win.col1.w3
 
 619 LinkWindow 
$win.w3 
$win.col1.w3
 
 622 tk_bindForTraversal 
$win.col2
 
 624 LinkWindow 
$win.col2 
$win.col2
 
 626 #frame $win.col2.x1 -width 400 -height 400 
 627 #tk_bindForTraversal $win.col2.x1 
 629 #LinkWindow $win.x1 $win.col2.x1 
 632 #tk_bindForTraversal $win.col2.x2 
 634 #LinkWindow $win.x2 $win.col2.x2 
 637 #tk_bindForTraversal $win.col2.x3 
 639 #LinkWindow $win.x3 $win.col2.x3 
 642 #tk_bindForTraversal $win.col2.x4 
 644 #LinkWindow $win.x4 $win.col2.x4 
 646 if {[sim MultiPlayerMode
]} { 
 648   pack append $win.col1.w1.f2.f3 
\ 
 649     $win.col1.w1.f2.f3.chat     
{left 
frame center padx 
4} \ 
 650     $win.col1.w1.f2.f3.
entry    {left 
frame center fillx expand padx 
4} 
 652   pack append $win.col1.w1.f2 
\ 
 653     $win.col1.w1.f2.f1          
{top 
frame center fillx
} \ 
 654     $win.col1.w1.f2.f2          
{top 
frame center expand fill
} \ 
 655     $win.col1.w1.f2.f3          
{top 
frame center fillx
} 
 659   pack append $win.col1.w1.f2 
\ 
 660     $win.col1.w1.f2.f1          
{top 
frame center fillx
} \ 
 661     $win.col1.w1.f2.f2          
{top 
frame center expand fill
} 
 665 pack append $win.col1.w1
\ 
 666   $win.col1.w1.f1               
{top 
frame center fillx
} \ 
 667   $win.col1.w1.f2               
{top 
frame center expand fill
} 
 670 #    $win.col1                  {left frame center filly} \ 
 671 #    $win.col2                  {left frame center expand fill} 
 673 place configure 
$win.col1
\ 
 676   -width $HeadPanelWidth\ 
 679 pack append $win.col1
\ 
 680     $win.col1.w1                
{top 
frame nw fillx
} \ 
 681     $win.col1.w2                
{top 
frame nw fillx
} \ 
 682     $win.col1.w3                
{bottom 
frame sw fillx
}  
 684 #place configure $win.col1.w1\ 
 687 #  -width $HeadPanelWidth\ 
 688 #  -height $HeadPanelHeight 
 690 #place configure $win.col1.w2\ 
 692 #  -y $HeadPanelHeight\ 
 693 #  -width $MapPanelWidth\ 
 694 #  -height $MapPanelHeight 
 696 #place configure $win.col1.w3\ 
 698 #  -y [expr "$HeadPanelHeight + $MapPanelHeight"]\ 
 699 #  -width $NoticePanelWidth\ 
 700 #  -height [expr "$screenheight - ($HeadPanelHeight + $MapPanelHeight)"] 
 702 place configure 
$win.col2
\ 
 703   -x [expr "$HeadPanelWidth + 5"]\ 
 706   -width [expr "($screenwidth - $HeadPanelWidth) - 5"] 
 708 proc resizeeditor 
{win width
} { 
 709   global HeadPanelWidth
 
 711   place configure 
$win.col2
\ 
 712     -width [expr "($width - $HeadPanelWidth) - 5"] 
 715 bind $win <Configure
> "resizeeditor $win %w" 
 717 #pack append $win.col2\ 
 718 #    $win.col2.x1               {top frame nw fillx} \ 
 719 #    $win.col2.x2               {top frame nw fillx} \ 
 720 #    $win.col2.x3               {top frame nw expand fill} \ 
 721 #    $win.col2.x4               {top frame nw fillx} 
 723 SetupSoundServer 
$win