
Our example is a bit contrived, so it may seem pointless to call XtAddCallback() for each PushButton and
specify an XmNentryCallback as well. The most compelling reason for using an entry callback is that you may
want to provide client data for the RowColumn as a whole, as well as for each child widget.
Remember that the RowColumn widget is also used for a number of objects implemented internally by the Motif
toolkit, such as the Motif menu system, RadioBoxes, and CheckBoxes. Many of the resources for the widget are
specific to these objects, so they are not discussed here. For more information on menus, see Chapter 4, The Main
Window, and Chapter 15, Menus; for information on RadioBoxes and CheckBoxes, see Chapter 11, Labels and
Buttons.
9.6 The Frame Widget
The Frame is a simple manager widget; the purpose of the Frame is to draw a three−dimensional border around its
child. In Motif 1.1, a Frame can contain only one child. With Motif 1.2, the widget can have two children: a work
area child and a title child. The Frame shrink wraps itself around its work area child, adding space for a title if one is
specified. The children are responsible for setting the size of the Frame.
The Frame is useful for grouping related control elements, so that they are separated visually from other elements in a
window. The Frame is commonly used as the parent of RadioBoxes and CheckBoxes, since the RowColumn ...