XmMenuShell(3X) UNIX System V XmMenuShell(3X)
NAME
XmMenuShell - The MenuShell widget class
SYNOPSIS
#include <Xm/MenuShell.h>
VERSION
This page documents version 1.2 of the Motif library.
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
MenuPanes.
Most application writers never encounter this widget if they
use the menu-system convenience functions, XmCreatePopupMenu
or XmCreatePulldown Menu, to create a Popup or Pulldown
MenuPane. The convenience functions automatically create a
MenuShell widget as the parent of the MenuPane. 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 MenuPane,
the MenuShell's parent must be the widget from which
the Popup MenuPane is popped up.
⊕ If the MenuShell is for a MenuPane that is pulled down
from a Popup or another Pulldown MenuPane, the
MenuShell's parent must be the Popup or Pulldown
MenuPane.
⊕ If the MenuShell is for a MenuPane that is pulled down
from a MenuBar, the MenuShell's parent must be the
MenuBar.
⊕ If the MenuShell is for a Pulldown MenuPane 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
Page 1 (printed 4/30/98)
XmMenuShell(3X) UNIX System V XmMenuShell(3X)
value of the shell's XmNallowShellResize, setting XmNx or
XmNy sets the corresponding 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
zero minus the value of XmNborderWidth.
Classes
MenuShell inherits behavior and resources from Core,
Composite, Shell, and OverrideShell classes.
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 programmer to specify data. The
programmer can also set the resource values 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).
XmMenuShell Resource Set
Name Class Type Default Access
_______________________________________________________________________
XmNbuttonFontList XmCButtonFontList XmFontList dynamic CSG
XmNdefaultFontList XmCDefaultFontList XmFontList dynamic CG
XmNlabelFontList XmCLabelFontList XmFontList dynamic CSG
XmNbuttonFontList
Specifies the font list used for MenuShell's
button descendants. If this value is NULL at
initialization and if the value of
XmNdefaultFontList is not NULL, XmNbuttonFontList
is initialized to the value of XmNdefaultFontList.
If the value of XmNdefaultFontList is NULL,
XmNbuttonFontList is initialized by looking up the
parent hierarchy of the widget for an ancestor
that is a subclass of the XmBulletinBoard,
VendorShell, or XmMenuShell widget class. If such
Page 2 (printed 4/30/98)
XmMenuShell(3X) UNIX System V XmMenuShell(3X)
an ancestor is found, XmNbuttonFontList is
initialized to the XmNbuttonFontList of the
ancestor widget. If no such ancestor is found,
the default is implementation dependent.
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 MenuShell's label
descendants (Labels and LabelGadgets). If this
value is NULL at initialization and if the value
of XmNdefaultFontList is not NULL,
XmNlabelFontList is initialized to the value of
XmNdefaultFontList. If the value of
XmNdefaultFontList is NULL, XmNlabelFontList is
initialized by looking up the parent hierarchy of
the widget for an ancestor that is a subclass of
the XmBulletinBoard, VendorShell, or XmMenuShell
widget class. If such an ancestor is found,
XmNlabelFontList is initialized to the
XmNlabelFontList of the ancestor widget. If no
such ancestor is found, the default is
implementation dependent.
Inherited Resources
MenuShell inherits behavior and resources from the following
superclasses. For a complete description of each resource,
refer to the man page for that superclass. The following
tables define a set of widget resources used by the
programmer to specify data. The programmer 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 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).
Shell Resource Set
Name Class Type Default Access
Page 3 (printed 4/30/98)
XmMenuShell(3X) UNIX System V XmMenuShell(3X)
____________________________________________________________________________________________________
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 1 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 listed below. These
translations may not directly correspond to a translation
table.
BSelect Press: ClearTraversal()
BSelect Release:MenuShellPopdownDone()
Action Routines
The XmMenuShell action routines are described below:
Page 4 (printed 4/30/98)
XmMenuShell(3X) UNIX System V XmMenuShell(3X)
ClearTraversal():
Disables keyboard traversal for the menu, enables
mouse traversal, 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 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 XmEXPLICT,
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 XmEXPLICT,
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(3X).
RELATED INFORMATION
Composite(3X), Core(3X), OverrideShell(3X), Shell(3X),
XmCreateMenuShell(3X), XmCreatePopupMenu(3X),
XmCreatePulldown(3X), and XmRowColumn(3X).
Page 5 (printed 4/30/98)