XmMenuShell(3X) UNIX System V XmMenuShell(3X)
NAME
XmMenuShell - 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 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.
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 a child of a MenuShell, 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.
10/89 Page 1
XmMenuShell(3X) UNIX System V XmMenuShell(3X)
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|
|___________________|____________________|____________|_________|________|
|___________________|____________________|____________|_________|________|
| XmNdefaultFontList| XmCDefaultFontList| XmFontList| dynamic| C |
|___________________|____________________|____________|_________|________|
XmNdefaultFontList
Specifies a default font list for its children. This font list is
used whenever a font list is not specifically set for a Text, Label
or Button child of the MenuShell.
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).
Page 2 10/89
XmMenuShell(3X) UNIX System V XmMenuShell(3X)
______________________________________________________________________________________________
| Shell Resource Set |
|_______________________|_________________________|________________|________________|________|
|Name | Class | Type | Default | Access|
|_______________________|_________________________|________________|________________|________|
|_______________________|_________________________|________________|________________|________|
|XmNallowShellResize | XmCAllowShellResize | Boolean | True | G |
|_______________________|_________________________|________________|________________|________|
|XmNcreatePopupChildProc| XmCCreatePopupChildProc| (*)() | 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| (*)() | NULL | CSG |
|__________________|___________________|____________|_________|________|
| XmNnumChildren | XmCReadOnly | Cardinal | 0 | G |
|__________________|___________________|____________|_________|________|
10/89 Page 3
XmMenuShell(3X) UNIX System V XmMenuShell(3X)
________________________________________________________________________________________________________________
| 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()
Page 4 10/89
XmMenuShell(3X) UNIX System V XmMenuShell(3X)
Action Routines
The XmMenuShell action routines are described below:
ClearTraversal():
Disables keyboard traversal for the menu, enables mouse traversal,
and unposts any menus posted by this menu.
MenuShellPopdownDone():
Unposts the menu hierarchy and restores focus to the tab group 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 restores
keyboard focus to the tab group that had the focus before the
MenuBar was entered. In other Pulldown MenuPanes, unposts the
menu.
In a Popup MenuPane, unposts the menu and 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).
10/89 Page 5