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.