| # |
| # Selectiondialog |
| # ---------------------------------------------------------------------- |
| # Implements a selection box similar to the OSF/Motif standard selection |
| # dialog composite widget. The Selectiondialog is derived from the |
| # Dialog class and is composed of a SelectionBox with attributes to |
| # manipulate the dialog buttons. |
| # |
| # ---------------------------------------------------------------------- |
| # AUTHOR: Mark L. Ulferts EMAIL: mulferts@austin.dsccc.com |
| # |
| # @(#) $Id: selectiondialog.itk,v 1.2 2001/08/07 19:56:48 smithc Exp $ |
| # ---------------------------------------------------------------------- |
| # Copyright (c) 1995 DSC Technologies Corporation |
| # ====================================================================== |
| # Permission to use, copy, modify, distribute and license this software |
| # and its documentation for any purpose, and without fee or written |
| # agreement with DSC, is hereby granted, provided that the above copyright |
| # notice appears in all copies and that both the copyright notice and |
| # warranty disclaimer below appear in supporting documentation, and that |
| # the names of DSC Technologies Corporation or DSC Communications |
| # Corporation not be used in advertising or publicity pertaining to the |
| # software without specific, written prior permission. |
| # |
| # DSC DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING |
| # ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, AND NON- |
| # INFRINGEMENT. THIS SOFTWARE IS PROVIDED ON AN "AS IS" BASIS, AND THE |
| # AUTHORS AND DISTRIBUTORS HAVE NO OBLIGATION TO PROVIDE MAINTENANCE, |
| # SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. IN NO EVENT SHALL |
| # DSC BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR |
| # ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, |
| # WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTUOUS ACTION, |
| # ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS |
| # SOFTWARE. |
| # ====================================================================== |
| |
| # |
| # Usual options. |
| # |
| itk::usual Selectiondialog { |
| keep -activebackground -activerelief -background -borderwidth -cursor \ |
| -elementborderwidth -foreground -highlightcolor -highlightthickness \ |
| -insertbackground -insertborderwidth -insertofftime -insertontime \ |
| -insertwidth -jump -labelfont -modality -selectbackground \ |
| -selectborderwidth -selectforeground -textbackground -textfont \ |
| -troughcolor |
| } |
| |
| # ------------------------------------------------------------------ |
| # SELECTIONDIALOG |
| # ------------------------------------------------------------------ |
| itcl::class iwidgets::Selectiondialog { |
| inherit iwidgets::Dialog |
| |
| constructor {args} {} |
| |
| public method childsite {} |
| public method get {} |
| public method curselection {} |
| public method clear {component} |
| public method insert {component index args} |
| public method delete {first {last {}}} |
| public method size {} |
| public method scan {option args} |
| public method nearest {y} |
| public method index {index} |
| public method selection {option args} |
| public method selectitem {} |
| } |
| |
| # |
| # Provide a lowercased access method for the Selectiondialog class. |
| # |
| proc ::iwidgets::selectiondialog {pathName args} { |
| uplevel ::iwidgets::Selectiondialog $pathName $args |
| } |
| |
| # |
| # Use option database to override default resources of base classes. |
| # |
| option add *Selectiondialog.title "Selection Dialog" widgetDefault |
| option add *Selectiondialog.master "." widgetDefault |
| |
| # ------------------------------------------------------------------ |
| # CONSTRUCTOR |
| # ------------------------------------------------------------------ |
| itcl::body iwidgets::Selectiondialog::constructor {args} { |
| # |
| # Set the borderwidth to zero. |
| # |
| component hull configure -borderwidth 0 |
| |
| # |
| # Instantiate a selection box widget. |
| # |
| itk_component add selectionbox { |
| iwidgets::Selectionbox $itk_interior.selectionbox \ |
| -dblclickcommand [itcl::code $this invoke] |
| } { |
| usual |
| |
| keep -childsitepos -exportselection -itemscommand -itemslabel \ |
| -itemson -selectionlabel -selectionon -selectioncommand |
| } |
| configure -itemscommand [itcl::code $this selectitem] |
| |
| pack $itk_component(selectionbox) -fill both -expand yes |
| set itk_interior [$itk_component(selectionbox) childsite] |
| |
| hide Help |
| |
| eval itk_initialize $args |
| } |
| |
| # ------------------------------------------------------------------ |
| # METHODS |
| # ------------------------------------------------------------------ |
| |
| # ------------------------------------------------------------------ |
| # METHOD: childsite |
| # |
| # Thinwrapped method of selection box class. |
| # ------------------------------------------------------------------ |
| itcl::body iwidgets::Selectiondialog::childsite {} { |
| return [$itk_component(selectionbox) childsite] |
| } |
| |
| # ------------------------------------------------------------------ |
| # METHOD: get |
| # |
| # Thinwrapped method of selection box class. |
| # ------------------------------------------------------------------ |
| itcl::body iwidgets::Selectiondialog::get {} { |
| return [$itk_component(selectionbox) get] |
| } |
| |
| # ------------------------------------------------------------------ |
| # METHOD: curselection |
| # |
| # Thinwrapped method of selection box class. |
| # ------------------------------------------------------------------ |
| itcl::body iwidgets::Selectiondialog::curselection {} { |
| return [$itk_component(selectionbox) curselection] |
| } |
| |
| # ------------------------------------------------------------------ |
| # METHOD: clear component |
| # |
| # Thinwrapped method of selection box class. |
| # ------------------------------------------------------------------ |
| itcl::body iwidgets::Selectiondialog::clear {component} { |
| $itk_component(selectionbox) clear $component |
| |
| return |
| } |
| |
| # ------------------------------------------------------------------ |
| # METHOD: insert component index args |
| # |
| # Thinwrapped method of selection box class. |
| # ------------------------------------------------------------------ |
| itcl::body iwidgets::Selectiondialog::insert {component index args} { |
| eval $itk_component(selectionbox) insert $component $index $args |
| |
| return |
| } |
| |
| # ------------------------------------------------------------------ |
| # METHOD: delete first ?last? |
| # |
| # Thinwrapped method of selection box class. |
| # ------------------------------------------------------------------ |
| itcl::body iwidgets::Selectiondialog::delete {first {last {}}} { |
| $itk_component(selectionbox) delete $first $last |
| |
| return |
| } |
| |
| # ------------------------------------------------------------------ |
| # METHOD: size |
| # |
| # Thinwrapped method of selection box class. |
| # ------------------------------------------------------------------ |
| itcl::body iwidgets::Selectiondialog::size {} { |
| return [$itk_component(selectionbox) size] |
| } |
| |
| # ------------------------------------------------------------------ |
| # METHOD: scan option args |
| # |
| # Thinwrapped method of selection box class. |
| # ------------------------------------------------------------------ |
| itcl::body iwidgets::Selectiondialog::scan {option args} { |
| return [eval $itk_component(selectionbox) scan $option $args] |
| } |
| |
| # ------------------------------------------------------------------ |
| # METHOD: nearest y |
| # |
| # Thinwrapped method of selection box class. |
| # ------------------------------------------------------------------ |
| itcl::body iwidgets::Selectiondialog::nearest {y} { |
| return [$itk_component(selectionbox) nearest $y] |
| } |
| |
| # ------------------------------------------------------------------ |
| # METHOD: index index |
| # |
| # Thinwrapped method of selection box class. |
| # ------------------------------------------------------------------ |
| itcl::body iwidgets::Selectiondialog::index {index} { |
| return [$itk_component(selectionbox) index $index] |
| } |
| |
| # ------------------------------------------------------------------ |
| # METHOD: selection option args |
| # |
| # Thinwrapped method of selection box class. |
| # ------------------------------------------------------------------ |
| itcl::body iwidgets::Selectiondialog::selection {option args} { |
| eval $itk_component(selectionbox) selection $option $args |
| } |
| |
| # ------------------------------------------------------------------ |
| # METHOD: selectitem |
| # |
| # Set the default button to ok and select the item. |
| # ------------------------------------------------------------------ |
| itcl::body iwidgets::Selectiondialog::selectitem {} { |
| default OK |
| $itk_component(selectionbox) selectitem |
| } |
| |