home *** CD-ROM | disk | FTP | other *** search
/ PC World 2000 December / PCWorld_2000-12_cd.bin / Komunikace / Comanche / xul / xuiAlternate.tcl next >
Text File  |  2000-11-02  |  2KB  |  72 lines

  1.  
  2. class xuiAlternate {
  3.     inherit xuiStructure
  4.     constructor {} {
  5.     setXuiClass alternate
  6.     }
  7.     variable selected {}
  8.     variable defaultSelect {}
  9.     method selectComponent { xuiObject }
  10.     method selectComponentByName { componentName }
  11.     method getSelectedComponent {}
  12.     method getSelectedComponentName {}
  13.     method getText {}
  14.     method clone 
  15.     method copyClone { clone }
  16.     method reset {}
  17.     method setDefault
  18. }
  19.  
  20. body xuiAlternate::setDefault { name } {
  21.     set defaultSelect $name
  22.     selectComponentByName $name
  23. }
  24.  
  25. body xuiAlternate::reset {} {
  26.     selectComponentByName $defaultSelect
  27.     xuiStructure::reset
  28. }
  29.  
  30. body xuiAlternate::selectComponentByName { componentName } {
  31.     selectComponent $nameMap($componentName)
  32. }
  33.  
  34. body xuiAlternate::selectComponent { xuiObject } {
  35.     set selected $xuiObject
  36. }
  37.  
  38. body xuiAlternate::getSelectedComponent {} {
  39.     return $selected
  40. }
  41.  
  42. body xuiAlternate::getSelectedComponentName {} {
  43.     return [$selected getName]
  44. }
  45.  
  46.  
  47. body xuiAlternate::getText {} {
  48.     if [llength $selected] {
  49.         $selected getText
  50.     } else {
  51.     return {}
  52.     }
  53. }
  54.  
  55. body xuiAlternate::clone {{parentName {::#auto}}} {
  56.    set clone [xuiAlternate $parentName.$name]
  57.    copyClone $clone
  58.    return $clone
  59. }
  60.  
  61. body xuiAlternate::copyClone { clone } {
  62.    xuiStructure::copyClone $clone
  63.    if [llength $selected] {
  64.    $clone selectComponentByName [$selected getName]
  65.    } else {
  66.    #puts "cloning $this to $clone not selected"
  67.    }
  68.    $clone setXuiClass $xuiClass
  69.  
  70.  
  71.