home *** CD-ROM | disk | FTP | other *** search
/ PC World 1998 October / PCWorld_1998-10_cd.bin / software / prehled / komix / DATA.Z / propviewob.tcl < prev    next >
Text File  |  1996-05-29  |  4KB  |  137 lines

  1. #---------------------------------------------------------------------------
  2. #
  3. #      (c)     Westmount Technology    1994
  4. #
  5. #      File:           @(#)propviewob.tcl    1.3
  6. #      Author:         <generated>
  7. #      Description:
  8. #---------------------------------------------------------------------------
  9. # SccsId = @(#)propviewob.tcl    1.3   17 Oct 1995 Copyright 1994 Westmount Technology
  10.  
  11. # Start user added include file section
  12. # End user added include file section
  13.  
  14.  
  15. Class PropViewObject : {BrowsObject} {
  16.     constructor
  17.     method destructor
  18.     method reParent
  19.     method define
  20.     method id
  21.     attribute index
  22. }
  23.  
  24. constructor PropViewObject {class this name} {
  25.     set this [BrowsObject::constructor $class $this $name]
  26.     # Start constructor user section
  27.     $this activated "%this define"
  28.     $this conversionSet "BROWSERVIEWPROP id"
  29.     # End constructor user section
  30.     return $this
  31. }
  32.  
  33. method PropViewObject::destructor {this} {
  34.     # Start destructor user section
  35.     # End destructor user section
  36. }
  37.  
  38. method PropViewObject::reParent {this newView} {
  39.  
  40.     global classCount
  41.     set newObj [PropViewObject new $newView.PropViewObject$classCount]
  42.     incr classCount
  43.     $newObj label [$this label]
  44.     $newObj details [$this details]
  45.  
  46.     # remove the dropped one, from the other list
  47.     set fromView [$this view]
  48.     $this delete
  49.     $fromView reIndex
  50.     $fromView sort -command "PropView::sort"
  51.  
  52.     return $newObj
  53. }
  54.  
  55. method PropViewObject::define {this} {
  56.  
  57.     if {![isCommand .main.propViewDlg]} {
  58.         ClassMaker::extend TemplateDialog PropViewDlg {propViewObject}
  59.         interface PropViewDlg .main.propViewDlg {
  60.             title "View Property"
  61.             modal Yes
  62.             DlgColumn DC {
  63.                 Label nameL {
  64.                     alignment CENTER
  65.                 }
  66.                 DlgRow DR {
  67.                     DlgColumn DC {
  68.                         Label L { text "Width"}
  69.                         IntField widthIF {
  70.                             columnCount 4
  71.                             editable 1
  72.                         }    
  73.                     }
  74.                     DlgColumn DC {
  75.                         Label L { text "Sort Kind"}
  76.                         OptionMenu sortKindOM {
  77.                             entrySet {ascii integer\
  78.                                  float}
  79.                         }
  80.                     }
  81.                     DlgColumn DC {
  82.                         Label L { text "Sort Policy"}
  83.                         OptionMenu sortPolicyOM {
  84.                             entrySet {none \
  85.                                 increasing \
  86.                                 decreasing}
  87.                         }
  88.                     }
  89.                     DlgColumn DC {
  90.                         Label L { text "Sort Order"}
  91.                         OptionMenu sortOrderOM {
  92.                             entrySet {}
  93.                         }
  94.                     }
  95.                 }
  96.             }
  97.         }
  98.         .main.propViewDlg okPressed {
  99.             set width [%this.DC.DR.DC.widthIF intValue]
  100.             set policy [%this.DC.DR.DC.sortPolicyOM selected]
  101.             set kind [%this.DC.DR.DC.sortKindOM selected]
  102.             set order [%this.DC.DR.DC.sortOrderOM selected]
  103.             set details [[%this propViewObject] details]
  104.             set details [lreplace $details 0 0 $width]
  105.             set details [lreplace $details 1 1 $kind]
  106.             set details [lreplace $details 2 2 $policy]
  107.             set details [lreplace $details 3 3 $order]
  108.             [%this propViewObject] details $details
  109.         }
  110.     }
  111.  
  112.     .main.propViewDlg propViewObject $this
  113.     set details [$this details]
  114.     .main.propViewDlg.DC.DR.DC.widthIF intValue [lindex $details 0]
  115.     .main.propViewDlg.DC.DR.DC.sortKindOM selected [lindex $details 1]
  116.     .main.propViewDlg.DC.DR.DC.sortPolicyOM selected [lindex $details 2]
  117.     set index 1
  118.     set numbers {}
  119.     foreach number [[$this view] objectSet] {
  120.         lappend numbers $index
  121.         incr index
  122.     }
  123.     .main.propViewDlg.DC.DR.DC.sortOrderOM entrySet $numbers
  124.     .main.propViewDlg.DC.DR.DC.sortOrderOM selected [lindex $details 3]
  125.     .main.propViewDlg.DC.nameL text "Property: [$this label]"
  126.  
  127.     .main.propViewDlg popUp
  128. }
  129.  
  130. method PropViewObject::id {this} {
  131.  
  132.     return $this
  133. }
  134.  
  135. # Do not delete this line -- regeneration end marker
  136.  
  137.