Man Linux: Main Page and Category List

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

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

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

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

          ·  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   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 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     |
       +---------------------+----------------------+---------------+-----------------+--------+
       |XmNanimate           | XmCAnimate           | Boolean       | False           | 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,
                 XmNbuttonRenderTable   is   initialized   to   the  value  of
                 XmNdefaultFontList. If the  value  of  XmNdefaultFontList  is
                 NULL,  XmNbuttonRenderTable  is 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  XmNbuttonFontList
                 and 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.

       XmNanimate
                 Controls whether menus will post in an animated fashion.

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

                                                     XmMenuShell(library call)