Annotation of micropolis/res/whead.tcl, revision 1.1.1.1

1.1       root        1: # Window: Head (global controls & menus), 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  [email protected].
                      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 HeadWindows
                     62: set n [Unique]
                     63: set win .head$n
                     64: 
                     65: catch "destroy $win"
                     66: if {[catch "toplevel $win -screen $display"]} {
                     67:   puts stderr "Couldn't open X11 display \"$display\"."
                     68:   set win ""
                     69:   return ""
                     70: }
                     71: 
                     72: global HeadPanelWidth
                     73: global HeadPanelHeight
                     74: global MapPanelWidth
                     75: global MapPanelHeight
                     76: global NoticePanelWidth
                     77: global NoticePanelHeight
                     78: 
                     79: set visual [winfo screenvisual $win]
                     80: set depth [winfo screendepth $win]
                     81: #set screenwidth [winfo screenwidth $win]
                     82: #set screenheight [winfo screenheight $win]
                     83: set screenwidth 1200
                     84: set screenheight 900
                     85: 
                     86: if {!(("$visual" == "pseudocolor") ||
                     87:       ("$visual" == "truecolor") ||
                     88:       (("$visual" == "staticgray") &&
                     89:        ($depth == 1)))} {
                     90:   catch "destroy $win"
                     91:   puts stderr "Micropolis can't find an appropriate visual on display \"$display\"."
                     92:   set win ""
                     93:   return ""
                     94: }
                     95: 
                     96: set HeadWindows [linsert $HeadWindows 0 $win]
                     97: 
                     98: SetHelp $win Head
                     99: 
                    100: LinkWindow $win.head $win
                    101: LinkWindow $win.editor {}
                    102: LinkWindow $win.map {}
                    103: LinkWindow $win.graph {}
                    104: LinkWindow $win.budget {}
                    105: LinkWindow $win.evaluation {}
                    106: LinkWindow $win.splash {}
                    107: LinkWindow $win.scenario {}
                    108: LinkWindow $win.file {}
                    109: LinkWindow $win.config {}
                    110: LinkWindow $win.notice {}
                    111: LinkWindow $win.ask {}
                    112: 
                    113: tk_bindForTraversal $win
                    114: bind $win <F10> {tk_firstMenu %W} 
                    115: bind $win <Mod2-Key> {tk_traverseToMenu %W %A} 
                    116: 
                    117: wm title $win "Micropolis Controls"
                    118: wm iconname $win {Micropolis Controls}
                    119: wm geometry $win 1200x900+0+0
                    120: #wm positionfrom $win user
                    121: wm withdraw $win
                    122: #wm maxsize $win $screenwidth $screenheight
                    123: #wm minsize $win 100 100
                    124: wm protocol $win delete "DeleteHeadWindow $win ;"
                    125: wm fullscreen $win on
                    126: 
                    127: global $win.postedMenu
                    128: global $win.Sound
                    129: 
                    130: frame $win.col1
                    131: tk_bindForTraversal $win.col1
                    132: 
                    133: LinkWindow $win.col1 $win.col1
                    134: 
                    135: frame $win.col1.w1\
                    136:   -width $HeadPanelWidth\
                    137:   -height $HeadPanelHeight
                    138: tk_bindForTraversal $win.col1.w1
                    139: 
                    140: frame $win.col1.w1.f1\
                    141:   -borderwidth 1\
                    142:   -relief raised
                    143: tk_bindForTraversal $win.col1.w1.f1
                    144: bind $win.col1.w1.f1 <F10> {tk_firstMenu %W} 
                    145: bind $win.col1.w1.f1 <Mod2-Key> {tk_traverseToMenu %W %A} 
                    146: 
                    147: SetHelp $win.col1.w1.f1.micropolis Head.MicropolisMenu
                    148: 
                    149: menubutton $win.col1.w1.f1.micropolis\
                    150:   -menu $win.col1.w1.f1.micropolis.m\
                    151:   -text {Micropolis}\
                    152:   -font [Font $win Medium]\
                    153:   -variable $win.postedMenu
                    154: tk_bindForTraversal $win.col1.w1.f1.micropolis
                    155: bind $win.col1.w1.f1.micropolis <F10> {tk_firstMenu %W} 
                    156: bind $win.col1.w1.f1.micropolis <Mod2-Key> {tk_traverseToMenu %W %A} 
                    157: 
                    158: tk_menus $win $win.col1.w1.f1.micropolis
                    159: 
                    160: menu $win.col1.w1.f1.micropolis.m\
                    161:   -font [Font $win Medium]
                    162: tk_bindForTraversal $win.col1.w1.f1.micropolis.m
                    163: bind $win.col1.w1.f1.micropolis.m <F10> {tk_firstMenu %W} 
                    164: bind $win.col1.w1.f1.micropolis.m <Mod2-Key> {tk_traverseToMenu %W %A} 
                    165:   $win.col1.w1.f1.micropolis.m add command\
                    166:     -label {About...}\
                    167:     -command "UIShowPicture 300"
                    168:   $win.col1.w1.f1.micropolis.m add command\
                    169:     -label {Save City}\
                    170:     -command "UISaveCity $win"
                    171:   $win.col1.w1.f1.micropolis.m add command\
                    172:     -label {Save City as...}\
                    173:     -command "UISaveCityAs $win"
                    174:   if {[sim MultiPlayerMode]} {
                    175:     $win.col1.w1.f1.micropolis.m add command\
                    176:       -label {Add Player...}\
                    177:       -command "UIShowPlayer $win"
                    178:   }
                    179:   $win.col1.w1.f1.micropolis.m add command\
                    180:     -label {Choose City!}\
                    181:     -command "UISelectCity $win"
                    182:   $win.col1.w1.f1.micropolis.m add command\
                    183:     -label {Quit Playing!}\
                    184:     -command "UIQuit $win"
                    185: 
                    186: SetHelp $win.col1.w1.f1.options Head.OptionsMenu
                    187: 
                    188: menubutton $win.col1.w1.f1.options\
                    189:   -menu $win.col1.w1.f1.options.m\
                    190:   -text {Options}\
                    191:   -font [Font $win Medium]\
                    192:   -variable $win.postedMenu
                    193: tk_bindForTraversal $win.col1.w1.f1.options
                    194: bind $win.col1.w1.f1.options <F10> {tk_firstMenu %W} 
                    195: bind $win.col1.w1.f1.options <Mod2-Key> {tk_traverseToMenu %W %A} 
                    196: 
                    197: tk_menus $win $win.col1.w1.f1.options
                    198: 
                    199: menu $win.col1.w1.f1.options.m\
                    200:   -font [Font $win Medium]
                    201: tk_bindForTraversal $win.col1.w1.f1.options.m
                    202: bind $win.col1.w1.f1.options.m <F10> {tk_firstMenu %W} 
                    203: bind $win.col1.w1.f1.options.m <Mod2-Key> {tk_traverseToMenu %W %A} 
                    204:   $win.col1.w1.f1.options.m add checkbutton\
                    205:     -label {Auto Budget}\
                    206:     -variable AutoBudget\
                    207:     -command {sim AutoBudget $AutoBudget}
                    208:   $win.col1.w1.f1.options.m add checkbutton\
                    209:     -label {Auto Bulldoze}\
                    210:     -variable AutoBulldoze\
                    211:     -command {sim AutoBulldoze $AutoBulldoze}
                    212:   $win.col1.w1.f1.options.m add checkbutton\
                    213:     -label {Disasters}\
                    214:     -variable Disasters\
                    215:     -command {sim Disasters $Disasters}
                    216:   $win.col1.w1.f1.options.m add checkbutton\
                    217:     -label {Sound}\
                    218:     -variable Sound\
                    219:     -command {sim Sound $Sound}
                    220:   $win.col1.w1.f1.options.m add checkbutton\
                    221:     -label {Animation}\
                    222:     -variable DoAnimation\
                    223:     -command {sim DoAnimation $DoAnimation}
                    224:   $win.col1.w1.f1.options.m add checkbutton\
                    225:     -label {Messages}\
                    226:     -variable DoMessages\
                    227:     -command {sim DoMessages $DoMessages}
                    228:   $win.col1.w1.f1.options.m add checkbutton\
                    229:     -label {Notices}\
                    230:     -variable DoNotices\
                    231:     -command {sim DoNotices $DoNotices}
                    232: 
                    233: SetHelp $win.col1.w1.f1.disasters Head.DisastersMenu
                    234: 
                    235: menubutton $win.col1.w1.f1.disasters\
                    236:   -menu $win.col1.w1.f1.disasters.m\
                    237:   -text {Disasters}\
                    238:   -font [Font $win Medium]\
                    239:   -variable $win.postedMenu
                    240: tk_bindForTraversal $win.col1.w1.f1.disasters
                    241: bind $win.col1.w1.f1.disasters <F10> {tk_firstMenu %W} 
                    242: bind $win.col1.w1.f1.disasters <Mod2-Key> {tk_traverseToMenu %W %A} 
                    243: 
                    244: tk_menus $win $win.col1.w1.f1.disasters
                    245: 
                    246: menu $win.col1.w1.f1.disasters.m\
                    247:   -font [Font $win Medium]
                    248: tk_bindForTraversal $win.col1.w1.f1.disasters.m
                    249: bind $win.col1.w1.f1.disasters.m <F10> {tk_firstMenu %W} 
                    250: bind $win.col1.w1.f1.disasters.m <Mod2-Key> {tk_traverseToMenu %W %A} 
                    251:   $win.col1.w1.f1.disasters.m add command\
                    252:     -label {Monster}\
                    253:     -command "UIDisaster $win \"UIMakeMonster\" \"release a monster?\""
                    254:   $win.col1.w1.f1.disasters.m add command\
                    255:     -label {Fire}\
                    256:     -command "UIDisaster $win \"sim MakeFire\" \"start a fire?\""
                    257:   $win.col1.w1.f1.disasters.m add command\
                    258:     -label {Flood}\
                    259:     -command "UIDisaster $win \"sim MakeFlood\" \"bring on a flood?\""
                    260:   $win.col1.w1.f1.disasters.m add command\
                    261:     -label {Meltdown}\
                    262:     -command "UIDisaster $win \"sim MakeMeltdown\" \"have a nuclear meltdown?\""
                    263:   $win.col1.w1.f1.disasters.m add command\
                    264:     -label {Tornado}\
                    265:     -command "UIDisaster $win \"sim MakeTornado\" \"spin up a tornado?\""
                    266:   $win.col1.w1.f1.disasters.m add command\
                    267:     -label {Earthquake}\
                    268:     -command "UIDisaster $win \"sim MakeEarthquake\" \"cause an earthquake?\""
                    269: 
                    270: SetHelp $win.col1.w1.f1.priority Head.PriorityMenu
                    271: 
                    272: menubutton $win.col1.w1.f1.priority\
                    273:   -menu $win.col1.w1.f1.priority.m\
                    274:   -text {Priority}\
                    275:   -font [Font $win Medium]\
                    276:   -variable $win.postedMenu
                    277: tk_bindForTraversal $win.col1.w1.f1.priority
                    278: bind $win.col1.w1.f1.priority <F10> {tk_firstMenu %W} 
                    279: bind $win.col1.w1.f1.priority <Mod2-Key> {tk_traverseToMenu %W %A} 
                    280: 
                    281: tk_menus $win $win.col1.w1.f1.priority
                    282: 
                    283: menu $win.col1.w1.f1.priority.m\
                    284:   -font [Font $win Medium]
                    285: tk_bindForTraversal $win.col1.w1.f1.priority.m
                    286: bind $win.col1.w1.f1.priority.m <F10> {tk_firstMenu %W} 
                    287: bind $win.col1.w1.f1.priority.m <Mod2-Key> {tk_traverseToMenu %W %A} 
                    288:   $win.col1.w1.f1.priority.m add radiobutton\
                    289:     -label {Super Fast}\
                    290:     -command {SetPriority 4}\
                    291:     -value {4}\
                    292:     -variable Priority
                    293:   $win.col1.w1.f1.priority.m add radiobutton\
                    294:     -label {Fast}\
                    295:     -command {SetPriority 3}\
                    296:     -value {3}\
                    297:     -variable Priority
                    298:   $win.col1.w1.f1.priority.m add radiobutton\
                    299:     -label {Normal}\
                    300:     -command {SetPriority 2}\
                    301:     -value {2}\
                    302:     -variable Priority
                    303:   $win.col1.w1.f1.priority.m add radiobutton\
                    304:     -label {Slow}\
                    305:     -command {SetPriority 1}\
                    306:     -value {1}\
                    307:     -variable Priority
                    308:   $win.col1.w1.f1.priority.m add radiobutton\
                    309:     -label {Super Slow}\
                    310:     -command {SetPriority 0}\
                    311:     -value {0}\
                    312:     -variable Priority
                    313: 
                    314: SetHelp $win.col1.w1.f1.windows Head.WindowsMenu
                    315: 
                    316: menubutton $win.col1.w1.f1.windows\
                    317:   -menu $win.col1.w1.f1.windows.m\
                    318:   -text {Windows}\
                    319:   -font [Font $win Medium]\
                    320:   -variable $win.postedMenu
                    321: tk_bindForTraversal $win.col1.w1.f1.windows
                    322: bind $win.col1.w1.f1.windows <F10> {tk_firstMenu %W} 
                    323: bind $win.col1.w1.f1.windows <Mod2-Key> {tk_traverseToMenu %W %A} 
                    324: 
                    325: tk_menus $win $win.col1.w1.f1.windows
                    326: 
                    327: menu $win.col1.w1.f1.windows.m\
                    328:   -font [Font $win Medium]
                    329: tk_bindForTraversal $win.col1.w1.f1.windows.m
                    330: bind $win.col1.w1.f1.windows.m <F10> {tk_firstMenu %W} 
                    331: bind $win.col1.w1.f1.windows.m <Mod2-Key> {tk_traverseToMenu %W %A} 
                    332:   $win.col1.w1.f1.windows.m add command\
                    333:     -label {Budget}\
                    334:     -command "UIShowBudgetAndWait"
                    335:   $win.col1.w1.f1.windows.m add command\
                    336:     -label {Evaluation}\
                    337:     -command "ShowEvaluationOf $win"
                    338:   $win.col1.w1.f1.windows.m add command\
                    339:     -label {Graph}\
                    340:     -command "ShowGraphOf $win"
                    341:   #$win.col1.w1.f1.windows.m add command\
                    342:   #  -label {Map}\
                    343:   #  -command "ShowMapOf $win"
                    344:   #$win.col1.w1.f1.windows.m add command\
                    345:   #  -label {Editor}\
                    346:   #  -command "ShowEditorOf $win"
                    347:   #$win.col1.w1.f1.windows.m add command\
                    348:   #  -label {Frob}\
                    349:   #  -command "ShowFrobOf $win"
                    350:   #$win.col1.w1.f1.windows.m add command\
                    351:   #  -label {New Map}\
                    352:   #  -command "NewMapOf $win"
                    353:   #$win.col1.w1.f1.windows.m add command\
                    354:   #  -label {New Editor}\
                    355:   #  -command "NewEditorOf $win"
                    356: 
                    357: LinkWindow $win.m0 $win.col1.w1.f1.micropolis.m
                    358: LinkWindow $win.m1 $win.col1.w1.f1.options.m
                    359: LinkWindow $win.m2 $win.col1.w1.f1.disasters.m
                    360: LinkWindow $win.m3 $win.col1.w1.f1.priority.m
                    361: LinkWindow $win.m4 $win.col1.w1.f1.windows.m
                    362: 
                    363: LinkWindow $win.b0 $win.col1.w1.f1.micropolis
                    364: LinkWindow $win.b1 $win.col1.w1.f1.options
                    365: LinkWindow $win.b2 $win.col1.w1.f1.disasters
                    366: LinkWindow $win.b3 $win.col1.w1.f1.priority
                    367: LinkWindow $win.b4 $win.col1.w1.f1.windows
                    368: 
                    369: pack append $win.col1.w1.f1\
                    370:   $win.col1.w1.f1.micropolis   {left frame nw} \
                    371:   $win.col1.w1.f1.options      {left frame nw} \
                    372:   $win.col1.w1.f1.disasters    {left frame nw} \
                    373:   $win.col1.w1.f1.priority     {left frame nw} \
                    374:   $win.col1.w1.f1.windows      {left frame nw}
                    375: 
                    376: frame $win.col1.w1.f2\
                    377:   -background #BFBFBF \
                    378:   -borderwidth 1\
                    379:   -relief raised
                    380: 
                    381: frame $win.col1.w1.f2.f1\
                    382:   -background #BFBFBF \
                    383:   -borderwidth 1\
                    384:   -relief flat
                    385: 
                    386: frame $win.col1.w1.f2.f1.frame \
                    387:   -background #BFBFBF \
                    388:   -borderwidth 0\
                    389:   -relief flat
                    390: 
                    391: canvas $win.col1.w1.f2.f1.frame.demand\
                    392:   -scrollincrement 0 \
                    393:   -borderwidth 0 \
                    394:   -background #BFBFBF \
                    395:   -width 80 -height 55
                    396: LinkWindow $win.demand $win.col1.w1.f2.f1.frame.demand
                    397: $win.col1.w1.f2.f1.frame.demand create bitmap 41 4 \
                    398:   -tags picture \
                    399:   -bitmap "@images/demandg.xpm" \
                    400:   -anchor nw
                    401: $win.col1.w1.f2.f1.frame.demand create rectangle -10 -10 1 1 \
                    402:   -tags r \
                    403:   -fill [Color $win #00ff00 #000000]
                    404: $win.col1.w1.f2.f1.frame.demand create rectangle -10 -10 1 1 \
                    405:   -tags c \
                    406:   -fill [Color $win #0000ff #000000]
                    407: $win.col1.w1.f2.f1.frame.demand create rectangle -10 -10 1 1 \
                    408:   -tags i \
                    409:   -fill [Color $win #ffff00 #000000]
                    410: $win.col1.w1.f2.f1.frame.demand create bitmap 0 4 \
                    411:   -tags micropolis \
                    412:   -bitmap "@images/micropoliss.xpm" \
                    413:   -anchor nw 
                    414: 
                    415: $win.col1.w1.f2.f1.frame.demand bind micropolis <1> {TogglePause}
                    416: $win.col1.w1.f2.f1.frame.demand bind micropolis <2> {TogglePause}
                    417: $win.col1.w1.f2.f1.frame.demand bind micropolis <3> {TogglePause}
                    418: $win.col1.w1.f2.f1.frame.demand bind picture <1> "ToggleEvaluationOf $win"
                    419: $win.col1.w1.f2.f1.frame.demand bind picture <2> "ToggleEvaluationOf $win"
                    420: $win.col1.w1.f2.f1.frame.demand bind picture <3> "ToggleEvaluationOf $win"
                    421: $win.col1.w1.f2.f1.frame.demand bind r <1> "ToggleEvaluationOf $win"
                    422: $win.col1.w1.f2.f1.frame.demand bind r <2> "ToggleEvaluationOf $win"
                    423: $win.col1.w1.f2.f1.frame.demand bind r <3> "ToggleEvaluationOf $win"
                    424: $win.col1.w1.f2.f1.frame.demand bind c <1> "ToggleEvaluationOf $win"
                    425: $win.col1.w1.f2.f1.frame.demand bind c <2> "ToggleEvaluationOf $win"
                    426: $win.col1.w1.f2.f1.frame.demand bind c <3> "ToggleEvaluationOf $win"
                    427: $win.col1.w1.f2.f1.frame.demand bind i <1> "ToggleEvaluationOf $win"
                    428: $win.col1.w1.f2.f1.frame.demand bind i <2> "ToggleEvaluationOf $win"
                    429: $win.col1.w1.f2.f1.frame.demand bind i <3> "ToggleEvaluationOf $win"
                    430: 
                    431: SetHelp $win.col1.w1.f2.f1.frame.demand Head.Demand
                    432: 
                    433: frame $win.col1.w1.f2.f1.frame.graphframe \
                    434:   -background #BFBFBF \
                    435:   -borderwidth 1\
                    436:   -relief sunken
                    437: 
                    438: graphview $win.col1.w1.f2.f1.frame.graphframe.graph\
                    439:   -background #BFBFBF \
                    440:   -font [Font $win Tiny]
                    441: $win.col1.w1.f2.f1.frame.graphframe.graph Range 10
                    442: $win.col1.w1.f2.f1.frame.graphframe.graph Mask 7
                    443: LinkWindow $win.graphview $win.col1.w1.f2.f1.frame.graphframe.graph
                    444: bind $win.col1.w1.f2.f1.frame.graphframe.graph <ButtonPress> "ToggleGraphOf $win"
                    445: 
                    446: 
                    447: SetHelp $win.col1.w1.f2.f1.frame.graphframe.graph Head.Graph
                    448: 
                    449: pack append $win.col1.w1.f2.f1.frame.graphframe \
                    450:   $win.col1.w1.f2.f1.frame.graphframe.graph    {left expand fill}
                    451: 
                    452: pack append $win.col1.w1.f2.f1.frame \
                    453:   $win.col1.w1.f2.f1.frame.demand              {left frame sw padx 4} \
                    454:   $win.col1.w1.f2.f1.frame.graphframe  {right frame center expand fill}
                    455: 
                    456: frame $win.col1.w1.f2.f1.info\
                    457:   -background #BFBFBF \
                    458:   -borderwidth 1\
                    459:   -relief flat
                    460: 
                    461: dateview $win.col1.w1.f2.f1.info.date\
                    462:   -background #BFBFBF \
                    463:   -width 20 \
                    464:   -font [Font $win Medium]
                    465: LinkWindow $win.date $win.col1.w1.f2.f1.info.date
                    466: 
                    467: SetHelp $win.col1.w1.f2.f1.info.date Head.Date
                    468: 
                    469: label $win.col1.w1.f2.f1.info.fundslabel\
                    470:   -background #BFBFBF \
                    471:   -relief flat\
                    472:   -font [Font $win Medium]\
                    473:   -text {}\
                    474:   -anchor w\
                    475:   -width 20
                    476: LinkWindow $win.funds $win.col1.w1.f2.f1.info.fundslabel
                    477: bind $win.col1.w1.f2.f1.info.fundslabel <ButtonPress> "UIShowBudgetAndWait"
                    478: 
                    479: SetHelp $win.col1.w1.f2.f1.info.fundslabel Head.Funds
                    480: 
                    481: label $win.col1.w1.f2.f1.info.rate\
                    482:   -background #BFBFBF \
                    483:   -relief flat\
                    484:   -font [Font $win Medium]\
                    485:   -text {Tax Rate: 7%} \
                    486:   -anchor w\
                    487:   -width 20
                    488: LinkWindow $win.taxlabel $win.col1.w1.f2.f1.info.rate
                    489: bind $win.col1.w1.f2.f1.info.rate <ButtonPress> "UIShowBudgetAndWait"
                    490: 
                    491: 
                    492: scale $win.col1.w1.f2.f1.info.scale\
                    493:   -background #BFBFBF \
                    494:   -command {SetTaxRate}\
                    495:   -orient horizontal\
                    496:   -showvalue false\
                    497:   -font [Font $win Medium]\
                    498:   -sliderlength 15\
                    499:   -to 20
                    500: $win.col1.w1.f2.f1.info.scale set 7
                    501: LinkWindow $win.taxrate $win.col1.w1.f2.f1.info.scale
                    502: 
                    503: 
                    504: pack append $win.col1.w1.f2.f1.info \
                    505:   $win.col1.w1.f2.f1.info.date         {top frame nw} \
                    506:   $win.col1.w1.f2.f1.info.fundslabel   {top frame nw} \
                    507:   $win.col1.w1.f2.f1.info.rate         {top frame nw} \
                    508:   $win.col1.w1.f2.f1.info.scale                {top frame nw fill expand}
                    509: 
                    510: pack append $win.col1.w1.f2.f1 \
                    511:   $win.col1.w1.f2.f1.frame             {left frame nw expand fill} \
                    512:   $win.col1.w1.f2.f1.info              {left frame nw}
                    513: 
                    514: frame $win.col1.w1.f2.f2\
                    515:   -borderwidth 1 \
                    516:   -relief flat
                    517: tk_bindForTraversal $win.col1.w1.f2.f2
                    518: bind $win.col1.w1.f2.f2 <F10> {tk_firstMenu %W} 
                    519: bind $win.col1.w1.f2.f2 <Mod2-Key> {tk_traverseToMenu %W %A} 
                    520: 
                    521: SetHelp $win.col1.w1.f2.f2 Head.Log
                    522: 
                    523: scrollbar $win.col1.w1.f2.f2.scroll\
                    524:   -command "$win.col1.w1.f2.f2.text yview" \
                    525:   -borderwidth 1
                    526: 
                    527: SetHelp $win.col1.w1.f2.f2.scroll Head.Scrollbar
                    528: 
                    529: text $win.col1.w1.f2.f2.text \
                    530:   -yscroll "$win.col1.w1.f2.f2.scroll set" \
                    531:   -borderwidth 1 \
                    532:   -relief sunken \
                    533:   -wrap word \
                    534:   -state disabled \
                    535:   -height 5 \
                    536:   -font [Font $win Text]
                    537: LinkWindow $win.text $win.col1.w1.f2.f2.text
                    538: 
                    539: $win.col1.w1.f2.f2.text tag configure status \
                    540:   -font [Font $win Message]
                    541: 
                    542: $win.col1.w1.f2.f2.text tag configure message \
                    543:   -font [Font $win Message] \
                    544:   -foreground #ffffff \
                    545:   -background #3f3f3f
                    546: 
                    547: $win.col1.w1.f2.f2.text tag configure alert \
                    548:   -font [Font $win Alert] \
                    549:   -foreground [Color $win #ff3f3f #000000]
                    550: 
                    551: pack append $win.col1.w1.f2.f2 \
                    552:   $win.col1.w1.f2.f2.scroll    {left frame center filly} \
                    553:   $win.col1.w1.f2.f2.text      {right frame center fill expand}
                    554: 
                    555: if {[sim MultiPlayerMode]} {
                    556:   frame $win.col1.w1.f2.f3 \
                    557:     -borderwidth 1 \
                    558:     -relief flat
                    559:   tk_bindForTraversal $win.col1.w1.f2.f3
                    560:   bind $win.col1.w1.f2.f3 <F10> {tk_firstMenu %W} 
                    561:   bind $win.col1.w1.f2.f3 <Mod2-Key> {tk_traverseToMenu %W %A} 
                    562: 
                    563:   button $win.col1.w1.f2.f3.chat \
                    564:     -font [Font $win Large] \
                    565:     -relief flat \
                    566:     -text {Chat:}
                    567:   LinkWindow $win.chat $win.col1.w1.f2.f3.chat
                    568:   bind $win.col1.w1.f2.f3.chat <1> {ChatDown %W}
                    569:   bind $win.col1.w1.f2.f3.chat <ButtonRelease-1> {ChatUp %W}
                    570: 
                    571:   SetHelp $win.col1.w1.f2.f3.chat Head.Chat
                    572: 
                    573:   entry $win.col1.w1.f2.f3.entry \
                    574:     -relief sunken\
                    575:     -text {}\
                    576:     -foreground #ffffff\
                    577:     -background #4f4f4f\
                    578:     -textvariable $win.col1.w1.f2.f3.entry.value\
                    579:     -font [Font $win Message]
                    580:   global $win.col1.w1.f2.f3.entry.value
                    581:   set $win.col1.w1.f2.f3.entry.value ""
                    582:   tk_bindForTraversal $win.col1.w1.f2.f3.entry
                    583:   bind $win.col1.w1.f2.f3.entry <F10> {tk_firstMenu %W} 
                    584:   bind $win.col1.w1.f2.f3.entry <Mod2-Key> {tk_traverseToMenu %W %A}
                    585:   bind $win.col1.w1.f2.f3.entry <Return> "DoEnterMessage %W %W.value"
                    586:   bind $win.col1.w1.f2.f3.entry <Escape> "DoEvalMessage %W %W.value"
                    587:   bind $win.col1.w1.f2.f3.entry <Any-Enter> {focus %W}
                    588:   LinkWindow $win.entry $win.col1.w1.f2.f3.entry
                    589: 
                    590:   SetHelp $win.col1.w1.f2.f3.entry Head.Entry
                    591: }
                    592: 
                    593: frame $win.col1.w2
                    594: tk_bindForTraversal $win.col1.w2
                    595: 
                    596: LinkWindow $win.w2 $win.col1.w2
                    597: 
                    598: frame $win.col1.w3
                    599: tk_bindForTraversal $win.col1.w3
                    600: 
                    601: LinkWindow $win.w3 $win.col1.w3
                    602: 
                    603: frame $win.col2
                    604: tk_bindForTraversal $win.col2
                    605: 
                    606: LinkWindow $win.col2 $win.col2
                    607: 
                    608: #frame $win.col2.x1 -width 400 -height 400
                    609: #tk_bindForTraversal $win.col2.x1
                    610: 
                    611: #LinkWindow $win.x1 $win.col2.x1
                    612: 
                    613: #frame $win.col2.x2
                    614: #tk_bindForTraversal $win.col2.x2
                    615: 
                    616: #LinkWindow $win.x2 $win.col2.x2
                    617: 
                    618: #frame $win.col2.x3
                    619: #tk_bindForTraversal $win.col2.x3
                    620: 
                    621: #LinkWindow $win.x3 $win.col2.x3
                    622: 
                    623: #frame $win.col2.x4
                    624: #tk_bindForTraversal $win.col2.x4
                    625: 
                    626: #LinkWindow $win.x4 $win.col2.x4
                    627: 
                    628: if {[sim MultiPlayerMode]} {
                    629: 
                    630:   pack append $win.col1.w1.f2.f3 \
                    631:     $win.col1.w1.f2.f3.chat    {left frame center padx 4} \
                    632:     $win.col1.w1.f2.f3.entry   {left frame center fillx expand padx 4}
                    633: 
                    634:   pack append $win.col1.w1.f2 \
                    635:     $win.col1.w1.f2.f1         {top frame center fillx} \
                    636:     $win.col1.w1.f2.f2         {top frame center expand fill} \
                    637:     $win.col1.w1.f2.f3         {top frame center fillx}
                    638: 
                    639: } else {
                    640: 
                    641:   pack append $win.col1.w1.f2 \
                    642:     $win.col1.w1.f2.f1         {top frame center fillx} \
                    643:     $win.col1.w1.f2.f2         {top frame center expand fill}
                    644: 
                    645: }
                    646: 
                    647: pack append $win.col1.w1\
                    648:   $win.col1.w1.f1              {top frame center fillx} \
                    649:   $win.col1.w1.f2              {top frame center expand fill}
                    650: 
                    651: #pack append $win\
                    652: #    $win.col1                 {left frame center filly} \
                    653: #    $win.col2                 {left frame center expand fill}
                    654: 
                    655: place configure $win.col1\
                    656:   -x 0\
                    657:   -y 0\
                    658:   -width $HeadPanelWidth\
                    659:   -height $screenheight
                    660: 
                    661: pack append $win.col1\
                    662:     $win.col1.w1               {top frame nw fillx} \
                    663:     $win.col1.w2               {top frame nw fillx} \
                    664:     $win.col1.w3               {bottom frame sw fillx} 
                    665: 
                    666: #place configure $win.col1.w1\
                    667: #  -x 0\
                    668: #  -y 0\
                    669: #  -width $HeadPanelWidth\
                    670: #  -height $HeadPanelHeight
                    671: 
                    672: #place configure $win.col1.w2\
                    673: #  -x 0\
                    674: #  -y $HeadPanelHeight\
                    675: #  -width $MapPanelWidth\
                    676: #  -height $MapPanelHeight
                    677: 
                    678: #place configure $win.col1.w3\
                    679: #  -x 0\
                    680: #  -y [expr "$HeadPanelHeight + $MapPanelHeight"]\
                    681: #  -width $NoticePanelWidth\
                    682: #  -height [expr "$screenheight - ($HeadPanelHeight + $MapPanelHeight)"]
                    683: 
                    684: place configure $win.col2\
                    685:   -x [expr "$HeadPanelWidth + 5"]\
                    686:   -y 0\
                    687:   -width [expr "($screenwidth - $HeadPanelWidth) - 5"]\
                    688:   -height $screenheight
                    689: 
                    690: #pack append $win.col2\
                    691: #    $win.col2.x1              {top frame nw fillx} \
                    692: #    $win.col2.x2              {top frame nw fillx} \
                    693: #    $win.col2.x3              {top frame nw expand fill} \
                    694: #    $win.col2.x4              {top frame nw fillx}
                    695: 
                    696: SetupSoundServer $win
                    697: 
                    698: InitHead $win
                    699: InitHeadMenus $win
                    700: 
                    701: update idletasks

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.