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

  1.  
  2.  
  3. class guiBoolean {
  4.     inherit guiObject
  5.     variable checkBox
  6.     variable value 
  7.     variable state
  8.     constructor {frame xuiObject} {
  9.     set subject $xuiObject
  10.     set checkBox [checkbutton $frame.c]
  11.     $checkBox configure -text [$subject getLabel] -variable [scope value]
  12.     if ![string compare [set value [$subject getValue]] {}] {
  13.         if ![string compare \
  14.             [set value [set default [$subject getDefault]]] {} ] {
  15.         set value 0
  16.         }
  17.     }
  18.     trace variable [scope value] w [code $this valueChanged]        
  19.     pack $checkBox -side left
  20.     sync
  21.     }
  22.     method enable {}
  23.     method disable {}
  24.     method queryState {}
  25.     method sync {}
  26.     method valueChanged {args}
  27. }
  28.  
  29. body guiBoolean::sync {} {
  30.     if $value {
  31.     $subject setValue
  32.     } else {
  33.     $subject clearValue
  34.     }
  35. }
  36.  
  37. body guiBoolean::valueChanged {args} {
  38.     sync
  39. }
  40.  
  41. body guiBoolean::enable {} {
  42.     set state 1
  43.     $checkBox configure -state normal
  44. }
  45.  
  46. body guiBoolean::disable {} {
  47.     set state 0
  48.     $checkBox configure -state disabled
  49. }
  50.  
  51. body guiBoolean::queryState {} {
  52.     return $state
  53. }
  54.  
  55.  
  56.