home *** CD-ROM | disk | FTP | other *** search
/ PC World 2000 December / PCWorld_2000-12_cd.bin / Komunikace / Comanche / gui / guiStructure.tcl < prev   
Text File  |  2000-11-02  |  2KB  |  98 lines

  1.  
  2.  
  3. class guiStructure {
  4.     inherit guiObject
  5.     variable elements
  6.     variable containerFrames
  7.     variable bframe
  8.     constructor {frame xuiObject guiBuilder} {
  9.     set subject $xuiObject
  10.     set surrFrame $frame
  11.     if ![string compare [$subject getStyle] normal] {
  12.         set bframe [TitleFrame $frame.tf -relief groove \
  13.             -text [$subject getLabel]]
  14.         set surrFrame [$bframe getframe]
  15.     } else {
  16.         set surrFrame [set bframe [frame $frame.tf]]
  17.     }
  18.     pack $bframe -fill both -expand true
  19.     switch [$subject getAlign] {
  20.         horizontal {
  21.         set side left
  22.         } vertical {
  23.         set side top
  24.         } default {
  25.         set side top
  26.         }
  27.     }
  28.     set labeled {}
  29.     set maxLabelSize 0
  30.     set i 0
  31.     foreach structureItem [$subject getComponents] {
  32.         set newFrame [frame $surrFrame.$i]
  33.         lappend containerFrames $newFrame
  34.         set gui [$guiBuilder render $newFrame $structureItem]
  35.         lappend elements $gui
  36.         incr i
  37.         pack $newFrame -side $side  -expand true -fill both -anchor w
  38.         if [ $gui isa guiLabeled ] {
  39.         lappend labeled $gui
  40.         if [expr [$gui getLabelLength] > $maxLabelSize] {
  41.             set maxLabelSize [$gui getLabelLength]
  42.         }
  43.         }
  44.     }
  45.     if [expr $maxLabelSize > 40] {
  46.     set maxLabelSize 40
  47.     }
  48.     foreach element $labeled {
  49.         $element setLabelLength $maxLabelSize
  50.     }
  51.     }
  52.     destructor {
  53.     eval delete object $elements
  54.     eval destroy $containerFrames
  55.     eval destroy $bframe
  56.     }
  57.     method enableAll {}
  58.     method disableAll {}
  59.     method enable {}
  60.     method disable {}
  61.     method queryState {}
  62. }
  63.  
  64.  
  65. body guiStructure::enableAll {} {
  66.     foreach element $elements {
  67.     $element enable
  68.     }
  69. }
  70.  
  71.  
  72.  
  73. body guiStructure::disableAll {} {
  74.     foreach element $elements {
  75.     $element disable
  76.     }
  77. }
  78.  
  79.  
  80. body guiStructure::enable {} {
  81.     set state 1
  82.     enableAll
  83. }
  84.  
  85. body guiStructure::disable {} {
  86.     set state 0
  87.     disableAll
  88. }
  89.  
  90. body guiStructure::queryState {} {
  91.     return $state
  92. }
  93.  
  94.  
  95.  
  96.  
  97.  
  98.