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

1.1       root        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  [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 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: 

unix.superglobalmegacorp.com

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