home *** CD-ROM | disk | FTP | other *** search
/ PC World 1998 October / PCWorld_1998-10_cd.bin / software / prehled / komix / DATA.Z / definedial.tcl < prev    next >
Text File  |  1996-05-29  |  4KB  |  196 lines

  1. #---------------------------------------------------------------------------
  2. #
  3. #      (c)     Westmount Technology    1994
  4. #
  5. #      File:           @(#)definedial.tcl    1.14
  6. #      Author:         <generated>
  7. #      Description:
  8. #---------------------------------------------------------------------------
  9. # SccsId = @(#)definedial.tcl    1.14   22 Dec 1995 Copyright 1994 Westmount Technology
  10.  
  11. # Start user added include file section
  12. # End user added include file section
  13.  
  14.  
  15. Class DefineDialog : {NoteBkDialog} {
  16.     constructor
  17.     method destructor
  18.     method load
  19.     method save
  20.     method toInterface
  21.     method fromInterface
  22.     method determineSpecLevel
  23.     method setPossibleScope
  24.     method checkLevelChanged
  25.     method levelChanged
  26.     method popUp
  27.     method objScope
  28.     method objName
  29.     method objReadOnly
  30.     method objVisible
  31.     attribute curObject
  32.     attribute curObjectActiveLevel
  33. }
  34.  
  35. constructor DefineDialog {class this name} {
  36.     set this [NoteBkDialog::constructor $class $this $name]
  37.     # Start constructor user section
  38.  
  39.     $this createInterface
  40.     $this okPressed {%this save 1}
  41.     $this applyNowPressed {%this save 0}
  42.     $this curObjectActiveLevel -1
  43.     $this modal 1
  44.     $this autoPopDown 0
  45.  
  46.     # End constructor user section
  47.     return $this
  48. }
  49.  
  50. method DefineDialog::destructor {this} {
  51.     # Start destructor user section
  52.     # End destructor user section
  53. }
  54.  
  55. method DefineDialog::load {this object} {
  56.  
  57.     $this curObject $object
  58.  
  59.     $this clearInterface
  60.     $this objScope [$object scope]
  61.     $this objVisible [$object visible]
  62.     $this objReadOnly [$object readOnly]
  63.     $this objName [$object displayName]
  64.  
  65.     $this setPossibleScope
  66.     $this checkLevelChanged
  67.  
  68.     set spec [$object objSpec]
  69.     while {![lempty $spec]} {
  70.         $this toInterface [lvarpop spec] [lvarpop spec]
  71.     }
  72.  
  73.     $this title "[$object type] '[$object displayName]'"
  74.  
  75.     $this popUp
  76. }
  77.  
  78. method DefineDialog::save {this popDown} {
  79.  
  80.     set spec [$this fromInterface]
  81.     if {$spec == ""} {
  82.         # something was wrong in the specification
  83.         # do not save
  84.         return 0
  85.     }
  86.     set obj [$this curObject]
  87.     $obj scope [$this objScope]
  88.     $obj visible [$this objVisible]
  89.     $obj readOnly [$this objReadOnly]
  90.     $obj displayName [$this objName]
  91.     $obj objSpec $spec
  92.  
  93.     $obj updateView
  94.  
  95.     [.main editorArea] isChanged 1
  96.  
  97.     if {$popDown == 1} {
  98.         $this popDown
  99.     }
  100.  
  101.     return 1
  102. }
  103.  
  104. method DefineDialog::toInterface {this key value} {
  105. }
  106.  
  107. method DefineDialog::fromInterface {this} {
  108.     return ""
  109. }
  110.  
  111. method DefineDialog::determineSpecLevel {this scope} {
  112.  
  113.     set index 0
  114.  
  115.     if {[[.main editorArea] _level] == "user"} {
  116.         return "user"
  117.     }
  118.  
  119.     foreach i $scope {
  120.         if {$i == "*" || [llength $i] != 1} {
  121.             break
  122.         }
  123.         incr index
  124.     }
  125.  
  126.     return $icaseLevel($index)
  127. }
  128.  
  129. method DefineDialog::setPossibleScope {this} {
  130.  
  131. }
  132.  
  133. method DefineDialog::checkLevelChanged {this} {
  134.  
  135.     set level 0
  136.     foreach i [$this objScope] {
  137.         if [lempty $i] {
  138.             break;
  139.         }
  140.         incr level
  141.     }
  142.  
  143.     if {$level != [$this curObjectActiveLevel]} {
  144.         $this levelChanged $level
  145.         $this curObjectActiveLevel $level
  146.     }
  147. }
  148.  
  149. method DefineDialog::levelChanged {this newLevel} {
  150.  
  151. }
  152.  
  153. method DefineDialog::popUp {this} {
  154.  
  155.     $this NoteBkDialog::popUp
  156. }
  157.  
  158. method DefineDialog::objScope {this args} {
  159.     
  160.     if {$args == ""} {
  161.         return ""
  162.     } else {
  163.         # set nothing
  164.     }
  165. }
  166.  
  167. method DefineDialog::objName {this args} {
  168.     
  169.     if {$args == ""} {
  170.         return "Unknown"
  171.     } else {
  172.         # set nothing
  173.     }
  174. }
  175.  
  176. method DefineDialog::objReadOnly {this args} {
  177.  
  178.     if {$args == ""} {
  179.         return 0
  180.     } else {
  181.         # set nothing
  182.     }
  183. }
  184.  
  185. method DefineDialog::objVisible {this args} {
  186.  
  187.     if {$args == ""} {
  188.         return {1 1 1 1 1}
  189.     } else {
  190.         # set nothing
  191.     }
  192. }
  193.  
  194. # Do not delete this line -- regeneration end marker
  195.  
  196.