1XmRowColumn(library call) XmRowColumn(library call)
2
3
4
6 XmRowColumn — The RowColumn widget class
7
9 #include <Xm/RowColumn.h>
10
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 ┌─────────────────┬─────────────────────────┬─────────────────────┐
148 │Named Descendant │ Class │ Identity │
149 ├─────────────────┼─────────────────────────┼─────────────────────┤
150 ├─────────────────┼─────────────────────────┼─────────────────────┤
151 ├─────────────────┼─────────────────────────┼─────────────────────┤
152 │OptionButton │ XmCascadeButtonGadget │ option menu button │
153 ├─────────────────┼─────────────────────────┼─────────────────────┤
154 │OptionLabel │ XmLabelGadget │ option menu label │
155 ├─────────────────┼─────────────────────────┼─────────────────────┤
156 │TearOffControl │ 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 │ │ │
183 │Name │ 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 │ │
731 │Name │ 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 │ │ │
762 │Name │ 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 │ │ │
917 │Name │ 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 │ │ Composite│Resource Set │ │ │
956 │Name │ 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 │ │ │
967 │Name │ 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)