XmLabelGadget(library call) XmLabelGadget(library call)
NAMEXmLabelGadget — The LabelGadget widget class
SYNOPSIS
#include <Xm/LabelG.h>
DESCRIPTION
LabelGadget is an instantiable widget and is also used as a superclass
for other button gadgets, such as PushButtonGadget and ToggleButtonGad‐
get.
LabelGadget can contain either text or a pixmap. LabelGadget text is a
compound string. Refer to the Motif Programmer's Guide for more infor‐
mation on compound strings. The text can be multilingual, multiline,
and/or multifont. When a LabelGadget is insensitive, its text is stip‐
pled, or the user-supplied insensitive pixmap is displayed.
LabelGadget supports both accelerators and mnemonics primarily for use
in LabelGadget subclass widgets that are contained in menus. Mnemonics
are available in a menu system when the button is visible. Accelerators
in a menu system are accessible even when the button is not visible.
The LabelGadget displays the mnemonic by underlining the first matching
character in the text string. The accelerator is displayed as a text
string adjacent to the label text or pixmap, depending on the layout
direction.
LabelGadget consists of many margin fields surrounding the text or
pixmap. These margin fields are resources that may be set by the user,
but LabelGadget subclasses and Manager parents also modify some of
these fields. They tend to modify the XmNmarginLeft, XmNmarginRight,
XmNmarginTop, and XmNmarginBottom resources and leave the XmNmargin‐
Width and XmNmarginHeight resources as set by the application.
LabelGadget takes into account XmNshadowThickness in determining its
layout but does not draw the shadow. That is, if XmNshadowThickness is
greater than 0 (zero), LabelGadget leaves space for the shadow, but the
shadow does not appear.
In a LabelGadget, XmNtraversalOn and XmNhighlightOnEnter are forced to
False inside Popup menu panes, Pulldown menu panes, and OptionMenus.
Otherwise these resources default to False.
LabelGadget uses the XmQTmenuSystem and XmQTspecifyRenderTable traits,
and holds the XmQTaccessTextual, XmQTcareParentVisual, XmQTmenuSavvy,
and XmQTtransfer traits.
Data Transfer Behavior
LabelGadget and it subclasses, except when used in a menu system, sup‐
port dragging of the label contents from the LabelGadget. However, the
label contents are draggable only if the XmNenableUnselectableDrag
resource of XmDisplay is set to True.
As a source of data, LabelGadget and its subclasses support the follow‐
ing targets and associated conversions of data to these targets:
locale If the locale target matches the widget's locale, the widget
transfers XmNlabelString in the encoding of the locale. This
target is supported only when XmNlabelType is XmSTRING.
COMPOUND_TEXT
The widget transfers XmNlabelString as type COMPOUND_TEXT.
This target is supported only when XmNlabelType is XmSTRING.
PIXMAP The widget transfers XmNlabelPixmap as type DRAWABLE. This
target is supported only when XmNlabelType is XmPIXMAP.
STRING The widget transfers XmNlabelString as type STRING. This
target is supported only when XmNlabelType is XmSTRING.
TEXT If XmNlabelString is fully convertible to the encoding of the
locale, the widget transfers XmNlabelString in the encoding
of the locale. Otherwise, the widget transfers XmNlabel‐
String as type COMPOUND_TEXT. This target is supported only
when XmNlabelType is XmSTRING.
_MOTIF_CLIPBOARD_TARGETS
The widget transfers, as type ATOM, a list of the targets it
supports for the CLIPBOARD selection. When XmNlabelType is
XmSTRING, these include the following targets:
· _MOTIF_COMPOUND_STRING
· COMPOUND_TEXT
· The encoding of the locale, if XmNlabelString is fully
convertible to the encoding of the locale
· STRING, if XmNlabelString is fully convertible to
STRING
When XmNlabelType is XmPIXMAP, the targets include PIXMAP.
_MOTIF_COMPOUND_STRING
The widget transfers XmNlabelString as a compound string in
Byte Stream format. This target is supported only when XmN‐
labelType is XmSTRING.
_MOTIF_EXPORT_TARGETS
The widget transfers, as type ATOM, a list of the targets to
be used as the value of the DragContext's XmNexportTargets in
a drag-and-drop transfer. When XmNlabelType is XmSTRING,
these include _MOTIF_COMPOUND_STRING, COMPOUND_TEXT, the
encoding of the locale, STRING, TEXT, BACKGROUND, and FORE‐
GROUND. When XmNlabelType is XmPIXMAP, these include PIXMAP,
BACKGROUND, and FOREGROUND.
As a source of data, LabelGadget also supports the following standard
Motif targets:
BACKGROUND
The widget transfers the parent's XmNbackground as type
PIXEL.
CLASS The widget finds the first shell in the widget hierarchy that
has a WM_CLASS property and transfers the contents as text in
the current locale.
CLIENT_WINDOW
The widget finds the first shell in the widget hierarchy and
transfers its window as type WINDOW.
COLORMAP The widget transfers the parent's XmNcolormap as type COL‐
ORMAP.
FOREGROUND
The widget transfers the parent's XmNforeground as type
PIXEL.
NAME The widget finds the first shell in the widget hierarchy that
has a WM_NAME property and transfers the contents as text in
the current locale.
TARGETS The widget transfers, as type ATOM, a list of the targets it
supports. These include the standard targets in this list.
When XmNlabelType is XmSTRING, these also include _MOTIF_COM‐
POUND_STRING, COMPOUND_TEXT, the encoding of the locale,
STRING, and TEXT. When XmNlabelType is XmPIXMAP, these also
include PIXMAP.
TIMESTAMP The widget transfers the timestamp used to acquire the selec‐
tion as type INTEGER.
_MOTIF_RENDER_TABLE
The widget transfers XmNrenderTable if it exists, or else the
default text render table, as type STRING.
_MOTIF_ENCODING_REGISTRY
The widget transfers its encoding registry as type STRING.
The value is a list of NULL separated items in the form of
tag encoding pairs. This target symbolizes the transfer tar‐
get for the Motif Segment Encoding Registry. Widgets and
applications can use this Registry to register text encoding
formats for specified render table tags. Applications access
this Registry by calling XmRegisterSegmentEncoding and
XmMapSegmentEncoding.
Classes
LabelGadget inherits behavior, resources, and traits from Object, Rec‐
tObj and XmGadget.
The class pointer is xmLabelGadgetClass.
The class name is XmLabelGadget.
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).
┌──────────────────────────────────────────────────────────────────────────────────────────────────────────┐
│ │ XmLabelGadget Resource Set │ │ │
│Name │ Class │ Type │ Default │ Access │
├──────────────────────────┼───────────────────────────┼───────────────────┼──────────────────────┼────────┤
│XmNaccelerator │ XmCAccelerator │ String │ NULL │ CSG │
├──────────────────────────┼───────────────────────────┼───────────────────┼──────────────────────┼────────┤
│XmNacceleratorText │ XmCAcceleratorText │ XmString │ NULL │ CSG │
├──────────────────────────┼───────────────────────────┼───────────────────┼──────────────────────┼────────┤
│XmNalignment │ XmCAlignment │ unsigned char │ dynamic │ CSG │
├──────────────────────────┼───────────────────────────┼───────────────────┼──────────────────────┼────────┤
│XmNfontList │ XmCFontList │ XmFontList │ dynamic │ CSG │
├──────────────────────────┼───────────────────────────┼───────────────────┼──────────────────────┼────────┤
│XmNlabelInsensitivePixmap │ XmCLabelInsensitivePixmap │ Pixmap │ XmUNSPECIFIED_PIXMAP │ CSG │
├──────────────────────────┼───────────────────────────┼───────────────────┼──────────────────────┼────────┤
│XmNlabelPixmap │ XmCLabelPixmap │ Pixmap │ XmUNSPECIFIED_PIXMAP │ CSG │
├──────────────────────────┼───────────────────────────┼───────────────────┼──────────────────────┼────────┤
│XmNlabelString │ XmCXmString │ XmString │ dynamic │ CSG │
├──────────────────────────┼───────────────────────────┼───────────────────┼──────────────────────┼────────┤
│XmNlabelType │ XmCLabelType │ unsigned char │ XmSTRING │ CSG │
├──────────────────────────┼───────────────────────────┼───────────────────┼──────────────────────┼────────┤
│XmNmarginBottom │ XmCMarginBottom │ Dimension │ 0 │ CSG │
├──────────────────────────┼───────────────────────────┼───────────────────┼──────────────────────┼────────┤
│XmNmarginHeight │ XmCMarginHeight │ Dimension │ 2 │ CSG │
├──────────────────────────┼───────────────────────────┼───────────────────┼──────────────────────┼────────┤
│XmNmarginLeft │ XmCMarginLeft │ Dimension │ 0 │ CSG │
├──────────────────────────┼───────────────────────────┼───────────────────┼──────────────────────┼────────┤
│XmNmarginRight │ XmCMarginRight │ Dimension │ 0 │ CSG │
├──────────────────────────┼───────────────────────────┼───────────────────┼──────────────────────┼────────┤
│XmNmarginTop │ XmCMarginTop │ Dimension │ 0 │ CSG │
├──────────────────────────┼───────────────────────────┼───────────────────┼──────────────────────┼────────┤
│XmNmarginWidth │ XmCMarginWidth │ Dimension │ 2 │ CSG │
├──────────────────────────┼───────────────────────────┼───────────────────┼──────────────────────┼────────┤
│XmNmnemonic │ XmCMnemonic │ KeySym │ NULL │ CSG │
├──────────────────────────┼───────────────────────────┼───────────────────┼──────────────────────┼────────┤
│XmNmnemonicCharSet │ XmCMnemonicCharSet │ String │ dynamic │ CSG │
├──────────────────────────┼───────────────────────────┼───────────────────┼──────────────────────┼────────┤
│XmNrecomputeSize │ XmCRecomputeSize │ Boolean │ True │ CSG │
├──────────────────────────┼───────────────────────────┼───────────────────┼──────────────────────┼────────┤
│XmNrenderTable │ XmCRenderTable │ XmRenderTable │ dynamic │ CSG │
├──────────────────────────┼───────────────────────────┼───────────────────┼──────────────────────┼────────┤
│XmNstringDirection │ XmCStringDirection │ XmStringDirection │ dynamic │ CSG │
├──────────────────────────┼───────────────────────────┼───────────────────┼──────────────────────┼────────┤
└──────────────────────────┴───────────────────────────┴───────────────────┴──────────────────────┴────────┘
XmNaccelerator
Sets the accelerator on a button widget in a menu, which
activates a visible or invisible, but managed, button from
the keyboard. This resource is a string that describes a set
of modifiers and the key that may be used to select the but‐
ton. The format of this string is identical to that used by
the translations manager, with the exception that only a sin‐
gle event may be specified and only KeyPress events are
allowed.
Accelerators for buttons are supported only for PushButton‐
Gadgets and ToggleButtonGadgets in Pulldown and Popup menus.
XmNacceleratorText
Specifies the text displayed for the accelerator. The text
is displayed adjacent to the label string or pixmap. The
direction of its layout depends on the XmNlayoutDirection
resource of the widget. Accelerator text for buttons is dis‐
played only for PushButtonGadgets and ToggleButtonGadgets in
Pulldown and Popup Menus.
XmNalignment
Specifies the label alignment for text or pixmap.
XmALIGNMENT_BEGINNING (left alignment)
Causes the left sides of the lines of text to be
vertically aligned with the left edge of the gad‐
get. For a pixmap, its left side is vertically
aligned with the left edge of the gadget.
XmALIGNMENT_CENTER (center alignment)
Causes the centers of the lines of text to be ver‐
tically aligned in the center of the gadget. For a
pixmap, its center is vertically aligned with the
center of the gadget.
XmALIGNMENT_END (right alignment)
Causes the right sides of the lines of text to be
vertically aligned with the right edge of the gad‐
get. For a pixmap, its right side is vertically
aligned with the right edge of the gadget.
The preceding descriptions for text are correct when XmNlay‐
outDirection is XmLEFT_TO_RIGHT. When that resource is
XmRIGHT_TO_LEFT, the descriptions for XmALIGNMENT_BEGINNING
and XmALIGNMENT_END are switched.
If the parent is a RowColumn whose XmNisAligned resource is
True, XmNalignment is forced to the same value as the RowCol‐
umn's XmNentryAlignment if the RowColumn's XmNrowColumnType
is XmWORK_AREA or if the gadget is a subclass of XmLabelGad‐
get. Otherwise, the default is XmALIGNMENT_CENTER.
XmNfontList
Specifies the font of the text used in the gadget. XmN‐
fontList is obsolete and exists for compatibility with previ‐
ous releases. You should now use XmNrenderTable instead of
XmNfontList. If both are specified, the render table will
take precedence. If XmNfontList is NULL at initialization,
the parent hierarchy of the widget is searched for an ances‐
tor that is a subclass of the XmBulletinBoard, VendorShell,
or XmMenuShell widget class. If such an ancestor is found,
the font list is initialized to the XmNbuttonFontList (for
button gadget subclasses) or XmNlabelFontList of the ancestor
widget. If no such ancestor is found, the default is imple‐
mentation dependent. Refer to XmFontList(3) for more informa‐
tion on the creation and structure of a font list.
XmNlabelInsensitivePixmap
Specifies a pixmap used as the button face if XmNlabelType is
XmPIXMAP and the button is insensitive. The default value,
XmUNSPECIFIED_PIXMAP, displays an empty label.
XmNlabelPixmap
Specifies the pixmap when XmNlabelType is XmPIXMAP. The
default value, XmUNSPECIFIED_PIXMAP, displays an empty label.
XmNlabelString
Specifies the compound string when XmNlabelType is XmSTRING.
If the value of this resource is NULL, it is initialized to
name of the gadget converted to a compound string. Refer to
XmString(3) for more information on the creation and the
structure of compound strings.
XmNlabelType
Specifies the label type.
XmSTRING Text displays XmNlabelString
XmPIXMAP Icon data in pixmap displays XmNlabelPixmap or XmN‐
labelInsensitivePixmap
XmNmarginBottom
Specifies the amount of spacing between the bottom of the
label text and the top of the bottom margin specified by XmN‐
marginHeight. This may be modified by LabelGadget's sub‐
classes. For example, CascadeButtonGadget may increase this
field to make room for the cascade pixmap.
XmNmarginHeight
Specifies an equal amount of spacing above the margin defined
by XmNmarginTop and below the margin defined by XmNmarginBot‐
tom. XmNmarginHeight specifies the amount of spacing between
the top edge of the margin set by XmNmarginTop and the bottom
edge of the top shadow, and the amount of spacing between the
bottom edge of the margin specified by XmNmarginBottom and
the top edge of the bottom shadow.
XmNmarginLeft
Specifies the amount of spacing between the left edge of the
label text and the right side of the left margin (specified
by XmNmarginWidth). This may be modified by LabelGadget's
subclasses. For example, ToggleButtonGadget may increase
this field to make room for the toggle indicator and for
spacing between the indicator and label. Whether this actu‐
ally applies to the left or right side of the label depends
on the value of XmNlayoutDirection.
XmNmarginRight
Specifies the amount of spacing between the right edge of the
label text and the left side of the right margin (specified
by XmNmarginWidth). This may be modified by LabelGadget's
subclasses. For example, CascadeButtonGadget may increase
this field to make room for the cascade pixmap. Whether this
actually applies to the left or right side of the label
depends on the value of XmNlayoutDirection.
XmNmarginTop
Specifies the amount of spacing between the top of the label
text and the bottom of the top margin specified by XmNmargin‐
Height. This may be modified by LabelGadget's subclasses.
For example, CascadeButtonGadget may increase this field to
make room for the cascade pixmap.
XmNmarginWidth
Specifies an equal amount of spacing to the left of the mar‐
gin defined by XmNmarginLeft and to the right of the margin
defined by XmNmarginRight. XmNmarginWidth specifies the
amount of spacing between the left edge of the margin set by
XmNmarginLeft and the right edge of the left shadow, and the
amount of spacing between the right edge of the margin speci‐
fied by XmNmarginRight and the left edge of the right shadow.
XmNmnemonic
Provides the user with an alternate means of activating a
button. A button in a MenuBar, a Popup menu pane, or a Pull‐
down menu pane can have a mnemonic.
This resource contains a keysym as listed in the X11 keysym
table. The first character in the label string that exactly
matches the mnemonic in the character set specified in XmNm‐
nemonicCharSet is underlined when the button is displayed.
When a mnemonic has been specified, the user activates the
button by pressing the mnemonic key while the button is visi‐
ble. If the button is a CascadeButtonGadget in a MenuBar and
the MenuBar does not have the focus, the user must use the
MAlt modifier while pressing the mnemonic. The user can
activate the button by pressing either the shifted or the
unshifted mnemonic key.
XmNmnemonicCharSet
Specifies the character set of the mnemonic for the label.
The default is XmFONTLIST_DEFAULT_TAG.
XmNrecomputeSize
Specifies a Boolean value that indicates whether the gadget
shrinks or expands to accommodate its contents (label string
or pixmap) as a result of an XtSetValues resource value that
would change the size of the gadget. If True, the gadget
shrinks or expands to exactly fit the label string or pixmap.
If False, the gadget never attempts to change size on its
own.
XmNrenderTable
Specifies the render table associated with the labelString.
If this value is NULL at initialization, Label searches its
parent hierarchy for an ancestor that holds the XmQTspeci‐
fyRenderTable trait. If such an ancestor is found, Label
initializes XmNrenderTable to the XmLABEL_RENDER_TABLE value
of the ancestor widget. Similarly, button subclasses of Label
initialize XmNrenderTable to the XmBUTTON_RENDER_TABLE value
of the ancestor widget. (Note that all current subclasses of
Label are button subclasses.) If no such ancestor is found,
the default is implementation dependent. If a font list and a
render table are both specified, the render table will take
precedence. Refer to XmRenderTable(3) for more information on
the creation and structure of a render table.
XmNstringDirection
Is a synthetic resource for setting XmNlayoutDirection. The
values for this resource are XmSTRING_DIRECTION_L_TO_R and
XmSTRING_DIRECTION_R_TO_L. Refer to the XmNlayoutDirection
resource description. The XmNstringDirection resource is
obsoleted by XmNlayoutDirection, but is kept here for back‐
ward compatibility.
Inherited Resources
LabelGadget inherits behavior and resources from the superclasses
described in the following tables. For a complete description of each
resource, refer to the reference page for that superclass.
┌─────────────────────────────────────────────────────────────────────────────────────────────────┐
│ │ XmGadget Resource Set │ │ │
│Name │ Class │ Type │ Default │ Access │
├──────────────────────┼───────────────────────┼──────────────────┼──────────────────────┼────────┤
│XmNbackground │ XmCBackground │ Pixel │ dynamic │ CSG │
├──────────────────────┼───────────────────────┼──────────────────┼──────────────────────┼────────┤
│XmNbackgroundPixmap │ XmCPixmap │ Pixmap │ XmUNSPECIFIED_PIXMAP │ CSG │
├──────────────────────┼───────────────────────┼──────────────────┼──────────────────────┼────────┤
│XmNbottomShadowColor │ XmCBottomShadowColor │ Pixel │ dynamic │ CSG │
├──────────────────────┼───────────────────────┼──────────────────┼──────────────────────┼────────┤
│XmNbottomShadowPixmap │ XmCBottomShadowPixmap │ Pixmap │ dynamic │ CSG │
├──────────────────────┼───────────────────────┼──────────────────┼──────────────────────┼────────┤
│XmNhelpCallback │ XmCCallback │ XtCallbackList │ NULL │ C │
├──────────────────────┼───────────────────────┼──────────────────┼──────────────────────┼────────┤
│XmNforeground │ XmCForeground │ Pixel │ dynamic │ CSG │
├──────────────────────┼───────────────────────┼──────────────────┼──────────────────────┼────────┤
│XmNhighlightColor │ XmCHighlightColor │ Pixel │ dynamic │ CSG │
├──────────────────────┼───────────────────────┼──────────────────┼──────────────────────┼────────┤
│XmNhighlightOnEnter │ XmCHighlightOnEnter │ Boolean │ False │ CSG │
├──────────────────────┼───────────────────────┼──────────────────┼──────────────────────┼────────┤
│XmNhighlightPixmap │ XmCHighlightPixmap │ Pixmap │ dynamic │ CSG │
├──────────────────────┼───────────────────────┼──────────────────┼──────────────────────┼────────┤
│XmNhighlightThickness │ XmCHighlightThickness │ Dimension │ 0 │ CSG │
├──────────────────────┼───────────────────────┼──────────────────┼──────────────────────┼────────┤
│XmNlayoutDirection │ XmNCLayoutDirection │ XmDirection │ dynamic │ CG │
├──────────────────────┼───────────────────────┼──────────────────┼──────────────────────┼────────┤
│XmNnavigationType │ XmCNavigationType │ XmNavigationType │ XmNONE │ CSG │
├──────────────────────┼───────────────────────┼──────────────────┼──────────────────────┼────────┤
│XmNshadowThickness │ XmCShadowThickness │ Dimension │ 0 │ CSG │
├──────────────────────┼───────────────────────┼──────────────────┼──────────────────────┼────────┤
│XmNtopShadowColor │ XmCTopShadowColor │ Pixel │ dynamic │ CSG │
├──────────────────────┼───────────────────────┼──────────────────┼──────────────────────┼────────┤
│XmNtopShadowPixmap │ XmCTopShadowPixmap │ Pixmap │ dynamic │ CSG │
├──────────────────────┼───────────────────────┼──────────────────┼──────────────────────┼────────┤
│XmNtraversalOn │ XmCTraversalOn │ Boolean │ False │ CSG │
├──────────────────────┼───────────────────────┼──────────────────┼──────────────────────┼────────┤
│XmNunitType │ XmCUnitType │ unsigned char │ dynamic │ CSG │
├──────────────────────┼───────────────────────┼──────────────────┼──────────────────────┼────────┤
│XmNuserData │ XmCUserData │ XtPointer │ NULL │ CSG │
├──────────────────────┼───────────────────────┼──────────────────┼──────────────────────┼────────┤
└──────────────────────┴───────────────────────┴──────────────────┴──────────────────────┴────────┘
┌─────────────────────────────────────────────────────────────────────┐
│ │ RectObj Resource Set │ │ │
│Name │ Class │ Type │ Default │ Access │
├─────────────────────┼────────────────┼───────────┼─────────┼────────┤
│XmNancestorSensitive │ XmCSensitive │ Boolean │ dynamic │ G │
├─────────────────────┼────────────────┼───────────┼─────────┼────────┤
│XmNborderWidth │ XmCBorderWidth │ Dimension │ 0 │ N/A │
├─────────────────────┼────────────────┼───────────┼─────────┼────────┤
│XmNheight │ XmCHeight │ Dimension │ dynamic │ CSG │
├─────────────────────┼────────────────┼───────────┼─────────┼────────┤
│XmNsensitive │ XmCSensitive │ Boolean │ True │ CSG │
├─────────────────────┼────────────────┼───────────┼─────────┼────────┤
│XmNwidth │ XmCWidth │ Dimension │ dynamic │ CSG │
├─────────────────────┼────────────────┼───────────┼─────────┼────────┤
│XmNx │ XmCPosition │ Position │ 0 │ CSG │
├─────────────────────┼────────────────┼───────────┼─────────┼────────┤
│XmNy │ XmCPosition │ Position │ 0 │ CSG │
├─────────────────────┼────────────────┼───────────┼─────────┼────────┤
└─────────────────────┴────────────────┴───────────┴─────────┴────────┘
┌─────────────────────────────────────────────────────────────────────┐
│ │ Object Resource Set │ │ │
│Name │ Class │ Type │ Default │ Access │
├───────────────────┼─────────────┼────────────────┼─────────┼────────┤
│XmNdestroyCallback │ XmCCallback │ XtCallbackList │ NULL │ C │
├───────────────────┼─────────────┼────────────────┼─────────┼────────┤
└───────────────────┴─────────────┴────────────────┴─────────┴────────┘
Behavior
XmLabelGadget includes behavior from XmGadget. Additional XmLabelGad‐
get behavior is described in the following list:
<Btn2Down>:
Drags the contents of a LabelGadget, identified when BTrans‐
fer is pressed. This action is undefined for LabelGadgets
used in a menu system.
<Key><osfHelp>:
In a Popup or Pulldown MenuPane, unposts all menus in the
menu hierarchy and, when the shell's keyboard focus policy is
XmEXPLICIT, restores keyboard focus to the widget that had
the focus before the menu system was entered. Calls the
callbacks 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.
<key><osfCancel>:
In a MenuBar, disarms the CascadeButton and the menu and,
when the shell's keyboard focus policy is XmEXPLICIT,
restores keyboard focus to the widget that had the focus
before the menu was entered.
In a toplevel Pulldown MenuPane from a MenuBar, unposts the
menu, disarms 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.
<Key><osfDown>:
If the current menu item has a submenu and is in a MenuBar,
then this action posts the submenu, disarms 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. The direction of the
wrapping depends on the XmNlayoutDirection resource.
<Key><osfLeft>:
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 tra‐
versable 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 current 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, right‐
most menu item in the MenuPane. The preceding description
applies when the XmNlayoutDirection horizontal direction is
XmLEFT_TO_RIGHT. If the XmNlayoutDirection horizontal direc‐
tion is XmRIGHT_TO_LEFT, then the following applies.
If 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 a CascadeButton,
then this action posts its associated submenu. If the cur‐
rent menu item is not a CascadeButton and is not at the left
edge of a MenuPane, this action disarms the current item and
arms the item to its left, wrapping if necessary. If the
current menu item is not a CascadeButton and is at the left
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 left. 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
CascadeButton and is at the left edge of a row (except the
bottom row), this action wraps to the rightmost menu item in
the row below. If the current menu item is not a CascadeBut‐
ton and is in the bottom, leftmost corner of a Popup or Pull‐
down MenuPane, this action wraps to the tear-off control, if
present, or else it wraps to the top, rightmost menu item of
the MenuPane.
<Key><osfRight>:
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 cur‐
rent 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
CascadeButton 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 current menu item is not a CascadeBut‐
ton 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. The preceding description applies when the
XmNlayoutDirection horizontal direction is XmLEFT_TO_RIGHT.
If the XmNlayoutDirection horizontal direction is
XmRIGHT_TO_LEFT, then the following applies.
When 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 not at the right
edge of a MenuPane, this action disarms the current item and
arms the item to its right. If the current menu item is at
the right edge of a submenu attached to a MenuBar item, then
this action unposts the submenu and traverses to the MenuBar
item to the right, 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 right 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 right edge, this action wraps within the MenuPane. If
the current menu item is at the right edge of the MenuPane
and not in the top row, this action wraps to the leftmost
menu item in the row above. If the current menu item is in
the upper, rightmost corner, this action wraps to the tear-
off control, if present, or else it wraps to the bottom,
leftmost menu item in the MenuPane.
<Key><osfUp>:
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. The direction of the
wrapping depends on the XmNlayoutDirection resource.
Virtual Bindings
The bindings for virtual keys are vendor specific. For information
about bindings for virtual buttons and keys, see VirtualBindings(3).
RELATEDObject(3), RectObj(3), XmCreateLabelGadget(3), XmFontListCreate(3),
XmStringCreate(3), XmStringCreateLtoR(3), and XmGadget(3).
XmLabelGadget(library call)