[-<--%--^-->-] 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++.


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.