requests of their own. One exception is a RowColumn widget that is acting as a MenuBar, since it must be situated at
the top of the window, and it must span the window horizontally. ScrollBars are another possible exception, since they
are typically positioned at the edges of ScrolledWindow widgets.
So, how do children request geometry changes from their parents? The answer to this question is rather complicated,
since the X Toolkit Intrinsics supports a large selection of functions that enable two−way communication about
geometry management. For example, a child can use XtMakeGeometryRequest() to request permission to be
made a specific size or to be placed in a particular location. A parent can use a function like XtQueryGeometry()
to give a child the opportunity to announce its preferred geometry.
Some of these functions and methods are described in Chapter 8, Manager Widgets, but a detailed treatment of
custom geometry management techniques is beyond the scope of this book. These functions are mostly used by the
internals of composite and constraint widgets. See Volume Four, X Toolkit Intrinsics Programming Manual, for a
more detailed discussion of geometry management techniques.
In the Motif toolkit, geometry management cannot work without cooperation. The easiest way for a child to cooperate
with its parents and siblings is simply to comply with whatever layout policy is supported by its manager widget
parent. A child should not try to force itself into a size or a position that is ...