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 command like:
fileselectionbox .fsb -background blue -foreground white
Once it has been created, it can be reconfigured with a command like:
.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.
[incrTk] is a framework for building mega-widgets. It uses [incrTcl] to support the object paradigm,
and adds base classes which provide default widget behaviors.
All [incrTk] widgets are derived from the Archetype base class. This class manages internal component
widgets, and provides methods like "configure" and "cget" to access configuration options.
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 base class.
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.