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

  1. #---------------------------------------------------------------------------
  2. #
  3. #      (c)     Cadre Technologies Inc.    1996
  4. #
  5. #      File:           @(#)propif2col.tcl    1.4
  6. #      Author:         <generated>
  7. #      Description:
  8. #---------------------------------------------------------------------------
  9. # SccsId = @(#)propif2col.tcl    1.4   13 Mar 1996 Copyright 1996 Cadre Technologies Inc.
  10.  
  11. # Start user added include file section
  12.  
  13. require "propifelem.tcl"
  14.  
  15. # End user added include file section
  16.  
  17. require "propifpare.tcl"
  18.  
  19. Class PropIf2Col : {PropIfParent} {
  20.     method destructor
  21.     constructor
  22.     method getProperties
  23.     method setProperties
  24. }
  25.  
  26. method PropIf2Col::destructor {this} {
  27.     # Start destructor user section
  28.     # End destructor user section
  29.     $this PropIfParent::destructor
  30. }
  31.  
  32. constructor PropIf2Col {class this guiParent propDef} {
  33.     set this [PropIfParent::constructor $class $this]
  34.     $this config -definition $propDef \
  35.              -ifElement [DlgColumn new $guiParent.[$propDef name]]
  36.  
  37.     set options [$propDef ifOptions]
  38.     if ![lempty $options] {
  39.         eval "[$this ifElement] config $options"
  40.     }
  41.  
  42.     set row [DlgRow new [$this ifElement].[$propDef name]Row]
  43.     set col1 [DlgColumn new $row.[$propDef name]Col1]
  44.     set col2 [DlgColumn new $row.[$propDef name]Col2]
  45.     set colLength [expr [llength [$propDef memberSet]] / 2]
  46.     set colDouble [expr $colLength * 2]
  47.     set memberCount 0
  48.     set guiParent $col1
  49.     foreach member [$propDef memberSet] {
  50.         set class [$member ifClass]
  51.         if [PropIfElement::canHandle $class] {
  52.             set child [PropIfElement new $guiParent $member]
  53.         } else {
  54.             if [catch {
  55.                 set child [$class new $guiParent $member]
  56.             }] {
  57.                 error "Invalid interface class '$class'"
  58.             }
  59.         }
  60.         $this addChild $child
  61.         if {[incr memberCount] == $colLength} {
  62.             set guiParent $col2
  63.         } elseif {$memberCount == $colDouble} {
  64.             set guiParent [$this ifElement]
  65.         }
  66.     }
  67.     return $this
  68. }
  69.  
  70. method PropIf2Col::getProperties {this propContainer} {
  71.     [$this childSet] foreach propIf {
  72.         $propIf getProperties $propContainer
  73.     }
  74. }
  75.  
  76. method PropIf2Col::setProperties {this propContainer} {
  77.     [$this childSet] foreach propIf {
  78.         $propIf setProperties $propContainer
  79.     }
  80. }
  81.  
  82. # Do not delete this line -- regeneration end marker
  83.  
  84.