1XmRowColumn(library call)                            XmRowColumn(library call)
2
3
4

NAME

6       XmRowColumn — The RowColumn widget class
7

SYNOPSIS

9       #include <Xm/RowColumn.h>
10

DESCRIPTION

12       The  RowColumn widget is a general purpose RowColumn manager capable of
13       containing any widget type as a child.  In general, it requires no spe‐
14       cial  knowledge  about  how  its children function and provides nothing
15       beyond support for several different layout styles. However, it can  be
16       configured  as a menu, in which case, it expects only certain children,
17       and it configures to a  particular  layout.  The  menus  supported  are
18       MenuBar,  Pulldown or Popup menu panes, and OptionMenu.  RowColumn uses
19       the XmQTmenuSavvy trait and holds the XmQTmenuSystem trait.
20
21       The type of layout performed is controlled by how the  application  has
22       set  the various layout resources.  It can be configured to lay out its
23       children in either rows or columns. In addition,  the  application  can
24       specify how the children are laid out, as follows:
25
26          ·  The children are packed tightly together into either rows or col‐
27             umns
28
29          ·  Each child is placed in an identically  sized  box  (producing  a
30             symmetrical look)
31
32          ·  A  specific layout (the current x and y positions of the children
33             control their location)
34
35       In addition, the application has control over  both  the  spacing  that
36       occurs  between  each  row  and  column  and the margin spacing present
37       between the edges of the RowColumn widget and  any  children  that  are
38       placed against it.
39
40       The  default  XmNinsertPosition procedure for the RowColumn returns the
41       value of XmNpositionIndex if one has been specified for the child. Oth‐
42       erwise,  this  procedure  returns the number of children in the RowCol‐
43       umn's XmNnumChildren list.  In a MenuBar, Pulldown menu pane, or  Popup
44       menu  pane the default for the XmNshadowThickness resource is 2.  In an
45       OptionMenu or a  WorkArea,  (such  as  a  RadioBox  or  CheckBox)  this
46       resource is not applicable and its use is undefined.  If an application
47       wishes to place a 3-D shadow around an OptionMenu or WorkArea,  it  can
48       create the RowColumn as a child of a Frame widget.
49
50       In a MenuBar, Pulldown menu pane, or Popup menu pane the XmNnavigation‐
51       Type resource is not  applicable  and  its  use  is  undefined.   In  a
52       WorkArea,  the  default  for  XmNnavigationType  is XmTAB_GROUP.  In an
53       OptionMenu the default for XmNnavigationType is XmNONE.
54
55       In a MenuBar, Pulldown menu pane, or Popup menu pane the XmNtraversalOn
56       resource  is not applicable and its use is undefined.  In an OptionMenu
57       or WorkArea, the default for XmNtraversalOn is True.
58
59       If the parent of the RowColumn is a MenuShell, the XmNmappedWhenManaged
60       resource is forced to False when the widget is realized.
61
62       The user can specify resources in a resource file for the automatically
63       created widgets and gadgets of an OptionMenu. The following list  iden‐
64       tifies  the  names  of  these  widgets  (or gadgets) and the associated
65       OptionMenu areas.
66
67       Option Menu Label Gadget
68                 OptionLabel
69
70       Option Menu Cascade Button
71                 OptionButton
72
73       For the Popup and Pulldown Menupanes, popup  and  pulldown  menus  have
74       particular  behaviors  when  the  <Btn1>  button is pressed outside the
75       menus. These behaviors are summarized here.
76
77       When there is already a popped up menu, a user can either press  <Btn1>
78       in  the same area as the popped up menu, or can press <Btn1> in another
79       area that should have a menu popped up. When <Btn1> is pressed  in  the
80       same  area  as  the  already popped up menu, that menu is unposted.  If
81       <Btn1> is pressed in a different area, the  associated  popup  menu  is
82       posted  for  the  new area. Note, however, that if the XmNpopupHandler‐
83       Callback of either XmManager or  XmPrimitive  is  available,  then  the
84       callback may override these default behaviors.
85
86       For  pulldown  menus,  a user can press <Btn1> on the Cascade button to
87       post the pulldown menu, then click on it again. Upon the second  click,
88       the pulldown menu is unposted.
89
90       Popup menus are not allowed to have NULL parents.
91
92   Tear-off Menus
93       Pulldown  and Popup menu panes support tear-off menus, which enable the
94       user to retain a menu pane on the display to facilitate subsequent menu
95       selections.  A  menu pane that can be torn-off is identified by a tear-
96       off button that spans the width of the menu pane and displays a  dashed
97       line.  A  torn-off menu pane contains a window manager system menu icon
98       and a title bar. The window title displays the  label  of  the  cascade
99       button  that  initiated  the action when the label type is XmSTRING. If
100       the label contains a pixmap the window title is empty. A tear-off  menu
101       from  a  Popup  menu pane also displays an empty title.  Tear-off menus
102       should not be shared.
103
104       The user can tear off a menu pane using the mouse or keyboard.   Click‐
105       ing  <Btn1>  or pressing <osfActivate> (or <osfSelect>) on the tear-off
106       button, tears off the menu  pane  at  the  current  position.  Pressing
107       <Btn2>  on  the  tear-off button tears off the menu pane and allows the
108       user to drag the torn-off menu to a new position designated by  releas‐
109       ing  the  mouse  button.  Tearing  off  a menu pane unposts the current
110       active menu. Only one tear-off copy for each menu pane is allowed. Sub‐
111       sequent  tear-off  actions of a torn menu pane unpost the existing copy
112       first.
113
114       The name of the tear-off button of a torn-off menu pane is  TearOffCon‐
115       trol.  The  name  can  be  used to set resources in a resource file. An
116       application can also obtain the tear-off  button  itself  using  XmGet‐
117       TearOffControl and then set resource values by calling XtSetValues.
118
119       The  tear-off button has Separator-like behavior. Its appearance can be
120       specified with the following tear-off button resources:  XmNbackground,
121       XmNbackgroundPixmap,  XmNbottomShadowColor,  XmNforeground,  XmNheight,
122       XmNmargin, XmNseparatorType, XmNshadowThickness, and XmNtopShadowColor.
123       Refer  to  the XmSeparator reference page for a complete description of
124       each of these resources.
125
126       The XmNtearOffModel,  XmNtearOffMenuActivateCallback,  and  XmNtearOff‐
127       MenuDeactivateCallback  are  RowColumn  resources  that affect tear-off
128       menu behavior.  The XmNtearOffTitle resource enables the application to
129       specify the tear-off menu's title if the menu is torn off.
130
131       By default, menus do not tear off. Setting the XmNtearOffModel resource
132       to XmTEAR_OFF_ENABLED enables  tear-off  functionality.   There  is  no
133       resource converter preregistered for XmNtearOffModel. To allow tear-off
134       functionality to be enabled through the  resource  database,  call  the
135       function XmRepTypeInstallTearOffModelConverter.
136
137       Tear-off  menu  focus policy follows standard window manager policy. It
138       is recommended that the startupKeyFocus and autoKeyFocus mwm  resources
139       be set to True.
140
141   Descendants
142       RowColumn  automatically creates the descendants shown in the following
143       table.  An application can use XtNameToWidget to  gain  access  to  the
144       named  descendant.  In  addition,  a user or an application can use the
145       named descendant when specifying resource values.
146
147       ┌─────────────────┬─────────────────────────┬─────────────────────┐
148Named Descendant Class                   Identity            
149       ├─────────────────┼─────────────────────────┼─────────────────────┤
150       ├─────────────────┼─────────────────────────┼─────────────────────┤
151       ├─────────────────┼─────────────────────────┼─────────────────────┤
152OptionButton     XmCascadeButtonGadget   │ option menu button  │
153       ├─────────────────┼─────────────────────────┼─────────────────────┤
154OptionLabel      XmLabelGadget           │ option menu label   │
155       ├─────────────────┼─────────────────────────┼─────────────────────┤
156TearOffControl   │ subclass of XmPrimitive │ tear-off button  of │
157       │                 │                         │ torn-off menu pane  │
158       ├─────────────────┼─────────────────────────┼─────────────────────┤
159       └─────────────────┴─────────────────────────┴─────────────────────┘
160   Classes
161       RowColumn  inherits  behavior, resources, and traits from Core, Compos‐
162       ite, Constraint, and XmManager classes.
163
164       The class pointer is xmRowColumnWidgetClass.
165
166       The class name is XmRowColumn.
167
168   New Resources
169       The following table defines a set of widget resources used by the  pro‐
170       grammer  to specify data. The programmer can also set the resource val‐
171       ues for the inherited classes to set attributes  for  this  widget.  To
172       reference  a  resource by name or by class in a .Xdefaults file, remove
173       the XmN or XmC prefix and use the remaining letters. To specify one  of
174       the  defined  values for a resource in a .Xdefaults file, remove the Xm
175       prefix and use the remaining letters (in either lowercase or uppercase,
176       but  include  any  underscores between words).  The codes in the access
177       column indicate if the given resource can be set at creation time  (C),
178       set by using XtSetValues (S), retrieved by using XtGetValues (G), or is
179       not applicable (N/A).
180
181       ┌───────────────────────────────────────────────────────────────────────────────────────────────────────────┐
182       │                                 │       XmRowColumn Res│ource Set        │                        │        │
183Name                             Class                Type           Default                Access 
184       ├─────────────────────────────────┼──────────────────────┼────────────────┼────────────────────────┼────────┤
185       │XmNadjustLast                    │ XmCAdjustLast        │ Boolean        │ True                   │ CSG    │
186       ├─────────────────────────────────┼──────────────────────┼────────────────┼────────────────────────┼────────┤
187       │XmNadjustMargin                  │ XmCAdjustMargin      │ Boolean        │ True                   │ CSG    │
188       ├─────────────────────────────────┼──────────────────────┼────────────────┼────────────────────────┼────────┤
189       │XmNentryAlignment                │ XmCAlignment         │ unsigned char  │ XmALIGNMENT_BEGINNING  │ CSG    │
190       ├─────────────────────────────────┼──────────────────────┼────────────────┼────────────────────────┼────────┤
191       │XmNentryBorder                   │ XmCEntryBorder       │ Dimension      │ 0                      │ CSG    │
192       ├─────────────────────────────────┼──────────────────────┼────────────────┼────────────────────────┼────────┤
193       │XmNentryCallback                 │ XmCCallback          │ XtCallbackList │ NULL                   │ C      │
194       ├─────────────────────────────────┼──────────────────────┼────────────────┼────────────────────────┼────────┤
195       │XmNentryClass                    │ XmCEntryClass        │ WidgetClass    │ dynamic                │ CSG    │
196       ├─────────────────────────────────┼──────────────────────┼────────────────┼────────────────────────┼────────┤
197       │XmNentryVerticalAlignment        │ XmCVerticalAlignment │ unsigned char  │ XmALIGNMENT_CENTER     │ CSG    │
198       ├─────────────────────────────────┼──────────────────────┼────────────────┼────────────────────────┼────────┤
199       │XmNisAligned                     │ XmCIsAligned         │ Boolean        │ True                   │ CSG    │
200       ├─────────────────────────────────┼──────────────────────┼────────────────┼────────────────────────┼────────┤
201       │XmNisHomogeneous                 │ XmCIsHomogeneous     │ Boolean        │ dynamic                │ CG     │
202       ├─────────────────────────────────┼──────────────────────┼────────────────┼────────────────────────┼────────┤
203       │XmNlabelString                   │ XmCXmString          │ XmString       │ NULL                   │ C      │
204       ├─────────────────────────────────┼──────────────────────┼────────────────┼────────────────────────┼────────┤
205       │XmNmapCallback                   │ XmCCallback          │ XtCallbackList │ NULL                   │ C      │
206       ├─────────────────────────────────┼──────────────────────┼────────────────┼────────────────────────┼────────┤
207       │XmNmarginHeight                  │ XmCMarginHeight      │ Dimension      │ dynamic                │ CSG    │
208       ├─────────────────────────────────┼──────────────────────┼────────────────┼────────────────────────┼────────┤
209       │XmNmarginWidth                   │ XmCMarginWidth       │ Dimension      │ dynamic                │ CSG    │
210       ├─────────────────────────────────┼──────────────────────┼────────────────┼────────────────────────┼────────┤
211       │XmNmenuAccelerator               │ XmCAccelerators      │ String         │ dynamic                │ CSG    │
212       ├─────────────────────────────────┼──────────────────────┼────────────────┼────────────────────────┼────────┤
213       │XmNmenuHelpWidget                │ XmCMenuWidget        │ Widget         │ NULL                   │ CSG    │
214       ├─────────────────────────────────┼──────────────────────┼────────────────┼────────────────────────┼────────┤
215       │XmNmenuHistory                   │ XmCMenuWidget        │ Widget         │ NULL                   │ CSG    │
216       ├─────────────────────────────────┼──────────────────────┼────────────────┼────────────────────────┼────────┤
217       │XmNmenuPost                      │ XmCMenuPost          │ String         │ NULL                   │ CSG    │
218       ├─────────────────────────────────┼──────────────────────┼────────────────┼────────────────────────┼────────┤
219       │XmNmnemonic                      │ XmCMnemonic          │ KeySym         │ NULL                   │ CSG    │
220       ├─────────────────────────────────┼──────────────────────┼────────────────┼────────────────────────┼────────┤
221       │XmNmnemonicCharSet               │ XmCMnemonicCharSet   │ String         │ XmFONTLIST_DEFAULT_TAG │ CSG    │
222       ├─────────────────────────────────┼──────────────────────┼────────────────┼────────────────────────┼────────┤
223       │XmNnumColumns                    │ XmCNumColumns        │ short          │ 1                      │ CSG    │
224       ├─────────────────────────────────┼──────────────────────┼────────────────┼────────────────────────┼────────┤
225       │XmNorientation                   │ XmCOrientation       │ unsigned char  │ dynamic                │ CSG    │
226       ├─────────────────────────────────┼──────────────────────┼────────────────┼────────────────────────┼────────┤
227       │XmNpacking                       │ XmCPacking           │ unsigned char  │ dynamic                │ CSG    │
228       ├─────────────────────────────────┼──────────────────────┼────────────────┼────────────────────────┼────────┤
229       │XmNpopupEnabled                  │ XmCPopupEnabled      │ int            │ XmPOPUP_KEYBOARD       │ CSG    │
230       ├─────────────────────────────────┼──────────────────────┼────────────────┼────────────────────────┼────────┤
231       │XmNradioAlwaysOne                │ XmCRadioAlwaysOne    │ Boolean        │ True                   │ CSG    │
232       ├─────────────────────────────────┼──────────────────────┼────────────────┼────────────────────────┼────────┤
233       │XmNradioBehavior                 │ XmCRadioBehavior     │ Boolean        │ False                  │ CSG    │
234       ├─────────────────────────────────┼──────────────────────┼────────────────┼────────────────────────┼────────┤
235       │XmNresizeHeight                  │ XmCResizeHeight      │ Boolean        │ True                   │ CSG    │
236       ├─────────────────────────────────┼──────────────────────┼────────────────┼────────────────────────┼────────┤
237       │XmNresizeWidth                   │ XmCResizeWidth       │ Boolean        │ True                   │ CSG    │
238       ├─────────────────────────────────┼──────────────────────┼────────────────┼────────────────────────┼────────┤
239       │XmNrowColumnType                 │ XmCRowColumnType     │ unsigned char  │ XmWORK_AREA            │ CG     │
240       ├─────────────────────────────────┼──────────────────────┼────────────────┼────────────────────────┼────────┤
241       │XmNspacing                       │ XmCSpacing           │ Dimension      │ dynamic                │ CSG    │
242       ├─────────────────────────────────┼──────────────────────┼────────────────┼────────────────────────┼────────┤
243       │XmNsubMenuId                     │ XmCMenuWidget        │ Widget         │ NULL                   │ CSG    │
244       ├─────────────────────────────────┼──────────────────────┼────────────────┼────────────────────────┼────────┤
245       │XmNtearOffMenuActivateCallback   │ XmCCallback          │ XtCallbackList │ NULL                   │ C      │
246       ├─────────────────────────────────┼──────────────────────┼────────────────┼────────────────────────┼────────┤
247       │XmNtearOffMenuDeactivateCallback │ XmCCallback          │ XtCallbackList │ NULL                   │ C      │
248       ├─────────────────────────────────┼──────────────────────┼────────────────┼────────────────────────┼────────┤
249       │XmNtearOffModel                  │ XmCTearOffModel      │ unsigned char  │ XmTEAR_OFF_DISABLED    │ CSG    │
250       ├─────────────────────────────────┼──────────────────────┼────────────────┼────────────────────────┼────────┤
251       │XmNtearOffTitle                  │ XmCTearOffTitle      │ XmString       │ NULL                   │ CSG    │
252       ├─────────────────────────────────┼──────────────────────┼────────────────┼────────────────────────┼────────┤
253       │XmNunmapCallback                 │ XmCCallback          │ XtCallbackList │ NULL                   │ C      │
254       ├─────────────────────────────────┼──────────────────────┼────────────────┼────────────────────────┼────────┤
255       │XmNwhichButton                   │ XmCWhichButton       │ unsigned int   │ dynamic                │ CSG    │
256       ├─────────────────────────────────┼──────────────────────┼────────────────┼────────────────────────┼────────┤
257       └─────────────────────────────────┴──────────────────────┴────────────────┴────────────────────────┴────────┘
258       XmNadjustLast
259                 Extends the last row of children to the bottom edge  of  Row‐
260                 Column  (when  XmNorientation is XmHORIZONTAL) or extends the
261                 last column to the right edge of RowColumn (when  XmNorienta‐
262                 tion is XmVERTICAL).  Setting XmNadjustLast to False disables
263                 this feature.
264
265       XmNadjustMargin
266                 Specifies whether the inner minor margins of all  items  con‐
267                 tained  within  the  RowColumn  widget are forced to the same
268                 value. The inner minor margin corresponds to  the  XmNmargin‐
269                 Left,   XmNmarginRight,   XmNmarginTop,  and  XmNmarginBottom
270                 resources supported by XmLabel and XmLabelGadget.
271
272                 A horizontal orientation causes XmNmarginTop  and  XmNmargin‐
273                 Bottom  for all items in a particular row to be forced to the
274                 same value; the value is the largest margin specified for one
275                 of the Label items.
276
277                 A  vertical  orientation  causes XmNmarginLeft and XmNmargin‐
278                 Right for all items in a particular column to  be  forced  to
279                 the same value; the value is the largest margin specified for
280                 one of the Label items.
281
282                 This keeps all text within each row or column lined  up  with
283                 all  other text in its row or column.  If XmNrowColumnType is
284                 either XmMENU_POPUP or XmMENU_PULLDOWN and this  resource  is
285                 True, only button children have their margins adjusted.
286
287       XmNentryAlignment
288                 Specifies the alignment type for children that are subclasses
289                 of XmLabel or XmLabelGadget  when  XmNisAligned  is  enabled.
290                 The following are textual alignment types:
291
292                    ·  XmALIGNMENT_BEGINNING (default)
293
294                    ·  XmALIGNMENT_CENTER
295
296                    ·  XmALIGNMENT_END
297
298                 See  the description of XmNalignment in the XmLabel(3) refer‐
299                 ence page for an explanation of these actions.
300
301       XmNentryBorder
302                 Imposes a uniform border width upon all RowColumn's children.
303                 The default value is 0 (zero), which disables the feature.
304
305       XmNentryCallback
306                 Disables  the XmNactivateCallback and XmNvalueChangedCallback
307                 callbacks for all CascadeButton, DrawnButton, PushButton, and
308                 ToggleButton widgets and gadgets contained within the RowCol‐
309                 umn widget.  If the application supplies this  resource,  the
310                 XmNactivateCallback and XmNvalueChangedCallback callbacks are
311                 then revectored  to  the  XmNentryCallback  callbacks.   This
312                 allows an application to supply a single callback routine for
313                 handling all items contained  in  a  RowColumn  widget.   The
314                 callback  reason  is  XmCR_ACTIVATE.  If the application does
315                 not supply this resource, the XmNactivateCallback and XmNval‐
316                 ueChangedCallback  callbacks  for  each item in the RowColumn
317                 widget work as normal.
318
319                 The application must supply this resource when this widget is
320                 created.  Changing this resource using the XtSetValues is not
321                 supported.
322
323       XmNentryClass
324                 Specifies the only widget class that can be added to the Row‐
325                 Column  widget;  this  resource  is  meaningful only when the
326                 XmNisHomogeneous resource is set to True.   Both  widget  and
327                 gadget  variants  of  the specified class may be added to the
328                 widget.
329
330                 When XmCreateRadioBox is called or when  XmNrowColumnType  is
331                 set  to XmWORK_AREA and XmNradioBehavior is True, the default
332                 value of XmNentryClass  is  xmToggleButtonGadgetClass.   When
333                 XmNrowColumnType  is  set  to XmMENU_BAR, the value of XmNen‐
334                 tryClass is forced to xmCascadeButtonWidgetClass.
335
336       XmNentryVerticalAlignment
337                 Specifies the type of vertical alignment  for  children  that
338                 are  subclasses  of XmLabel, XmLabelGadget, and XmText.  This
339                 resource is invalid if XmNorientation is XmVERTICAL and  XmN‐
340                 packing  is XmPACK_TIGHT, because this layout preserves vari‐
341                 able heights among the children. The vertical alignment types
342                 include:
343
344                 XmALIGNMENT_BASELINE_BOTTOM
345                           Causes the bottom baseline of all children in a row
346                           to be aligned.  This resource  is  applicable  only
347                           when all children in a row contain textual data.
348
349                 XmALIGNMENT_BASELINE_TOP
350                           Causes the top baseline of all children in a row to
351                           be aligned.  This resource is applicable only  when
352                           all children in a row contain textual data.
353
354                 XmALIGNMENT_CONTENTS_BOTTOM
355                           Causes  the bottom of the contents (text or pixmap)
356                           of all children in a row to be aligned.
357
358                 XmALIGNMENT_CENTER
359                           Causes the center of all children in a  row  to  be
360                           aligned.
361
362                 XmALIGNMENT_CONTENTS_TOP
363                           Causes  the top of the contents (text or pixmap) of
364                           all children in a row to be aligned.
365
366       XmNisAligned
367                 Specifies text alignment for each item within  the  RowColumn
368                 widget;  this  applies  only  to items that are subclasses of
369                 XmLabel or XmLabelGadget.  However, if the item  is  a  Label
370                 widget  or  gadget and its parent is either a Popup menu pane
371                 or a Pulldown menu pane,  alignment  is  not  performed;  the
372                 Label  is  treated as the title within the menu pane, and the
373                 alignment set by the application is not  overridden.   XmNen‐
374                 tryAlignment controls the type of textual alignment.
375
376       XmNisHomogeneous
377                 Indicates  whether  the RowColumn widget should enforce exact
378                 homogeneity among the items it contains; if this resource  is
379                 set to True, only the widgets that are of the class indicated
380                 by XmNentryClass are allowed as  children  of  the  RowColumn
381                 widget.   This  is  most  often used when creating a MenuBar.
382                 Attempting to insert a child that is  not  a  member  of  the
383                 specified class generates a warning message.
384
385                 In  a  MenuBar,  the  value  of XmNisHomogeneous is forced to
386                 True.  In an OptionMenu, the value is forced to False.   When
387                 XmCreateRadioBox is called the default value is True.  Other‐
388                 wise, the default value is False.
389
390       XmNlabelString
391                 When XmNrowColumnType is set to XmMENU_OPTION, this  resource
392                 points  to a text string that displays the label with respect
393                 to the selection area. The positioning of the label  relative
394                 to  the selection area depends on the layout direction in the
395                 horizontal orientation.  This resource is not meaningful  for
396                 all  other  RowColumn  types.   If  the application wishes to
397                 change the label after creation, it must get the  LabelGadget
398                 ID  (XmOptionLabelGadget)  and call XtSetValues on the Label‐
399                 Gadget directly. The default value is no label.
400
401       XmNmapCallback
402                 Specifies a widget-specific callback function that is invoked
403                 when the window associated with the RowColumn widget is about
404                 to be mapped. The callback reason is XmCR_MAP.
405
406       XmNmarginHeight
407                 Specifies the amount of blank space between the top  edge  of
408                 the  RowColumn  widget and the first item in each column, and
409                 the bottom edge of the RowColumn widget and the last item  in
410                 each  column.  The default value is 0 (zero) for Pulldown and
411                 Popup menu panes, and 3 pixels for other RowColumn types.
412
413       XmNmarginWidth
414                 Specifies the amount of blank space between the left edge  of
415                 the  RowColumn widget and the first item in each row, and the
416                 right edge of the RowColumn widget and the last item in  each
417                 row.   The  default  value is 0 (zero) for Pulldown and Popup
418                 menu panes, and 3 pixels for other RowColumn types.
419
420       XmNmenuAccelerator
421                 This resource is useful only when the  RowColumn  widget  has
422                 been configured to operate as a Popup menu pane or a MenuBar.
423                 The format of this resource is similar to the left side spec‐
424                 ification  of  a translation string, with the limitation that
425                 it must specify a key event.  For a Popup menu pane, when the
426                 accelerator  is  typed  by  the  user, the Popup menu pane is
427                 posted.  For a MenuBar, when the accelerator is typed by  the
428                 user,  the first item in the MenuBar is highlighted, and tra‐
429                 versal is enabled in the MenuBar.  The default  for  a  Popup
430                 menu  pane  is <osfMenu>.  The default for a MenuBar is <osf‐
431                 MenuBar>.  Setting the XmNpopupEnabled resource to False dis‐
432                 ables the accelerator.
433
434       XmNmenuHelpWidget
435                 Specifies  the  widget  ID  for  the  CascadeButton, which is
436                 treated as the Help widget  if  XmNrowColumnType  is  set  to
437                 XmMENU_BAR.   Which  corner of the MenuBar the Help widget is
438                 placed at depends on the XmNlayoutDirection resource  of  the
439                 widget.   If  the  RowColumn  widget  is  any type other than
440                 XmMENU_BAR, this resource is not meaningful.
441
442       XmNmenuHistory
443                 Specifies the widget ID of the last menu entry  to  be  acti‐
444                 vated. It is also useful for specifying the current selection
445                 for  an   OptionMenu.   If   XmNrowColumnType   is   set   to
446                 XmMENU_OPTION,  the  specified  menu item is positioned under
447                 the cursor when the menu is displayed.
448
449                 If the RowColumn widget has the XmNradioBehavior resource set
450                 to  True, the widget field associated with this resource con‐
451                 tains the widget ID of the last ToggleButton or ToggleButton‐
452                 Gadget  to  change  from unselected to selected.  The default
453                 value is the widget ID of the first child in the widget.
454
455       XmNmenuPost
456                 Specifies an X event description indicating  a  button  event
457                 that  posts  a  menu system.  The default for XmMENU_POPUP is
458                 BMenu Press.  The default for XmMENU_OPTION, XmMENU_BAR,  and
459                 XmWORK_AREA  is  <Btn1>  Press.  The XmNmenuPost resource for
460                 pulldowns should be consistent with  that  of  the  top-level
461                 parent  menu  (although  the event type is ignored).  Setting
462                 this resource to BTransfer Press will conflict with drag  and
463                 drop  operations, which use BTransfer Press as a default but‐
464                 ton binding.  Therefore, this resource  cannot  be  BTransfer
465                 Press.
466
467       XmNmnemonic
468                 This  resource is useful only when XmNrowColumnType is set to
469                 XmMENU_OPTION.  It specifies a keysym for a  key  that,  when
470                 pressed  by  the user along with the MAlt modifier, posts the
471                 associated Pulldown menu pane.  The first  character  in  the
472                 OptionMenu  label string that exactly matches the mnemonic in
473                 the character set specified in XmNmnemonicCharSet  is  under‐
474                 lined.   The  user  can  post the menu by pressing either the
475                 shifted or the unshifted mnemonic key.   The  default  is  no
476                 mnemonic.
477
478       XmNmnemonicCharSet
479                 Specifies  the  character  set of the mnemonic for an Option‐
480                 Menu.  The default is XmFONTLIST_DEFAULT_TAG.  If the RowCol‐
481                 umn  widget  is  any  type  other  than  XmMENU_OPTION,  this
482                 resource is not meaningful.
483
484       XmNnumColumns
485                 Specifies the number of minor dimension extensions  that  are
486                 made to accommodate the entries; this attribute is meaningful
487                 only when XmNpacking is set to XmPACK_COLUMN.
488
489                 For vertically oriented  RowColumn  widgets,  this  attribute
490                 indicates  how  many columns are built; the number of entries
491                 per column is adjusted to maintain this number of columns, if
492                 possible.
493
494                 For  horizontally  oriented RowColumn widgets, this attribute
495                 indicates how many rows are built.
496
497                 The default value is 1.  In an OptionMenu the value is forced
498                 to 1.  The value must be greater than 0 (zero).
499
500       XmNorientation
501                 Determines whether RowColumn layouts are row-major or column-
502                 major.  In a column-major layout, the children of the RowCol‐
503                 umn are laid out in columns within the widget. In a row-major
504                 layout the children of the RowColumn are laid  out  in  rows.
505                 The  direction of the horizontal layout in the row-major lay‐
506                 out (from left or right), and the  wrapping  in  the  column-
507                 major  layout  (vertical),  depend  on the XmNlayoutDirection
508                 resource  of  the  widget.   The  XmVERTICAL  resource  value
509                 selects  a  column-major layout.  XmHORIZONTAL selects a row-
510                 major layout.
511
512                 When creating a MenuBar or  an  OptionMenu,  the  default  is
513                 XmHORIZONTAL.   Otherwise,  the  default value is XmVERTICAL.
514                 The results of specifying a value of XmVERTICAL for a MenuBar
515                 are undefined.
516
517       XmNpacking
518                 Specifies  how to pack the items contained within a RowColumn
519                 widget. This can be set  to  XmPACK_TIGHT,  XmPACK_COLUMN  or
520                 XmPACK_NONE.  When a RowColumn widget packs the items it con‐
521                 tains, it determines its major dimension using the  value  of
522                 the XmNorientation resource.
523
524                 XmPACK_TIGHT indicates that given the current major dimension
525                 (for example,  vertical  if  XmNorientation  is  XmVERTICAL),
526                 entries  are  placed  one after the other until the RowColumn
527                 widget must wrap. RowColumn wraps when there is no room  left
528                 for  a  complete child in that dimension.  Wrapping occurs by
529                 beginning a new row or column in the  next  available  space.
530                 Wrapping  continues,  as often as necessary, until all of the
531                 children are laid out.  In the vertical dimension  (columns),
532                 boxes  are set to the same width; in the horizontal dimension
533                 (rows), boxes are set to the same depth.  Each entry's  posi‐
534                 tion  in  the major dimension is left unaltered (for example,
535                 XmNy is left unchanged when  XmNorientation  is  XmVERTICAL);
536                 its  position in the minor dimension is set to the same value
537                 as the greatest entry in that particular row or  column.  The
538                 position in the minor dimension of any particular row or col‐
539                 umn is independent of all other rows or columns.
540
541                 XmPACK_COLUMN indicates that all entries are placed in  iden‐
542                 tically  sized  boxes.  The  boxes  are  based on the largest
543                 height and width values of all  the  children  widgets.   The
544                 value of the XmNnumColumns resource determines how many boxes
545                 are placed in the major dimension, before  extending  in  the
546                 minor dimension.
547
548                 XmPACK_NONE  indicates  that  no packing is performed.  The x
549                 and y attributes of each entry are left alone, and  the  Row‐
550                 Column  widget attempts to become large enough to enclose all
551                 entries.
552
553                 When XmCreateRadioBox is called or when  XmNrowColumnType  is
554                 set  to XmWORK_AREA and XmNradioBehavior is True, the default
555                 value of XmNpacking is XmPACK_COLUMN.  In an  OptionMenu  the
556                 value  is  initialized to XmPACK_TIGHT.  Otherwise, the value
557                 defaults to XmPACK_TIGHT.
558
559       XmNpopupEnabled
560                 Allows the menu system to enable keyboard input (accelerators
561                 and mnemonics) defined for the Popup menu pane and any of its
562                 submenus.  The Popup menu pane needs to be informed  whenever
563                 its  accessibility to the user changes because posting of the
564                 Popup menu pane  is  controlled  by  the  application.   This
565                 resource can take four values, including:
566
567                 XmPOPUP_KEYBOARD
568                           Specifies  that the keyboard input—accelerators and
569                           mnemonics—defined for the Popup menu pane  and  any
570                           of its submenus is enabled. This is the default.
571
572                 XmPOPUP_DISABLED
573                           Specifies that the keyboard input is disabled.
574
575                 XmPOPUP_AUTOMATIC
576                           Specifies  that  the  keyboard is enabled for auto‐
577                           matic popup menus.
578
579                 XmPOPUP_AUTOMATIC_RECURSIVE
580                           Specifies that the keyboard is enabled  for  recur‐
581                           sive automatic popup menus.
582
583       XmNradioAlwaysOne
584                 If True, forces the active ToggleButton or ToggleButtonGadget
585                 to be automatically selected after having been unselected (if
586                 no  other toggle was activated).  If False, the active toggle
587                 may be unselected.  The default value is True. This  resource
588                 is important only when XmNradioBehavior is True.
589
590                 The application can always add and subtract toggles from Row‐
591                 Column regardless of the  selected/unselected  state  of  the
592                 toggle.  The  application can also manage and unmanage toggle
593                 children of RowColumn at any time regardless of state. There‐
594                 fore,  the  application can sometimes create a RowColumn that
595                 has XmNradioAlwaysOne set to True  and  none  of  the  toggle
596                 children  selected.   The result is undefined if the value of
597                 this resource is True and the application sets more than  one
598                 ToggleButton at a time.
599
600       XmNradioBehavior
601                 Specifies  a Boolean value that when True, indicates that the
602                 RowColumn widget should enforce a RadioBox-type  behavior  on
603                 all  of  its children that are ToggleButtons or ToggleButton‐
604                 Gadgets.
605
606                 When the value of this  resource  is  True,  XmNindicatorType
607                 defaults  to XmONE_OF_MANY for ToggleButton and ToggleButton‐
608                 Gadget children.
609
610                 RadioBox behavior dictates that when one toggle  is  selected
611                 and the user selects another toggle, the first toggle is uns‐
612                 elected  automatically.   The  RowColumn  usually  does   not
613                 enforce  this  behavior  if  the application, rather than the
614                 user, changes the state of  a  toggle.   The  RowColumn  does
615                 enforce  this  behavior  if  a  toggle child is selected with
616                 XmToggleButtonSetState or XmToggleButtonGadgetSetState with a
617                 notify argument of True.
618
619                 When  XmCreateRadioBox is called, the default value of XmNra‐
620                 dioBehavior is True.  Otherwise, the default value is False.
621
622       XmNresizeHeight
623                 Requests a new height if necessary, when set  to  True.  When
624                 this  resource is set to False, the widget does not request a
625                 new height regardless of any changes to  the  widget  or  its
626                 children.
627
628       XmNresizeWidth
629                 Requests a new width if necessary, when set to True. When set
630                 to False, the widget does not request a new width  regardless
631                 of any changes to the widget or its children.
632
633       XmNrowColumnType
634                 Specifies  the type of RowColumn widget to be created.  It is
635                 a nonstandard resource that cannot be  changed  after  it  is
636                 set.  If an application uses any of the convenience routines,
637                 except  XmCreateRowColumn,  this  resource  is  automatically
638                 forced  to  the appropriate value by the convenience routine.
639                 If an application uses the Xt Intrinsics API  to  create  its
640                 RowColumn  widgets, it must specify this resource itself. The
641                 set of possible settings for this resource are
642
643                    ·  XmWORK_AREA (default)
644
645                    ·  XmMENU_BAR
646
647                    ·  XmMENU_PULLDOWN
648
649                    ·  XmMENU_POPUP
650
651                    ·  XmMENU_OPTION
652
653                 This resource cannot be changed after the RowColumn widget is
654                 created.   Any  changes  attempted  through  XtSetValues  are
655                 ignored.
656
657                 The value of this resource is used to determine the value  of
658                 a  number  of  other resources. The descriptions of RowColumn
659                 resources explain this when it is the case. The resource XmN‐
660                 navigationType,  inherited  from  XmManager,  is  changed  to
661                 XmNONE if XmNrowColumnType is XmMENU_OPTION.
662
663       XmNspacing
664                 Specifies the horizontal and vertical spacing  between  items
665                 contained  within the RowColumn widget.  The default value is
666                 3 pixels for XmOPTION_MENU and XmWORK_AREA and 0  (zero)  for
667                 other RowColumn types.
668
669       XmNsubMenuId
670                 Specifies  the  widget  ID  for  the Pulldown menu pane to be
671                 associated with an OptionMenu. This resource is  useful  only
672                 when  XmNrowColumnType  is set to XmMENU_OPTION.  The default
673                 value is NULL.
674
675       XmNtearOffMenuActivateCallback
676                 Specifies the callback list  that  notifies  the  application
677                 when the tear-off menu pane is about to be activated. It pre‐
678                 cedes the tear-off's map callback.
679
680                 Use this resource when your application has shared menu panes
681                 and  when the torn-off menu can have two or more parents that
682                 can have opposing sensitivity states for the same menu  item.
683                 This resource enables the application to track whether a menu
684                 item is sensitive or insensitive and to set the state to  the
685                 original  parent's  menu item state when the torn-off menu is
686                 reposted.  The application can use  XmGetPostedFromWidget  to
687                 determine  from  which parent the menu was torn. The callback
688                 reason is XmCR_TEAR_OFF_ACTIVATE.  The default is NULL.
689
690       XmNtearOffMenuDeactivateCallback
691                 Specifies the callback list  that  notifies  the  application
692                 when  the  tear-off  menu pane is about to be deactivated. It
693                 follows the tear-off's unmap callback.
694
695                 Use this resource when your application has shared menu panes
696                 and  when the torn-off menu can have two or more parents that
697                 can have opposing sensitivity states for the same menu  item.
698                 This resource enables the application to track whether a menu
699                 item is sensitive or insensitive and to set the state to  the
700                 original  parent's  menu item state when the torn-off menu is
701                 reposted.  The application can use  XmGetPostedFromWidget  to
702                 determine  from which parent the menu was torn.  The callback
703                 reason is XmCR_TEAR_OFF_DEACTIVATE. The default is NULL.
704
705       XmNtearOffModel
706                 Indicates whether tear-off functionality is enabled  or  dis‐
707                 abled  when  XmNrowColumnType  is  set  to XmMENU_PULLDOWN or
708                 XmMENU_POPUP.   The   values   are   XmTEAR_OFF_ENABLED    or
709                 XmTEAR_OFF_DISABLED (default value). This resource is invalid
710                 for type XmMENU_OPTION; however, it does affect any  pulldown
711                 submenus  within  an  OptionMenu.   The function XmRepTypeIn‐
712                 stallTearOffModelConverter installs a resource converter  for
713                 this resource.
714
715       XmNtearoffTitle
716                 Used  by  the  TearOff  shell to set the title for the window
717                 manager to display.
718
719       XmNunmapCallback
720                 Specifies a list of callbacks that is called after the window
721                 associated  with  the RowColumn widget has been unmapped. The
722                 callback reason is XmCR_UNMAP.  The default value is NULL.
723
724       XmNwhichButton
725                 This resource is obsolete; it has been replaced  by  XmNmenu‐
726                 Post  and is present for compatibility with older releases of
727                 Motif.  This resource cannot be 2.
728
729       ┌───────────────────────────────────────────────────────────────────────┐
730       │                 │XmRowColumn Constra│int Reso│urce Set          │        │
731Name             Class            Type  Default         Access 
732       ├─────────────────┼──────────────────┼───────┼─────────────────┼────────┤
733       │XmNpositionIndex │ XmCPositionIndex │ short │ XmLAST_POSITION │ CSG    │
734       ├─────────────────┼──────────────────┼───────┼─────────────────┼────────┤
735       └─────────────────┴──────────────────┴───────┴─────────────────┴────────┘
736       XmNpositionIndex
737                 Specifies the position of the widget in its parent's list  of
738                 children  (the  value of the XmNchildren resource). The value
739                 is an integer that is no less than 0 (zero)  and  no  greater
740                 than the number of children in the list at the time the value
741                 is specified. A value of 0 (zero) means  that  the  child  is
742                 placed  at  the  beginning of the list. The value can also be
743                 specified as XmLAST_POSITION (the default), which means  that
744                 the  child  is placed at the end of the list. Any other value
745                 is ignored.  XtGetValues returns the position of  the  widget
746                 in  its parent's child list at the time of the call to XtGet‐
747                 Values.
748
749                 When a widget is inserted into its parent's child  list,  the
750                 positions  of  any existing children that are greater than or
751                 equal  to  the  specified   widget's   XmNpositionIndex   are
752                 increased by 1.  The effect of a call to XtSetValues for XmN‐
753                 positionIndex is to remove the specified widget from its par‐
754                 ent's child list, decrease by 1 the positions of any existing
755                 children that are greater than the specified widget's  former
756                 position  in  the  list, and then insert the specified widget
757                 into its parent's child list as described  in  the  preceding
758                 sentence.
759
760       ┌────────────────────────────────────────────────────────────────────────────────────────────────┐
761       │                          │    Simple Menu Creation Re│source Set             │         │        │
762Name                      Class                     Type                 Default Access 
763       ├──────────────────────────┼───────────────────────────┼──────────────────────┼─────────┼────────┤
764       │XmNbuttonAccelerators     │ XmCButtonAccelerators     │ StringTable          │ NULL    │ C      │
765       ├──────────────────────────┼───────────────────────────┼──────────────────────┼─────────┼────────┤
766       │XmNbuttonAcceleratorText  │ XmCButtonAcceleratorText  │ XmStringTable        │ NULL    │ C      │
767       ├──────────────────────────┼───────────────────────────┼──────────────────────┼─────────┼────────┤
768       │XmNbuttonCount            │ XmCButtonCount            │ int                  │ 0       │ C      │
769       ├──────────────────────────┼───────────────────────────┼──────────────────────┼─────────┼────────┤
770       │XmNbuttonMnemonicCharSets │ XmCButtonMnemonicCharSets │ XmStringCharSetTable │ NULL    │ C      │
771       ├──────────────────────────┼───────────────────────────┼──────────────────────┼─────────┼────────┤
772       │XmNbuttonMnemonics        │ XmCButtonMnemonics        │ XmKeySymTable        │ NULL    │ C      │
773       ├──────────────────────────┼───────────────────────────┼──────────────────────┼─────────┼────────┤
774       │XmNbuttons                │ XmCButtons                │ XmStringTable        │ NULL    │ C      │
775       ├──────────────────────────┼───────────────────────────┼──────────────────────┼─────────┼────────┤
776       │XmNbuttonSet              │ XmCButtonSet              │ int                  │ -1      │ C      │
777       ├──────────────────────────┼───────────────────────────┼──────────────────────┼─────────┼────────┤
778       │XmNbuttonType             │ XmCButtonType             │ XmButtonTypeTable    │ NULL    │ C      │
779       ├──────────────────────────┼───────────────────────────┼──────────────────────┼─────────┼────────┤
780       │XmNoptionLabel            │ XmCOptionLabel            │ XmString             │ NULL    │ C      │
781       ├──────────────────────────┼───────────────────────────┼──────────────────────┼─────────┼────────┤
782       │XmNoptionMnemonic         │ XmCOptionMnemonic         │ KeySym               │ NULL    │ C      │
783       ├──────────────────────────┼───────────────────────────┼──────────────────────┼─────────┼────────┤
784       │XmNpostFromButton         │ XmCPostFromButton         │ int                  │ -1      │ C      │
785       ├──────────────────────────┼───────────────────────────┼──────────────────────┼─────────┼────────┤
786       │XmNsimpleCallback         │ XmCCallback               │ XtCallbackProc       │ NULL    │ C      │
787       ├──────────────────────────┼───────────────────────────┼──────────────────────┼─────────┼────────┤
788       └──────────────────────────┴───────────────────────────┴──────────────────────┴─────────┴────────┘
789       XmNbuttonAccelerators
790                 This  resource  is for use with the simple menu creation rou‐
791                 tines.  It specifies a list of accelerators for  the  buttons
792                 created.  The list contains one element for each button, sep‐
793                 arator, and title created.
794
795       XmNbuttonAcceleratorText
796                 This resource is for use with the simple menu  creation  rou‐
797                 tines.   It  specifies  a list of compound strings to display
798                 for the accelerators for the buttons created.  The list  con‐
799                 tains  one element for each button, separator, and title cre‐
800                 ated.
801
802       XmNbuttonCount
803                 This resource is for use with the simple menu  creation  rou‐
804                 tines.   It specifies the total number of menu buttons, sepa‐
805                 rators, and titles to create.  The value must  not  be  nega‐
806                 tive.
807
808       XmNbuttonMnemonicCharSets
809                 This  resource  is for use with the simple menu creation rou‐
810                 tines.  It specifies a list of character sets with which but‐
811                 ton  mnemonics  are  to  be displayed.  The list contains one
812                 element for each button, separator, and title  created.   The
813                 default  is determined dynamically depending on the locale of
814                 the widget.
815
816       XmNbuttonMnemonics
817                 This resource is for use with the simple menu  creation  rou‐
818                 tines.  It specifies a list of mnemonics for the buttons cre‐
819                 ated.  The list contains one element for each button, separa‐
820                 tor, and title created.
821
822       XmNbuttons
823                 This  resource  is for use with the simple menu creation rou‐
824                 tines.  It specifies a list of compound  strings  to  use  as
825                 labels  for  the buttons created.  The list contains one ele‐
826                 ment for each button, separator, and title created.
827
828       XmNbuttonSet
829                 This resource is for use with the simple menu  creation  rou‐
830                 tines.  It specifies which button of a RadioBox or OptionMenu
831                 Pulldown submenu is initially set.  The value is an integer n
832                 indicating   the   nth  ToggleButtonGadget  specified  for  a
833                 RadioBox or the nth PushButtonGadget specified for an Option‐
834                 Menu  Pulldown submenu.  The first button specified is number
835                 0.  The value must not be negative.
836
837       XmNbuttonType
838                 This resource is for use with the simple menu  creation  rou‐
839                 tines.   It  specifies a list of button types associated with
840                 the buttons to be created.  The list contains one element for
841                 each  button, separator, and title created.  If this resource
842                 is not specified, each button in a MenuBar is  a  CascadeBut‐
843                 tonGadget, each button in a RadioBox or CheckBox is a Toggle‐
844                 ButtonGadget, and each button in any other type of  RowColumn
845                 widget  is  a  PushButtonGadget.  Each button type is of type
846                 XmButtonType, an enumeration with the following possible val‐
847                 ues:
848
849                 XmCASCADEBUTTON
850                           Specifies  a  CascadeButtonGadget  for  a  MenuBar,
851                           Popup menu pane, or Pulldown menu pane.
852
853                 XmCHECKBUTTON
854                           Specifies  a  ToggleButtonGadget  for  a  CheckBox,
855                           Popup menu pane, or Pulldown menu pane.
856
857                 XmDOUBLE_SEPARATOR
858                           Specifies  a SeparatorGadget for a Popup menu pane,
859                           Pulldown menu pane, or OptionMenu Pulldown submenu.
860                           The separator type is XmDOUBLE_LINE.
861
862                 XmPUSHBUTTON
863                           Specifies a PushButtonGadget for a Popup menu pane,
864                           Pulldown menu pane, or OptionMenu Pulldown submenu.
865
866                 XmRADIOBUTTON
867                           Specifies  a  ToggleButtonGadget  for  a  RadioBox,
868                           Popup menu pane, or Pulldown menu pane.
869
870                 XmSEPARATOR
871                           Specifies  a SeparatorGadget for a Popup menu pane,
872                           Pulldown menu pane, or OptionMenu Pulldown submenu.
873
874                 XmTITLE   Specifies a LabelGadget used as a title for a Popup
875                           menu pane or Pulldown menu pane.
876
877       XmNoptionLabel
878                 This  resource  is for use with the simple menu creation rou‐
879                 tines.  It specifies a compound string for the  label  string
880                 to be used on the left side of an OptionMenu.
881
882       XmNoptionMnemonic
883                 This  resource  is for use with the simple menu creation rou‐
884                 tines.  It specifies a keysym for a key that, when pressed by
885                 the  user  along with the MAlt modifier, posts the associated
886                 Pulldown menu pane for an OptionMenu.
887
888       XmNpostFromButton
889                 This resource is for use with the simple menu  creation  rou‐
890                 tines.   For a Pulldown menu pane, it specifies the button in
891                 the parent to which the submenu is  attached.   The  menu  is
892                 then  posted  from  this  button.   The value is an integer n
893                 indicating the nth CascadeButton or CascadeButtonGadget spec‐
894                 ified  for  the  parent of the Pulldown menu pane.  The first
895                 button specified is number 0.  The value must  not  be  nega‐
896                 tive.
897
898       XmNsimpleCallback
899                 This  resource  is for use with the simple menu creation rou‐
900                 tines.  It specifies a callback procedure to be called when a
901                 button is activated or when its value changes.  This callback
902                 function is added to each button after creation.  For a  Cas‐
903                 cadeButtonGadget or a PushButtonGadget, the callback is added
904                 as the button's XmNactivateCallback, and it  is  called  when
905                 the button is activated.  For a ToggleButtonGadget, the call‐
906                 back is added as the button's XmNvalueChangedCallback, and it
907                 is called when the button's value changes.  The button number
908                 is passed in the client_data field.
909
910   Inherited Resources
911       RowColumn  inherits  behavior  and  resources  from  the   superclasses
912       described  in the following tables.  For a complete description of each
913       resource, refer to the reference page for that superclass.
914
915       ┌────────────────────────────────────────────────────────────────────────────────────────────────────┐
916       │                        │             XmManager │Resource Set        │                      │        │
917Name                    Class                 Type              Default              Access 
918       ├────────────────────────┼───────────────────────┼───────────────────┼──────────────────────┼────────┤
919       │XmNbottomShadowColor    │ XmCBottomShadowColor  │ Pixel             │ dynamic              │ CSG    │
920       ├────────────────────────┼───────────────────────┼───────────────────┼──────────────────────┼────────┤
921       │XmNbottomShadowPixmap   │ XmCBottomShadowPixmap │ Pixmap            │ XmUNSPECIFIED_PIXMAP │ CSG    │
922       ├────────────────────────┼───────────────────────┼───────────────────┼──────────────────────┼────────┤
923       │XmNforeground           │ XmCForeground         │ Pixel             │ dynamic              │ CSG    │
924       ├────────────────────────┼───────────────────────┼───────────────────┼──────────────────────┼────────┤
925       │XmNhelpCallback         │ XmCCallback           │ XtCallbackList    │ NULL                 │ C      │
926       ├────────────────────────┼───────────────────────┼───────────────────┼──────────────────────┼────────┤
927       │XmNhighlightColor       │ XmCHighlightColor     │ Pixel             │ dynamic              │ CSG    │
928       ├────────────────────────┼───────────────────────┼───────────────────┼──────────────────────┼────────┤
929       │XmNhighlightPixmap      │ XmCHighlightPixmap    │ Pixmap            │ dynamic              │ CSG    │
930       ├────────────────────────┼───────────────────────┼───────────────────┼──────────────────────┼────────┤
931       │XmNinitialFocus         │ XmCInitialFocus       │ Widget            │ NULL                 │ CSG    │
932       ├────────────────────────┼───────────────────────┼───────────────────┼──────────────────────┼────────┤
933       │XmNlayoutDirection      │ XmCLayoutDirection    │ XmDirection       │ dynamic              │ CG     │
934       ├────────────────────────┼───────────────────────┼───────────────────┼──────────────────────┼────────┤
935       │XmNnavigationType       │ XmCNavigationType     │ XmNavigationType  │ dynamic              │ CSG    │
936       ├────────────────────────┼───────────────────────┼───────────────────┼──────────────────────┼────────┤
937       │XmNpopupHandlerCallback │ XmCCallback           │ XtCallbackList    │ NULL                 │ C      │
938       ├────────────────────────┼───────────────────────┼───────────────────┼──────────────────────┼────────┤
939       │XmNshadowThickness      │ XmCShadowThickness    │ Dimension         │ dynamic              │ CSG    │
940       ├────────────────────────┼───────────────────────┼───────────────────┼──────────────────────┼────────┤
941       │XmNstringDirection      │ XmCStringDirection    │ XmStringDirection │ dynamic              │ CG     │
942       ├────────────────────────┼───────────────────────┼───────────────────┼──────────────────────┼────────┤
943       │XmNtopShadowColor       │ XmCTopShadowColor     │ Pixel             │ dynamic              │ CSG    │
944       ├────────────────────────┼───────────────────────┼───────────────────┼──────────────────────┼────────┤
945       │XmNtopShadowPixmap      │ XmCTopShadowPixmap    │ Pixmap            │ dynamic              │ CSG    │
946       ├────────────────────────┼───────────────────────┼───────────────────┼──────────────────────┼────────┤
947       │XmNtraversalOn          │ XmCTraversalOn        │ Boolean           │ dynamic              │ CSG    │
948       ├────────────────────────┼───────────────────────┼───────────────────┼──────────────────────┼────────┤
949       │XmNunitType             │ XmCUnitType           │ unsigned char     │ dynamic              │ CSG    │
950       ├────────────────────────┼───────────────────────┼───────────────────┼──────────────────────┼────────┤
951       │XmNuserData             │ XmCUserData           │ XtPointer         │ NULL                 │ CSG    │
952       ├────────────────────────┼───────────────────────┼───────────────────┼──────────────────────┼────────┤
953       └────────────────────────┴───────────────────────┴───────────────────┴──────────────────────┴────────┘
954       ┌─────────────────────────────────────────────────────────────────────────────────┐
955       │                  │          CompositeResource Set │                   │        │
956Name              Class             Type        Default           Access 
957       ├──────────────────┼───────────────────┼─────────────┼───────────────────┼────────┤
958       │XmNchildren       │ XmCReadOnly       │ WidgetList  │ NULL              │ G      │
959       ├──────────────────┼───────────────────┼─────────────┼───────────────────┼────────┤
960       │XmNinsertPosition │ XmCInsertPosition │ XtOrderProc │ default procedure │ CSG    │
961       ├──────────────────┼───────────────────┼─────────────┼───────────────────┼────────┤
962       │XmNnumChildren    │ XmCReadOnly       │ Cardinal    │ 0                 │ G      │
963       ├──────────────────┼───────────────────┼─────────────┼───────────────────┼────────┤
964       └──────────────────┴───────────────────┴─────────────┴───────────────────┴────────┘
965       ┌───────────────────────────────────────────────────────────────────────────────────────────────────────────────┐
966       │                              │               Core Resource Se│t                │                      │        │
967Name                          Class                         Type           Default              Access 
968       ├──────────────────────────────┼───────────────────────────────┼────────────────┼──────────────────────┼────────┤
969       │XmNaccelerators               │ XmCAccelerators               │ XtAccelerators │ dynamic              │ CSG    │
970       ├──────────────────────────────┼───────────────────────────────┼────────────────┼──────────────────────┼────────┤
971       │XmNancestorSensitive          │ XmCSensitive                  │ Boolean        │ dynamic              │ G      │
972       ├──────────────────────────────┼───────────────────────────────┼────────────────┼──────────────────────┼────────┤
973       │XmNbackground                 │ XmCBackground                 │ Pixel          │ dynamic              │ CSG    │
974       ├──────────────────────────────┼───────────────────────────────┼────────────────┼──────────────────────┼────────┤
975       │XmNbackgroundPixmap           │ XmCPixmap                     │ Pixmap         │ XmUNSPECIFIED_PIXMAP │ CSG    │
976       ├──────────────────────────────┼───────────────────────────────┼────────────────┼──────────────────────┼────────┤
977       │XmNborderColor                │ XmCBorderColor                │ Pixel          │ XtDefaultForeground  │ CSG    │
978       ├──────────────────────────────┼───────────────────────────────┼────────────────┼──────────────────────┼────────┤
979       │XmNborderPixmap               │ XmCPixmap                     │ Pixmap         │ XmUNSPECIFIED_PIXMAP │ CSG    │
980       ├──────────────────────────────┼───────────────────────────────┼────────────────┼──────────────────────┼────────┤
981       │XmNborderWidth                │ XmCBorderWidth                │ Dimension      │ 0                    │ CSG    │
982       ├──────────────────────────────┼───────────────────────────────┼────────────────┼──────────────────────┼────────┤
983       │XmNcolormap                   │ XmCColormap                   │ Colormap       │ dynamic              │ CG     │
984       ├──────────────────────────────┼───────────────────────────────┼────────────────┼──────────────────────┼────────┤
985       │XmNdepth                      │ XmCDepth                      │ int            │ dynamic              │ CG     │
986       ├──────────────────────────────┼───────────────────────────────┼────────────────┼──────────────────────┼────────┤
987       │XmNdestroyCallback            │ XmCCallback                   │ XtCallbackList │ NULL                 │ C      │
988       ├──────────────────────────────┼───────────────────────────────┼────────────────┼──────────────────────┼────────┤
989       │XmNheight                     │ XmCHeight                     │ Dimension      │ dynamic              │ CSG    │
990       ├──────────────────────────────┼───────────────────────────────┼────────────────┼──────────────────────┼────────┤
991       │XmNinitialResourcesPersistent │ XmCInitialResourcesPersistent │ Boolean        │ True                 │ C      │
992       ├──────────────────────────────┼───────────────────────────────┼────────────────┼──────────────────────┼────────┤
993       │XmNmappedWhenManaged          │ XmCMappedWhenManaged          │ Boolean        │ True                 │ CSG    │
994       ├──────────────────────────────┼───────────────────────────────┼────────────────┼──────────────────────┼────────┤
995       │XmNscreen                     │ XmCScreen                     │ Screen *       │ dynamic              │ CG     │
996       ├──────────────────────────────┼───────────────────────────────┼────────────────┼──────────────────────┼────────┤
997       │XmNsensitive                  │ XmCSensitive                  │ Boolean        │ True                 │ CSG    │
998       ├──────────────────────────────┼───────────────────────────────┼────────────────┼──────────────────────┼────────┤
999       │XmNtranslations               │ XmCTranslations               │ XtTranslations │ dynamic              │ CSG    │
1000       ├──────────────────────────────┼───────────────────────────────┼────────────────┼──────────────────────┼────────┤
1001       │XmNwidth                      │ XmCWidth                      │ Dimension      │ dynamic              │ CSG    │
1002       ├──────────────────────────────┼───────────────────────────────┼────────────────┼──────────────────────┼────────┤
1003       │XmNx                          │ XmCPosition                   │ Position       │ 0                    │ CSG    │
1004       ├──────────────────────────────┼───────────────────────────────┼────────────────┼──────────────────────┼────────┤
1005       │XmNy                          │ XmCPosition                   │ Position       │ 0                    │ CSG    │
1006       ├──────────────────────────────┼───────────────────────────────┼────────────────┼──────────────────────┼────────┤
1007       └──────────────────────────────┴───────────────────────────────┴────────────────┴──────────────────────┴────────┘
1008   Callback Information
1009       A pointer to the following structure is passed to each callback:
1010
1011       typedef struct
1012       {
1013               int reason;
1014               XEvent * event;
1015               Widget widget;
1016               char * data;
1017               char * callbackstruct;
1018       } XmRowColumnCallbackStruct;
1019
1020       reason    Indicates why the callback was invoked
1021
1022       event     Points to the XEvent that triggered the callback
1023
1024       The following fields apply only when the callback reason is  XmCR_ACTI‐
1025       VATE;  for  all  other  callback reasons, these fields are set to NULL.
1026       The XmCR_ACTIVATE callback reason is generated only when  the  applica‐
1027       tion  has  supplied  an  entry callback, which overrides any activation
1028       callbacks registered with the individual RowColumn items.
1029
1030       widget    Is set to the widget ID of the RowColumn item that  has  been
1031                 activated
1032
1033       data      Contains  the  client-data  value supplied by the application
1034                 when the RowColumn item's activation callback was registered
1035
1036       callbackstruct
1037                 Points to the callback structure generated by  the  RowColumn
1038                 item's activation callback
1039
1040   Translations
1041       XmRowColumn  translations  depend  on the value of the XmNrowColumnType
1042       resource.
1043
1044       If XmNrowColumnType is set to XmWORK_AREA, XmRowColumn inherits  trans‐
1045       lations from XmManager.
1046
1047       If  XmNrowColumnType is set to XmMENU_OPTION, XmRowColumn inherits tra‐
1048       versal, <osfActivate>, and <osfCancel> translations from XmManager  and
1049       has the following additional translations.
1050
1051       The following key names are listed in the X standard key event transla‐
1052       tion table syntax.  This format is the one used by Motif to specify the
1053       widget  actions  corresponding to a given key.  A brief overview of the
1054       format is provided under VirtualBindings(3).  For a  complete  descrip‐
1055       tion  of the format, please refer to the X Toolkit Instrinsics Documen‐
1056       tation.
1057
1058       <Btn2Down>:
1059                 MenuGadgetDrag()
1060
1061       c<Btn1Down>:
1062                 MenuGadgetTraverseCurrent()
1063
1064       c<Btn1Up>:
1065                 MenuGadgetTraverseCurrentUp()
1066
1067       ∼c<BtnDown>:
1068                 MenuBtnDown()
1069
1070       ∼c<BtnUp>:
1071                 MenuBtnUp()
1072
1073       :<Key><osfHelp>:
1074                 MenuHelp()
1075
1076       The  translations  for  XmRowColumn  if  XmNrowColumnType  is  set   to
1077       XmMENU_BAR  XmMENU_PULLDOWN,  or XmMENU_POPUP are described in the fol‐
1078       lowing list.  In a Popup menu system, <Btn3> also performs  the  <Btn1>
1079       actions.
1080
1081       :<Key><osfHelp>:
1082                 MenuHelp()
1083
1084       :<Key><osfLeft>:
1085                 MenuGadgetTraverseLeft()
1086
1087       :<Key><osfRight>:
1088                 MenuGadgetTraverseRight()
1089
1090       :<Key><osfUp>:
1091                 MenuGadgetTraverseUp()
1092
1093       :<Key><osfDown>:
1094                 MenuGadgetTraverseDown()
1095
1096   Action Routines
1097       The XmRowColumn action routines are
1098
1099       Help():   Calls  the  callbacks  for  XmNhelpCallback  if any exist. If
1100                 there are no help callbacks  for  this  widget,  this  action
1101                 calls  the  help  callbacks for the nearest ancestor that has
1102                 them.
1103
1104       ManagerGadgetSelect():
1105                 When a gadget child of the menu has the  focus,  invokes  the
1106                 gadget  child's  behavior  associated with <osfSelect>.  This
1107                 generally has the effect of unposting the menu hierarchy  and
1108                 arming and activating the gadget, except that, for a Cascade‐
1109                 ButtonGadget with a submenu, it posts the submenu.
1110
1111       MenuBtnDown():
1112                 When a gadget child of the menu has focus, invokes the gadget
1113                 child's  behavior associated with <Btn1Down>.  This generally
1114                 has the effect of unposting any menus posted  by  the  parent
1115                 menu,  enabling  mouse  traversal in the menu, and arming the
1116                 gadget.  For a CascadeButtonGadget with a  submenu,  it  also
1117                 posts the associated submenu.
1118
1119       MenuBtnUp():
1120                 When a gadget child of the menu has focus, invokes the gadget
1121                 child's behavior associated with  <Btn1Up>.   This  generally
1122                 has the effect of unposting the menu hierarchy and activating
1123                 the gadget, except that for a CascadeButtonGadget with a sub‐
1124                 menu,  it posts the submenu and enables keyboard traversal in
1125                 the menu.
1126
1127       MenuGadgetEscape():
1128                 In a top-level Pulldown MenuPane from a MenuBar, unposts  the
1129                 menu, disarms the MenuBar CascadeButton and the MenuBar, and,
1130                 when  the  shell's  keyboard  focus  policy  is   XmEXPLICIT,
1131                 restores  keyboard  focus  to  the  widget that had the focus
1132                 before the MenuBar was entered.  In other Pulldown MenuPanes,
1133                 unposts the menu.
1134
1135                 In  a  Popup MenuPane, unposts the menu and, when the shell's
1136                 keyboard focus policy is XmEXPLICIT, restores keyboard  focus
1137                 to  the  widget from which the menu was posted.  In a TearOff
1138                 MenuPane that has no submenus  posted,  dismisses  the  menu;
1139                 otherwise,  if  one  or more submenus are posted, unposts the
1140                 last menu pane.
1141
1142       MenuGadgetTraverseDown():
1143                 If the current menu item has a submenu and is in  a  MenuBar,
1144                 then  this action posts the submenu, disarms the current menu
1145                 item, and arms the submenu's first traversable menu item.
1146
1147                 If the current menu item is in a MenuPane, then  this  action
1148                 disarms  the  current  menu  item and arms the item below it.
1149                 This action wraps within the MenuPane. The direction  of  the
1150                 wrapping depends on the XmNlayoutDirection resource.
1151
1152       MenuGadgetTraverseLeft():
1153                 When  the current menu item is in a MenuBar, this action dis‐
1154                 arms the current item and arms the MenuBar item to the  left.
1155                 This action wraps within the MenuBar.
1156
1157                 In  MenuPanes,  if  the  current menu item is not at the left
1158                 edge of a MenuPane, this action disarms the current item  and
1159                 arms  the  item  to its left.  If the current menu item is at
1160                 the left edge of a submenu attached to a MenuBar  item,  then
1161                 this  action unposts the submenu and traverses to the MenuBar
1162                 item to the left, wrapping if necessary. If that MenuBar item
1163                 has  a  submenu, it posts the submenu and arms the first tra‐
1164                 versable item in the submenu.  If the current menu item is at
1165                 the left edge of a submenu not directly attached to a MenuBar
1166                 item, then this action unposts the current submenu only.
1167
1168                 In Popup or Torn-off MenuPanes, when the current menu item is
1169                 at  the  left edge, this action wraps within the MenuPane. If
1170                 the current menu item is at the left edge of the MenuPane and
1171                 not  in  the top row, this action wraps to the rightmost menu
1172                 item in the row above. If the current menu  item  is  in  the
1173                 upper,  leftmost  corner,  this  action wraps to the tear-off
1174                 control, if present, or else it wraps to the  bottom,  right‐
1175                 most menu item in the MenuPane.
1176
1177                 The preceding description applies when the XmNlayoutDirection
1178                 horizontal direction is XmLEFT_TO_RIGHT. If the  XmNlayoutDi‐
1179                 rection  horizontal  direction  is  XmRIGHT_TO_LEFT, then the
1180                 following applies.
1181
1182                 If the current menu item is in a MenuBar,  then  this  action
1183                 disarms  the  current  item  and arms the MenuBar item to the
1184                 left.  This action wraps within the MenuBar.
1185
1186                 In MenuPanes, if the current menu item  is  a  CascadeButton,
1187                 then  this  action posts its associated submenu.  If the cur‐
1188                 rent menu item is not a CascadeButton and is not at the  left
1189                 edge  of a MenuPane, this action disarms the current item and
1190                 arms the item to its left, wrapping  if  necessary.   If  the
1191                 current  menu  item is not a CascadeButton and is at the left
1192                 edge of a submenu that is a descendent  of  a  MenuBar,  then
1193                 this action unposts all submenus and traverses to the MenuBar
1194                 item to the left.  If that MenuBar item  has  a  submenu,  it
1195                 posts  the  submenu  and arms the submenu's first traversable
1196                 item.
1197
1198                 In Popup or Torn-off menus, if the current menu item is not a
1199                 CascadeButton  and  is  at the left edge of a row (except the
1200                 bottom row), this action wraps to the rightmost menu item  in
1201                 the  row below. If the current menu item is not a CascadeBut‐
1202                 ton and is in the bottom, leftmost corner of a Popup or Pull‐
1203                 down  MenuPane, this action wraps to the tear-off control, if
1204                 present, or else it wraps to the top, rightmost menu item  of
1205                 the MenuPane.
1206
1207       MenuGadgetTraverseRight():
1208                 If  the  current  menu item is in a MenuBar, then this action
1209                 disarms the current item and arms the  MenuBar  item  to  the
1210                 right.  This action wraps within the MenuBar.
1211
1212                 In  MenuPanes,  if  the current menu item is a CascadeButton,
1213                 then this action posts its associated submenu.  If  the  cur‐
1214                 rent menu item is not a CascadeButton and is not at the right
1215                 edge of a MenuPane, this action disarms the current item  and
1216                 arms  the  item  to its right, wrapping if necessary.  If the
1217                 current menu item is not a CascadeButton and is at the  right
1218                 edge  of  a  submenu  that is a descendent of a MenuBar, then
1219                 this action unposts all submenus and traverses to the MenuBar
1220                 item  to  the  right.  If that MenuBar item has a submenu, it
1221                 posts the submenu and arms the  submenu's  first  traversable
1222                 item.
1223
1224                 In Popup or Torn-off menus, if the current menu item is not a
1225                 CascadeButton and is at the right edge of a row  (except  the
1226                 bottom  row),  this action wraps to the leftmost menu item in
1227                 the row below. If the current menu item is not a  CascadeBut‐
1228                 ton  and  is  in  the  bottom, rightmost corner of a Popup or
1229                 Pulldown MenuPane, this action wraps to the tear-off control,
1230                 if  present,  or else it wraps to the top, leftmost menu item
1231                 of the MenuPane.
1232
1233                 The preceding description applies when the XmNlayoutDirection
1234                 horizontal  direction is XmLEFT_TO_RIGHT. If the XmNlayoutDi‐
1235                 rection horizontal direction  is  XmRIGHT_TO_LEFT,  then  the
1236                 following  applies.   When  the  current  menu  item  is in a
1237                 MenuBar, this action disarms the current item  and  arms  the
1238                 MenuBar  item  to  the  left.   This  action wraps within the
1239                 MenuBar.
1240
1241                 In MenuPanes, if the current menu item is not  at  the  right
1242                 edge  of a MenuPane, this action disarms the current item and
1243                 arms the item to its right.  If the current menu item  is  at
1244                 the  right edge of a submenu attached to a MenuBar item, then
1245                 this action unposts the submenu and traverses to the  MenuBar
1246                 item  to  the  right,  wrapping if necessary. If that MenuBar
1247                 item has a submenu, it posts the submenu and arms  the  first
1248                 traversable item in the submenu.  If the current menu item is
1249                 at the right edge of a submenu not  directly  attached  to  a
1250                 MenuBar  item,  then  this action unposts the current submenu
1251                 only.
1252
1253                 In Popup or Torn-off MenuPanes, when the current menu item is
1254                 at  the right edge, this action wraps within the MenuPane. If
1255                 the current menu item is at the right edge  of  the  MenuPane
1256                 and  not  in  the  top row, this action wraps to the leftmost
1257                 menu item in the row above. If the current menu  item  is  in
1258                 the  upper,  rightmost corner, this action wraps to the tear-
1259                 off control, if present, or else  it  wraps  to  the  bottom,
1260                 leftmost menu item in the MenuPane.
1261
1262       MenuGadgetTraverseUp():
1263                 When the current menu item is in a MenuPane, then this action
1264                 disarms the current menu item and arms  the  item  above  it.
1265                 This  action  wraps within the MenuPane. The direction of the
1266                 wrapping depends on the XmNlayoutDirection resource.
1267
1268   Related Behavior
1269       The following menu functions are available:
1270
1271       <osfMenuBar>:
1272                 In any non-popup descendant of a MenuBar's parent,  excluding
1273                 the  MenuBar  itself,  this action enables keyboard traversal
1274                 and moves keyboard focus to the first item  in  the  MenuBar.
1275                 In  the  MenuBar  or  any  menu cascaded from it, this action
1276                 unposts the menu hierarchy and,  when  the  shell's  keyboard
1277                 focus policy is XmEXPLICIT, restores focus to the widget that
1278                 had the focus when the menu system was entered.
1279
1280       <osfMenu>:
1281                 Pops up the menu associated with the  control  that  has  the
1282                 keyboard  focus.  Enables keyboard traversal in the menu.  In
1283                 the Popup menu system or any  menu  cascaded  from  it,  this
1284                 action  unposts the menu hierarchy and, when the shell's key‐
1285                 board focus policy is XmEXPLICIT, restores focus to the  wid‐
1286                 get that had the focus when the menu system was entered.
1287
1288   Virtual Bindings
1289       The  bindings  for  virtual  keys are vendor specific.  For information
1290       about bindings for virtual buttons and keys, see VirtualBindings(3).
1291
1293       Composite(3), Constraint(3), Core(3),  XmCreateMenuBar(3),  XmCreateOp‐
1294       tionMenu(3), XmCreatePopupMenu(3), XmCreatePulldownMenu(3), XmCreateRa‐
1295       dioBox(3), XmCreateRowColumn(3), XmCreateSimpleCheckBox(3),  XmCreateS‐
1296       impleMenuBar(3),    XmCreateSimpleOptionMenu(3),   XmCreateSimplePopup‐
1297       Menu(3),   XmCreateSimplePulldownMenu(3),    XmCreateSimpleRadioBox(3),
1298       XmCreateWorkArea(3),    XmGetMenuCursor(3),   XmGetPostedFromWidget(3),
1299       XmGetTearOffControl, XmLabel(3), XmManager(3), XmMenuPosition(3), XmOp‐
1300       tionButtonGadget(3),  XmOptionLabelGadget(3),  XmRepTypeInstallTearOff‐
1301       ModelConverter, XmSetMenuCursor(3), XmUpdateDisplay(3),  XmVaCreateMan‐
1302       agedRowColumn(3),  XmVaCreateRowColumn(3), XmVaCreateSimpleCheckBox(3),
1303       XmVaCreateSimpleMenuBar(3), XmVaCreateSimpleOptionMenu(3), XmVaCreateS‐
1304       implePopupMenu(3),  XmVaCreateSimplePulldownMenu(3), and XmVaCreateSim‐
1305       pleRadioBox(3).
1306
1307
1308
1309                                                     XmRowColumn(library call)
Impressum