DragonFly On-Line Manual Pages
    
    
	
Toplevel(n)                        [incr Tk]                       Toplevel(n)
See the file man.macros.
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(n)