home *** CD-ROM | disk | FTP | other *** search
/ PC World 2000 December / PCWorld_2000-12_cd.bin / Komunikace / Comanche / comanche.exe / lib / iwidgets2.2.0 / scripts / messagedialog.itk < prev    next >
Text File  |  1999-02-24  |  6KB  |  163 lines

  1. #
  2. # Messagedialog
  3. # ----------------------------------------------------------------------
  4. # Implements a message dialog composite widget.  The Messagedialog is 
  5. # derived from the Dialog class and is composed of an image and text
  6. # component.  The image will accept both images as well as bitmaps.
  7. # The text can extend mutliple lines by embedding newlines.
  8. # ----------------------------------------------------------------------
  9. #  AUTHOR: Mark L. Ulferts               EMAIL: mulferts@spd.dsccc.com
  10. #
  11. #  @(#) $Id: messagedialog.itk,v 1.1 1998/07/27 18:49:37 stanton Exp $
  12. # ----------------------------------------------------------------------
  13. #            Copyright (c) 1995 DSC Technologies Corporation
  14. # ======================================================================
  15. # Permission to use, copy, modify, distribute and license this software 
  16. # and its documentation for any purpose, and without fee or written 
  17. # agreement with DSC, is hereby granted, provided that the above copyright 
  18. # notice appears in all copies and that both the copyright notice and 
  19. # warranty disclaimer below appear in supporting documentation, and that 
  20. # the names of DSC Technologies Corporation or DSC Communications 
  21. # Corporation not be used in advertising or publicity pertaining to the 
  22. # software without specific, written prior permission.
  23. # DSC DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING 
  24. # ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, AND NON-
  25. # INFRINGEMENT. THIS SOFTWARE IS PROVIDED ON AN "AS IS" BASIS, AND THE
  26. # AUTHORS AND DISTRIBUTORS HAVE NO OBLIGATION TO PROVIDE MAINTENANCE, 
  27. # SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. IN NO EVENT SHALL 
  28. # DSC BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR 
  29. # ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, 
  30. # WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTUOUS ACTION,
  31. # ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS 
  32. # SOFTWARE.
  33. # ======================================================================
  34.  
  35. #
  36. # Default resources.
  37. #
  38. option add *Messagedialog.title "Message Dialog" widgetDefault
  39. option add *Messagedialog.textPadX 20 widgetDefault
  40. option add *Messagedialog.textPadY 20 widgetDefault
  41. option add *Messagedialog.master "." widgetDefault
  42.  
  43. #
  44. # Usual options.
  45. #
  46. itk::usual Messagedialog {
  47.     keep -background -cursor -font -foreground -modality
  48. }
  49.  
  50. # ------------------------------------------------------------------
  51. #                            MESSAGEDIALOG
  52. # ------------------------------------------------------------------
  53. class iwidgets::Messagedialog {
  54.     inherit iwidgets::Dialog
  55.  
  56.     constructor {args} {}
  57.  
  58.     itk_option define -imagepos imagePos Position w
  59. }
  60.  
  61. #
  62. # Provide a lowercased access method for the Messagedialog class.
  63. proc ::iwidgets::messagedialog {pathName args} {
  64.     uplevel ::iwidgets::Messagedialog $pathName $args
  65. }
  66.  
  67. # ------------------------------------------------------------------
  68. #                        CONSTRUCTOR
  69. # ------------------------------------------------------------------
  70. body iwidgets::Messagedialog::constructor {args} {
  71.     #
  72.     # Create a frame to be centered and used as padding.
  73.     #
  74.     itk_component add frame {
  75.     frame $itk_interior.frame 
  76.     } {
  77.     keep -background -cursor 
  78.     }
  79.     pack $itk_component(frame) -anchor center -expand yes 
  80.     
  81.     #
  82.     # Create the image component which may be either a bitmap or image.
  83.     #
  84.     itk_component add image {
  85.     label $itk_component(frame).image 
  86.     } {
  87.     keep -background -bitmap -cursor -foreground -image 
  88.     }
  89.     pack $itk_component(image) -anchor center
  90.     
  91.     #
  92.     # Create the text message component.  The message may extend over
  93.     # several lines by embedding '\n' characters.
  94.     #
  95.     itk_component add msg {
  96.     label $itk_component(frame).msg
  97.     } {
  98.     keep -anchor -background -cursor -font -foreground -text \
  99.         -justify -wraplength
  100.     rename -padx -textpadx textPadX Pad
  101.     rename -pady -textpady textPadY Pad
  102.     }
  103.     pack $itk_component(msg) -side right 
  104.     
  105.     #
  106.     # Hide the apply and help buttons.
  107.     #
  108.     hide Apply
  109.     hide Help
  110.     
  111.     #
  112.     # Explicitly handle configs that may have been ignored earlier.
  113.     #
  114.     eval itk_initialize $args
  115. }   
  116.  
  117. # ------------------------------------------------------------------
  118. #                             OPTIONS
  119. # ------------------------------------------------------------------
  120.  
  121. # ------------------------------------------------------------------
  122. # OPTION: -imagepos
  123. #
  124. # Specifies the image position relative to the message: n, s,
  125. # e, or w.  The default is w.
  126. # ------------------------------------------------------------------
  127. configbody iwidgets::Messagedialog::imagepos {
  128.     switch $itk_option(-imagepos) {
  129.         n {
  130.             pack configure $itk_component(msg) \
  131.                 -side top -anchor center
  132.             pack configure $itk_component(image) -side top \
  133.                 -anchor center -before $itk_component(msg)
  134.         }
  135.         s {
  136.             pack configure $itk_component(msg) \
  137.                 -side top -anchor center
  138.             pack configure $itk_component(image) -side top \
  139.                 -anchor center -after $itk_component(msg)
  140.         }
  141.         e {
  142.             pack configure $itk_component(msg) \
  143.                 -side left -anchor center
  144.             pack configure $itk_component(image) -side left \
  145.                 -anchor center -after $itk_component(msg)
  146.         }
  147.         w {
  148.             pack configure $itk_component(msg) \
  149.                 -side left -anchor center
  150.             pack configure $itk_component(image) -side left \
  151.                 -anchor center -before $itk_component(msg)
  152.         }
  153.     
  154.         default {
  155.             error "bad imagepos option \"$itk_option(-imagepos)\":\
  156.             should be n, e, s, or w"
  157.         }
  158.     }
  159. }
  160.