XmMenuShell(3X)

XmMenuShell --The MenuShell widget class

As shipped in IRIX 6.5.15. Unchanged since IRIX 6.5.

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 automat-
     ically 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 in-
     side 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 follow-
     ing table defines a set of widget resources used by the programmer to spec-
     ify  data.   The programmer can also set the resource values for the inher-
     ited 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 us-
     ing 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  XmN-
               defaultFontList  is not NULL, XmNbuttonFontList is initialized to
               the value of XmNdefaultFontList.  If  the  value  of  XmNdefault-
               FontList  is NULL, XmNbuttonFontList is initialized by looking up
               the parent hierarchy of the widget for an ancestor that is a sub-
               class of the XmBulletinBoard, VendorShell, or XmMenuShell  widget
               class.   If  such an ancestor is found, XmNbuttonFontList is ini-
               tialized 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  XmNla-
               belFontList.

     XmNlabelFontList
               Specifies  the  font  list used for MenuShell's label descendants
               (Labels and LabelGadgets).  If this value is NULL at  initializa-
               tion  and  if the value of XmNdefaultFontList is not NULL, XmNla-
               belFontList 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, Vendor-
               Shell, 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  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  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        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:


     ClearTraversal():
               Disables keyboard traversal for the menu, enables  mouse  traver-
               sal, 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 fo-
               cus to the widget that had the focus before the MenuBar  was  en-
               tered.  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), XmCreate-
     MenuShell(3X), XmCreatePopupMenu(3X), XmCreatePulldown(3X), and XmRowCol-
     umn(3X).

                                                                 XmMenuShell(3X)