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

  1. #---------------------------------------------------------------------------
  2. #
  3. #      (c)     Cadre Technologies Inc.    1996
  4. #
  5. #      File:           @(#)propdefobj.tcl    /main/titanic/2
  6. #      Author:         <generated>
  7. #      Description:
  8. #---------------------------------------------------------------------------
  9. # SccsId = @(#)propdefobj.tcl    /main/titanic/2   14 Mar 1997 Copyright 1996 Cadre Technologies Inc.
  10.  
  11. # Start user added include file section
  12. # End user added include file section
  13.  
  14. require "custdefsob.tcl"
  15.  
  16. Class PropDefObject : {CustDefsObject} {
  17.     constructor
  18.     method destructor
  19.     method updateView
  20.     method infoList
  21.     method writeObject
  22.     method open
  23.     attribute shortName
  24.     attribute longName
  25.     attribute ifClass
  26.     attribute ifOptions
  27.     attribute ifMembers
  28. }
  29.  
  30. constructor PropDefObject {class this name specification} {
  31.     set this [CustDefsObject::constructor $class $this $name $specification]
  32.     # Start constructor user section
  33.     $this smallIcon folder_16
  34.     $this largeIcon folder_32
  35.     $this conversionSet "PROPDEF id"
  36.     $this id $this
  37.     # End constructor user section
  38.     return $this
  39. }
  40.  
  41. method PropDefObject::destructor {this} {
  42.     # Start destructor user section
  43.     # End destructor user section
  44.     $this CustDefsObject::destructor
  45. }
  46.  
  47. method PropDefObject::updateView {this} {
  48.  
  49.     if [$this editable] {
  50.         set level "[$this specLevel] *"
  51.     } else {
  52.         set level [$this specLevel]
  53.     }
  54.  
  55.     $this label [$this shortName]
  56.     $this details [list [$this longName] \
  57.                 [$this ifClass] \
  58.                 $level]
  59. }
  60.  
  61. method PropDefObject::infoList {this} {
  62.  
  63.     return [list Name [$this shortName] \
  64.              {Long Name} [$this longName] \
  65.              {Interface Class} [$this ifClass] \
  66.              {Interface Options} [$this ifOptions] \
  67.              {Interface Members} [$this ifMembers] \
  68.              {Specification Level} [$this specLevel]]
  69. }
  70.  
  71. method PropDefObject::writeObject {this fid} {
  72.     
  73.     set formatString "%-15s | %-20s | %-15s | %s | %s"
  74.     regsub -all {[#!|\]} [$this ifOptions] \\\\& escapedIfOptions
  75.     puts $fid [format $formatString [$this shortName] [$this longName] \
  76.         [$this ifClass] $escapedIfOptions [$this ifMembers]]
  77. }
  78.  
  79. method PropDefObject::open {this} {
  80.  
  81.     if {![$this editable]} {
  82.         return
  83.     }
  84.  
  85.     .main busy TRUE
  86.     set definer [[.main editorArea] propDefiner]
  87.     if {[catch {$definer load $this}]} {
  88.         set definer [PropDefDialog new .main.propDefiner]
  89.         [.main editorArea] propDefiner $definer
  90.         $definer load $this
  91.     }
  92.     .main busy FALSE
  93. }
  94.  
  95. # Do not delete this line -- regeneration end marker
  96.  
  97.