summaryrefslogtreecommitdiff
path: root/iwidgets/generic/selectiondialog.itk
diff options
context:
space:
mode:
Diffstat (limited to 'iwidgets/generic/selectiondialog.itk')
-rw-r--r--iwidgets/generic/selectiondialog.itk233
1 files changed, 233 insertions, 0 deletions
diff --git a/iwidgets/generic/selectiondialog.itk b/iwidgets/generic/selectiondialog.itk
new file mode 100644
index 00000000000..076d8880195
--- /dev/null
+++ b/iwidgets/generic/selectiondialog.itk
@@ -0,0 +1,233 @@
+#
+# 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$
+# ----------------------------------------------------------------------
+# 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
+}
+