Annotation of micropolis/src/notes/Dynamic.tcl, revision 1.1.1.1

1.1       root        1: option add *Interval.activeForeground  #d0d0d0
                      2: option add *Interval.sliderForeground  #b0b0b0
                      3: option add *Interval.activeForeground  #d0d0d0
                      4: option add *Interval.sliderForeground  #b0b0b0
                      5: 
                      6: ########################################################################
                      7: # Dynamic Map Handlers
                      8: 
                      9: proc ShowDynamicPanel {win} {
                     10:   if {! [winfo ismapped $win.bottomframe]} {
                     11:     pack append $win $win.bottomframe  {bottom frame center fill expand}
                     12:     set x [winfo rootx $win]
                     13:     set y [winfo rooty $win]
                     14:     set width [winfo width $win]
                     15:     set height 670
                     16:     wm geometry $win ${width}x${height}
                     17:   }
                     18: }
                     19: 
                     20: 
                     21: proc HideDynamicPanel {win} {
                     22:   if {[winfo ismapped $win.bottomframe]} {
                     23:     pack unpack $win.bottomframe
                     24:     set x [winfo rootx $win]
                     25:     set y [winfo rooty $win]
                     26:     set width [winfo width $win]
                     27:     set height 332
                     28:     wm geometry $win ${width}x${height}
                     29:   }
                     30: }
                     31: 
                     32: 
                     33: proc InitDynamic {} {
                     34:   global MapWindows
                     35:   sim ResetDynamic
                     36: 
                     37:   for {set i 0} {$i < 8} {incr i} {
                     38:     foreach win $MapWindows {
                     39:       [WindowLink $win.interval]$i reset
                     40:     }
                     41:   }
                     42: 
                     43: }
                     44: 
                     45: 
                     46: proc SetDynamicData {win index min max} {
                     47:   set MinIndex [expr "$index * 2"]
                     48:   set MaxIndex [expr "$MinIndex + 1"]
                     49: 
                     50:   sim DynamicData $MinIndex $min
                     51:   sim DynamicData $MaxIndex $max
                     52: 
                     53:   set int [WindowLink $win.interval]$index
                     54:   set from [lindex [$int config -from] 4]
                     55:   set to [lindex [$int config -to] 4]
                     56:   set min [lindex [$int config -min] 4]
                     57:   set max [lindex [$int config -max] 4]
                     58:   set range [expr "${to}-${from}"]
                     59:   set offset 80
                     60:   set scale 100
                     61:   set low [expr "(($min-$from)*$scale/$range) + $offset"]
                     62:   set high [expr "(($max-$from)*$scale/$range) + $offset"]
                     63:   set sound 29
                     64:   set title Slider$index
                     65:   set vol 70
                     66:   set chan fancy
                     67: 
                     68:   UIDoSound "\"sound replay $title -channel $chan -volume $vol ; sound replay $sound -channel $chan -volume $vol -speed $low ; sound play $sound -channel $chan -volume $vol -speed $high\""
                     69: 
                     70:   global MapWindows
                     71:   foreach win $MapWindows {
                     72:     [WindowLink $win.interval]$index set $min $max
                     73:   }
                     74: }
                     75: 
                     76: 
                     77: 
                     78: 
                     79: 
                     80: global MapTitles
                     81: set MapTitles {
                     82:   {Micropolis Map}
                     83:   {Residential Zone Map}
                     84:   {Commercial Zone Map}
                     85:   {Industrial Zone Map}
                     86:   {Power Grid Map}
                     87:   {Transportation Map}
                     88:   {Population Density Map}
                     89:   {Rate of Growth Map}
                     90:   {Traffic Map}
                     91:   {Pollution Map}
                     92:   {Crime Map}
                     93:   {Land Value Map}
                     94:   {Fire Station Map}
                     95:   {Police Station Map}
                     96:   {Dynamic Query Map}
                     97: }
                     98: 
                     99: 
                    100: 
                    101: 
                    102: proc UISetMapState {w state} {
                    103:   global MapTitles
                    104:   set win [winfo toplevel $w]
                    105:   set m [WindowLink $win.view]
                    106:   set title [lindex $MapTitles $state]
                    107:   wm title $win "$title"
                    108:   wm iconname $win "$title"
                    109:   global [set var MapState.$win]
                    110:   set $var $state
                    111: 
                    112:   case $state { \
                    113:     {6 8 9 10 11 12 13} {
                    114:       [WindowLink $win.legend] config -bitmap "@Images/LegendMaxMin.xpm"
                    115:       HideDynamicPanel $win
                    116:     } \
                    117:     {7} {
                    118:       [WindowLink $win.legend] config -bitmap "@Images/LegendPlusMinus.xpm"
                    119:       HideDynamicPanel $win
                    120:     } \
                    121:     {0 1 2 3 4 5 14} {
                    122:       [WindowLink $win.legend] config -bitmap "@Images/LegendNone.xpm"
                    123:       if {$state == 14} {
                    124:        ShowDynamicPanel $win
                    125:       } else {
                    126:         HideDynamicPanel $win
                    127:       }
                    128:     }
                    129:   }
                    130: }
                    131: 
                    132: 

unix.superglobalmegacorp.com

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