NAME

       Toplevel - base class for mega-widgets in a top-level win­
       dow


INHERITANCE

       itk::Archetype <- itk::Toplevel


STANDARD OPTIONS

       background      cursor

       See the "options" manual entry for details on the standard
       options.


WIDGET-SPECIFIC OPTIONS

       Name:   title
       Class:  Title
       Command-Line Switch:    -title

              Sets  the title that the window manager displays in
              the title bar above the window.  The default  title
              is the null string.
_________________________________________________________________


DESCRIPTION

       The  Toplevel class inherits everything from the Archetype
       class, and adds a Tk toplevel called the "hull"  component
       to  represent  the  body  of  the mega-widget.  The window
       class name for the hull is set to the most-specific  class
       name   for   the   mega-widget.   The  protected  variable
       itk_interior contains the window path name for the  "hull"
       component.   Derived  classes  specialize  this  widget by
       packing other widget components into the hull.

       Since the hull for the Toplevel class is implemented  with
       a  Tk  toplevel,  mega-widgets  in the Toplevel class have
       their own toplevel window.  This class is used  to  create
       dialog boxes and other pop-up windows.


COMPONENTS

       Name:           hull
       Class:          Toplevel

              The  "hull"  component  acts  as  the  body for the
              entire mega-widget.  Other  components  are  packed
              into the hull to further specialize the widget.


EXAMPLE

       The  following  example implements a MessageInfo mega-wid­
       get.  It creates  a  pop-up  message  that  the  user  can

              option add *MessageInfo.title "Notice" widgetDefault

              class MessageInfo {
                  inherit itk::Toplevel

                  constructor {args} {
                      itk_component add dismiss {
                          button $itk_interior.dismiss -text "Dismiss"                 -command "destroy $itk_component(hull)"
                      }
                      pack $itk_component(dismiss) -side bottom -pady 4

                      itk_component add separator {
                          frame $itk_interior.sep -height 2 -borderwidth 1 -relief sunken
                      }
                      pack $itk_component(separator) -side bottom -fill x -padx 4

                      itk_component add icon {
                          label $itk_interior.icon -bitmap info
                      }
                      pack $itk_component(icon) -side left -padx 8 -pady 8

                      itk_component add infoFrame {
                          frame $itk_interior.info
                      }
                      pack $itk_component(infoFrame) -side left -expand yes             -fill both -padx 4 -pady 4

                      itk_component add message {
                          label $itk_interior.mesg -width 20
                      } {
                          usual
                          rename -text -message message Text
                      }
                      pack $itk_component(message) -expand yes -fill both

                      eval itk_initialize $args

                      after idle [code $this centerOnScreen]
                  }

                  protected method centerOnScreen {} {
                      update idletasks
                      set wd [winfo reqwidth $itk_component(hull)]
                      set ht [winfo reqheight $itk_component(hull)]
                      set x [expr ([winfo screenwidth $itk_component(hull)]-$wd)/2]
                      set y [expr ([winfo screenheight $itk_component(hull)]-$ht)/2]
                      wm geometry $itk_component(hull) +$x+$y
                  }
              }

              usual MessageInfo {
                  keep -background -cursor -foreground -font
                  keep -activebackground -activeforeground -disabledforeground
                  keep -highlightcolor -highlightthickness


              #
              # EXAMPLE:  Create a notice window:
              #
              MessageInfo .m -message "File not found:\n/usr/local/bin/foo"


KEYWORDS

       itk, Archetype, Widget, mega-widget


Man(1) output converted with man2html