Provided by: tk-itk4-doc_4.1.0-3.1build1_all bug

NAME

       Toplevel - base class for mega-widgets in a top-level window

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-widget.  It creates a pop-up message  that  the  user
       can dismiss by pushing the "Dismiss" button.
              option add *MessageInfo.title "Notice" widgetDefault

              itcl::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
                  }
              }

              itk::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

itk                                                    3.0                                        Toplevel(3itk)