 
 subsection3_4_2.html  subsection3_4_1.html  subsection3_4_1.html  tableofcontents3_1.html   Next: subsection3_4_2.html Widget Class Declaration Up: subsection3_4_1.html Widget Classes and  Previous: subsection3_4_1.html Widget Classes and    Widget Instances 
Each widget instance is composed of three integral parts: variables,
methods and component widgets.
VariablesEach widget instance is associated with a set of variables. In the
example of an instance of the TixArrowButton class, we may use a
variable to store the direction to which the arrow is pointing to. We
may also use a variable to count how many times the user has pressed
the button.
Each variable can be public or private. Public variables may be
accessed by the application programmer (usually via 
configureor 
cget methods) and their names usually start with a dash (-).
They usually are used to represent some user-configurable options of
the widget instance. Private variables, on the other hand, cannot be
accessed by the application programmer. They are usually used to store
information about the widget instance that are of interest only to the
widget writer.
All the variables of an instance are stored in a global array
(dictionary) that has the same name as the instance. For example, the
variables of the instance 
.up are stored in the global array
.up. The public variable -direction, which records the
direction to which the arrow is pointing to, is stored in
.up(-direction). The private variable count, which
counts how many times the user has pressed the button, is stored in
.up(count). In comparison, the same variables of the .downinstance are stored in 
.down(-direction) and .down(count).
Methods To carry out operations on the widget, you define a set
of methods. Each method can be declared as public or
private. Public methods can be called by the application
programmer. For example, if the 
TixArrowButton class supports the
public methods 
invoke and invert, the application programmer can issue
the commands to call these method for the widget instance 
.up.
.up invert
.up invoke
In contrast, private methods are of interests only to widget writers
and cannot be called by application programmers.
Component WidgetsA Tix mega-widget is composed of one or more component widgets. The
main part of a mega-widget is called the root widget, which is usually
a frame widget that encompasses all other component widgets. The other
component widgets are called subwidgets.
The root widget has the same name as the mega-widget itself. In
the above example, we have a mega-widget called 
.up. It has a
root widget which is a frame widget and is also called
.up. Inside .up we have a button subwidget called
.up.button.
Similar to variables and methods, component widgets are also
classified into public and private component widgets. Only public
widgets may be accessed by the application programmer, via the
subwidget method of each widget instance.
 
http://tix.sourceforge.nethttp://tix.sourceforge.net 