XmMenuShell(3X)

XmMenuShell - The MenuShell widget class

As shipped in IRIX 6.5.5. Added in IRIX 6.5.5.

     NAME
          XmMenuShell - The MenuShell widget class

     SYNOPSIS
          #include <Xm/MenuShell.h>

     VERSION
          This page documents Motif 2.1.

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

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

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

             o  If the MenuShell is for a menu pane that is pulled
                down from a MenuBar, the MenuShell's parent must be
                the MenuBar.

             o  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
          XmNysets 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 0
          (zero) minus the value of XmNborderWidth.

          MenuShell uses the XmQTmenuSystem trait and holds the
          XmQTspecifyRenderTable trait.

        Classes
          MenuShell inherits behavior, resources, and traits from
          Core, Composite, 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 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
          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

          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,
                    XmNbuttonRenderTableis initialized to the value of
                    XmNdefaultFontList. If the value of
                    XmNdefaultFontList is NULL, XmNbuttonRenderTableis
                    initialized by looking up the parent hierarchy of
                    the widget for an ancestor that holds the
                    XmQTspecifyRenderTable trait.  If such an ancestor
                    is found, XmNbuttonRenderTable 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
                    XmRenderTable(3) for more information on the
                    creation and structure 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 XmNbuttonFontListand
                    XmNlabelFontList.

          XmNlabelFontList
                    Specifies the font list used for label
                    descendants. See the XmNlabelRenderTable resource.

          XmNlabelRenderTable
                    Specifies the render table 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,
                    XmNlabelRenderTable is initialized to the value of
                    XmNdefaultFontList. If the value of
                    XmNdefaultFontList is NULL, the parent hierarchy
                    of the widget is searched for an ancestor 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
                    creation 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.

        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 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
          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 translation 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 description of the
          format, please refer to the X Toolkit Instrinsics
          Documentation.

          <BtnDown>:
                    ClearTraversal()

          <BtnUp>:  MenuShellPopdownDone()

        Action Routines
          The XmMenuShell action routines are

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

     RELATED
          Composite(3), Core(3), OverrideShell(3), Shell(3),
          XmCreateMenuShell(3), XmCreatePopupMenu(3),
          XmCreatePulldownMenu(3), and XmRowColumn(3).