XmRowColumn(3X) OSF/Motif XmRowColumn(3X)NAMEXmRowColumn - The RowColumn widget class
SYNOPSIS
#include <Xm/RowColumn.h>
DESCRIPTION
The RowColumn widget is a general purpose RowColumn manager capable of
containing any widget type as a child. In general, it requires no spe‐
cial knowledge about how its children function and provides nothing
beyond support for several different layout styles. However, it can be
configured as a menu, in which case, it expects only certain children,
and it configures to a particular layout. The menus supported are:
MenuBar, Pulldown or Popup MenuPanes, and OptionMenu.
The type of layout performed is controlled by how the application has
set the various layout resources. It can be configured to lay out its
children in either rows or columns. In addition, the application can
specify how the children are laid out, as follows: The children are
packed tightly together into either rows or columns. Each child is
placed in an identically sized box (producing a symmetrical look). A
specific layout (the current x and y positions of the children control
their location).
In addition, the application has control over both the spacing that
occurs between each row and column and the margin spacing present
between the edges of the RowColumn widget and any children that are
placed against it.
In a MenuBar, Pulldown MenuPane, or Popup MenuPane the default for the
XmNshadowThickness resource is 2. In an OptionMenu or a WorkArea (such
as a RadioBox or CheckBox) this resource is not applicable and its use
is undefined. If an application wishes to place a 3-D shadow around an
OptionMenu or WorkArea, it can create the RowColumn as a child of a
Frame widget.
In a MenuBar, Pulldown MenuPane, or Popup MenuPane the XmNnavigation‐
Type resource is not applicable and its use is undefined. In a
WorkArea the default for XmNnavigationType is XmTAB_GROUP. In an
OptionMenu the default for XmNnavigationType is XmNONE.
In a MenuBar, Pulldown MenuPane, or Popup MenuPane the XmNtraversalOn
resource is not applicable and its use is undefined. In an OptionMenu
or WorkArea the default for XmNtraversalOn is True.
If the parent of the RowColumn is a MenuShell, the XmNmappedWhenManaged
resource is forced to False when the widget is realized.
The user can specify resources in a resource file for the automatically
created widgets and gadgets of an OptionMenu. The following list iden‐
tifies the names of these widgets (or gadgets) and the associated
OptionMenu areas: Option Menu Label Gadget—"OptionLabel" Option Menu
Cascade Button—"OptionButton"
Tear-off Menus
Pulldown and Popup MenuPanes support tear-off menus, which enable the
user to retain a MenuPane on the display to facilitate subsequent menu
selections. A MenuPane that can be torn-off is identified by a tear-
off button that spans the width of the MenuPane and displays a dashed
line. A torn-off MenuPane contains a window manager system menu icon
and a title bar. The window title displays the label of the cascade
button that initiated the action when the label type is XmSTRING. If
the label contains a pixmap the window title is empty. A tear-off menu
from a Popup MenuPane also displays an empty title.
The user can tear-off a MenuPane using the mouse or keyboard. Clicking
BSelect or pressing KActivate (or KSelect) on the tear-off button,
tears off the MenuPane at the current position. Pressing BDrag on the
tear-off button tears off the MenuPane, and allows the user to drag the
torn-off menu to a new position designated by releasing the mouse but‐
ton. Tearing off a MenuPane unposts the current active menu. Only one
tear-off copy for each MenuPane is allowed. Subsequent tear-off
actions of a torn MenuPane unpost the existing copy first.
The name of the tear-off button of a torn-off menu pane is "TearOffCon‐
trol". The name can be used to set resources in a resource file. An
application can also obtain the tear-off button itself using XmGet‐
TearOffControl and then set resource values by calling XtSetValues.
The tear-off button has Separator-like behavior. Its appearance can be
specified using the following tear-off button resources: XmNbackground,
XmNbackgroundPixmap,XmNbottomShadowColor, XmNforeground, XmNheight,
XmNmargin, XmNseparatorType, XmNshadowThickness, and XmNtopShadowColor.
Refer to the XmSeparator man page for a complete description of each of
these resources.
RowColumn resources that affect tear-off menu behavior are XmNtearOff‐
Model, XmNtearOffMenuActivateCallback, and XmNtearOffMenuDeactivate‐
Callback.
By default, menus do not tear off; tear off functionality may be
enabled by setting the XmNtearOffModel resource to XmTEAR_OFF_ENABLED.
There is no resource converter pre-registered for XmNtearOffModel. To
allow tear-off functionality to be enabled through the resource data‐
base call the function XmRepTypeInstallTearOffModelConverter.
Tear-off menu focus policy follows standard window manager policy. It
is recommended that the following mwm resources are set to True: star‐
tupKeyFocus and autoKeyFocus.
Classes
RowColumn inherits behavior and resources from Core, Composite, Con‐
straint, and XmManager classes.
The class pointer is xmRowColumnWidgetClass.
The class name is XmRowColumn.
New Resources
The following table defines a set of widget resources used by the pro‐
grammer to specify data. The programmer can also set the resource val‐
ues for the inherited classes to set attributes for this widget. To
reference a resource by name or by class in a .Xdefaults file, remove
the XmN or XmC prefix and use the remaining letters. To specify one of
the defined values for a resource in a .Xdefaults file, remove the Xm
prefix and use the remaining letters (in either lowercase or uppercase,
but include any underscores between words). The codes in the access
column indicate if the given resource can be set at creation time (C),
set by using XtSetValues (S), retrieved by using XtGetValues (G), or is
not applicable (N/A).
XmRowColumn Resource Set
───────────────────────────────────────────────────────────────────
Name Default Access
Class Type
───────────────────────────────────────────────────────────────────
───────────────────────────────────────────────────────────────────
XmNadjustLast True CSG
XmCAdjustLast Boolean
───────────────────────────────────────────────────────────────────
XmNadjustMargin True CSG
XmCAdjustMargin Boolean
───────────────────────────────────────────────────────────────────
XmNentryAlignment XmALIGNMENT_BEGINNING CSG
XmCAlignment unsigned char
───────────────────────────────────────────────────────────────────
XmNentryBorder 0 CSG
XmCEntryBorder Dimension
───────────────────────────────────────────────────────────────────
XmNentryCallback NULL C
XmCCallback XtCallbackList
───────────────────────────────────────────────────────────────────
XmNentryClass dynamic CSG
XmCEntryClass WidgetClass
───────────────────────────────────────────────────────────────────
XmNentryVerticalAlignment XmALIGNMENT_CENTER CSG
XmCVerticalAlignment unsigned char
───────────────────────────────────────────────────────────────────
XmNisAligned True CSG
XmCIsAligned Boolean
───────────────────────────────────────────────────────────────────
XmNisHomogeneous dynamic CG
XmCIsHomogeneous Boolean
───────────────────────────────────────────────────────────────────
XmNlabelString NULL C
XmCXmString XmString
───────────────────────────────────────────────────────────────────
XmNmapCallback NULL C
XmCCallback XtCallbackList
───────────────────────────────────────────────────────────────────
XmNmarginHeight dynamic CSG
XmCMarginHeight Dimension
───────────────────────────────────────────────────────────────────
XmNmarginWidth dynamic CSG
XmCMarginWidth Dimension
───────────────────────────────────────────────────────────────────
XmNmenuAccelerator dynamic CSG
XmCAccelerators String
───────────────────────────────────────────────────────────────────
XmNmenuHelpWidget NULL CSG
XmCMenuWidget Widget
───────────────────────────────────────────────────────────────────
XmNmenuHistory NULL CSG
XmCMenuWidget Widget
───────────────────────────────────────────────────────────────────
XmNmenuPost NULL CSG
XmCMenuPost String
───────────────────────────────────────────────────────────────────
XmNmnemonic NULL CSG
XmCMnemonic KeySym
───────────────────────────────────────────────────────────────────
XmNmnemonicCharSet XmFONTLIST_DEFAULT_TAG CSG
XmCMnemonicCharSet String
───────────────────────────────────────────────────────────────────
XmNnumColumns 1 CSG
XmCNumColumns short
───────────────────────────────────────────────────────────────────
XmNorientation dynamic CSG
XmCOrientation unsigned char
───────────────────────────────────────────────────────────────────
XmNpacking dynamic CSG
XmCPacking unsigned char
───────────────────────────────────────────────────────────────────
XmNpopupEnabled True CSG
XmCPopupEnabled Boolean
───────────────────────────────────────────────────────────────────
XmCPostFromCount int
───────────────────────────────────────────────────────────────────
XmCPostFromList WidgetList
───────────────────────────────────────────────────────────────────
XmNradioAlwaysOne True CSG
XmCRadioAlwaysOne Boolean
───────────────────────────────────────────────────────────────────
XmNradioBehavior False CSG
XmCRadioBehavior Boolean
───────────────────────────────────────────────────────────────────
XmNresizeHeight True CSG
XmCResizeHeight Boolean
───────────────────────────────────────────────────────────────────
XmNresizeWidth True CSG
XmCResizeWidth Boolean
───────────────────────────────────────────────────────────────────
XmNrowColumnType XmWORK_AREA CG
XmCRowColumnType unsigned char
───────────────────────────────────────────────────────────────────
XmNspacing dynamic CSG
XmCSpacing Dimension
───────────────────────────────────────────────────────────────────
XmNsubMenuId NULL CSG
XmCMenuWidget Widget
───────────────────────────────────────────────────────────────────
XmNtearOffMenuActivateCallback NULL C
XmCCallback XtCallbackList
───────────────────────────────────────────────────────────────────
XmNtearOffMenuDeactivateCallback NULL C
XmCCallback XtCallbackList
───────────────────────────────────────────────────────────────────
XmNtearOffModel XmTEAR_OFF_DISABLED CSG
XmCTearOffModel unsigned char
───────────────────────────────────────────────────────────────────
XmNunmapCallback NULL C
XmCCallback XtCallbackList
───────────────────────────────────────────────────────────────────
XmNwhichButton dynamic CSG
XmCWhichButton unsigned int
───────────────────────────────────────────────────────────────────
Extends the last row of children to the bottom edge of RowColumn (when
XmNorientation is XmHORIZONTAL) or extends the last column to the right
edge of RowColumn (when XmNorientation is XmVERTICAL). This feature is
disabled by setting XmNadjustLast to False. Specifies whether the
inner minor margins of all items contained within the RowColumn widget
are forced to the same value. The inner minor margin corresponds to
the XmNmarginLeft, XmNmarginRight, XmNmarginTop, and XmNmarginBottom
resources supported by XmLabel and XmLabelGadget.
A horizontal orientation causes XmNmarginTop and XmNmarginBottom for
all items in a particular row to be forced to the same value; the value
is the largest margin specified for one of the Label items.
A vertical orientation causes XmNmarginLeft and XmNmarginRight for all
items in a particular column to be forced to the same value; the value
is the largest margin specified for one of the Label items.
This keeps all text within each row or column lined up with all other
text in its row or column. If the XmNrowColumnType is either
XmMENU_POPUP or XmMENU_PULLDOWN and this resource is True, only button
children have their margins adjusted. Specifies the alignment type for
children that are subclasses of XmLabel or XmLabelGadget when
XmNisAligned is enabled. The following are textual alignment types:
XmALIGNMENT_BEGINNING—the default
XmALIGNMENT_CENTER
XmALIGNMENT_END
See the description of XmNalignment in the XmLabel(3X) man page for an
explanation of these actions. Imposes a uniform border width upon all
RowColumn's children. The default value is 0, which disables the fea‐
ture. Disables the XmNactivateCallback and XmNvalueChangedCallback
callbacks for all CascadeButton, DrawnButton, PushButton, and Toggle‐
Button widgets and gadgets contained within the RowColumn widget. If
the application supplies this resource, the XmNactivateCallback and
XmNvalueChangedCallback callbacks are then revectored to the XmNen‐
tryCallback callbacks. This allows an application to supply a single
callback routine for handling all items contained in a RowColumn wid‐
get. The callback reason is XmCR_ACTIVATE. If the application does
not supply this resource, the XmNactivateCallback and XmNvalueChanged‐
Callback callbacks for each item in the RowColumn widget work as nor‐
mal.
The application must supply this resource when this widget is created.
Changing this resource using the XtSetValues is not supported. Speci‐
fies the only widget class that can be added to the RowColumn widget;
this resource is meaningful only when the XmNisHomogeneous resource is
set to True. Both widget and gadget variants of the specified class
may be added to the widget.
When XmCreateRadioBox is called or when XmNrowColumnType is set to
XmWORK_AREA and XmNradioBehavior is True, the default value of XmNen‐
tryClass is xmToggleButtonGadgetClass. When XmNrowColumnType is set to
XmMENU_BAR, the value of XmNentryClass is forced to xmCascadeButtonWid‐
getClass. Specifies the type of vertical alignment for children that
are subclasses of XmLabel, XmLabelGadget, and XmText. This resource is
invalid if XmNorientation is XmVERTICAL and XmNpacking is XmPACK_TIGHT
because this layout preserves variable heights among the children. The
vertical alignment types include: XmALIGNMENT_BASELINE_BOTTOM—causes
the bottom baseline of all children in a row to be aligned. This
resource is applicable only when all children in a row contain textual
data. XmALIGNMENT_BASELINE_TOP—causes the top baseline of all children
in a row to be aligned. This resource is applicable only when all
children in a row contain textual data. XmALIGNMENT_CONTENTS_BOTTOM—
causes the bottom of the contents (text or pixmap) of all children in a
row to be aligned. XmALIGNMENT_CENTER—causes the center of all chil‐
dren in a row to be aligned. XmALIGNMENT_CONTENTS_TOP—causes the top
of the contents (text or pixmap) of all children in a row to be
aligned. Specifies text alignment for each item within the RowColumn
widget; this applies only to items that are subclasses of XmLabel or
XmLabelGadget. However, if the item is a Label widget or gadget and
its parent is either a Popup MenuPane or a Pulldown MenuPane, alignment
is not performed; the Label is treated as the title within the Menu‐
Pane, and the alignment set by the application is not overridden.
XmNentryAlignment controls the type of textual alignment. Indicates
whether the RowColumn widget should enforce exact homogeneity among the
items it contains; if True, only the widgets that are of the class
indicated by XmNentryClass are allowed as children of the RowColumn
widget. This is most often used when creating a MenuBar. Attempting
to insert a child that is not a member of the specified class generates
a warning message.
In a MenuBar the value of XmNisHomogeneous is forced to True. In an
OptionMenu the value is forced to False. When XmCreateRadioBox is
called the default value is True. Otherwise, the default value is
False. Points to a text string, which displays the label to one side
of the selection area when XmNrowColumnType is set to XmMENU_OPTION.
This resource is not meaningful for all other RowColumn types. If the
application wishes to change the label after creation, it must get the
LabelGadget ID (XmOptionLabelGadget) and call XtSetValues on the Label‐
Gadget directly. The default value is no label. Specifies a widget-
specific callback function that is invoked when the window associated
with the RowColumn widget is about to be mapped. The callback reason
is XmCR_MAP. Specifies the amount of blank space between the top edge
of the RowColumn widget and the first item in each column, and the bot‐
tom edge of the RowColumn widget and the last item in each column. The
default value is 0 for Pulldown and Popup MenuPanes, and 3 pixels for
other RowColumn types. Specifies the amount of blank space between the
left edge of the RowColumn widget and the first item in each row, and
the right edge of the RowColumn widget and the last item in each row.
The default value is 0 for Pulldown and Popup MenuPanes, and 3 pixels
for other RowColumn types. This resource is useful only when the Row‐
Column widget has been configured to operate as a Popup MenuPane or a
MenuBar. The format of this resource is similar to the left side spec‐
ification of a translation string, with the limitation that it must
specify a key event. For a Popup MenuPane, when the accelerator is
typed by the user, the Popup MenuPane is posted. For a MenuBar, when
the accelerator is typed by the user, the first item in the MenuBar is
highlighted, and traversal is enabled in the MenuBar. The default for
a Popup MenuPane is KMenu. The default for a MenuBar is KMenuBar. The
accelerator can be disabled by setting the XmNpopupEnabled resource to
False. Specifies the widget ID for the CascadeButton, which is treated
as the Help widget if XmNrowColumnType is set to XmMENU_BAR. The
MenuBar always places the Help widget at the bottom right corner (in a
lef to right environment) of the MenuBar. If the RowColumn widget is
any type other than XmMENU_BAR, this resource is not meaningful. Spec‐
ifies the widget ID of the last menu entry to be activated. It is also
useful for specifying the current selection for an OptionMenu. If XmN‐
rowColumnType is set to XmMENU_OPTION, the specified menu item is posi‐
tioned under the cursor when the menu is displayed.
If the RowColumn widget has the XmNradioBehavior resource set to True,
the widget field associated with this resource contains the widget ID
of the last ToggleButton or ToggleButtonGadget to change from unse‐
lected to selected. The default value is the widget ID of the first
child in the widget. Specifies an X event description indicating a
button event that posts a menu system. The default for XmMENU_POPUP is
BMenu Press. The default for XmMENU_OPTION, XmMENU_BAR, and
XmWORK_AREA is BSelect Press. The XmNmenuPost resource for pulldowns
should be consistent with that of top-level parent menu (although the
event type is ignored). Setting this resource to BDrag Press will con‐
flict with drag and drop operations, which use BDrag Press as a default
button binding. This resource is useful only when XmNrowColumnType is
set to XmMENU_OPTION. Specifies a keysym for a key that, when pressed
by the user along with the MAlt modifier, posts the associated Pulldown
MenuPane. The first character in the OptionMenu label string that
exactly matches the mnemonic in the character set specified in XmNm‐
nemonicCharSet is underlined. The user can post the menu by pressing
either the shifted or the unshifted mnemonic key. The default is no
mnemonic. Specifies the character set of the mnemonic for an Option‐
Menu. The default is XmFONTLIST_DEFAULT_TAG. If the RowColumn widget
is any type other than XmMENU_OPTION, this resource is not meaningful.
Specifies the number of minor dimension extensions that are made to
accommodate the entries; this attribute is meaningful only when XmN‐
packing is set to XmPACK_COLUMN.
For vertically oriented RowColumn widgets, this attribute indicates how
many columns are built; the number of entries per column is adjusted to
maintain this number of columns, if possible.
For horizontally oriented RowColumn widgets, this attribute indicates
how many rows are built.
The default value is 1. In an OptionMenu the value is forced to 1.
The value must be greater than 0. Determines whether RowColumn layouts
are row-major or column-major. In a column-major layout, the children
of the RowColumn are laid out in columns top to bottom within the wid‐
get. In a row-major layout the children of the RowColumn are laid out
in rows. XmVERTICAL resource value selects a column-major layout.
XmHORIZONTAL resource value selects a row-major layout.
When creating a MenuBar or an OptionMenu, the default is XmHORIZONTAL.
Otherwise, the default value is XmVERTICAL. The results of specifying
a value of XmVERTICAL for a MenuBar are undefined. Specifies how to
pack the items contained within a RowColumn widget. This can be set to
XmPACK_TIGHT, XmPACK_COLUMN or XmPACK_NONE. When a RowColumn widget
packs the items it contains, it determines its major dimension using
the value of the XmNorientation resource.
XmPACK_TIGHT indicates that given the current major dimension (for
example, vertical if XmNorientation is XmVERTICAL), entries are placed
one after the other until the RowColumn widget must wrap. RowColumn
wraps when there is no room left for a complete child in that dimen‐
sion. Wrapping occurs by beginning a new row or column in the next
available space. Wrapping continues, as often as necessary, until all
of the children are laid out. In the vertical dimension (columns),
boxes are set to the same width; in the horizontal dimension (rows),
boxes are set to the same depth. Each entry's position in the major
dimension is left unaltered (for example, XmNy is left unchanged when
XmNorientation is XmVERTICAL); its position in the minor dimension is
set to the same value as the greatest entry in that particular row or
column. The position in the minor dimension of any particular row or
column is independent of all other rows or columns.
XmPACK_COLUMN indicates that all entries are placed in identically
sized boxes. The box is based on the largest height and width values
of all the children widgets. The value of the XmNnumColumns resource
determines how many boxes are placed in the major dimension, before
extending in the minor dimension.
XmPACK_NONE indicates that no packing is performed. The x and y
attributes of each entry are left alone, and the RowColumn widget
attempts to become large enough to enclose all entries.
When XmCreateRadioBox is called or when XmNrowColumnType is set to
XmWORK_AREA and XmNradioBehavior is True, the default value of XmNpack‐
ing is XmPACK_COLUMN. In an OptionMenu the value is initialized to
XmPACK_TIGHT. Otherwise, the value defaults to XmPACK_TIGHT. Allows
the menu system to enable keyboard input (accelerators and mnemonics)
defined for the Popup MenuPane and any of its submenus. The Popup
MenuPane needs to be informed whenever its accessibility to the user
changes because posting of the Popup MenuPane is controlled by the
application. The default value of this resource is True (keyboard
input—accelerators and mnemonics—defined for the Popup MenuPane and any
of its submenus is enabled). If True, forces the active ToggleButton
or ToggleButtonGadget to be automatically selected after having been
unselected (if no other toggle was activated). If False, the active
toggle may be unselected. The default value is True. This resource is
important only when XmNradioBehavior is True.
The application can always add and subtract toggles from RowColumn
regardless of the selected/unselected state of the toggle. The appli‐
cation can also manage and unmanage toggle children of RowColumn at any
time regardless of state. Therefore, the application can sometimes
create a RowColumn that has XmNradioAlwaysOne set to True and none of
the toggle children selected. The result is undefined if the value of
this resource is True and the application sets more than one ToggleBut‐
ton at a time. Specifies a Boolean value that when True, indicates
that the RowColumn widget should enforce a RadioBox-type behavior on
all of its children that are ToggleButtons or ToggleButtonGadgets.
When the value of this resource is True, XmNindicatorType defaults to
XmONE_OF_MANY for ToggleButton and ToggleButtonGadget children.
RadioBox behavior dictates that when one toggle is selected and the
user selects another toggle, the first toggle is unselected automati‐
cally. The RowColumn usually does not enforce this behavior if the
application, rather than the user, changes the state of a toggle. The
RowColumn does enforce this behavior if a toggle child is selected
using XmToggleButtonSetState or XmToggleButtonGadgetSetState with a
notify argument of True.
When XmCreateRadioBox is called the default value of XmNradioBehavior
is True. Otherwise, the default value is False. Requests a new height
if necessary, when set to True. When set to False, the widget does not
request a new height regardless of any changes to the widget or its
children. Requests a new width if necessary, when set to True. When
set to False, the widget does not request a new width regardless of any
changes to the widget or its children. Specifies the type of RowColumn
widget to be created. It is a non-standard resource that cannot be
changed after it is set. If an application uses any of the convenience
routines, except XmCreateRowColumn, this resource is automatically
forced to the appropriate value by the convenience routine. If an
application uses the Xt Intrinsics API to create its RowColumn widgets,
it must specify this resource itself. The set of possible settings for
this resource are:
XmWORK_AREA—the default
XmMENU_BAR
XmMENU_PULLDOWN
XmMENU_POPUP
XmMENU_OPTION
This resource cannot be changed after the RowColumn widget is created.
Any changes attempted through XtSetValues are ignored.
The value of this resource is used to determine the value of a number
of other resources. The descriptions of RowColumn resources explain
this when it is the case. The resource XmNnavigationType, inherited
from XmManager, is changed to XmNONE if XmNrowColumnType is
XmMENU_OPTION. Specifies the horizontal and vertical spacing between
items contained within the RowColumn widget. The default value is 3
pixels for XmOPTION_MENU and XmWORK_AREA and 0 for other RowColumn
types. Specifies the widget ID for the Pulldown MenuPane to be associ‐
ated with an OptionMenu. This resource is useful only when XmNrow‐
ColumnType is set to XmMENU_OPTION. The default value is NULL. Speci‐
fies the callback list that notifies the application when the tear-off
MenuPane is about to be activated. It precedes the tear-off's map
callback.
Use this resource when your application has shared MenuPanes and when
the torn-off menu can have two or more parents that can have opposing
sensitivity states for the same menu item. This resource enables the
application to track whether a menu item is sensitive or insensitive
and to set the state to the original parent's menu item state when the
torn-off menu is reposted. The application can use XmGetPostedFromWid‐
get to determine from which parent the menu was torn. The callback
reason is XmCR_TEAR_OFF_ACTIVATE. The default is NULL. Specifies the
callback list that notifies the application when the tear-off MenuPane
is about to be deactivated. It follows the tear-off's unmap callback.
Use this resource when your application has shared MenuPanes and when
the torn-off menu can have two or more parents that can have opposing
sensitivity states for the same menu item. This resource enables the
application to track whether a menu item is sensitive or insensitive
and to set the state to the original parent's menu item state when the
torn-off menu is reposted. The application can use XmGetPostedFromWid‐
get to determine from which parent the menu was torn. The callback
reason is XmCR_TEAR_OFF_DEACTIVATE. The default is NULL. Indicates
whether tear-off functionality is enabled or disabled when XmNrowColum‐
nType is set to XmMENU_PULLDOWN or XmMENU_POPUP. The values are:
XmTEAR_OFF_ENABLED or XmTEAR_OFF_DISABLED (default value). This
resource is invalid for type XmMENU_OPTION; however, it does affect any
pulldown submenus within an OptionMenu. The function XmRepTypeInstall‐
TearOffModelConverter installs a resource converter for this resource.
Specifies a list of callbacks that is called after the window associ‐
ated with the RowColumn widget has been unmapped. The callback reason
is XmCR_UNMAP. The default value is NULL. This resource is obsolete;
it has been replaced by XmNmenuPost and is present for compatibility
with older releases of 1/Motif.
XmRowColumn Constraint Resource Set
──────────────────────────────────────────────────
Name Default Access
Class Type
──────────────────────────────────────────────────
──────────────────────────────────────────────────
XmNpositionIndex XmLAST_POSITION CSG
XmCPositionIndex short
──────────────────────────────────────────────────
Specifies the position of the widget in its parent's list of children
(the value of the XmNchildren resource). The value is an integer that
is no less than zero and no greater than the number of children in the
list at the time the value is specified. A value of zero means that
the child is placed at the beginning of the list. The value can also
be specified as XmLAST_POSITION (the default), which means that the
child is placed at the end of the list. Any other value is ignored.
XtGetValues returns the position of the widget in its parent's child
list at the time of the call to XtGetValues.
When a widget is inserted into its parent's child list, the positions
of any existing children that are greater than or equal to the speci‐
fied widget's XmNpositionIndex are increased by one. The effect of a
call to XtSetValues for XmNpositionIndex is to remove the specified
widget from its parent's child list, decrease by one the positions of
any existing children that are greater than the specified widget's for‐
mer position in the list, and then insert the specified widget into its
parent's child list as described in the preceding sentence.
Simple Menu Creation Resource Set
───────────────────────────────────────────────────────────────────────
Name Default Access
Class Type
───────────────────────────────────────────────────────────────────────
───────────────────────────────────────────────────────────────────────
XmNbuttonAccelerators NULL C
XmCButtonAccelerators StringTable
───────────────────────────────────────────────────────────────────────
XmNbuttonAcceleratorText NULL C
XmCButtonAcceleratorText XmStringTable
───────────────────────────────────────────────────────────────────────
XmNbuttonCount 0 C
XmCButtonCount int
───────────────────────────────────────────────────────────────────────
XmNbuttonMnemonicCharSets NULL C
XmCButtonMnemonicCharSets XmStringCharSetTable
───────────────────────────────────────────────────────────────────────
XmNbuttonMnemonics NULL C
XmCButtonMnemonics XmKeySymTable
───────────────────────────────────────────────────────────────────────
XmNbuttons NULL C
XmCButtons XmStringTable
───────────────────────────────────────────────────────────────────────
XmNbuttonSet -1 C
XmCButtonSet int
───────────────────────────────────────────────────────────────────────
XmNbuttonType NULL C
XmCButtonType XmButtonTypeTable
───────────────────────────────────────────────────────────────────────
XmNoptionLabel NULL C
XmCOptionLabel XmString
───────────────────────────────────────────────────────────────────────
XmNoptionMnemonic NULL C
XmCOptionMnemonic KeySym
───────────────────────────────────────────────────────────────────────
XmNpostFromButton -1 C
XmCPostFromButton int
───────────────────────────────────────────────────────────────────────
XmNsimpleCallback NULL C
XmCCallback XtCallbackProc
───────────────────────────────────────────────────────────────────────
This resource is for use with the simple menu creation routines. It
specifies a list of accelerators for the buttons created. The list
contains one element for each button, separator, and title created.
This resource is for use with the simple menu creation routines. It
specifies a list of compound strings to display for the accelerators
for the buttons created. The list contains one element for each but‐
ton, separator, and title created. This resource is for use with the
simple menu creation routines. It specifies the total number of menu
buttons, separators, and titles to create. The value must not be nega‐
tive. This resource is for use with the simple menu creation routines.
It specifies a list of character sets with which button mnemonics are
to be displayed. The list contains one element for each button, sepa‐
rator, and title created. The default is determined dynamically
depending on the locale of the widget. This resource is for use with
the simple menu creation routines. It specifies a list of mnemonics
for the buttons created. The list contains one element for each but‐
ton, separator, and title created. This resource is for use with the
simple menu creation routines. It specifies a list of compound strings
to use as labels for the buttons created. The list contains one ele‐
ment for each button, separator, and title created. This resource is
for use with the simple menu creation routines. It specifies which
button of a RadioBox or OptionMenu Pulldown submenu is initially set.
The value is an integer n indicating the nth ToggleButtonGadget speci‐
fied for a RadioBox or the nth PushButtonGadget specified for an
OptionMenu Pulldown submenu. The first button specified is number 0.
The value must not be negative. This resource is for use with the sim‐
ple menu creation routines. It specifies a list of button types asso‐
ciated with the buttons to be created. The list contains one element
for each button, separator, and title created. If this resource is not
specified, each button in a MenuBar is a CascadeButtonGadget, each but‐
ton in a RadioBox or CheckBox is a ToggleButtonGadget, and each button
in any other type of RowColumn widget is a PushButtonGadget. Each but‐
ton type is of type XmButtonType, an enumeration with the following
possible values:
XmCASCADEBUTTON—Specifies a CascadeButtonGadget for a MenuBar, Popup
MenuPane, or Pulldown MenuPane.
XmCHECKBUTTON—Specifies a ToggleButtonGadget for a CheckBox, Popup
MenuPane, or Pulldown MenuPane.
XmDOUBLE_SEPARATOR—Specifies a SeparatorGadget for a Popup MenuPane,
Pulldown MenuPane, or OptionMenu Pulldown submenu. The separator type
is XmDOUBLE_LINE.
XmPUSHBUTTON—Specifies a PushButtonGadget for a Popup MenuPane, Pull‐
down MenuPane, or OptionMenu Pulldown submenu.
XmRADIOBUTTON—Specifies a ToggleButtonGadget for a RadioBox, Popup
MenuPane, or Pulldown MenuPane.
XmSEPARATOR—Specifies a SeparatorGadget for a Popup MenuPane, Pulldown
MenuPane, or OptionMenu Pulldown submenu.
XmTITLE—Specifies a LabelGadget used as a title for a Popup MenuPane or
Pulldown MenuPane. This resource is for use with the simple menu cre‐
ation routines. It specifies a compound string for the label string to
be used on the left side of an OptionMenu. This resource is for use
with the simple menu creation routines. It specifies a keysym for a
key that, when pressed by the user along with the MAlt modifier, posts
the associated Pulldown MenuPane for an OptionMenu. This resource is
for use with the simple menu creation routines. For a Pulldown Menu‐
Pane, it specifies the button in the parent to which the submenu is
attached. The menu is then posted from this button. The value is an
integer n indicating the nth CascadeButton or CascadeButtonGadget spec‐
ified for the parent of the Pulldown MenuPane. The first button speci‐
fied is number 0. The value must not be negative. This resource is
for use with the simple menu creation routines. It specifies a call‐
back procedure to be called when a button is activated or when its
value changes. This callback function is added to each button after
creation. For a CascadeButtonGadget or a PushButtonGadget, the call‐
back is added as the button's XmNactivateCallback, and it is called
when the button is activated. For a ToggleButtonGadget, the callback
is added as the button's XmNvalueChangedCallback, and it is called when
the button's value changes. The button number is passed in the
client_data field.
Inherited Resources
RowColumn inherits behavior and resources from the following named
superclasses. For a complete description of each resource, refer to
the man page for that superclass.
XmManager Resource Set
────────────────────────────────────────────────────────────────
Name Default Access
Class Type
────────────────────────────────────────────────────────────────
────────────────────────────────────────────────────────────────
XmNbottomShadowColor dynamic CSG
XmCBottomShadowColor Pixel
────────────────────────────────────────────────────────────────
XmNbottomShadowPixmap XmUNSPECIFIED_PIXMAP CSG
XmCBottomShadowPixmap Pixmap
────────────────────────────────────────────────────────────────
XmNforeground dynamic CSG
XmCForeground Pixel
────────────────────────────────────────────────────────────────
XmNhelpCallback NULL C
XmCCallback XtCallbackList
────────────────────────────────────────────────────────────────
XmNhighlightColor dynamic CSG
XmCHighlightColor Pixel
────────────────────────────────────────────────────────────────
XmNhighlightPixmap dynamic CSG
XmCHighlightPixmap Pixmap
────────────────────────────────────────────────────────────────
XmNinitialFocus NULL CSG
XmCInitialFocus Widget
────────────────────────────────────────────────────────────────
XmNnavigationType dynamic CSG
XmCNavigationType XmNavigationType
────────────────────────────────────────────────────────────────
XmNshadowThickness dynamic CSG
XmCShadowThickness Dimension
────────────────────────────────────────────────────────────────
XmNstringDirection dynamic CG
XmCStringDirection XmStringDirection
────────────────────────────────────────────────────────────────
XmNtopShadowColor dynamic CSG
XmCTopShadowColor Pixel
────────────────────────────────────────────────────────────────
XmNtopShadowPixmap dynamic CSG
XmCTopShadowPixmap Pixmap
────────────────────────────────────────────────────────────────
XmNtraversalOn dynamic CSG
XmCTraversalOn Boolean
────────────────────────────────────────────────────────────────
XmNunitType dynamic CSG
XmCUnitType unsigned char
────────────────────────────────────────────────────────────────
XmNuserData NULL CSG
XmCUserData XtPointer
────────────────────────────────────────────────────────────────
Composite Resource Set
──────────────────────────────────────────────────────
Name Default Access
Class Type
──────────────────────────────────────────────────────
──────────────────────────────────────────────────────
XmNchildren NULL G
XmCReadOnly WidgetList
──────────────────────────────────────────────────────
XmNinsertPosition default procedure CSG
XmCInsertPosition XtOrderProc
──────────────────────────────────────────────────────
XmNnumChildren 0 G
XmCReadOnly Cardinal
──────────────────────────────────────────────────────
Core Resource Set
─────────────────────────────────────────────────────────────────────
Name Default Access
Class Type
─────────────────────────────────────────────────────────────────────
─────────────────────────────────────────────────────────────────────
XmNaccelerators dynamic CSG
XmCAccelerators XtAccelerators
─────────────────────────────────────────────────────────────────────
XmNancestorSensitive dynamic G
XmCSensitive Boolean
─────────────────────────────────────────────────────────────────────
XmNbackground dynamic CSG
XmCBackground Pixel
─────────────────────────────────────────────────────────────────────
XmNbackgroundPixmap XmUNSPECIFIED_PIXMAP CSG
XmCPixmap Pixmap
─────────────────────────────────────────────────────────────────────
XmNborderColor XtDefaultForeground CSG
XmCBorderColor Pixel
─────────────────────────────────────────────────────────────────────
XmNborderPixmap XmUNSPECIFIED_PIXMAP CSG
XmCPixmap Pixmap
─────────────────────────────────────────────────────────────────────
XmNborderWidth 0 CSG
XmCBorderWidth Dimension
─────────────────────────────────────────────────────────────────────
XmNcolormap dynamic CG
XmCColormap Colormap
─────────────────────────────────────────────────────────────────────
XmNdepth dynamic CG
XmCDepth int
─────────────────────────────────────────────────────────────────────
XmNdestroyCallback NULL C
XmCCallback XtCallbackList
─────────────────────────────────────────────────────────────────────
XmNheight dynamic CSG
XmCHeight Dimension
─────────────────────────────────────────────────────────────────────
XmNinitialResourcesPersistent True C
XmCInitialResourcesPersistent Boolean
─────────────────────────────────────────────────────────────────────
XmNmappedWhenManaged True CSG
XmCMappedWhenManaged Boolean
─────────────────────────────────────────────────────────────────────
XmNscreen dynamic CG
XmCScreen Screen *
─────────────────────────────────────────────────────────────────────
XmNsensitive True CSG
XmCSensitive Boolean
─────────────────────────────────────────────────────────────────────
XmNtranslations dynamic CSG
XmCTranslations XtTranslations
─────────────────────────────────────────────────────────────────────
XmNwidth dynamic CSG
XmCWidth Dimension
─────────────────────────────────────────────────────────────────────
XmNx 0 CSG
XmCPosition Position
─────────────────────────────────────────────────────────────────────
XmNy 0 CSG
XmCPosition Position
─────────────────────────────────────────────────────────────────────
Callback Information
A pointer to the following structure is passed to each callback: type‐
def struct { int reason; XEvent * event; Widget widget;
char * data; char * callbackstruct; } XmRowColumnCallback‐
Struct; Indicates why the callback was invoked Points to the XEvent
that triggered the callback
The following fields apply only when the callback reason is XmCR_ACTI‐
VATE; for all other callback reasons, these fields are set to NULL.
The XmCR_ACTIVATE callback reason is generated only when the applica‐
tion has supplied an entry callback, which overrides any activation
callbacks registered with the individual RowColumn items. Is set to
the widget ID of the RowColumn item that has been activated Contains
the client-data value supplied by the application when the RowColumn
item's activation callback was registered Points to the callback struc‐
ture generated by the RowColumn item's activation callback
Translations
XmRowColumn translations depend on the value of the XmNrowColumnType
resource.
If XmNrowColumnType is set to XmWORK_AREA, XmRowColumn inherits trans‐
lations from XmManager.
If XmNrowColumnType is set to XmMENU_OPTION, XmRowColumn inherits tra‐
versal, KActivate, and KCancel translations from XmManager and has the
additional translations listed below. These translations may not
directly correspond to a translation table. BSelect Press: MenuBt‐
nDown() BSelect Release:MenuBtnUp() KSelect: ManagerGadgetSe‐
lect() KHelp: Help()
The translations for XmRowColumn if XmNrowColumnType is set to
XmMENU_BAR XmMENU_PULLDOWN, or XmMENU_POPUP are listed below. In a
Popup menu system, BMenu also performs the BSelect actions. These
translations may not directly correspond to a translation table. BSe‐
lect Press:MenuBtnDown() BSelect Release:MenuBtnUp() KActi‐
vate: ManagerGadgetSelect() KSelect: ManagerGadgetSelect()
MAny KCancel:MenuGadgetEscape() KHelp: Help()
KLeft: MenuGadgetTraverseLeft() KRight: MenuGadgetTra‐
verseRight() KUp: MenuGadgetTraverseUp() KDown: Menu‐
GadgetTraverseDown()
Action Routines
The XmRowColumn action routines are described below: Calls the call‐
backs for XmNhelpCallback if any exist. If there are no help callbacks
for this widget, this action calls the help callbacks for the nearest
ancestor that has them. When a gadget child of the menu has the focus,
invokes the gadget child's behavior associated with KSelect. This gen‐
erally has the effect of unposting the menu hierarchy and arming and
activating the gadget, except that for a CascadeButtonGadget with a
submenu, it posts the submenu. When a gadget child of the menu has the
focus, invokes the gadget child's behavior associated with BSelect
Press. This generally has the effect of unposting any menus posted by
the parent menu, enabling mouse traversal in the menu, and arming the
gadget. For a CascadeButtonGadget with a submenu, it also posts the
associated submenu. When a gadget child of the menu has the focus,
invokes the gadget child's behavior associated with BSelect Release.
This generally has the effect of unposting the menu hierarchy and acti‐
vating the gadget, except that for a CascadeButtonGadget with a sub‐
menu, it posts the submenu and enables keyboard traversal in the menu.
In a toplevel Pulldown MenuPane from a MenuBar, unposts the menu, dis‐
arms the MenuBar CascadeButton and the MenuBar, and, when the shell's
keyboard focus policy is XmEXPLICIT, restores keyboard focus to the
widget that had the focus before the MenuBar was entered. In other
Pulldown MenuPanes, unposts the menu.
In a Popup MenuPane, unposts the menu and, when the shell's keyboard
focus policy is XmEXPLICIT, restores keyboard focus to the widget from
which the menu was posted. In a TearOff MenuPane that has no submenus
posted, dismisses the menu; otherwise, if one or more submenus are
posted, unposts the last menu pane. If the current menu item has a
submenu and is in a MenuBar, then this action posts the submenu, dis‐
arms the current menu item, and arms the submenu's first traversable
menu item.
If the current menu item is in a MenuPane, then this action disarms the
current menu item and arms the item below it. This action wraps within
the MenuPane. When the current menu item is at the MenuPane's bottom
edge, then this action wraps to the topmost menu item in the column to
the right, if one exists. When the current menu item is at the bottom,
rightmost corner of the MenuPane, then this action wraps to the tear-
off control, if present, or to the top, leftmost menu item. When the
current menu item is in a MenuBar, then this action disarms the current
item and arms the MenuBar item to the left. This action wraps within
the MenuBar.
In MenuPanes, if the current menu item is not at the left edge of a
MenuPane, this action disarms the current item and arms the item to its
left. If the current menu item is at the left edge of a submenu
attached to a MenuBar item, then this action unposts the submenu and
traverses to the MenuBar item to the left, wrapping if necessary. If
that MenuBar item has a submenu, it posts the submenu and arms the
first traversable item in the submenu. If the current menu item is at
the left edge of a submenu not directly attached to a MenuBar item,
then this action unposts the current submenu only.
In Popup or Torn-off MenuPanes, when the current menu item is at the
left edge, this action wraps within the MenuPane. If the current menu
item is at the left edge of the MenuPane and not in the top row, this
action wraps to the rightmost menu item in the row above. If the cur‐
rent menu item is in the upper, leftmost corner, this action wraps to
the tear-off control, if present, or else it wraps to the bottom,
rightmost menu item in the MenuPane. If the current menu item is in a
MenuBar, then this action disarms the current item and arms the MenuBar
item to the right. This action wraps within the MenuBar.
In MenuPanes, if the current menu item is a CascadeButton, then this
action posts its associated submenu. If the current menu item is not a
CascadeButton and is not at the right edge of a MenuPane, this action
disarms the current item and arms the item to its right, wrapping if
necessary. If the current menu item is not a CascadeButton and is at
the right edge of a submenu that is a descendent of a MenuBar, then
this action unposts all submenus and traverses to the MenuBar item to
the right. If that MenuBar item has a submenu, it posts the submenu
and arms the submenu's first traversable item.
In Popup or Torn-off menus, if the current menu item is not a Cascade‐
Button and is at the right edge of a row (except the bottom row), this
action wraps to the leftmost menu item in the row below. If the cur‐
rent menu item is not a CascadeButton and is in the bottom, rightmost
corner of a Popup or Pulldown MenuPane, this action wraps to the tear-
off control, if present, or else it wraps to the top, leftmost menu
item of the MenuPane. When the current menu item is in a MenuPane,
then this action disarms the current menu item and arms the item above
it. This action wraps within the MenuPane. When the current menu item
is at the MenuPane's top edge, then this action wraps to the bottommost
menu item in the column to the left, if one exists. When the current
menu item is at the top, leftmost corner of the MenuPane, then this
action wraps to the tear-off control, if present, or to the bottom,
rightmost menu item.
Related Behavior
The following menu functions are available. In any non-popup descen‐
dant of a MenuBar's parent, excluding the MenuBar itself, this action
enables keyboard traversal and moves keyboard focus to the first item
in the MenuBar. In the MenuBar or any menu cascaded from it, this
action unposts the menu hierarchy and, when the shell's keyboard focus
policy is XmEXPLICIT, restores focus to the widget that had the focus
when the menu system was entered. Pops up the menu associated with the
control that has the keyboard focus. Enables keyboard traversal in the
menu. In the Popup menu system or any menu cascaded from it, this
action unposts the menu hierarchy and, when the shell's keyboard focus
policy is XmEXPLICIT, restores focus to the widget that had the focus
when the menu system was entered.
Virtual Bindings
The bindings for virtual keys are vendor specific. For information
about bindings for virtual buttons and keys, see VirtualBindings(3X).
RELATED INFORMATIONComposite(3X), Constraint(3X), Core(3X), XmCreateMenuBar(3X), XmCre‐
ateOptionMenu(3X), XmCreatePopupMenu(3X), XmCreatePulldownMenu(3X),
XmCreateRadioBox(3X), XmCreateRowColumn(3X), XmCreateSimpleCheck‐
Box(3X), XmCreateSimpleMenuBar(3X), XmCreateSimpleOptionMenu(3X),
XmCreateSimplePopupMenu(3X), XmCreateSimplePulldownMenu(3X), XmCreateS‐
impleRadioBox(3X), XmCreateWorkArea(3X), XmGetMenuCursor(3X), XmGet‐
PostedFromWidget(3X), XmGetTearOffControl, XmLabel(3X), XmManager(3X),
XmMenuPosition(3X), XmOptionButtonGadget(3X), XmOptionLabelGadget(3X),
XmRepTypeInstallTearOffModelConverter, XmSetMenuCursor(3X), XmUpdate‐
Display(3X), XmVaCreateSimpleCheckBox(3X), XmVaCreateSimpleMenuBar(3X),
XmVaCreateSimpleOptionMenu(3X), XmVaCreateSimplePopupMenu(3X), XmVaCre‐
ateSimplePulldownMenu(3X), and XmVaCreateSimpleRadioBox(3X).
XmRowColumn(3X)