home *** CD-ROM | disk | FTP | other *** search
/ PC World 1997 November / PCWorld_1997-11_cd.bin / software / programy / komix / DATA.Z / infoobject.tcl < prev    next >
Text File  |  1996-09-18  |  2KB  |  102 lines

  1. #---------------------------------------------------------------------------
  2. #
  3. #      (c)     Westmount Technology    1994
  4. #
  5. #      File:           @(#)infoobject.tcl    /main/hindenburg/2
  6. #      Author:         <generated>
  7. #      Description:
  8. #---------------------------------------------------------------------------
  9. # SccsId = @(#)infoobject.tcl    /main/hindenburg/2   18 Sep 1996 Copyright 1994 Westmount Technology
  10.  
  11. # Start user added include file section
  12. # End user added include file section
  13.  
  14.  
  15. Class InfoObject : {BrowsObject} {
  16.     constructor
  17.     method destructor
  18.     method open
  19.     method browsUiObj
  20.     attribute index
  21.     attribute _browsUiObj
  22. }
  23.  
  24. constructor InfoObject {class this name browsUiObj} {
  25.     set this [BrowsObject::constructor $class $this $name]
  26.     $this _browsUiObj $browsUiObj
  27.     $browsUiObj _infoObject $this
  28.     # Start constructor user section
  29.  
  30.     $this selectState 0
  31.  
  32.     if [$browsUiObj canBeDragged] {
  33.         require "draginfoob.tcl"
  34.         DragInfoObj promote $this
  35.     }
  36.  
  37.     # End constructor user section
  38.     return $this
  39. }
  40.  
  41. method InfoObject::destructor {this} {
  42.     set ref [$this _browsUiObj]
  43.     if {$ref != ""} {
  44.         $ref _infoObject ""
  45.     }
  46.     # Start destructor user section
  47.     # End destructor user section
  48. }
  49.  
  50. method InfoObject::open {this} {
  51.     set parentTreeNode [[[$this browsUiObj] parent] treeNode]
  52.     $parentTreeNode appendChildren
  53.     set parentTreeNodeChildSet [$parentTreeNode childSet]
  54.     $parentTreeNode foldState 0
  55.  
  56.     set found 0
  57.     set browsUiObj [$this browsUiObj]
  58.     foreach treeNode $parentTreeNodeChildSet {
  59.     if {"[$treeNode browsUiObj]" == "$browsUiObj"} {
  60.         set found 1
  61.         break
  62.     }
  63.     }
  64.     if {! $found} {
  65.     wmtkerror "\
  66.         Object [$browsUiObj getInfo Type] '[$browsUiObj getInfo Name]' \
  67.         not found in tree"
  68.     return
  69.     }
  70.     $treeNode open
  71. }
  72.  
  73. proc InfoObject::sort {obj1 obj2} {
  74.     set index1 [$obj1 index]
  75.     set index2 [$obj2 index]
  76.     if {$index1 > $index2} {
  77.     return 1
  78.     } elseif {$index1 < $index2} {
  79.     return -1
  80.     } else {
  81.     return 0
  82.     }
  83. }
  84.  
  85. # Do not delete this line -- regeneration end marker
  86.  
  87. method InfoObject::browsUiObj {this args} {
  88.     if {$args == ""} {
  89.         return [$this _browsUiObj]
  90.     }
  91.     set ref [$this _browsUiObj]
  92.     if {$ref != ""} {
  93.         $ref _infoObject ""
  94.     }
  95.     set obj [lindex $args 0]
  96.     if {$obj != ""} {
  97.         $obj _infoObject $this
  98.     }
  99.     $this _browsUiObj $obj
  100. }
  101.  
  102.