The function prototype of XtMakeGeometryRequest() is as follows:
XtGeometryResult XtMakeGeometryRequest(Widget w, XtWidgetGeometry *desired, XtWidgetGeometry *allowed);
This function should be called from the widget which is passed as the first parameter. The second parameter describes the geometry that the widget would like to have. The last parameter returns the geometry that the widget got, in some circumstances. Finally, the result of the function is a value indicating whether the request has been granted.
XtWidgetGeometryThe XtWidgetGeometry structure contains the five fields indicated above (position, extend, and border width), together with a bitset in which you can indicate which fields have been initialized. In the return parameter, the bitset will also indicate how much information is valid. A common mistake is to assume that the parent widget will always set the width and height values, and to just read those fields without looking at the flags.
XtCWQueryOnlyCWXCWYCWWidthCWHeightCWBorderWidthThe bitset field is called request_mode. It can be set using an OR of zero or more of the macros CWX, CWY, CWWidth, CWHeight and CWBorderWidth, each of which has exactly one bit set. A final bit XtCWQueryOnly is currently not used within LESSTIF. When set, the call to XtMakeGeometryRequest() will return a result without changing anything to the widget.
XtMakeGeometryRequestXtGeometryYesXtGeometryDoneXtGeometryNoXtGeometryAlmostThe result of XtMakeGeometryRequest() can have four values: