home *** CD-ROM | disk | FTP | other *** search
/ PC World 2000 December / PCWorld_2000-12_cd.bin / Komunikace / Comanche / comanche.exe / lib / iwidgets3.0.0 / scripts / selectiondialog.itk < prev    next >
Text File  |  1999-02-24  |  8KB  |  234 lines

  1. #
  2. # Selectiondialog
  3. # ----------------------------------------------------------------------
  4. # Implements a selection box similar to the OSF/Motif standard selection
  5. # dialog composite widget.  The Selectiondialog is derived from the 
  6. # Dialog class and is composed of a SelectionBox with attributes to
  7. # manipulate the dialog buttons.
  8. # ----------------------------------------------------------------------
  9. #  AUTHOR: Mark L. Ulferts              EMAIL: mulferts@austin.dsccc.com
  10. #
  11. #  @(#) $Id: selectiondialog.itk,v 1.1 1998/07/27 18:53:17 stanton Exp $
  12. # ----------------------------------------------------------------------
  13. #            Copyright (c) 1995 DSC Technologies Corporation
  14. # ======================================================================
  15. # Permission to use, copy, modify, distribute and license this software 
  16. # and its documentation for any purpose, and without fee or written 
  17. # agreement with DSC, is hereby granted, provided that the above copyright 
  18. # notice appears in all copies and that both the copyright notice and 
  19. # warranty disclaimer below appear in supporting documentation, and that 
  20. # the names of DSC Technologies Corporation or DSC Communications 
  21. # Corporation not be used in advertising or publicity pertaining to the 
  22. # software without specific, written prior permission.
  23. # DSC DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING 
  24. # ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, AND NON-
  25. # INFRINGEMENT. THIS SOFTWARE IS PROVIDED ON AN "AS IS" BASIS, AND THE
  26. # AUTHORS AND DISTRIBUTORS HAVE NO OBLIGATION TO PROVIDE MAINTENANCE, 
  27. # SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. IN NO EVENT SHALL 
  28. # DSC BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR 
  29. # ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, 
  30. # WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTUOUS ACTION,
  31. # ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS 
  32. # SOFTWARE.
  33. # ======================================================================
  34.  
  35. #
  36. # Usual options.
  37. #
  38. itk::usual Selectiondialog {
  39.     keep -activebackground -activerelief -background -borderwidth -cursor \
  40.      -elementborderwidth -foreground -highlightcolor -highlightthickness \
  41.      -insertbackground -insertborderwidth -insertofftime -insertontime \
  42.      -insertwidth -jump -labelfont -modality -selectbackground \
  43.      -selectborderwidth -selectforeground -textbackground -textfont \
  44.      -troughcolor
  45. }
  46.  
  47. # ------------------------------------------------------------------
  48. #                           SELECTIONDIALOG
  49. # ------------------------------------------------------------------
  50. class iwidgets::Selectiondialog {
  51.     inherit iwidgets::Dialog
  52.  
  53.     constructor {args} {}
  54.  
  55.     public method childsite {}
  56.     public method get {}
  57.     public method curselection {}
  58.     public method clear {component}
  59.     public method insert {component index args}
  60.     public method delete {first {last {}}}
  61.     public method size {}
  62.     public method scan {option args}
  63.     public method nearest {y}
  64.     public method index {index}
  65.     public method selection {option args}
  66.     public method selectitem {}
  67. }
  68.     
  69. #
  70. # Provide a lowercased access method for the Selectiondialog class.
  71. proc ::iwidgets::selectiondialog {pathName args} {
  72.     uplevel ::iwidgets::Selectiondialog $pathName $args
  73. }
  74.  
  75. #
  76. # Use option database to override default resources of base classes.
  77. #
  78. option add *Selectiondialog.title "Selection Dialog" widgetDefault
  79. option add *Selectiondialog.master "." widgetDefault
  80.  
  81. # ------------------------------------------------------------------
  82. #                        CONSTRUCTOR
  83. # ------------------------------------------------------------------
  84. body iwidgets::Selectiondialog::constructor {args} {
  85.     #
  86.     # Set the borderwidth to zero.
  87.     #
  88.     component hull configure -borderwidth 0
  89.     
  90.     # 
  91.     # Instantiate a selection box widget.
  92.     #
  93.     itk_component add selectionbox {
  94.     iwidgets::Selectionbox $itk_interior.selectionbox \
  95.         -dblclickcommand [code $this invoke]
  96.     } {
  97.     usual
  98.  
  99.     keep -childsitepos -exportselection -itemscommand -itemslabel \
  100.         -itemson -selectionlabel -selectionon -selectioncommand
  101.     }
  102.     configure -itemscommand [code $this selectitem]
  103.     
  104.     pack $itk_component(selectionbox) -fill both -expand yes
  105.     set itk_interior [$itk_component(selectionbox) childsite]
  106.     
  107.     hide Help
  108.  
  109.     eval itk_initialize $args
  110. }   
  111.  
  112. # ------------------------------------------------------------------
  113. #                            METHODS
  114. # ------------------------------------------------------------------
  115.  
  116. # ------------------------------------------------------------------
  117. # METHOD: childsite
  118. #
  119. # Thinwrapped method of selection box class.
  120. # ------------------------------------------------------------------
  121. body iwidgets::Selectiondialog::childsite {} {
  122.     return [$itk_component(selectionbox) childsite]
  123. }
  124.  
  125. # ------------------------------------------------------------------
  126. # METHOD: get
  127. #
  128. # Thinwrapped method of selection box class.
  129. # ------------------------------------------------------------------
  130. body iwidgets::Selectiondialog::get {} {
  131.     return [$itk_component(selectionbox) get]
  132. }
  133.  
  134. # ------------------------------------------------------------------
  135. # METHOD: curselection
  136. #
  137. # Thinwrapped method of selection box class.
  138. # ------------------------------------------------------------------
  139. body iwidgets::Selectiondialog::curselection {} {
  140.     return [$itk_component(selectionbox) curselection]
  141. }
  142.  
  143. # ------------------------------------------------------------------
  144. # METHOD: clear component
  145. #
  146. # Thinwrapped method of selection box class.
  147. # ------------------------------------------------------------------
  148. body iwidgets::Selectiondialog::clear {component} {
  149.     $itk_component(selectionbox) clear $component
  150.  
  151.     return
  152. }
  153.  
  154. # ------------------------------------------------------------------
  155. # METHOD: insert component index args
  156. #
  157. # Thinwrapped method of selection box class.
  158. # ------------------------------------------------------------------
  159. body iwidgets::Selectiondialog::insert {component index args} {
  160.     eval $itk_component(selectionbox) insert $component $index $args
  161.  
  162.     return
  163. }
  164.  
  165. # ------------------------------------------------------------------
  166. # METHOD: delete first ?last?
  167. #
  168. # Thinwrapped method of selection box class.
  169. # ------------------------------------------------------------------
  170. body iwidgets::Selectiondialog::delete {first {last {}}} {
  171.     $itk_component(selectionbox) delete $first $last
  172.  
  173.     return
  174. }
  175.  
  176. # ------------------------------------------------------------------
  177. # METHOD: size
  178. #
  179. # Thinwrapped method of selection box class.
  180. # ------------------------------------------------------------------
  181. body iwidgets::Selectiondialog::size {} {
  182.     return [$itk_component(selectionbox) size]
  183. }
  184.  
  185. # ------------------------------------------------------------------
  186. # METHOD: scan option args
  187. #
  188. # Thinwrapped method of selection box class.
  189. # ------------------------------------------------------------------
  190. body iwidgets::Selectiondialog::scan {option args} {
  191.     return [eval $itk_component(selectionbox) scan $option $args]
  192. }
  193.  
  194. # ------------------------------------------------------------------
  195. # METHOD: nearest y
  196. #
  197. # Thinwrapped method of selection box class.
  198. # ------------------------------------------------------------------
  199. body iwidgets::Selectiondialog::nearest {y} {
  200.     return [$itk_component(selectionbox) nearest $y]
  201. }
  202.  
  203. # ------------------------------------------------------------------
  204. # METHOD: index index
  205. #
  206. # Thinwrapped method of selection box class.
  207. # ------------------------------------------------------------------
  208. body iwidgets::Selectiondialog::index {index} {
  209.     return [$itk_component(selectionbox) index $index]
  210. }
  211.  
  212. # ------------------------------------------------------------------
  213. # METHOD: selection option args
  214. #
  215. # Thinwrapped method of selection box class.
  216. # ------------------------------------------------------------------
  217. body iwidgets::Selectiondialog::selection {option args} {
  218.     eval $itk_component(selectionbox) selection $option $args
  219. }
  220.  
  221. # ------------------------------------------------------------------
  222. # METHOD: selectitem
  223. #
  224. # Set the default button to ok and select the item.
  225. # ------------------------------------------------------------------
  226. body iwidgets::Selectiondialog::selectitem {} {
  227.     default OK
  228.     $itk_component(selectionbox) selectitem
  229. }
  230.  
  231.