Museum

Home

Lab Overview

Retrotechnology Articles

Online Manuals

⇒ XmMenuShell(3X) — Tru64 UNIX 5.0a

Media Vault

Software Library

Restoration Projects

Artifacts Sought

Related Articles

Composite(3X)

Core(3X)

OverrideShell(3X)

Shell(3X)

XmCreateMenuShell(3X)

XmCreatePopupMenu(3X)

XmCreatePulldownMenu(3X)

XmRowColumn(3X)

XmMenuShell(3X)  —  Subroutines

OSF/Motif

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 XmCreatePulldownMenu, 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 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

XmNbuttonFontList

Class: XmCButtonFontList
Default: dynamic
Type:  XmFontList
Access: CSG

XmNdefaultFontList

Class: XmCDefaultFontList
Default: dynamic
Type:  XmFontList
Access: CG

XmNlabelFontList

Class: XmCLabelFontList
Default: dynamic
Type:  XmFontList
Access: 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 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

XmNallowShellResize

Class: XmCAllowShellResize
Default: True
Type:  Boolean
Access: G

XmNcreatePopupChildProc

Class: XmCCreatePopupChildProc
Default: NULL
Type:  XtCreatePopupChildProc
Access: CSG

XmNgeometry

Class: XmCGeometry
Default: NULL
Type:  String
Access: CSG

XmNoverrideRedirect

Class: XmCOverrideRedirect
Default: True
Type:  Boolean
Access: CSG

XmNpopdownCallback

Class: XmCCallback
Default: NULL
Type:  XtCallbackList
Access: C

XmNpopupCallback

Class: XmCCallback
Default: NULL
Type:  XtCallbackList
Access: C

XmNsaveUnder

Class: XmCSaveUnder
Default: True
Type:  Boolean
Access: CSG

XmNvisual

Class: XmCVisual
Default: CopyFromParent
Type:  Visual ∗
Access: CSG

Composite Resource Set

XmNchildren

Class: XmCReadOnly
Default: NULL
Type:  WidgetList
Access: G

XmNinsertPosition

Class: XmCInsertPosition
Default: NULL
Type:  XtOrderProc
Access: CSG

XmNnumChildren

Class: XmCReadOnly
Default: 0
Type:  Cardinal
Access: G

Core Resource Set

XmNaccelerators

Class: XmCAccelerators
Default: dynamic
Type:  XtAccelerators
Access: CSG

XmNancestorSensitive

Class: XmCSensitive
Default: dynamic
Type:  Boolean
Access: G

XmNbackground

Class: XmCBackground
Default: dynamic
Type:  Pixel
Access: CSG

XmNbackgroundPixmap

Class: XmCPixmap
Default: XmUNSPECIFIED_PIXMAP
Type:  Pixmap
Access: CSG

XmNborderColor

Class: XmCBorderColor
Default: XtDefaultForeground
Type:  Pixel
Access: CSG

XmNborderPixmap

Class: XmCPixmap
Default: XmUNSPECIFIED_PIXMAP
Type:  Pixmap
Access: CSG

XmNborderWidth

Class: XmCBorderWidth
Default: 1
Type:  Dimension
Access: CSG

XmNcolormap

Class: XmCColormap
Default: dynamic
Type:  Colormap
Access: CG

XmNdepth

Class: XmCDepth
Default: dynamic
Type:  int
Access: CG

XmNdestroyCallback

Class: XmCCallback
Default: NULL
Type:  XtCallbackList
Access: C

XmNheight

Class: XmCHeight
Default: dynamic
Type:  Dimension
Access: CSG

XmNinitialResourcesPersistent

Class: XmCInitialResourcesPersistent
Default: True
Type:  Boolean
Access: C

XmNmappedWhenManaged

Class: XmCMappedWhenManaged
Default: True
Type:  Boolean
Access: CSG

XmNscreen

Class: XmCScreen
Default: dynamic
Type:  Screen ∗
Access: CG

XmNsensitive

Class: XmCSensitive
Default: True
Type:  Boolean
Access: CSG

XmNtranslations

Class: XmCTranslations
Default: dynamic
Type:  XtTranslations
Access: CSG

XmNwidth

Class: XmCWidth
Default: dynamic
Type:  Dimension
Access: CSG

XmNx

Class: XmCPosition
Default: 0
Type:  Position
Access: CSG

XmNy

Class: XmCPosition
Default: 0
Type:  Position
Access: 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:

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). 

SEE ALSO

Composite(3X), Core(3X), OverrideShell(3X), Shell(3X), XmCreateMenuShell(3X), XmCreatePopupMenu(3X), XmCreatePulldownMenu(3X), XmRowColumn(3X)

Typewritten Software • bear@typewritten.org • Edmonds, WA 98026