# # Promptdialog # ---------------------------------------------------------------------- # Implements a prompt dialog similar to the OSF/Motif standard prompt # dialog composite widget. The Promptdialog is derived from the # Dialog class and is composed of a EntryField with methods to # manipulate the dialog buttons. # # ---------------------------------------------------------------------- # AUTHOR: Mark L. Ulferts EMAIL: mulferts@spd.dsccc.com # # @(#) $Id: promptdialog.itk,v 1.3 2006/09/11 20:35:55 irby 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. # ====================================================================== # # Default resources. # option add *Promptdialog.borderWidth 2 widgetDefault option add *Promptdialog.labelText Selection widgetDefault option add *Promptdialog.labelPos nw widgetDefault option add *Promptdialog.title "Prompt Dialog" widgetDefault option add *Promptdialog.padX 10 widgetDefault option add *Promptdialog.padY 10 widgetDefault option add *Promptdialog.master "." widgetDefault # # Usual options. # itk::usual Promptdialog { keep -background -borderwidth -cursor -foreground -highlightcolor \ -highlightthickness -insertbackground -insertborderwidth \ -insertofftime -insertontime -insertwidth -labelfont -modality \ -selectbackground -selectborderwidth -selectforeground \ -textbackground -textfont } # ------------------------------------------------------------------ # PROMPTDIALOG # ------------------------------------------------------------------ class iwidgets::Promptdialog { inherit iwidgets::Dialog constructor {args} {} public method get {} public method clear {} public method insert {args} public method delete {args} public method icursor {args} public method index {args} public method scan {args} public method selection {args} method xview {args} } # # Provide a lowercased access method for the Dialogshell class. # proc ::iwidgets::promptdialog {pathName args} { uplevel ::iwidgets::Promptdialog $pathName $args } # ------------------------------------------------------------------ # CONSTRUCTOR # ------------------------------------------------------------------ body iwidgets::Promptdialog::constructor {args} { component hull configure -borderwidth 0 # # Instantiate an entry field widget. # itk_component add ef { iwidgets::Entryfield $itk_interior.ef -command [code $this invoke] } { keep -background -borderwidth -childsitepos -cursor \ -exportselection -fixed -foreground \ -highlightcolor -highlightthickness -insertbackground \ -insertborderwidth -insertofftime -insertontime \ -insertwidth -invalid -justify -labelfont -labelbitmap \ -labelimage -labelmargin -labelpos -labeltext -relief \ -selectbackground -selectborderwidth -selectforeground \ -show -state -textbackground -textfont -textvariable \ -validate -width } pack $itk_component(ef) -fill x -expand yes set itk_interior [childsite] hide Help # # Explicitly handle configs that may have been ignored earlier. # eval itk_initialize $args } # ------------------------------------------------------------------ # METHODS # ------------------------------------------------------------------ # ------------------------------------------------------------------ # METHOD: get # # Thinwrapped method of entry field class. # ------------------------------------------------------------------ body iwidgets::Promptdialog::get {} { return [$itk_component(ef) get] } # ------------------------------------------------------------------ # METHOD: clear # # Thinwrapped method of entry field class. # ------------------------------------------------------------------ body iwidgets::Promptdialog::clear {} { eval $itk_component(ef) clear } # ------------------------------------------------------------------ # METHOD: insert args # # Thinwrapped method of entry field class. # ------------------------------------------------------------------ body iwidgets::Promptdialog::insert {args} { eval $itk_component(ef) insert $args } # ------------------------------------------------------------------ # METHOD: delete first ?last? # # Thinwrapped method of entry field class. # ------------------------------------------------------------------ body iwidgets::Promptdialog::delete {args} { eval $itk_component(ef) delete $args } # ------------------------------------------------------------------ # METHOD: icursor # # Thinwrapped method of entry field class. # ------------------------------------------------------------------ body iwidgets::Promptdialog::icursor {args} { eval $itk_component(ef) icursor $args } # ------------------------------------------------------------------ # METHOD: index # # Thinwrapped method of entry field class. # ------------------------------------------------------------------ body iwidgets::Promptdialog::index {args} { return [eval $itk_component(ef) index $args] } # ------------------------------------------------------------------ # METHOD: scan option args # # Thinwrapped method of entry field class. # ------------------------------------------------------------------ body iwidgets::Promptdialog::scan {args} { eval $itk_component(ef) scan $args } # ------------------------------------------------------------------ # METHOD: selection args # # Thinwrapped method of entry field class. # ------------------------------------------------------------------ body iwidgets::Promptdialog::selection {args} { eval $itk_component(ef) selection $args } # ------------------------------------------------------------------ # METHOD: xview args # # Thinwrapped method of entry field class. # ------------------------------------------------------------------ body iwidgets::Promptdialog::xview {args} { eval $itk_component(ef) xview $args }