source files: xchc.[ch]
(send <xchc> :insert :body-thing <thing> :field-thing <thing> :text-thing <thing> [ :X <num> ] [ :Y <num> ] [ :Z <num> ] [ :SCALE <num> ] [ :SCALE-X <num> ] [ :SCALE-Y <num> ] [ :SCALE-Z <num> ] )
This call returns a :DRAWable, :RUN-WIDGETSable <thinglist> for the menu <xchc>:
(send <xcmr> :DRAW :things <thinglist>)
will suffice to display the widget on the chosen camera xcmr, and
(send <xcmr> :RUN-WIDGETS :things <thinglist>)
will suffice to support user interaction via the menu.
Before SCALING, the resulting widget is centered on :X :Y :Z, facing you as you look toward positive Z, of width 1.0 in x.
This call inserts the appropriate geometry and hooks into the <thing>s, but no more: the caller will normally want to insert at least :MATERIAL properties into the <things> to select a reasonable appearance for the menu, and possibly also :LIGHTS etc.
This message inserts a frustum into :BODY-THING (which should be a thing of rectangles with facet normals) to constitute the background of the menu, and also hook functions to animate the menu. The resulting frustum has a face angle of forty-five degrees prior to scaling.
This message inserts rectangles into :FIELD-THING (which should be a thing of rectangles with facet normals) to constitute the background on which the menus choices are shown.
This message inserts text into :TEXT-THING (which should be a thing of linesegments) to contain the text for the menu.
In general, inserting new geometry by hand into any of the above things is inadvisable. Adding hooks to :BODY-THING may be useful, adding hooks to the other things is inadvisable.