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

  1. #---------------------------------------------------------------------------
  2. #
  3. #      (c)     Westmount Technology    1994
  4. #
  5. #      File:           @(#)infoobject.tcl    /main/titanic/4
  6. #      Author:         <generated>
  7. #      Description:
  8. #---------------------------------------------------------------------------
  9. # SccsId = @(#)infoobject.tcl    /main/titanic/4   6 Oct 1997 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.     if {! [[$this browsUiObj] hasChildren]} {
  52.     BrowserProcs::showInfo
  53.     return
  54.     }
  55.  
  56.     set parentTreeNode [[[$this browsUiObj] parent] treeNode]
  57.     $parentTreeNode appendChildren
  58.     set parentTreeNodeChildSet [$parentTreeNode childSet]
  59.     $parentTreeNode foldState 0
  60.  
  61.     set found 0
  62.     set browsUiObj [$this browsUiObj]
  63.     foreach treeNode $parentTreeNodeChildSet {
  64.     if {"[$treeNode browsUiObj]" == "$browsUiObj"} {
  65.         set found 1
  66.         break
  67.     }
  68.     }
  69.     if {! $found} {
  70.     wmtkerror "\
  71.         Object [$browsUiObj getInfo Type] '[$browsUiObj getInfo Name]' \
  72.         not found"
  73.     .main updateView
  74.     return
  75.     }
  76.     $treeNode open
  77. }
  78.  
  79. proc InfoObject::sort {obj1 obj2} {
  80.     set index1 [$obj1 index]
  81.     set index2 [$obj2 index]
  82.     if {$index1 > $index2} {
  83.     return 1
  84.     } elseif {$index1 < $index2} {
  85.     return -1
  86.     } else {
  87.     return 0
  88.     }
  89. }
  90.  
  91. # Do not delete this line -- regeneration end marker
  92.  
  93. method InfoObject::browsUiObj {this args} {
  94.     if {$args == ""} {
  95.         return [$this _browsUiObj]
  96.     }
  97.     set ref [$this _browsUiObj]
  98.     if {$ref != ""} {
  99.         $ref _infoObject ""
  100.     }
  101.     set obj [lindex $args 0]
  102.     if {$obj != ""} {
  103.         $obj _infoObject $this
  104.     }
  105.     $this _browsUiObj $obj
  106. }
  107.  
  108.