[-<--%--^-->-]
The Tcl/Tk toolkit offers very versatile means to
create graphical user interfaces and couple these
with programs written in C.
However, from the point of view of object oriented
programming and the use of Tcl/Tk in a C++ context,
the standard interface does not suffice.
The hush library is meant to provide a flexible, yet
easy to use, and above all simple, interface for Tcl/Tk in C++.
To some extent, it may be regarded as syntactic sugar
of an object oriented flavor, merely simplifying the interface
already provided by Tcl/Tk.
However, hush improves on the standard Tcl C interface
by providing the opportunity to employ handler objects,
allowing the programmer to deal in a type-secure way with client
information associated with events.
In addition, the hush library
allows for the definition of composite widgets
with the behavior of
one of the standard widgets.
To support such composite widgets,
each widget has a virtual path that coincides
with the widget's own path, unless it is redirected
to an inner component widget.
Composite widgets may be nested to arbitrary depth.
This solution has the advantage that the
composite widget may be given an already familiar
interface, both in C++ and Tcl,
with a minimum of coding.
The approach embodied by hush is intended
to allow the novice programmer
to develop graphical user interfaces easily,
however, without restricting experienced
and more demanding programmers, who may gradually
exploit the full functionality offered by Tk
and extend this by using C++.
Acknowledgement
I would like to thank Paula Ferguson from The X Resource
for her detailed advice on improving the readability
of the original article.
Acknowledgements are also due to Jacco van Ossenbruggen,
Martijn van Welie and Bastiaan Sch\"onhage for their
suggestions,
their contributions to the extensions of hush,
and their unrelenting insistence
on conceptual clarity.