NAME
Widget - base class for mega-widgets within a frame
INHERITANCE
itk::Archetype <- itk::Widget
STANDARD OPTIONS
background cursor
See the "options" manual entry for details on the standard
options.
_________________________________________________________________
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.
COMPONENTS
Name: hull
Class: Frame
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 simple TextDisplay
mega-widget. 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 {
} {
usual
keep -tabs -wrap -width -height
rename -background -textbackground textBackground Background
}
pack $itk_component(text) -side left -expand yes -fill both
itk_component add scrollbar {
scrollbar $itk_interior.sbar -command [code $itk_interior.info yview]
}
pack $itk_component(scrollbar) -side right -fill y
eval itk_initialize $args
}
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
.file display [exec cat /etc/passwd]
KEYWORDS
itk, Archetype, Widget, mega-widget
Man(1) output converted with
man2html