Note, however, that not every event that occurs in a widget results in a callback to an application function. Widgets
are designed to handle many events themselves, with no interaction from the application. All widgets know how to
draw themselves, for example. A widget may even provide application−like functionality. For example, a Text widget
typically provides a complete set of editing commands via internal widget functions called actions. Actions are
mapped to events in a translation table. This table can be augmented, selectively overridden, or completely replaced
by settings contained in the implementation of a widget class, in application code, or in a user's resource files.
In the basic Xt design, translations are intended to be configurable by the user. However, the purpose of Xt is to
provide mechanism, not impose user−interface policy. In Motif, translations are typically not modified by either the
user or the application programmer. While it is possible for an application to install event handlers or new translations
and actions for a widget, most Motif widgets expect application interaction to occur only through callbacks.
Since the Motif widgets are designed to allow application interaction through callbacks, we don't discuss translations
very often in this book. Some of the Motif widgets, particularly buttons when they are used in menus, have undefined
behavior when their translations are augmented or overiddden. An experienced Xt programmer may feel that Motif's
limitations ...