home *** CD-ROM | disk | FTP | other *** search
/ PC World 1998 October / PCWorld_1998-10_cd.bin / software / prehled / komix / DATA.Z / objectobje.tcl < prev    next >
Text File  |  1997-03-14  |  2KB  |  97 lines

  1. #---------------------------------------------------------------------------
  2. #
  3. #      (c)     Cadre Technologies Inc.    1996
  4. #
  5. #      File:           @(#)objectobje.tcl    /main/titanic/2
  6. #      Author:         <generated>
  7. #      Description:
  8. #---------------------------------------------------------------------------
  9. # SccsId = @(#)objectobje.tcl    /main/titanic/2   14 Mar 1997 Copyright 1996 Cadre Technologies Inc.
  10.  
  11. # Start user added include file section
  12. require "custsort.tcl"
  13. # End user added include file section
  14.  
  15. require "custbrowso.tcl"
  16.  
  17. Class ObjectObject : {BrowsObject CustBrowsObject} {
  18.     method destructor
  19.     constructor
  20.     method updateView
  21.     method open
  22.     attribute browserType
  23.     attribute redefined
  24. }
  25.  
  26. method ObjectObject::destructor {this} {
  27.     # Start destructor user section
  28.     # End destructor user section
  29.     $this CustBrowsObject::destructor
  30. }
  31.  
  32. constructor ObjectObject {class this name specification} {
  33.  
  34.     set this [BrowsObject::constructor $class $this $name]
  35.     set this [CustBrowsObject::constructor $class $this $name]
  36.  
  37.     $this activated {%this open}
  38.  
  39.     $this smallIcon undef_16
  40.     $this largeIcon undef_32
  41.  
  42.     while {![lempty $specification]} {
  43.         set key [lvarpop specification]
  44.         $this $key [lvarpop specification]
  45.     }
  46.  
  47.     # give the name of the object the name of the view
  48.     $this displayName [$this name]
  49.     # type is always ObjectObject
  50.     $this type ObjectObject
  51.  
  52.     return $this
  53. }
  54.  
  55. method ObjectObject::updateView {this} {
  56.  
  57.     # get the icon from the spec to use in the view
  58.     set specification [$this objSpec]
  59.     while {![lempty $specification]} {
  60.         set key [lvarpop specification]
  61.         set value [lvarpop specification]
  62.         if {$key == "largeIcon"} {
  63.             $this largeIcon $value
  64.         }    
  65.         if {$key == "smallIcon"} {
  66.             $this smallIcon $value
  67.         }    
  68.     }
  69.  
  70.     if [$this editable] {
  71.         set level "[$this specLevel] *"
  72.     } else {
  73.         set level [$this specLevel]
  74.     }
  75.  
  76.     $this label [$this _displayName]
  77.     $this details [list [$this browserType] \
  78.                 $level \
  79.                     [$this scope]]
  80. }
  81.  
  82. method ObjectObject::open {this} {
  83.  
  84.     .main busy TRUE
  85.     set definer [[.main editorArea] objectDefiner]
  86.  
  87.     if {[catch {$definer load $this}]} {
  88.         set definer [ObjectDefineDialog new .main.objectDefiner]
  89.         [.main editorArea] objectDefiner $definer
  90.         $definer load $this
  91.     }
  92.     .main busy FALSE
  93. }
  94.  
  95. # Do not delete this line -- regeneration end marker
  96.  
  97.