NAME
Widget - base class for mega-widgets within a frame
INHERITANCE
itk::Archetype <- itk::Widget
DESCRIPTION
The Widget class inherits everything from the Archetype class, and adds a Tk frame 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 Widget class is implemented with a Tk frame, mega-widgets in the Widget class can be packed into other frames and toplevels.
EXAMPLE
The following example implements a simple TextDisplay megawidget. It creates a read-only display of text with a text widget and a scrollbar.
option add *TextDisplay.wrap none widgetDefault option add *TextDisplay.textBackground ivory widgetDefault option add *TextDisplay.width 40 widgetDefault option add *TextDisplay.height 10 widgetDefault
class TextDisplay {
inherit itk::Widget constructor {args} {
itk_component add text {
public method display {info}
public method append {info}
}
body TextDisplay::display {info} {
$itk_component(text) configure -state normal $itk_component(text) delete 1.0 end $itk_component(text) insert 1.0 $info $itk_component(text) configure -state disabled }
body TextDisplay::append {info} {
$itk_component(text) configure -state normal $itk_component(text) insert end $info $itk_component(text) configure -state disabled }
usual TextDisplay {
keep -background -cursor -foreground -font keep -activebackground -activerelief keep -highlightcolor -highlightthickness keep -insertbackground -insertborderwidth -insertwidth keep -insertontime -insertofftime
keep -selectbackground -selectborderwidth -selectforeground keep -textbackground -troughcolor
}
#
# EXAMPLE: Display the /etc/passwd file #
TextDisplay .file -background red
pack .file