2
...\" RowCol.sgm /main/11 1996/09/08 20:59:24 rws $
10
.fl \" force out current output buffer
11
\!!save /psv exch def currentpoint translate 0 0 moveto
14
.sy sed -e 's/^/!/' \\$1\" bring in postscript file
18
.ie \\*(f1 .ds f1 \\n(.f
19
.el .ie \\*(f2 .ds f2 \\n(.f
20
.el .ie \\*(f3 .ds f3 \\n(.f
21
.el .ie \\*(f4 .ds f4 \\n(.f
22
.el .tm ? font overflow
42
.el .tm ? font underflow
48
.ta 8n 16n 24n 32n 40n 48n 56n 64n 72n
49
.TH "XmRowColumn" "library call"
51
\fBXmRowColumn\fP \(em The RowColumn widget class
53
.iX "widget class" "RowColumn"
57
#include <Xm/RowColumn\&.h>
61
The RowColumn widget is a general purpose RowColumn manager capable
62
of containing any widget type as a child\&.
63
In general, it requires no special
64
knowledge about how its children function and provides nothing
65
beyond support for several different layout styles\&. However, it can be
66
configured as a menu, in which case, it expects only certain children, and
67
it configures to a particular layout\&. The menus supported are MenuBar,
68
Pulldown or Popup menu panes, and OptionMenu\&.
69
RowColumn uses the \fBXmQTmenuSavvy\fP trait and holds the
70
\fBXmQTmenuSystem\fP trait\&.
72
The type of layout performed is controlled by how the application has set
73
the various layout resources\&.
74
It can be configured to lay out its children in either rows or
75
columns\&. In addition, the application can specify how the children are
78
The children are packed tightly together into either rows or columns
80
Each child is placed in an identically sized
81
box (producing a symmetrical look)
83
A specific layout (the current \fIx\fP and \fIy\fP positions of the children
84
control their location)
86
In addition, the application has control over both the spacing that
87
occurs between each row and column and the margin spacing
88
present between the edges of the RowColumn widget and any children
89
that are placed against it\&.
91
The default \fBXmNinsertPosition\fP procedure for the RowColumn
92
returns the value of \fBXmNpositionIndex\fP if one has been specified
93
for the child\&. Otherwise, this procedure returns the number of
94
children in the RowColumn\&'s \fBXmNnumChildren\fP list\&.
95
In a MenuBar, Pulldown menu pane, or Popup menu pane the default for the
96
\fBXmNshadowThickness\fP resource is 2\&.
97
In an OptionMenu or a WorkArea, (such as a RadioBox or CheckBox) this
98
resource is not applicable and its use is undefined\&.
99
If an application wishes to place a 3-D shadow around an OptionMenu or
100
WorkArea, it can create the RowColumn as a child of a Frame widget\&.
102
In a MenuBar, Pulldown menu pane, or Popup menu pane the
103
\fBXmNnavigationType\fP resource is not applicable and its use is
105
In a WorkArea, the default for \fBXmNnavigationType\fP is
107
In an OptionMenu the default for \fBXmNnavigationType\fP is
110
In a MenuBar, Pulldown menu pane, or Popup menu pane the
111
\fBXmNtraversalOn\fP resource is not applicable and its use is
113
In an OptionMenu or WorkArea, the default for \fBXmNtraversalOn\fP is
116
If the parent of the RowColumn is a MenuShell, the
117
\fBXmNmappedWhenManaged\fP resource is forced to False when the widget
120
The user can specify resources in a resource file for the automatically
121
created widgets and gadgets of an OptionMenu\&. The following list
122
identifies the names of these widgets (or gadgets) and the associated
124
.IP "Option Menu Label Gadget" 10
126
.IP "Option Menu Cascade Button" 10
129
For the Popup and Pulldown Menupanes, popup and pulldown menus have
130
particular behaviors when the
131
\fB<Btn1>\fP button is pressed outside the menus\&. These behaviors
132
are summarized here\&.
134
When there is already a popped up menu, a user can either press
135
\fB<Btn1>\fP in the same area as the
136
popped up menu, or can press \fB<Btn1>\fP in another area that should
137
have a menu popped up\&. When \fB<Btn1>\fP is pressed in the same
138
area as the already popped up menu, that menu is unposted\&.
139
If \fB<Btn1>\fP is pressed in a different area,
140
the associated popup menu is posted for the new area\&. Note, however,
142
\fBXmNpopupHandlerCallback\fP of either \fBXmManager\fP or
143
\fBXmPrimitive\fP is available, then the callback may override these
146
For pulldown menus, a user can press \fB<Btn1>\fP on the
147
Cascade button to post the pulldown menu, then click on it again\&. Upon the
148
second click, the pulldown menu is unposted\&.
150
Popup menus are not allowed to have NULL parents\&.
153
Pulldown and Popup menu panes support tear-off menus, which enable the
154
user to retain a menu pane on the display to facilitate subsequent
155
menu selections\&. A menu pane that can be torn-off is identified by
156
a tear-off button that spans the width of the menu pane and displays
157
a dashed line\&. A torn-off menu pane contains a window manager system
158
menu icon and a title bar\&. The window title displays the label of the
159
cascade button that initiated the action when the label type is
160
\fBXmSTRING\fP\&. If the label contains a pixmap the window title is
161
empty\&. A tear-off menu from a Popup menu pane also displays
163
Tear-off menus should not be shared\&.
165
The user can tear off a menu pane using the mouse or keyboard\&.
166
Clicking \fB<Btn1>\fP or pressing \fB<osfActivate>\fP (or \fB<osfSelect>\fP)
167
on the tear-off button, tears off the menu pane at the current
168
position\&. Pressing \fB<Btn2>\fP on the tear-off button tears off the
169
menu pane and allows the user to drag the torn-off menu to a new
170
position designated by releasing the mouse button\&. Tearing off a
171
menu pane unposts the current active menu\&. Only one tear-off copy
172
for each menu pane is allowed\&. Subsequent tear-off actions of a
173
torn menu pane unpost the existing copy first\&.
175
The name of the tear-off button of a torn-off menu pane is
176
\fBTearOffControl\fP\&. The name can be used to set resources in a resource
177
file\&. An application can also obtain the tear-off button itself using
178
\fBXmGetTearOffControl\fP and then set resource values by calling
181
The tear-off button has Separator-like behavior\&. Its appearance can be
182
specified with the following tear-off button resources:
183
\fBXmNbackground\fP, \fBXmNbackgroundPixmap\fP,
184
\fBXmNbottomShadowColor\fP, \fBXmNforeground\fP, \fBXmNheight\fP,
185
\fBXmNmargin\fP, \fBXmNseparatorType\fP, \fBXmNshadowThickness\fP, and
186
\fBXmNtopShadowColor\fP\&. Refer to the \fBXmSeparator\fP reference
187
page for a complete description of each of these resources\&.
189
The \fBXmNtearOffModel\fP, \fBXmNtearOffMenuActivateCallback\fP, and
190
\fBXmNtearOffMenuDeactivateCallback\fP
191
are RowColumn resources that affect tear-off menu behavior\&.
192
The \fBXmNtearOffTitle\fP resource enables the application to specify
193
the tear-off menu\&'s title if the menu is torn off\&.
195
By default, menus do not tear off\&. Setting the
196
\fBXmNtearOffModel\fP resource to \fBXmTEAR_OFF_ENABLED\fP
197
enables tear-off functionality\&.
198
There is no resource converter
199
preregistered for \fBXmNtearOffModel\fP\&. To allow tear-off
200
functionality to be enabled through the resource database, call the
201
function \fBXmRepTypeInstallTearOffModelConverter\fP\&.
203
Tear-off menu focus policy follows standard window
204
manager policy\&. It is recommended that the
205
\fBstartupKeyFocus\fP and \fBautoKeyFocus\fP
206
\fBmwm\fP resources be set to True\&.
209
RowColumn automatically creates the descendants shown in the
211
An application can use \fBXtNameToWidget\fP to gain access
212
to the named descendant\&. In addition, a user or an application
213
can use the named descendant when specifying resource values\&.
217
\fBNamed Descendant\fP\fBClass\fP\fBIdentity\fP
221
\fBOptionButton\fP\fBXmCascadeButtonGadget\fPoption menu button
223
\fBOptionLabel\fP\fBXmLabelGadget\fPoption menu label
225
\fBTearOffControl\fPsubclass of \fBXmPrimitive\fPT{
226
tear-off button of torn-off menu pane
232
RowColumn inherits behavior, resources, and traits from \fBCore\fP,
234
\fBConstraint\fP, and \fBXmManager\fP classes\&.
236
The class pointer is \fBxmRowColumnWidgetClass\fP\&.
238
The class name is \fBXmRowColumn\fP\&.
241
The following table defines a set of widget resources used by the programmer
242
to specify data\&. The programmer can also set the resource values for the
243
inherited classes to set attributes for this widget\&. To reference a
244
resource by name or by class in a \fB\&.Xdefaults\fP file, remove the \fBXmN\fP or
245
\fBXmC\fP prefix and use the remaining letters\&. To specify one of the defined
246
values for a resource in a \fB\&.Xdefaults\fP file, remove the \fBXm\fP prefix and use
247
the remaining letters (in either lowercase or uppercase, but include any
248
underscores between words)\&.
249
The codes in the access column indicate if the given resource can be
250
set at creation time (C),
251
set by using \fBXtSetValues\fP (S),
252
retrieved by using \fBXtGetValues\fP (G), or is not applicable (N/A)\&.
258
\fBXmRowColumn Resource Set\fP
259
\fBName\fP\fBClass\fP\fBType\fP\fBDefault\fP\fBAccess\fP
261
XmNadjustLastXmCAdjustLastBooleanTrueCSG
263
XmNadjustMarginXmCAdjustMarginBooleanTrueCSG
265
XmNentryAlignmentXmCAlignmentunsigned charXmALIGNMENT_BEGINNINGCSG
267
XmNentryBorderXmCEntryBorderDimension0CSG
269
XmNentryCallbackXmCCallbackXtCallbackListNULLC
271
XmNentryClassXmCEntryClassWidgetClassdynamicCSG
273
XmNentryVerticalAlignmentXmCVerticalAlignmentunsigned charXmALIGNMENT_CENTERCSG
275
XmNisAlignedXmCIsAlignedBooleanTrueCSG
277
XmNisHomogeneousXmCIsHomogeneousBooleandynamicCG
279
XmNlabelStringXmCXmStringXmStringNULLC
281
XmNmapCallbackXmCCallbackXtCallbackListNULLC
283
XmNmarginHeightXmCMarginHeightDimensiondynamicCSG
285
XmNmarginWidthXmCMarginWidthDimensiondynamicCSG
287
XmNmenuAcceleratorXmCAcceleratorsStringdynamicCSG
289
XmNmenuHelpWidgetXmCMenuWidgetWidgetNULLCSG
291
XmNmenuHistoryXmCMenuWidgetWidgetNULLCSG
293
XmNmenuPostXmCMenuPostStringNULLCSG
295
XmNmnemonicXmCMnemonicKeySymNULLCSG
297
XmNmnemonicCharSetXmCMnemonicCharSetStringXmFONTLIST_DEFAULT_TAGCSG
299
XmNnumColumnsXmCNumColumnsshort1CSG
301
XmNorientationXmCOrientationunsigned chardynamicCSG
303
XmNpackingXmCPackingunsigned chardynamicCSG
305
XmNpopupEnabledXmCPopupEnabledintXmPOPUP_KEYBOARDCSG
307
XmNradioAlwaysOneXmCRadioAlwaysOneBooleanTrueCSG
309
XmNradioBehaviorXmCRadioBehaviorBooleanFalseCSG
311
XmNresizeHeightXmCResizeHeightBooleanTrueCSG
313
XmNresizeWidthXmCResizeWidthBooleanTrueCSG
315
XmNrowColumnTypeXmCRowColumnTypeunsigned charXmWORK_AREACG
317
XmNspacingXmCSpacingDimensiondynamicCSG
319
XmNsubMenuIdXmCMenuWidgetWidgetNULLCSG
321
XmNtearOffMenuActivateCallbackXmCCallbackXtCallbackListNULLC
323
XmNtearOffMenuDeactivateCallbackXmCCallbackXtCallbackListNULLC
325
XmNtearOffModelXmCTearOffModelunsigned charXmTEAR_OFF_DISABLEDCSG
327
XmNtearOffTitleXmCTearOffTitleXmStringNULLCSG
329
XmNunmapCallbackXmCCallbackXtCallbackListNULLC
331
XmNwhichButtonXmCWhichButtonunsigned intdynamicCSG
334
.IP "\fBXmNadjustLast\fP" 10
335
Extends the last row of children to the bottom edge of RowColumn (when
336
\fBXmNorientation\fP is \fBXmHORIZONTAL\fP) or extends the last column to the
337
right edge of RowColumn (when \fBXmNorientation\fP is \fBXmVERTICAL\fP)\&.
338
Setting \fBXmNadjustLast\fP to False disables this feature\&.
339
.IP "\fBXmNadjustMargin\fP" 10
340
Specifies whether the inner minor margins of all
341
items contained within the RowColumn widget are
342
forced to the same value\&. The inner minor margin
343
corresponds to the \fBXmNmarginLeft\fP, \fBXmNmarginRight\fP,
345
and \fBXmNmarginBottom\fP resources supported by \fBXmLabel\fP and
346
\fBXmLabelGadget\fP\&.
348
A horizontal orientation causes \fBXmNmarginTop\fP and
349
\fBXmNmarginBottom\fP for all items in a particular row to be forced to the
350
same value; the value is the largest margin specified
351
for one of the Label items\&.
353
A vertical orientation causes
354
\fBXmNmarginLeft\fP and \fBXmNmarginRight\fP for all items in a particular
355
column to be forced to the same value; the value is the largest
356
margin specified for one of the Label items\&.
358
This keeps all text within each row or column
359
lined up with all other text in its row or column\&.
360
If \fBXmNrowColumnType\fP is either \fBXmMENU_POPUP\fP or
361
\fBXmMENU_PULLDOWN\fP and this resource is True, only button children
362
have their margins adjusted\&.
363
.IP "\fBXmNentryAlignment\fP" 10
364
Specifies the alignment type for children that are subclasses of
365
\fBXmLabel\fP or \fBXmLabelGadget\fP when \fBXmNisAligned\fP is enabled\&.
366
The following are textual alignment types:
369
\fBXmALIGNMENT_BEGINNING\fP (default)
371
\fBXmALIGNMENT_CENTER\fP
373
\fBXmALIGNMENT_END\fP
376
See the description of \fBXmNalignment\fP in the \fBXmLabel\fP(3)
377
reference page for an explanation of these actions\&.
378
.IP "\fBXmNentryBorder\fP" 10
379
Imposes a uniform border width upon all RowColumn\&'s children\&.
380
The default value is 0 (zero), which disables the feature\&.
381
.IP "\fBXmNentryCallback\fP" 10
382
Disables the \fBXmNactivateCallback\fP and \fBXmNvalueChangedCallback\fP
383
callbacks for all CascadeButton, DrawnButton, PushButton, and
384
ToggleButton widgets and gadgets contained within the RowColumn widget\&.
385
If the application supplies this resource, the \fBXmNactivateCallback\fP
386
and \fBXmNvalueChangedCallback\fP callbacks are then revectored to the
387
\fBXmNentryCallback\fP callbacks\&.
388
This allows an application to supply a single callback routine for
389
handling all items contained in a RowColumn widget\&.
390
The callback reason is \fBXmCR_ACTIVATE\fP\&.
391
If the application does not supply this resource, the
392
\fBXmNactivateCallback\fP and \fBXmNvalueChangedCallback\fP
393
callbacks for each item in the RowColumn widget work as normal\&.
395
The application must supply this resource when this widget is created\&.
396
Changing this resource using the \fBXtSetValues\fP is not
398
.IP "\fBXmNentryClass\fP" 10
399
Specifies the only widget class that can be added
400
to the RowColumn widget; this resource is meaningful only when the
401
\fBXmNisHomogeneous\fP resource is set to True\&.
402
Both widget and gadget variants of the specified class may be added to
405
When \fBXmCreateRadioBox\fP is called or when \fBXmNrowColumnType\fP is
406
set to \fBXmWORK_AREA\fP and \fBXmNradioBehavior\fP is True, the default
407
value of \fBXmNentryClass\fP is
408
\fBxmToggleButtonGadgetClass\fP\&.
409
When \fBXmNrowColumnType\fP is set to \fBXmMENU_BAR\fP, the value of
410
\fBXmNentryClass\fP is forced to \fBxmCascadeButtonWidgetClass\fP\&.
411
.IP "\fBXmNentryVerticalAlignment\fP" 10
412
Specifies the type of vertical alignment for children that are
413
subclasses of \fBXmLabel\fP, \fBXmLabelGadget, and\fP \fBXmText\fP\&.
414
This resource is invalid if \fBXmNorientation\fP is \fBXmVERTICAL\fP
415
and \fBXmNpacking\fP is \fBXmPACK_TIGHT\fP, because this layout
416
preserves variable heights among the children\&. The vertical alignment
419
.IP "\fBXmALIGNMENT_BASELINE_BOTTOM\fP" 10
420
Causes the bottom baseline of all
421
children in a row to be aligned\&.
422
This resource is applicable only when all children in a row
423
contain textual data\&.
424
.IP "\fBXmALIGNMENT_BASELINE_TOP\fP" 10
425
Causes the top baseline of all
426
children in a row to be aligned\&.
427
This resource is applicable only when all children in a
428
row contain textual data\&.
429
.IP "\fBXmALIGNMENT_CONTENTS_BOTTOM\fP" 10
430
Causes the bottom of the
432
pixmap) of all children in a row to be aligned\&.
433
.IP "\fBXmALIGNMENT_CENTER\fP" 10
434
Causes the center of all children in a row to be
436
.IP "\fBXmALIGNMENT_CONTENTS_TOP\fP" 10
437
Causes the top of the contents (text or
438
pixmap) of all children in a row to be aligned\&.
440
.IP "\fBXmNisAligned\fP" 10
441
Specifies text alignment for each item within the RowColumn widget;
442
this applies only to items that are subclasses of
443
\fBXmLabel\fP or \fBXmLabelGadget\fP\&.
444
However, if the item is a Label widget or gadget and its parent is either
445
a Popup menu pane or a Pulldown menu pane, alignment is not
446
performed; the Label is treated as the
448
menu pane, and the alignment
449
set by the application is not overridden\&.
450
\fBXmNentryAlignment\fP controls the type of textual alignment\&.
451
.IP "\fBXmNisHomogeneous\fP" 10
452
Indicates whether the RowColumn
453
widget should enforce exact homogeneity among the items
454
it contains; if this resource is set to True, only the widgets that are
455
of the class indicated by \fBXmNentryClass\fP
456
are allowed as children of the RowColumn widget\&.
457
This is most often used when creating a MenuBar\&.
458
Attempting to insert a child that is not a member of the
459
specified class generates a warning message\&.
461
In a MenuBar, the value of \fBXmNisHomogeneous\fP is forced to True\&.
462
In an OptionMenu, the value is forced to False\&.
463
When \fBXmCreateRadioBox\fP is called the default value is True\&.
464
Otherwise, the default value is False\&.
465
.IP "\fBXmNlabelString\fP" 10
466
When \fBXmNrowColumnType\fP is set to \fBXmMENU_OPTION\fP,
467
this resource points to a text string that displays the label with
468
respect to the selection area\&. The positioning of the label relative to the
469
selection area depends on the layout
470
direction in the horizontal orientation\&.
471
This resource is not meaningful for all other RowColumn types\&.
472
If the application wishes to change the label after creation, it must get the
473
LabelGadget ID (\fBXmOptionLabelGadget\fP) and call \fBXtSetValues\fP on the
474
LabelGadget directly\&. The default value is no label\&.
475
.IP "\fBXmNmapCallback\fP" 10
476
Specifies a widget-specific callback function that is
477
invoked when the window associated with the RowColumn widget
478
is about to be mapped\&. The callback reason is \fBXmCR_MAP\fP\&.
479
.IP "\fBXmNmarginHeight\fP" 10
480
Specifies the amount of blank space between the top
481
edge of the RowColumn widget and the first item in each column,
482
and the bottom edge of the RowColumn widget and the last item
484
The default value is 0 (zero) for Pulldown and Popup menu panes, and 3
485
pixels for other RowColumn types\&.
486
.IP "\fBXmNmarginWidth\fP" 10
487
Specifies the amount of blank space between the left
488
edge of the RowColumn widget and the first item in each row,
489
and the right edge of the RowColumn widget and the last item in
491
The default value is 0 (zero) for Pulldown and Popup menu panes, and 3
492
pixels for other RowColumn types\&.
493
.IP "\fBXmNmenuAccelerator\fP" 10
494
This resource is useful only when the RowColumn widget has been configured
495
to operate as a Popup menu pane or a MenuBar\&.
496
The format of this resource is similar to the left side specification
497
of a translation string, with the limitation that it must specify a key
499
For a Popup menu pane, when the accelerator is typed by the user, the Popup
500
menu pane is posted\&.
501
For a MenuBar, when the accelerator is typed by the user, the first item
502
in the MenuBar is highlighted, and traversal is enabled in the
504
The default for a Popup menu pane is \fB<osfMenu>\fP\&.
505
The default for a MenuBar is \fB<osfMenuBar>\fP\&.
506
Setting the \fBXmNpopupEnabled\fP resource to False disables
508
.IP "\fBXmNmenuHelpWidget\fP" 10
509
Specifies the widget ID for the CascadeButton, which is treated as
510
the Help widget if \fBXmNrowColumnType\fP is set to \fBXmMENU_BAR\fP\&.
511
Which corner of the MenuBar the Help widget is placed at depends on
512
the \fBXmNlayoutDirection\fP resource of the widget\&.
513
If the RowColumn widget is any type other than \fBXmMENU_BAR\fP,
514
this resource is not meaningful\&.
515
.IP "\fBXmNmenuHistory\fP" 10
516
Specifies the widget ID of the last menu entry to be activated\&. It is
517
also useful for specifying the current selection for an OptionMenu\&. If
518
\fBXmNrowColumnType\fP is set to \fBXmMENU_OPTION\fP, the specified
519
menu item is positioned under the cursor when the menu is displayed\&.
521
If the RowColumn widget has the \fBXmNradioBehavior\fP resource set to
523
the widget field associated with this resource
524
contains the widget ID of the last ToggleButton or ToggleButtonGadget
525
to change from unselected to selected\&.
526
The default value is the widget ID of the first child in
528
.IP "\fBXmNmenuPost\fP" 10
529
Specifies an X event description indicating a button event that posts a menu
531
The default for \fBXmMENU_POPUP\fP is \fBBMenu Press\fP\&.
532
The default for \fBXmMENU_OPTION\fP, \fBXmMENU_BAR\fP, and
533
\fBXmWORK_AREA\fP is \fB<Btn1>\fP \fBPress\fP\&.
534
The \fBXmNmenuPost\fP resource for pulldowns should be consistent with that of
535
the top-level parent menu (although the event type is ignored)\&.
536
Setting this resource to \fBBTransfer Press\fP will conflict with drag and drop
537
operations, which use \fBBTransfer Press\fP as a default button binding\&.
538
Therefore, this resource cannot be \fBBTransfer Press\fP\&.
539
.IP "\fBXmNmnemonic\fP" 10
540
This resource is useful only when \fBXmNrowColumnType\fP is
541
set to \fBXmMENU_OPTION\fP\&.
542
It specifies a keysym for a key that, when pressed by the user along with
543
the \fBMAlt\fP modifier, posts
544
the associated Pulldown menu pane\&.
545
The first character in the OptionMenu label string that exactly matches
546
the mnemonic in the character set specified in \fBXmNmnemonicCharSet\fP
548
The user can post the menu by pressing either the shifted or the
549
unshifted mnemonic key\&.
550
The default is no mnemonic\&.
551
.IP "\fBXmNmnemonicCharSet\fP" 10
552
Specifies the character set of the mnemonic for an OptionMenu\&.
553
The default is \fBXmFONTLIST_DEFAULT_TAG\fP\&.
554
If the RowColumn widget is any type other than \fBXmMENU_OPTION\fP,
555
this resource is not meaningful\&.
556
.IP "\fBXmNnumColumns\fP" 10
557
Specifies the number of minor dimension extensions
558
that are made to accommodate the entries; this
559
attribute is meaningful only when \fBXmNpacking\fP is set to
560
\fBXmPACK_COLUMN\fP\&.
562
For vertically oriented RowColumn widgets, this attribute
563
indicates how many columns are built; the number of
564
entries per column is adjusted to maintain this
565
number of columns, if possible\&.
567
For horizontally oriented RowColumn widgets, this attribute
568
indicates how many rows are built\&.
570
The default value is 1\&.
571
In an OptionMenu the value is forced to 1\&.
572
The value must be greater than 0 (zero)\&.
573
.IP "\fBXmNorientation\fP" 10
574
Determines whether RowColumn layouts are row-major or column-major\&.
575
In a column-major layout, the children of the RowColumn
577
columns within the widget\&. In a row-major layout the children of
578
the RowColumn are laid out in rows\&. The direction of the horizontal
579
layout in the row-major layout (from left or right), and the wrapping in
580
the column-major layout (vertical), depend on the
581
\fBXmNlayoutDirection\fP resource of the widget\&.
582
The \fBXmVERTICAL\fP resource value
583
selects a column-major layout\&.
584
\fBXmHORIZONTAL\fP selects a row-major layout\&.
586
When creating a MenuBar or an OptionMenu, the default is
587
\fBXmHORIZONTAL\fP\&.
588
Otherwise, the default value is \fBXmVERTICAL\fP\&.
589
The results of specifying a value of \fBXmVERTICAL\fP for a MenuBar are
591
.IP "\fBXmNpacking\fP" 10
592
Specifies how to pack the items contained within a
593
RowColumn widget\&. This can be set to \fBXmPACK_TIGHT, XmPACK_COLUMN\fP or \fBXmPACK_NONE\fP\&. When a RowColumn widget
594
packs the items it contains, it determines its major
595
dimension using the value of the \fBXmNorientation\fP resource\&.
597
\fBXmPACK_TIGHT\fP indicates that given the current major
598
dimension (for example, vertical if \fBXmNorientation\fP is \fBXmVERTICAL\fP), entries
599
are placed one after the other until
600
the RowColumn widget must wrap\&. RowColumn wraps when there is no room left
601
for a complete child in that dimension\&.
603
by beginning a new row or column in the next available
604
space\&. Wrapping continues, as often as necessary, until
605
all of the children are laid out\&.
606
In the vertical dimension (columns), boxes are set to the same width; in the
607
horizontal dimension (rows), boxes are set to the same depth\&.
609
entry\&'s position in the major dimension is left unaltered (for example,
610
\fBXmNy\fP is left unchanged when \fBXmNorientation\fP is \fBXmVERTICAL\fP); its
611
position in the minor
612
dimension is set to the same value as the greatest entry
613
in that particular row or column\&. The position in the minor
614
dimension of any particular row or column is independent
615
of all other rows or columns\&.
617
\fBXmPACK_COLUMN\fP indicates that all entries are placed in
618
identically sized boxes\&. The boxes are based on the largest height
619
and width values of all the children widgets\&.
620
The value of the \fBXmNnumColumns\fP
621
resource determines how many boxes are placed in the
622
major dimension, before extending in the minor dimension\&.
624
\fBXmPACK_NONE\fP indicates that no packing is performed\&.
625
The \fIx\fP and \fIy\fP attributes of each entry are left alone, and
626
the RowColumn widget attempts to become large enough to enclose all
629
When \fBXmCreateRadioBox\fP is called or when \fBXmNrowColumnType\fP
630
is set to \fBXmWORK_AREA\fP and \fBXmNradioBehavior\fP is True, the
631
default value of \fBXmNpacking\fP is \fBXmPACK_COLUMN\fP\&.
632
In an OptionMenu the value is initialized to \fBXmPACK_TIGHT\fP\&.
633
Otherwise, the value defaults to \fBXmPACK_TIGHT\fP\&.
634
.IP "\fBXmNpopupEnabled\fP" 10
635
Allows the menu system
636
to enable keyboard input (accelerators and mnemonics) defined for the Popup
637
menu pane and any of its submenus\&.
638
The Popup menu pane needs to be informed whenever its accessibility to the user
639
changes because posting of the Popup menu pane is controlled by the
641
This resource can take four values, including:
643
.IP "\fBXmPOPUP_KEYBOARD\fP" 10
644
Specifies that the keyboard
645
input\(emaccelerators and mnemonics\(emdefined for the Popup menu pane
646
and any of its submenus is enabled\&. This is the default\&.
647
.IP "\fBXmPOPUP_DISABLED\fP" 10
648
Specifies that the keyboard input is disabled\&.
649
.IP "\fBXmPOPUP_AUTOMATIC\fP" 10
650
Specifies that the keyboard is enabled for automatic popup menus\&.
651
.IP "\fBXmPOPUP_AUTOMATIC_RECURSIVE\fP" 10
652
Specifies that the keyboard is enabled for recursive automatic popup menus\&.
654
.IP "\fBXmNradioAlwaysOne\fP" 10
655
If True, forces the active ToggleButton or ToggleButtonGadget
656
to be automatically selected after having
657
been unselected (if no other toggle was activated)\&.
658
If False, the active toggle may be unselected\&.
659
The default value is True\&. This resource is important only when
660
\fBXmNradioBehavior\fP is True\&.
662
The application can always add and subtract toggles from
663
RowColumn regardless of the selected/unselected state of the toggle\&. The
664
application can also manage and unmanage toggle
665
children of RowColumn at any time regardless of state\&. Therefore,
666
the application can sometimes
667
create a RowColumn that has \fBXmNradioAlwaysOne\fP set to
669
of the toggle children selected\&.
670
The result is undefined if the value of this resource is True and the
671
application sets more than one ToggleButton at a time\&.
672
.IP "\fBXmNradioBehavior\fP" 10
673
Specifies a Boolean value that when True, indicates
674
that the RowColumn widget should enforce a RadioBox-type behavior
675
on all of its children that are ToggleButtons or
676
ToggleButtonGadgets\&.
678
When the value of this resource is True,
679
\fBXmNindicatorType\fP defaults to \fBXmONE_OF_MANY\fP
680
for ToggleButton and ToggleButtonGadget children\&.
683
behavior dictates that when one toggle is selected and the user selects another
684
toggle, the first toggle is unselected
686
The RowColumn usually does not enforce this behavior if the application,
687
rather than the user, changes the state of a toggle\&.
688
The RowColumn does enforce this behavior if a toggle child is selected
689
with \fBXmToggleButtonSetState\fP or \fBXmToggleButtonGadgetSetState\fP
690
with a \fInotify\fP argument of True\&.
692
When \fBXmCreateRadioBox\fP is called, the default value of
693
\fBXmNradioBehavior\fP is True\&.
694
Otherwise, the default value is False\&.
695
.IP "\fBXmNresizeHeight\fP" 10
696
Requests a new height if necessary, when set to True\&. When this
698
False, the widget does not request a new height regardless of any
699
changes to the widget or its children\&.
700
.IP "\fBXmNresizeWidth\fP" 10
701
Requests a new width if necessary, when set to True\&. When set to
702
False, the widget does not request a new width regardless of any
703
changes to the widget or its children\&.
704
.IP "\fBXmNrowColumnType\fP" 10
705
Specifies the type of RowColumn widget
707
It is a nonstandard resource that cannot be changed after it is set\&.
708
If an application uses any of the
709
convenience routines, except \fBXmCreateRowColumn\fP,
710
this resource is automatically forced to the appropriate
711
value by the convenience routine\&. If an application uses
712
the Xt Intrinsics API to create its RowColumn widgets,
713
it must specify this resource itself\&. The set
714
of possible settings for this resource are
717
\fBXmWORK_AREA\fP (default)
721
\fBXmMENU_PULLDOWN\fP
728
This resource cannot be changed after the RowColumn widget
729
is created\&. Any changes attempted through \fBXtSetValues\fP
732
The value of this resource is used to determine the value of a number
733
of other resources\&. The descriptions of RowColumn resources explain
734
this when it is the case\&. The resource \fBXmNnavigationType\fP,
735
inherited from \fBXmManager\fP, is changed to \fBXmNONE\fP if
736
\fBXmNrowColumnType\fP is \fBXmMENU_OPTION\fP\&.
737
.IP "\fBXmNspacing\fP" 10
738
Specifies the horizontal and vertical spacing between
739
items contained within the RowColumn widget\&.
740
The default value is 3 pixels for \fBXmOPTION_MENU\fP and
741
\fBXmWORK_AREA\fP and 0 (zero) for other RowColumn types\&.
742
.IP "\fBXmNsubMenuId\fP" 10
743
Specifies the widget ID for the Pulldown menu pane to be associated with
744
an OptionMenu\&. This resource is useful only when \fBXmNrowColumnType\fP is
745
set to \fBXmMENU_OPTION\fP\&.
746
The default value is NULL\&.
747
.IP "\fBXmNtearOffMenuActivateCallback\fP" 10
748
Specifies the callback list that notifies the application when
749
the tear-off menu pane is about to be activated\&. It precedes the tear-off\&'s
752
Use this resource when your application has shared menu panes and when
753
the torn-off menu can have two or
754
more parents that can have opposing sensitivity states for the same
756
This resource enables
757
the application to track
758
whether a menu item is sensitive or insensitive and to set the state to the
759
original parent\&'s menu item state when the torn-off menu is reposted\&.
760
The application can use \fBXmGetPostedFromWidget\fP to determine from which
761
parent the menu was torn\&. The callback reason is \fBXmCR_TEAR_OFF_ACTIVATE\fP\&.
762
The default is NULL\&.
763
.IP "\fBXmNtearOffMenuDeactivateCallback\fP" 10
764
Specifies the callback list that notifies the application when
765
the tear-off menu pane is about to be deactivated\&. It follows the tear-off\&'s
768
Use this resource when your application has shared menu panes and when
769
the torn-off menu can have two or
770
more parents that can have opposing sensitivity states for the same
772
This resource enables
773
the application to track
774
whether a menu item is sensitive or insensitive and to set the state to the
775
original parent\&'s menu item state when the torn-off menu is reposted\&.
776
The application can use \fBXmGetPostedFromWidget\fP to determine from which
777
parent the menu was torn\&.
778
The callback reason is \fBXmCR_TEAR_OFF_DEACTIVATE\fP\&. The default is NULL\&.
779
.IP "\fBXmNtearOffModel\fP" 10
780
Indicates whether tear-off functionality is enabled or disabled
781
when \fBXmNrowColumnType\fP is set to \fBXmMENU_PULLDOWN\fP or
782
\fBXmMENU_POPUP\fP\&. The values are \fBXmTEAR_OFF_ENABLED\fP or
783
\fBXmTEAR_OFF_DISABLED\fP (default value)\&. This resource is
784
invalid for type \fBXmMENU_OPTION\fP; however, it does affect
786
submenus within an OptionMenu\&.
787
The function \fBXmRepTypeInstallTearOffModelConverter\fP installs
788
a resource converter for this resource\&.
789
.IP "\fBXmNtearoffTitle\fP" 10
790
Used by the TearOff shell to set the title for the window manager to
792
.IP "\fBXmNunmapCallback\fP" 10
793
Specifies a list of callbacks that is called
794
after the window associated with the RowColumn
795
widget has been unmapped\&. The callback reason is \fBXmCR_UNMAP\fP\&.
796
The default value is NULL\&.
797
.IP "\fBXmNwhichButton\fP" 10
798
This resource is obsolete; it has been replaced by \fBXmNmenuPost\fP and
799
is present for compatibility with older releases of Motif\&.
800
This resource cannot be 2\&.
806
\fBXmRowColumn Constraint Resource Set\fP
807
\fBName\fP\fBClass\fP\fBType\fP\fBDefault\fP\fBAccess\fP
809
XmNpositionIndexXmCPositionIndexshortXmLAST_POSITIONCSG
812
.IP "\fBXmNpositionIndex\fP" 10
813
Specifies the position of the widget in its parent\&'s list of
814
children (the value of the \fBXmNchildren\fP resource)\&. The value
815
is an integer that is no less than 0 (zero) and no greater than
816
the number of children in the list at the time the value is
817
specified\&. A value of 0 (zero) means that the child is placed at the
818
beginning of the list\&. The value can also be specified as
819
\fBXmLAST_POSITION\fP (the default), which means that the child
820
is placed at the end of the list\&. Any other value is ignored\&.
821
\fBXtGetValues\fP returns the position of the widget in its parent\&'s
822
child list at the time of the call to \fBXtGetValues\fP\&.
824
When a widget is inserted into its parent\&'s child list, the positions
825
of any existing children that are greater than or equal to the
826
specified widget\&'s \fBXmNpositionIndex\fP are increased by 1\&.
827
The effect of a call to \fBXtSetValues\fP for \fBXmNpositionIndex\fP
828
is to remove the specified widget from its parent\&'s child list, decrease
829
by 1 the positions of any existing children that are greater than
830
the specified widget\&'s former position in the list, and then insert
831
the specified widget into its parent\&'s child list as described in the
832
preceding sentence\&.
838
\fBSimple Menu Creation Resource Set\fP
839
\fBName\fP\fBClass\fP\fBType\fP\fBDefault\fP\fBAccess\fP
841
XmNbuttonAcceleratorsXmCButtonAcceleratorsStringTableNULLC
843
XmNbuttonAcceleratorTextXmCButtonAcceleratorTextXmStringTableNULLC
845
XmNbuttonCountXmCButtonCountint0C
847
XmNbuttonMnemonicCharSetsXmCButtonMnemonicCharSetsXmStringCharSetTableNULLC
849
XmNbuttonMnemonicsXmCButtonMnemonicsXmKeySymTableNULLC
851
XmNbuttonsXmCButtonsXmStringTableNULLC
853
XmNbuttonSetXmCButtonSetint-1C
855
XmNbuttonTypeXmCButtonTypeXmButtonTypeTableNULLC
857
XmNoptionLabelXmCOptionLabelXmStringNULLC
859
XmNoptionMnemonicXmCOptionMnemonicKeySymNULLC
861
XmNpostFromButtonXmCPostFromButtonint-1C
863
XmNsimpleCallbackXmCCallbackXtCallbackProcNULLC
866
.IP "\fBXmNbuttonAccelerators\fP" 10
867
This resource is for use with the simple menu creation routines\&.
868
It specifies a list of accelerators for the buttons created\&.
869
The list contains one element for each button, separator, and title
871
.IP "\fBXmNbuttonAcceleratorText\fP" 10
872
This resource is for use with the simple menu creation routines\&.
873
It specifies a list of compound strings to display for the accelerators for
874
the buttons created\&.
875
The list contains one element for each button, separator, and title
877
.IP "\fBXmNbuttonCount\fP" 10
878
This resource is for use with the simple menu creation routines\&.
879
It specifies the total number of menu buttons, separators, and titles to
881
The value must not be negative\&.
882
.IP "\fBXmNbuttonMnemonicCharSets\fP" 10
883
This resource is for use with the simple menu creation routines\&.
884
It specifies a list of character sets with which button mnemonics are to be
886
The list contains one element for each button, separator, and title
888
The default is determined dynamically depending on the locale of the
890
.IP "\fBXmNbuttonMnemonics\fP" 10
891
This resource is for use with the simple menu creation routines\&.
892
It specifies a list of mnemonics for the buttons created\&.
893
The list contains one element for each button, separator, and title
895
.IP "\fBXmNbuttons\fP" 10
896
This resource is for use with the simple menu creation routines\&.
897
It specifies a list of compound strings to use as labels for the buttons
899
The list contains one element for each button, separator, and title
901
.IP "\fBXmNbuttonSet\fP" 10
902
This resource is for use with the simple menu creation routines\&.
903
It specifies which button of a RadioBox or OptionMenu Pulldown submenu
905
The value is an integer \fIn\fP indicating the \fIn\fPth
906
ToggleButtonGadget specified for a RadioBox or the \fIn\fPth
907
PushButtonGadget specified for an OptionMenu Pulldown submenu\&.
908
The first button specified is number 0\&.
909
The value must not be negative\&.
910
.IP "\fBXmNbuttonType\fP" 10
911
This resource is for use with the simple menu creation routines\&.
912
It specifies a list of button types associated with the buttons to be
914
The list contains one element for each button, separator, and title
916
If this resource is not specified, each button in a MenuBar is a
917
CascadeButtonGadget, each button in a RadioBox or CheckBox is a
918
ToggleButtonGadget, and
919
each button in any other type
920
of RowColumn widget is a PushButtonGadget\&.
921
Each button type is of type \fBXmButtonType\fR, an enumeration with the
922
following possible values:
924
.IP "\fBXmCASCADEBUTTON\fP" 10
925
Specifies a CascadeButtonGadget for a MenuBar,
926
Popup menu pane, or Pulldown menu pane\&.
927
.IP "\fBXmCHECKBUTTON\fP" 10
928
Specifies a ToggleButtonGadget for a CheckBox,
929
Popup menu pane, or Pulldown menu pane\&.
930
.IP "\fBXmDOUBLE_SEPARATOR\fP" 10
931
Specifies a SeparatorGadget for a Popup
932
menu pane, Pulldown menu pane, or OptionMenu Pulldown submenu\&.
933
The separator type is \fBXmDOUBLE_LINE\fP\&.
934
.IP "\fBXmPUSHBUTTON\fP" 10
935
Specifies a PushButtonGadget for a Popup menu pane,
936
Pulldown menu pane, or OptionMenu Pulldown submenu\&.
937
.IP "\fBXmRADIOBUTTON\fP" 10
938
Specifies a ToggleButtonGadget for a RadioBox,
939
Popup menu pane, or Pulldown menu pane\&.
940
.IP "\fBXmSEPARATOR\fP" 10
941
Specifies a SeparatorGadget for a Popup menu pane,
942
Pulldown menu pane, or OptionMenu Pulldown submenu\&.
943
.IP "\fBXmTITLE\fP" 10
944
Specifies a LabelGadget used as a title for a Popup
945
menu pane or Pulldown menu pane\&.
947
.IP "\fBXmNoptionLabel\fP" 10
948
This resource is for use with the simple menu creation routines\&.
949
It specifies a compound string for the label string to be used on the left
950
side of an OptionMenu\&.
951
.IP "\fBXmNoptionMnemonic\fP" 10
952
This resource is for use with the simple menu creation routines\&.
953
It specifies a keysym for a key that, when pressed by the user along
954
with the \fBMAlt\fP modifier, posts
955
the associated Pulldown menu pane for an OptionMenu\&.
956
.IP "\fBXmNpostFromButton\fP" 10
957
This resource is for use with the simple menu creation routines\&.
958
For a Pulldown menu pane, it specifies the button in the parent to which
959
the submenu is attached\&.
960
The menu is then posted from this button\&.
961
The value is an integer \fIn\fP indicating the \fIn\fPth
962
CascadeButton or CascadeButtonGadget specified for the parent of the
963
Pulldown menu pane\&.
964
The first button specified is number 0\&.
965
The value must not be negative\&.
966
.IP "\fBXmNsimpleCallback\fP" 10
967
This resource is for use with the simple menu creation routines\&.
968
It specifies a callback procedure to be called when a button is
969
activated or when its value changes\&.
970
This callback function is added to each button after creation\&.
971
For a CascadeButtonGadget or a PushButtonGadget, the callback is added
972
as the button\&'s \fBXmNactivateCallback\fP, and it is called when the
973
button is activated\&.
974
For a ToggleButtonGadget, the callback is added as the button\&'s
975
\fBXmNvalueChangedCallback\fP, and it is called when the button\&'s value
977
The button number is passed in the \fIclient_data\fP field\&.
978
.SS "Inherited Resources"
980
RowColumn inherits behavior and resources from the
981
superclasses described in the following tables\&.
982
For a complete description of each resource, refer to the
983
reference page for that superclass\&.
989
\fBXmManager Resource Set\fP
990
\fBName\fP\fBClass\fP\fBType\fP\fBDefault\fP\fBAccess\fP
992
XmNbottomShadowColorXmCBottomShadowColorPixeldynamicCSG
994
XmNbottomShadowPixmapXmCBottomShadowPixmapPixmapXmUNSPECIFIED_PIXMAPCSG
996
XmNforegroundXmCForegroundPixeldynamicCSG
998
XmNhelpCallbackXmCCallbackXtCallbackListNULLC
1000
XmNhighlightColorXmCHighlightColorPixeldynamicCSG
1002
XmNhighlightPixmapXmCHighlightPixmapPixmapdynamicCSG
1004
XmNinitialFocusXmCInitialFocusWidgetNULLCSG
1006
XmNlayoutDirectionXmCLayoutDirectionXmDirectiondynamicCG
1008
XmNnavigationTypeXmCNavigationTypeXmNavigationTypedynamicCSG
1010
XmNpopupHandlerCallbackXmCCallbackXtCallbackListNULLC
1012
XmNshadowThicknessXmCShadowThicknessDimensiondynamicCSG
1014
XmNstringDirectionXmCStringDirectionXmStringDirectiondynamicCG
1016
XmNtopShadowColorXmCTopShadowColorPixeldynamicCSG
1018
XmNtopShadowPixmapXmCTopShadowPixmapPixmapdynamicCSG
1020
XmNtraversalOnXmCTraversalOnBooleandynamicCSG
1022
XmNunitTypeXmCUnitTypeunsigned chardynamicCSG
1024
XmNuserDataXmCUserDataXtPointerNULLCSG
1032
\fBComposite Resource Set\fP
1033
\fBName\fP\fBClass\fP\fBType\fP\fBDefault\fP\fBAccess\fP
1035
XmNchildrenXmCReadOnlyWidgetListNULLG
1037
XmNinsertPositionXmCInsertPositionXtOrderProcdefault procedureCSG
1039
XmNnumChildrenXmCReadOnlyCardinal0G
1047
\fBCore Resource Set\fP
1048
\fBName\fP\fBClass\fP\fBType\fP\fBDefault\fP\fBAccess\fP
1050
XmNacceleratorsXmCAcceleratorsXtAcceleratorsdynamicCSG
1052
XmNancestorSensitiveXmCSensitiveBooleandynamicG
1054
XmNbackgroundXmCBackgroundPixeldynamicCSG
1056
XmNbackgroundPixmapXmCPixmapPixmapXmUNSPECIFIED_PIXMAPCSG
1058
XmNborderColorXmCBorderColorPixelXtDefaultForegroundCSG
1060
XmNborderPixmapXmCPixmapPixmapXmUNSPECIFIED_PIXMAPCSG
1062
XmNborderWidthXmCBorderWidthDimension0CSG
1064
XmNcolormapXmCColormapColormapdynamicCG
1066
XmNdepthXmCDepthintdynamicCG
1068
XmNdestroyCallbackXmCCallbackXtCallbackListNULLC
1070
XmNheightXmCHeightDimensiondynamicCSG
1072
XmNinitialResourcesPersistentXmCInitialResourcesPersistentBooleanTrueC
1074
XmNmappedWhenManagedXmCMappedWhenManagedBooleanTrueCSG
1076
XmNscreenXmCScreenScreen *dynamicCG
1078
XmNsensitiveXmCSensitiveBooleanTrueCSG
1080
XmNtranslationsXmCTranslationsXtTranslationsdynamicCSG
1082
XmNwidthXmCWidthDimensiondynamicCSG
1084
XmNxXmCPositionPosition0CSG
1086
XmNyXmCPositionPosition0CSG
1089
.SS "Callback Information"
1091
A pointer to the following structure is passed to each callback:
1097
XEvent \fI* event\fP;
1098
Widget \fIwidget\fP;
1100
char \fI* callbackstruct\fP;
1101
} XmRowColumnCallbackStruct;
1103
.IP "\fIreason\fP" 10
1104
Indicates why the callback was invoked
1105
.IP "\fIevent\fP" 10
1106
Points to the \fBXEvent\fP that triggered the callback
1108
The following fields apply only when the callback reason is \fBXmCR_ACTIVATE\fP;
1109
for all other callback reasons, these fields are set to NULL\&.
1110
The \fBXmCR_ACTIVATE\fP callback reason is generated only when the application
1111
has supplied an entry callback, which overrides any activation callbacks
1112
registered with the individual RowColumn items\&.
1113
.IP "\fIwidget\fP" 10
1114
Is set to the widget ID of the RowColumn item that has been activated
1116
Contains the client-data value supplied by the
1117
application when the RowColumn item\&'s activation callback was registered
1118
.IP "\fIcallbackstruct\fP" 10
1119
Points to the callback structure
1120
generated by the RowColumn item\&'s activation callback
1123
\fBXmRowColumn\fP translations depend on the value of
1124
the \fBXmNrowColumnType\fP resource\&.
1126
If \fBXmNrowColumnType\fP is set to \fBXmWORK_AREA\fP,
1127
\fBXmRowColumn\fP inherits translations from \fBXmManager\fP\&.
1129
If \fBXmNrowColumnType\fP is set to \fBXmMENU_OPTION\fP,
1130
\fBXmRowColumn\fP inherits traversal, \fB<osfActivate>\fP, and \fB<osfCancel>\fP
1131
translations from \fBXmManager\fP
1132
and has the following additional translations\&.
1134
The following key names are listed in the
1135
X standard key event translation table syntax\&.
1136
This format is the one used by Motif to
1137
specify the widget actions corresponding to a given key\&.
1138
A brief overview of the format is provided under
1139
\fBVirtualBindings\fP(3)\&.
1140
For a complete description of the format, please refer to the
1141
X Toolkit Instrinsics Documentation\&.
1142
.IP "\fB<Btn2Down>\fP:" 10
1144
.IP "\fBc<Btn1Down>\fP:" 10
1145
MenuGadgetTraverseCurrent()
1146
.IP "\fBc<Btn1Up>\fP:" 10
1147
MenuGadgetTraverseCurrentUp()
1148
.IP "\fB\(apc\fP\fB<BtnDown>\fP:" 10
1150
.IP "\fB\(apc\fP\fB<BtnUp>\fP:" 10
1152
.IP "\fB:\fP\fB<Key>\fP\fB<osfHelp>\fP:" 10
1155
The translations for \fBXmRowColumn\fP if
1156
\fBXmNrowColumnType\fP is set to \fBXmMENU_BAR\fP
1157
\fBXmMENU_PULLDOWN\fP, or \fBXmMENU_POPUP\fP
1158
are described in the following list\&.
1159
In a Popup menu system, \fB<Btn3>\fP also performs the \fB<Btn1>\fP
1161
.IP "\fB:\fP\fB<Key>\fP\fB<osfHelp>\fP:" 10
1163
.IP "\fB:\fP\fB<Key>\fP\fB<osfLeft>\fP:" 10
1164
MenuGadgetTraverseLeft()
1165
.IP "\fB:\fP\fB<Key>\fP\fB<osfRight>\fP:" 10
1166
MenuGadgetTraverseRight()
1167
.IP "\fB:\fP\fB<Key>\fP\fB<osfUp>\fP:" 10
1168
MenuGadgetTraverseUp()
1169
.IP "\fB:\fP\fB<Key>\fP\fB<osfDown>\fP:" 10
1170
MenuGadgetTraverseDown()
1171
.SS "Action Routines"
1173
The \fBXmRowColumn\fP action routines are
1175
Calls the callbacks for \fBXmNhelpCallback\fP if any exist\&. If there are no help
1176
callbacks for this widget, this action calls the help callbacks
1177
for the nearest ancestor that has them\&.
1178
.IP "ManagerGadgetSelect():" 10
1179
When a gadget child of the menu has the focus, invokes the gadget
1180
child\&'s behavior associated with \fB<osfSelect>\fP\&.
1181
This generally has the effect of unposting the menu hierarchy and arming
1182
and activating the gadget, except that, for a CascadeButtonGadget with a
1183
submenu, it posts the submenu\&.
1184
.IP "MenuBtnDown():" 10
1185
When a gadget child of the menu has focus, invokes the gadget
1186
child\&'s behavior associated with \fB<Btn1Down>\fP\&.
1187
This generally has the effect of unposting any menus posted by the
1188
parent menu, enabling mouse traversal in the menu, and arming the
1190
For a CascadeButtonGadget with a submenu, it also posts the associated
1192
.IP "MenuBtnUp():" 10
1193
When a gadget child of the menu has focus, invokes the gadget
1194
child\&'s behavior associated with \fB<Btn1Up>\fP\&.
1195
This generally has the effect of unposting the menu hierarchy and
1196
activating the gadget,
1197
except that for a CascadeButtonGadget with a
1198
submenu, it posts the submenu and enables keyboard traversal in the
1200
.IP "MenuGadgetEscape():" 10
1201
In a top-level Pulldown MenuPane from a MenuBar, unposts the menu,
1202
disarms the MenuBar CascadeButton and the MenuBar, and, when the shell\&'s
1203
keyboard focus policy is \fBXmEXPLICIT\fP, restores keyboard focus to
1204
the widget that had the focus before the MenuBar was entered\&.
1205
In other Pulldown MenuPanes, unposts the menu\&.
1207
In a Popup MenuPane, unposts the menu and, when the shell\&'s keyboard
1208
focus policy is \fBXmEXPLICIT\fP, restores keyboard focus to the widget
1209
from which the menu was posted\&.
1210
In a TearOff MenuPane that has no submenus posted, dismisses the
1211
menu; otherwise, if one or more submenus are posted, unposts the last
1213
.IP "MenuGadgetTraverseDown():" 10
1214
If the current menu item has a submenu and is in a MenuBar, then this
1215
action posts the submenu, disarms the current menu item, and arms
1216
the submenu\&'s first traversable menu item\&.
1218
If the current menu item is in a MenuPane, then this action disarms the
1219
current menu item and arms the item below it\&. This action wraps within the
1220
MenuPane\&. The direction of the wrapping depends on the
1221
\fBXmNlayoutDirection\fP resource\&.
1222
.IP "MenuGadgetTraverseLeft():" 10
1223
When the current menu item is in a MenuBar, this action disarms the
1224
current item and arms the MenuBar item to the left\&.
1225
This action wraps within the MenuBar\&.
1227
In MenuPanes, if the current menu item is not at the left edge of a MenuPane,
1228
this action disarms the current item and arms the item to its left\&.
1229
If the current menu item is at the left edge of a submenu attached to a
1230
MenuBar item, then this action unposts the submenu and traverses to the
1231
MenuBar item to the left, wrapping if necessary\&. If that MenuBar item
1232
has a submenu, it posts the submenu and arms the first traversable
1233
item in the submenu\&.
1234
If the current menu item is at the left edge of a submenu not directly
1235
attached to a MenuBar item, then this action unposts the current submenu only\&.
1237
In Popup or Torn-off MenuPanes, when the current menu item is at the
1238
left edge, this action wraps within the MenuPane\&. If the current menu
1239
item is at the left edge of the MenuPane and not in the top row, this
1240
action wraps to the rightmost menu item in the row above\&. If the current
1241
menu item is in the upper, leftmost corner, this action wraps
1242
to the tear-off control, if present, or else it wraps to the bottom,
1243
rightmost menu item in the MenuPane\&.
1245
The preceding description applies when the \fBXmNlayoutDirection\fP horizontal
1246
direction is \fBXmLEFT_TO_RIGHT\fP\&. If the \fBXmNlayoutDirection\fP horizontal
1247
direction is \fBXmRIGHT_TO_LEFT\fP, then the following applies\&.
1249
If the current menu item is in a MenuBar, then this action disarms the
1250
current item and arms the MenuBar item to the left\&.
1251
This action wraps within the MenuBar\&.
1253
In MenuPanes, if the current menu item is a CascadeButton, then this
1254
action posts its associated submenu\&.
1255
If the current menu item is not a CascadeButton and is not at the left
1256
edge of a MenuPane, this action disarms the current item and arms the
1257
item to its left, wrapping if necessary\&.
1258
If the current menu item is not a CascadeButton and is at the left edge of a
1259
submenu that is a descendent of a MenuBar, then this action unposts all
1260
submenus and traverses to the MenuBar item to the left\&.
1261
If that MenuBar item has a submenu, it posts the submenu and arms
1262
the submenu\&'s first traversable item\&.
1264
In Popup or Torn-off menus, if the current menu item is not a
1265
CascadeButton and is at the left edge of a row (except the
1266
bottom row), this action wraps to the rightmost menu item in the
1267
row below\&. If the current menu item is not a CascadeButton and
1268
is in the bottom, leftmost corner of a Popup or Pulldown MenuPane, this
1269
action wraps to the tear-off control, if present, or else it wraps to
1270
the top, rightmost menu item of the MenuPane\&.
1271
.IP "MenuGadgetTraverseRight():" 10
1272
If the current menu item is in a MenuBar, then this action disarms the
1273
current item and arms the MenuBar item to the right\&.
1274
This action wraps within the MenuBar\&.
1276
In MenuPanes, if the current menu item is a CascadeButton, then this
1277
action posts its associated submenu\&.
1278
If the current menu item is not a CascadeButton and is not at the right
1279
edge of a MenuPane, this action disarms the current item and arms the
1280
item to its right, wrapping if necessary\&.
1281
If the current menu item is not a CascadeButton and is at the right edge of a
1282
submenu that is a descendent of a MenuBar, then this action unposts all
1283
submenus and traverses to the MenuBar item to the right\&.
1284
If that MenuBar item has a submenu, it posts the submenu and arms
1285
the submenu\&'s first traversable item\&.
1287
In Popup or Torn-off menus, if the current menu item is not a
1288
CascadeButton and is at the right edge of a row (except the
1289
bottom row), this action wraps to the leftmost menu item in the
1290
row below\&. If the current menu item is not a CascadeButton and
1291
is in the bottom, rightmost corner of a Popup or Pulldown MenuPane, this
1292
action wraps to the tear-off control, if present, or else it wraps to
1293
the top, leftmost menu item of the MenuPane\&.
1295
The preceding description applies when the \fBXmNlayoutDirection\fP horizontal
1296
direction is \fBXmLEFT_TO_RIGHT\fP\&. If the \fBXmNlayoutDirection\fP horizontal
1297
direction is \fBXmRIGHT_TO_LEFT\fP, then the following applies\&.
1298
When the current menu item is in a MenuBar, this action disarms the
1299
current item and arms the MenuBar item to the left\&.
1300
This action wraps within the MenuBar\&.
1302
In MenuPanes, if the current menu item is not at the right edge of a MenuPane,
1303
this action disarms the current item and arms the item to its right\&.
1304
If the current menu item is at the right edge of a submenu attached to a
1305
MenuBar item, then this action unposts the submenu and traverses to the
1306
MenuBar item to the right, wrapping if necessary\&. If that MenuBar item
1307
has a submenu, it posts the submenu and arms the first traversable
1308
item in the submenu\&.
1309
If the current menu item is at the right edge of a submenu not directly
1310
attached to a MenuBar item, then this action unposts the current submenu only\&.
1312
In Popup or Torn-off MenuPanes, when the current menu item is at the
1313
right edge, this action wraps within the MenuPane\&. If the current menu
1314
item is at the right edge of the MenuPane and not in the top row, this
1315
action wraps to the leftmost menu item in the row above\&. If the current
1316
menu item is in the upper, rightmost corner, this action wraps
1317
to the tear-off control, if present, or else it wraps to the bottom,
1318
leftmost menu item in the MenuPane\&.
1319
.IP "MenuGadgetTraverseUp():" 10
1320
When the current menu item is in a MenuPane, then
1321
this action disarms the current menu item and arms the item above it\&.
1322
This action wraps within the MenuPane\&. The direction of the wrapping
1323
depends on the \fBXmNlayoutDirection\fP resource\&.
1324
.SS "Related Behavior"
1326
The following menu functions are available:
1327
.IP "\fB<osfMenuBar>\fP:" 10
1328
In any non-popup descendant of a MenuBar\&'s parent, excluding the MenuBar
1329
itself, this action enables keyboard traversal and moves keyboard focus
1330
to the first item in the MenuBar\&.
1331
In the MenuBar or any menu cascaded from it, this action unposts the
1332
menu hierarchy and, when the shell\&'s keyboard focus policy is
1333
\fBXmEXPLICIT\fP, restores focus to the widget that had the focus
1334
when the menu system was entered\&.
1335
.IP "\fB<osfMenu>\fP:" 10
1336
Pops up the menu associated with the control that has the keyboard focus\&.
1337
Enables keyboard traversal in the menu\&.
1338
In the Popup menu system or any menu cascaded from it, this action
1339
unposts the menu hierarchy and, when the shell\&'s keyboard focus policy
1340
is \fBXmEXPLICIT\fP, restores focus to the widget that had the focus
1341
when the menu system was entered\&.
1342
.SS "Virtual Bindings"
1344
The bindings for virtual keys are vendor specific\&.
1345
For information about bindings for virtual buttons and keys, see \fBVirtualBindings\fP(3)\&.
1349
\fBConstraint\fP(3),
1351
\fBXmCreateMenuBar\fP(3),
1352
\fBXmCreateOptionMenu\fP(3),
1353
\fBXmCreatePopupMenu\fP(3),
1354
\fBXmCreatePulldownMenu\fP(3),
1355
\fBXmCreateRadioBox\fP(3),
1356
\fBXmCreateRowColumn\fP(3),
1357
\fBXmCreateSimpleCheckBox\fP(3),
1358
\fBXmCreateSimpleMenuBar\fP(3),
1359
\fBXmCreateSimpleOptionMenu\fP(3),
1360
\fBXmCreateSimplePopupMenu\fP(3),
1361
\fBXmCreateSimplePulldownMenu\fP(3),
1362
\fBXmCreateSimpleRadioBox\fP(3),
1363
\fBXmCreateWorkArea\fP(3),
1364
\fBXmGetMenuCursor\fP(3),
1365
\fBXmGetPostedFromWidget\fP(3),
1366
\fBXmGetTearOffControl\fP,
1369
\fBXmMenuPosition\fP(3),
1370
\fBXmOptionButtonGadget\fP(3),
1371
\fBXmOptionLabelGadget\fP(3),
1372
\fBXmRepTypeInstallTearOffModelConverter\fP,
1373
\fBXmSetMenuCursor\fP(3),
1374
\fBXmUpdateDisplay\fP(3),
1375
\fBXmVaCreateManagedRowColumn\fP(3),
1376
\fBXmVaCreateRowColumn\fP(3),
1377
\fBXmVaCreateSimpleCheckBox\fP(3),
1378
\fBXmVaCreateSimpleMenuBar\fP(3),
1379
\fBXmVaCreateSimpleOptionMenu\fP(3),
1380
\fBXmVaCreateSimplePopupMenu\fP(3),
1381
\fBXmVaCreateSimplePulldownMenu\fP(3), and
1382
\fBXmVaCreateSimpleRadioBox\fP(3)\&.