| # |
| # Messagedialog |
| # ---------------------------------------------------------------------- |
| # Implements a message dialog composite widget. The Messagedialog is |
| # derived from the Dialog class and is composed of an image and text |
| # component. The image will accept both images as well as bitmaps. |
| # The text can extend mutliple lines by embedding newlines. |
| # |
| # ---------------------------------------------------------------------- |
| # AUTHOR: Mark L. Ulferts EMAIL: mulferts@austin.dsccc.com |
| # |
| # @(#) $Id: messagedialog.itk,v 1.3 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 Messagedialog { |
| keep -background -cursor -font -foreground -modality |
| keep -wraplength -justify |
| } |
| |
| # ------------------------------------------------------------------ |
| # MESSAGEDIALOG |
| # ------------------------------------------------------------------ |
| itcl::class iwidgets::Messagedialog { |
| inherit iwidgets::Dialog |
| |
| constructor {args} {} |
| |
| itk_option define -imagepos imagePos Position w |
| } |
| |
| # |
| # Provide a lowercased access method for the Messagedialog class. |
| # |
| proc ::iwidgets::messagedialog {pathName args} { |
| uplevel ::iwidgets::Messagedialog $pathName $args |
| } |
| |
| # |
| # Use option database to override default resources of base classes. |
| # |
| option add *Messagedialog.title "Message Dialog" widgetDefault |
| option add *Messagedialog.master "." widgetDefault |
| option add *Messagedialog.textPadX 20 widgetDefault |
| option add *Messagedialog.textPadY 20 widgetDefault |
| |
| # ------------------------------------------------------------------ |
| # CONSTRUCTOR |
| # ------------------------------------------------------------------ |
| itcl::body iwidgets::Messagedialog::constructor {args} { |
| # |
| # Create the image component which may be either a bitmap or image. |
| # |
| itk_component add image { |
| label $itk_interior.image |
| } { |
| keep -background -bitmap -cursor -foreground -image |
| } |
| |
| # |
| # Create the text message component. The message may extend over |
| # several lines by embedding '\n' characters. |
| # |
| itk_component add message { |
| label $itk_interior.message |
| } { |
| keep -background -cursor -font -foreground -text |
| keep -wraplength -justify |
| |
| rename -padx -textpadx textPadX Pad |
| rename -pady -textpady textPadY Pad |
| } |
| |
| # |
| # Hide the apply and help buttons. |
| # |
| hide Apply |
| hide Help |
| |
| # |
| # Initialize the widget based on the command line options. |
| # |
| eval itk_initialize $args |
| } |
| |
| # ------------------------------------------------------------------ |
| # OPTIONS |
| # ------------------------------------------------------------------ |
| |
| # ------------------------------------------------------------------ |
| # OPTION: -imagepos |
| # |
| # Specifies the image position relative to the message: n, s, |
| # e, or w. The default is w. |
| # ------------------------------------------------------------------ |
| itcl::configbody iwidgets::Messagedialog::imagepos { |
| switch $itk_option(-imagepos) { |
| n { |
| grid $itk_component(image) -row 0 -column 0 |
| grid $itk_component(message) -row 1 -column 0 |
| } |
| s { |
| grid $itk_component(message) -row 0 -column 0 |
| grid $itk_component(image) -row 1 -column 0 |
| } |
| e { |
| grid $itk_component(message) -row 0 -column 0 |
| grid $itk_component(image) -row 0 -column 1 |
| } |
| w { |
| grid $itk_component(image) -row 0 -column 0 |
| grid $itk_component(message) -row 0 -column 1 |
| } |
| |
| default { |
| error "bad imagepos option \"$itk_option(-imagepos)\":\ |
| should be n, e, s, or w" |
| } |
| } |
| } |