Annotation of micropolis/src/notes/Dynamic.tcl, revision 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.