For BulletinBoard, the query_geometry() method is probably the simplest - it does nothing on it's own behalf, but uses either the GeoMatrix (if a geo_matrix_create() method exists), or the generic method. This simplicity is deceiving; the complexity isn't visible in BulletinBoard - it's been shifted elsewhere.
_XmHandleQueryGeometry
static XtGeometryResult query_geometry(Widget w, XtWidgetGeometry *proposed, XtWidgetGeometry *answer) { XmBulletinBoardWidgetClass bbc = (XmBulletinBoardWidgetClass)XtClass(w); XtGeometryResult res; if (bbc->bulletin_board_class.geo_matrix_create) { return _XmHandleQueryGeometry(w, proposed, answer, BB_ResizePolicy(w), bbc->bulletin_board_class. geo_matrix_create); } res = _XmGMHandleQueryGeometry(w, proposed, answer, BB_MarginWidth(w), BB_MarginHeight(w), BB_ResizePolicy(w)); return res; }