Mega-widgets are high-level widgets that are constructed using
Tk widgets as component parts, usually without any C code. A
fileselectionbox, for example, may have a few listboxes, some
entry widgets and some control buttons. These individual widgets
are put together in a way that makes them act like one big
widget. A fileselectionbox mega-widget can be created with a
fileselectionbox .fsb -background blue -foreground white
Once it has been created, it can be reconfigured with a command
.fsb configure -background green -foreground black
and all of its internal components will change color. Each
mega-widget has a set of methods that can be used to manipulate
it. For example, the current selection can be queried from a
fileselectionbox like this:
set fileName [.fsb get]
In effect, a mega-widget looks and acts exactly like a Tk widget,
but is considerably easier to implement.
[incr Tk] is a framework for building mega-widgets. It
uses [incr Tcl] to support the object paradigm, and adds
base classes which provide default widget behaviors.
All [incr Tk] widgets are derived from the Archetype
base class. This class manages internal component widgets,
and provides methods like "configure" and "cget" to access
The Widget base class inherits everything from Archetype,
and adds a Tk frame which acts as a container for the mega-widget.
It is used to build mega-widgets that sit inside of other frames
and toplevels. Derived classes create other internal components
and pack them into the "hull" frame created by the Widget
The Toplevel base class inherits everything from Archetype,
but adds a Tk toplevel which acts as a container for the mega-widget.
It is used to build mega-widgets, such as dialog boxes, that have
their own toplevel window. Derived classes create other internal
components and pack them into the "hull" toplevel created by the
Toplevel base class.