XmMenuShell(library call) XmMenuShell(library call)
NAMEXmMenuShell — The MenuShell widget class
SYNOPSIS
#include <Xm/MenuShell.h>
DESCRIPTION
The MenuShell widget is a custom OverrideShell widget. An OverrideShell
widget bypasses mwm when displaying itself. It is designed specifically
to contain Popup or Pulldown menu panes.
Most application writers never encounter this widget if they use the
menu-system convenience functions, XmCreatePopupMenu or XmCreatePull‐
down Menu, to create a Popup or Pulldown menu pane. The convenience
functions automatically create a MenuShell widget as the parent of the
menu pane. However, if the convenience functions are not used, the
application programmer must create the required MenuShell. In this
case, it is important to note that the parent of the MenuShell depends
on the type of menu system being built.
· If the MenuShell is for the top-level Popup menu pane, the
MenuShell's parent must be the widget from which the Popup menu
pane is popped up.
· If the MenuShell is for a menu pane that is pulled down from a
Popup or another Pulldown menu pane, the MenuShell's parent must
be the Popup or Pulldown menu pane.
· If the MenuShell is for a menu pane that is pulled down from a
MenuBar, the MenuShell's parent must be the MenuBar.
· If the MenuShell is for a Pulldown menu pane in an OptionMenu,
the MenuShell's parent must be the OptionMenu's parent.
Setting XmNheight, XmNwidth, or XmNborderWidth for either a MenuShell
or its child sets that resource to the same value in both the parent
and the child. An application should always specify these resources
for the child, not the parent.
For the managed child of a MenuShell, regardless of the value of the
shell's XmNallowShellResize, setting XmNx or XmNy sets the correspond‐
ing resource of the parent but does not change the child's position
relative to the parent. XtGetValues for the child's XmNx or XmNy
yields the value of the corresponding resource in the parent. The x
and y-coordinates of the child's upper left outside corner relative to
the parent's upper left inside corner are both 0 (zero) minus the value
of XmNborderWidth.
MenuShell uses the XmQTmenuSystem trait and holds the XmQTspecifyRen‐
derTable trait.
Classes
MenuShell inherits behavior, resources, and traits from Core, Compos‐
ite, Shell, and OverrideShell.
The class pointer is xmMenuShellWidgetClass.
The class name is XmMenuShell.
New Resources
MenuShell overrides the XmNallowShellResize resource in Shell. The
following table defines a set of widget resources used by the program‐
mer to specify data. The programmer can also set the resource values
for the inherited classes to set attributes for this widget. To refer‐
ence 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 pre‐
fix 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).
┌───────────────────────────────────────────────────────────────────────────────────────┐
│ │ XmMenuShell Resource Set │ │ │
│Name │ Class │ Type │ Default │ Access │
├─────────────────────┼──────────────────────┼───────────────┼─────────────────┼────────┤
│XmNbuttonFontList │ XmCButtonFontList │ XmFontList │ dynamic │ CSG │
├─────────────────────┼──────────────────────┼───────────────┼─────────────────┼────────┤
│XmNbuttonRenderTable │ XmCButtonRenderTable │ XmRenderTable │ NULL │ CSG │
├─────────────────────┼──────────────────────┼───────────────┼─────────────────┼────────┤
│XmNdefaultFontList │ XmCDefaultFontList │ XmFontList │ dynamic │ CG │
├─────────────────────┼──────────────────────┼───────────────┼─────────────────┼────────┤
│XmNlabelFontList │ XmCLabelFontList │ XmFontList │ dynamic │ CSG │
├─────────────────────┼──────────────────────┼───────────────┼─────────────────┼────────┤
│XmNlabelRenderTable │ XmCLabelRenderTable │ XmRenderTable │ NULL │ CSG │
├─────────────────────┼──────────────────────┼───────────────┼─────────────────┼────────┤
│XmNlayoutDirection │ XmCLayoutDirection │ XmDirection │ XmLEFT_TO_RIGHT │ CG │
├─────────────────────┼──────────────────────┼───────────────┼─────────────────┼────────┤
│XmNanimate │ XmCAnimate │ Boolean │ False │ CG │
├─────────────────────┼──────────────────────┼───────────────┼─────────────────┼────────┤
└─────────────────────┴──────────────────────┴───────────────┴─────────────────┴────────┘
XmNbuttonFontList
Specifies the font list used for button descendants. See the
XmNbuttonRenderTable resource.
XmNbuttonRenderTable
Specifies the render table used for MenuShell's button
descendants. If this value is NULL at initialization and if
the value of XmNdefaultFontList is not NULL, XmNbuttonRen‐
derTable is initialized to the value of XmNdefaultFontList.
If the value of XmNdefaultFontList is NULL, XmNbuttonRen‐
derTable is initialized by looking up the parent hierarchy of
the widget for an ancestor that holds the XmQTspecifyRen‐
derTable trait. If such an ancestor is found, XmNbuttonRen‐
derTable is initialized to the XmBUTTON_RENDER_TABLE value of
the ancestor widget. If no such ancestor is found, the
default is implementation dependent. Refer to XmRen‐
derTable(3) for more information on the creation and struc‐
ture of a render table.
XmNdefaultFontList
Specifies a default font list for MenuShell's descendants.
This resource is obsolete and exists for compatibility with
earlier releases. It has been replaced by XmNbuttonFontList
and XmNlabelFontList.
XmNlabelFontList
Specifies the font list used for label descendants. See the
XmNlabelRenderTable resource.
XmNlabelRenderTable
Specifies the render table used for MenuShell's label descen‐
dants (Labels and LabelGadgets). If this value is NULL at
initialization and if the value of XmNdefaultFontList is not
NULL, XmNlabelRenderTable is initialized to the value of XmN‐
defaultFontList. If the value of XmNdefaultFontList is NULL,
the parent hierarchy of the widget is searched for an ances‐
tor that holds the XmQTspecifyRenderTable trait. If such an
ancestor is found, XmNlabelRenderTable is initialized to the
XmLABEL_RENDER_TABLE value of the ancestor widget. If no such
ancestor is found, the default is implementation dependent.
Refer to XmRenderTable(3) for more information on the cre‐
ation and structure of a render table.
XmNlayoutDirection
Specifies the direction in which the subwidgets, children of
a widget, or other visual components are to be laid out. This
policy will apply as the default layout policy for all
descendants of this MenuShell.
XmNanimate
Controls whether menus will post in an animated fashion.
Inherited Resources
MenuShell 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. The pro‐
grammer can set the resource values for these 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 remain‐
ing 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).
┌─────────────────────────────────────────────────────────────────────────────────────────────────────┐
│ │ Shell Resource Set │ │ │
│Name │ Class │ Type │ Default │ Access │
├────────────────────────┼─────────────────────────┼────────────────────────┼────────────────┼────────┤
│XmNallowShellResize │ XmCAllowShellResize │ Boolean │ True │ G │
├────────────────────────┼─────────────────────────┼────────────────────────┼────────────────┼────────┤
│XmNcreatePopupChildProc │ XmCCreatePopupChildProc │ XtCreatePopupChildProc │ NULL │ CSG │
├────────────────────────┼─────────────────────────┼────────────────────────┼────────────────┼────────┤
│XmNgeometry │ XmCGeometry │ String │ NULL │ CSG │
├────────────────────────┼─────────────────────────┼────────────────────────┼────────────────┼────────┤
│XmNoverrideRedirect │ XmCOverrideRedirect │ Boolean │ True │ CSG │
├────────────────────────┼─────────────────────────┼────────────────────────┼────────────────┼────────┤
│XmNpopdownCallback │ XmCCallback │ XtCallbackList │ NULL │ C │
├────────────────────────┼─────────────────────────┼────────────────────────┼────────────────┼────────┤
│XmNpopupCallback │ XmCCallback │ XtCallbackList │ NULL │ C │
├────────────────────────┼─────────────────────────┼────────────────────────┼────────────────┼────────┤
│XmNsaveUnder │ XmCSaveUnder │ Boolean │ True │ CSG │
├────────────────────────┼─────────────────────────┼────────────────────────┼────────────────┼────────┤
│XmNvisual │ XmCVisual │ Visual * │ CopyFromParent │ CSG │
├────────────────────────┼─────────────────────────┼────────────────────────┼────────────────┼────────┤
└────────────────────────┴─────────────────────────┴────────────────────────┴────────────────┴────────┘
┌───────────────────────────────────────────────────────────────────────┐
│ │ Composite Resource Set │ │ │
│Name │ Class │ Type │ Default │ Access │
├──────────────────┼───────────────────┼─────────────┼─────────┼────────┤
│XmNchildren │ XmCReadOnly │ WidgetList │ NULL │ G │
├──────────────────┼───────────────────┼─────────────┼─────────┼────────┤
│XmNinsertPosition │ XmCInsertPosition │ XtOrderProc │ NULL │ CSG │
├──────────────────┼───────────────────┼─────────────┼─────────┼────────┤
│XmNnumChildren │ XmCReadOnly │ Cardinal │ 0 │ G │
├──────────────────┼───────────────────┼─────────────┼─────────┼────────┤
└──────────────────┴───────────────────┴─────────────┴─────────┴────────┘
┌───────────────────────────────────────────────────────────────────────────────────────────────────────────────┐
│ │ Core Resource Set │ │ │
│Name │ Class │ Type │ Default │ Access │
├──────────────────────────────┼───────────────────────────────┼────────────────┼──────────────────────┼────────┤
│XmNaccelerators │ XmCAccelerators │ XtAccelerators │ dynamic │ CSG │
├──────────────────────────────┼───────────────────────────────┼────────────────┼──────────────────────┼────────┤
│XmNancestorSensitive │ XmCSensitive │ Boolean │ dynamic │ G │
├──────────────────────────────┼───────────────────────────────┼────────────────┼──────────────────────┼────────┤
│XmNbackground │ XmCBackground │ Pixel │ dynamic │ CSG │
├──────────────────────────────┼───────────────────────────────┼────────────────┼──────────────────────┼────────┤
│XmNbackgroundPixmap │ XmCPixmap │ Pixmap │ XmUNSPECIFIED_PIXMAP │ CSG │
├──────────────────────────────┼───────────────────────────────┼────────────────┼──────────────────────┼────────┤
│XmNborderColor │ XmCBorderColor │ Pixel │ XtDefaultForeground │ CSG │
├──────────────────────────────┼───────────────────────────────┼────────────────┼──────────────────────┼────────┤
│XmNborderPixmap │ XmCPixmap │ Pixmap │ XmUNSPECIFIED_PIXMAP │ CSG │
├──────────────────────────────┼───────────────────────────────┼────────────────┼──────────────────────┼────────┤
│XmNborderWidth │ XmCBorderWidth │ Dimension │ 0 │ CSG │
├──────────────────────────────┼───────────────────────────────┼────────────────┼──────────────────────┼────────┤
│XmNcolormap │ XmCColormap │ Colormap │ dynamic │ CG │
├──────────────────────────────┼───────────────────────────────┼────────────────┼──────────────────────┼────────┤
│XmNdepth │ XmCDepth │ int │ dynamic │ CG │
├──────────────────────────────┼───────────────────────────────┼────────────────┼──────────────────────┼────────┤
│XmNdestroyCallback │ XmCCallback │ XtCallbackList │ NULL │ C │
├──────────────────────────────┼───────────────────────────────┼────────────────┼──────────────────────┼────────┤
│XmNheight │ XmCHeight │ Dimension │ dynamic │ CSG │
├──────────────────────────────┼───────────────────────────────┼────────────────┼──────────────────────┼────────┤
│XmNinitialResourcesPersistent │ XmCInitialResourcesPersistent │ Boolean │ True │ C │
├──────────────────────────────┼───────────────────────────────┼────────────────┼──────────────────────┼────────┤
│XmNmappedWhenManaged │ XmCMappedWhenManaged │ Boolean │ True │ CSG │
├──────────────────────────────┼───────────────────────────────┼────────────────┼──────────────────────┼────────┤
│XmNscreen │ XmCScreen │ Screen * │ dynamic │ CG │
├──────────────────────────────┼───────────────────────────────┼────────────────┼──────────────────────┼────────┤
│XmNsensitive │ XmCSensitive │ Boolean │ True │ CSG │
├──────────────────────────────┼───────────────────────────────┼────────────────┼──────────────────────┼────────┤
│XmNtranslations │ XmCTranslations │ XtTranslations │ dynamic │ CSG │
├──────────────────────────────┼───────────────────────────────┼────────────────┼──────────────────────┼────────┤
│XmNwidth │ XmCWidth │ Dimension │ dynamic │ CSG │
├──────────────────────────────┼───────────────────────────────┼────────────────┼──────────────────────┼────────┤
│XmNx │ XmCPosition │ Position │ 0 │ CSG │
├──────────────────────────────┼───────────────────────────────┼────────────────┼──────────────────────┼────────┤
│XmNy │ XmCPosition │ Position │ 0 │ CSG │
├──────────────────────────────┼───────────────────────────────┼────────────────┼──────────────────────┼────────┤
└──────────────────────────────┴───────────────────────────────┴────────────────┴──────────────────────┴────────┘
Translations
The XmMenuShell translations are described in the following list.
The following key names are listed in the X standard key event transla‐
tion table syntax. This format is the one used by Motif to specify the
widget actions corresponding to a given key. A brief overview of the
format is provided under VirtualBindings(3). For a complete descrip‐
tion of the format, please refer to the X Toolkit Instrinsics Documen‐
tation.
<BtnDown>:
ClearTraversal()
<BtnUp>: MenuShellPopdownDone()
Action Routines
The XmMenuShell action routines are
ClearTraversal():
Disables keyboard traversal for the menu, enables mouse tra‐
versal, and unposts any menus posted by this menu.
MenuShellPopdownDone():
Unposts the menu hierarchy and, when the shell's keyboard
focus policy is XmEXPLICIT, restores focus to the widget that
had the focus before the menu system was entered.
MenuShellPopdownOne():
In a top-level Pulldown MenuPane from a MenuBar, this action
unposts the menu, disarms the MenuBar CascadeButton and the
MenuBar, and, when the shell's keyboard focus policy is XmEX‐
PLICIT, restores keyboard focus to the widget that had the
focus before the MenuBar was entered. In other Pulldown
MenuPanes, this action unposts the menu.
In a Popup MenuPane, this action 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.
Virtual Bindings
The bindings for virtual keys are vendor specific. For information
about bindings for virtual buttons and keys, see VirtualBindings(3).
RELATEDComposite(3), Core(3), OverrideShell(3), Shell(3), XmCreate‐
MenuShell(3), XmCreatePopupMenu(3), XmCreatePulldownMenu(3), and XmRow‐
Column(3).
XmMenuShell(library call)