next up previous contents index
Next: 7. The change_managed() Method Up: 3. Geometry Management and Previous: 5. The query_geometry() Method   Contents   Index

6. The geometry_manager() Method

geometry_managermethodThis is the trickiest one. The preferred-size-routine should take two parameters, instigator and instig_request, and use the values specified in instig_request when treating the instigator.

There are two additional rules that you should keep in mind: geometry_manager() doesn't get called if the parent isn't realized; it also doesn't get called if the child isn't managed (in both cases, the request is automatically granted). The method should then call _XmMakeGeometryRequest(). Doing this guarantees that either XtGeometryYes or XtGeometryNo is returned - you'll never see XtGeometryAlmost unless a composite has a bug.

Finally the layout function should be called. The layout function should take two additional parameters, the instigator and the instig_request. What to do next depends on the value that's going to be returned by the geometry_manager() method:


\begin{itemlist}
\item If the result of the layout procedure on the instigator i...
...t in \textsc{LessTif}{}. The GeoUtils and RowColumn
do this now.
\end{itemlist}

In the layout function, if the child being manipulated is not the instigator, then the child should be configured (normally using _XmConfigureObject()), if the return is XtGeometryYes.


next up previous contents index
Next: 7. The change_managed() Method Up: 3. Geometry Management and Previous: 5. The query_geometry() Method   Contents   Index
Danny Backx
2000-12-13