NAME
Widget - base class for mega-widgets within a frame
INHERITANCE
itk::Archetype <- itk::Toplevel
WIDGET-SPECIFIC OPTIONS
Name: title
Class: Title
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.
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
class MessageInfo {
inherit itk::Toplevel
constructor {args} {
itk_component add dismiss {
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
}
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:0usr/local/bin/foo"
KEYWORDS
itk, Archetype, Widget, mega-widget