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

  1. #---------------------------------------------------------------------------
  2. #
  3. #      (c)     Cayenne Software Inc.    1997
  4. #
  5. #      File:           @(#)m4optionbr.tcl    /main/titanic/2
  6. #      Author:         <generated>
  7. #      Description:
  8. #---------------------------------------------------------------------------
  9. # SccsId = @(#)m4optionbr.tcl    /main/titanic/2   2 Jul 1997 Copyright 1997 Cayenne Software Inc.
  10.  
  11. # Start user added include file section
  12. require m4vardescr.tcl
  13. # End user added include file section
  14.  
  15.  
  16. Class M4OptionBrowser : {ListDialog} {
  17.     method destructor
  18.     constructor
  19.     method formatEntry
  20.     method selectedOption
  21. }
  22.  
  23. method M4OptionBrowser::destructor {this} {
  24.     # Start destructor user section
  25.     # End destructor user section
  26. }
  27.  
  28. constructor M4OptionBrowser {class this name {entries {}}} {
  29.     set this [ListDialog::constructor $class $this $name]
  30.  
  31.         $this config \
  32.             -title "M4 Option Browser" \
  33.             -message "Select an M4 option:" \
  34.             -selectionPolicy BROWSE \
  35.             -rowCount 10 \
  36.             -font courier-normal-12 \
  37.             -modal 1
  38.  
  39.         $this delHelpButton
  40.  
  41.     set m4desc [M4VarDescription new $this.m4desc]
  42.  
  43.         if [lempty $entries] {
  44.             set entries [[$m4desc _UiName] names]
  45.         }
  46.  
  47.         set max -1
  48.         foreach entry $entries {
  49.             set l [string length $entry]
  50.             if {$l > $max} {
  51.                 set max $l
  52.             }
  53.         }
  54.  
  55.         set entrySet {}
  56.         foreach name [lsort $entries] {
  57.         lappend entrySet \
  58.         [$this formatEntry $max $name [$m4desc getUiName $name]]
  59.         }
  60.         $this entrySet $entrySet
  61.  
  62.     return $this
  63. }
  64.  
  65. method M4OptionBrowser::formatEntry {this nameWidth name desc} {
  66.     return [format "%-${nameWidth}s  %s" $name $desc]
  67. }
  68.  
  69. method M4OptionBrowser::selectedOption {this} {
  70.         set sel [lindex [$this selectedSet] 0]
  71.         return [lindex $sel 0]
  72. }
  73.  
  74. # Do not delete this line -- regeneration end marker
  75.  
  76.