next up previous contents index
Next: 2. Computing the Desired Up: 2. Layout Management Functions Previous: 2. Layout Management Functions   Contents   Index

1. Querying the Children

This first function queries all the manager's children for their geometry. The parameter geoType can actually be several different values, but in practice I've never seen the GeoUtils use anything other than XmGET_PREFERRED_SIZE.

_XmGeoMatrixGet


void _XmGeoMatrixGet(XmGeoMatrix geoSpec, int geoType);

The pseudo code for this function is as follows:


_XmGeoMatrixGet()
{
    while (°rows remaining°) {
        if (°end of row°)
            °advance to next row°
        else
            _XmGeoLoadValues(kid);
}

_XmGeoLoadValues _XmGeoMatrixGet() uses a lower level function to ask children their prefered goemetry: _XmGeoLoadValues(). The behavior of the function is slightly different when the child is the instigator of a geometry management conversation.


void _XmGeoLoadValues(Widget wid, int geoType, Widget instigator, 
                      XtWidgetGeometry *request,
                      XtWidgetGeometry *geoResult);

Testing indicates that this function is used by the RowColumn in M*TIF.



Danny Backx
2000-12-13