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

  1.  
  2. class guiString  {
  3.     inherit guiObject guiLabeled
  4.     protected variable labelEntry
  5.     variable value
  6.     constructor {frame xuiString} {
  7.     set subject $xuiString
  8.     set labelEntry [LabelEntry $frame.le -textvariable [scope value]]
  9.     $labelEntry configure -label [$subject getLabel]
  10.     $labelEntry configure -wraplength 240 -labeljustify right
  11.     $labelEntry configure -width [$subject getWidth]
  12.     switch [$xuiString getClasses] {
  13.         password {
  14.             $labelEntry configure -show *
  15.         }
  16.     }
  17.     pack $frame.le.e -expand 0 -anchor w -side left
  18.     pack $frame.le -expand 0 -anchor w -side left
  19.     if ![string length [set value [$subject getValue]]] {
  20.         set value [set default [$subject getDefault]]
  21.     }
  22.     trace variable [scope value] w [code $this valueChanged]
  23.     pack $labelEntry
  24.     sync
  25.     }
  26.     method sync {}
  27.     method valueChanged {args}
  28.     method enable {}
  29.     method disable {}
  30.     method queryState {}
  31.     method getLabelLength {} { 
  32.     return [string length [$subject getLabel]]
  33.     }
  34.     method setLabelLength { length } { 
  35.     $labelEntry configure -labelwidth $length 
  36.     }
  37. }
  38.  
  39.  
  40. body guiString::valueChanged {args} {
  41.     sync
  42. }
  43.  
  44. body guiString::sync {} {
  45.     $subject setValue $value
  46. }
  47.  
  48. body guiString::enable {} {
  49.     set state 1
  50.     $labelEntry configure -state normal
  51. }
  52.  
  53. body guiString::disable {} {
  54.     set state 0
  55.     $labelEntry configure -state disabled
  56. }
  57.  
  58. body guiString::queryState {} {
  59.     return $state
  60. }
  61.  
  62.  
  63.