home *** CD-ROM | disk | FTP | other *** search
- #
- # 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
- }
-
-