


XmMenuShell(3X)						      XmMenuShell(3X)
OSF/Motif							    OSF/Motif



NAME
  XXmmMMeennuuSShheellll -	The MenuShell widget class

SYNOPSIS


  ##iinncclluuddee <<XXmm//MMeennuuSShheellll..hh>>

DESCRIPTION
  The MenuShell	widget is a custom OverrideShell widget.  An OverrideShell
  widget bypasses mmwwmm 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,	XXmmCCrreeaatteePPooppuuppMMeennuu or XXmmCCrreeaatteePPuullllddoowwnnMMeennuu, to
  create a Popup or Pulldown MenuPane.	The convenience	functions automati-
  cally	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.

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

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

    oo++  If the MenuShell	is for a MenuPane that is pulled down from a MenuBar,
       the MenuShell's parent must be the MenuBar.

    oo++  If the MenuShell	is for a Pulldown MenuPane in an OptionMenu, the
       MenuShell's parent must be the OptionMenu's parent.

  Setting XXmmNNhheeiigghhtt, XXmmNNwwiiddtthh, or XXmmNNbboorrddeerrWWiiddtthh 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 XXmmNNaalllloowwSShheellllRReessiizzee, setting XXmmNNxx or XXmmNNyy sets the corresponding
  resource of the parent but does not change the child's position relative to
  the parent.  XXttGGeettVVaalluueess for the child's XXmmNNxx	or XXmmNNyy	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 XXmmNNbboorrddeerrWWiiddtthh.

  Classes

  MenuShell inherits behavior and resources from CCoorree, CCoommppoossiittee, SShheellll, and
  OOvveerrrriiddeeSShheellll	classes.

  The class pointer is xxmmMMeennuuSShheellllWWiiddggeettCCllaassss.

  The class name is XXmmMMeennuuSShheellll.



  New Resources

  MenuShell overrides the XXmmNNaalllloowwSShheellllRReessiizzee resource in Shell.  The follow-
  ing 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	XXmmNN or XXmmCC
  prefix and use the remaining letters.	 To specify one	of the defined values
  for a	resource in a .Xdefaults file, remove the XXmm prefix and	use the
  remaining letters (in	either lowercase or uppercase, but include any under-
  scores between words).  The codes in the access column indicate if the
  given	resource can be	set at creation	time (C), set by using XXttSSeettVVaalluueess
  (S), retrieved by using XXttGGeettVVaalluueess (G), or is not applicable	(N/A).

			   XXmmMMeennuuSShheellll RReessoouurrccee	SSeett
	     _____________________________________________________
	     NNaammee			DDeeffaauulltt		    AAcccceessss
		   CCllaassss		      TTyyppee
	     _____________________________________________________
	     _____________________________________________________
	     XmNbuttonFontList		dynamic		    CSG
		   XmCButtonFontList	       XmFontList
	     _____________________________________________________
	     XmNdefaultFontList		dynamic		    CG
		   XmCDefaultFontList	       XmFontList
	     _____________________________________________________
	     XmNlabelFontList		dynamic		    CSG
		   XmCLabelFontList	       XmFontList
	     _____________________________________________________

  XXmmNNbbuuttttoonnFFoonnttLLiisstt
	    Specifies the font list used for MenuShell's button	descendants.
	    If this value is NULL at initialization and	if the value of
	    XXmmNNddeeffaauullttFFoonnttLLiisstt is not NULL, XXmmNNbbuuttttoonnFFoonnttLLiisstt is initialized
	    to the value of XXmmNNddeeffaauullttFFoonnttLLiisstt.	 If the	value of XXmmNNddeeffaauulltt--
	    FFoonnttLLiisstt is	NULL, XXmmNNbbuuttttoonnFFoonnttLLiisstt	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, XXmmNNbbuuttttoonnFFoonnttLLiisstt is ini-
	    tialized to	the XXmmNNbbuuttttoonnFFoonnttLLiisstt of the ancestor  widget.	If no
	    such ancestor is found, the	default	is implementation dependent.

  XXmmNNddeeffaauullttFFoonnttLLiisstt
	    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 XXmmNNbbuuttttoonnFFoonnttLLiisstt and XXmmNNllaa--
	    bbeellFFoonnttLLiisstt.

  XXmmNNllaabbeellFFoonnttLLiisstt
	    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 XXmmNNddeeffaauullttFFoonnttLLiisstt	is not NULL, XXmmNNllaa--
	    bbeellFFoonnttLLiisstt	is initialized to the value of XXmmNNddeeffaauullttFFoonnttLLiisstt.
	    If the value of XXmmNNddeeffaauullttFFoonnttLLiisstt is NULL,	XXmmNNllaabbeellFFoonnttLLiisstt 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, XXmmNNllaabbeellFFoonnttLLiisstt is initialized to the XXmmNNllaabbeellFFoonnttLLiisstt 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 XXmmNN or
  XXmmCC prefix and use the remaining letters.  To	specify	one of the defined
  values for a resource	in a .Xdefaults	file, remove the XXmm 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 XXttSSeettVVaalluueess
  (S), retrieved by using XXttGGeettVVaalluueess (G), or is not applicable	(N/A).

			      SShheellll RReessoouurrccee SSeett
    ______________________________________________________________________
    NNaammee			    DDeeffaauulltt			    AAcccceessss
	  CCllaassss				  TTyyppee
    ______________________________________________________________________
    ______________________________________________________________________
    XmNallowShellResize		    True			    G
	  XmCAllowShellResize		   Boolean
    ______________________________________________________________________
    XmNcreatePopupChildProc	    NULL			    CSG
	  XmCCreatePopupChildProc	   XtCreatePopupChildProc
    ______________________________________________________________________
    XmNgeometry			    NULL			    CSG
	  XmCGeometry			   String
    ______________________________________________________________________
    XmNoverrideRedirect		    True			    CSG
	  XmCOverrideRedirect		   Boolean
    ______________________________________________________________________
    XmNpopdownCallback		    NULL			    C
	  XmCCallback			   XtCallbackList
    ______________________________________________________________________
    XmNpopupCallback		    NULL			    C
	  XmCCallback			   XtCallbackList
    ______________________________________________________________________
    XmNsaveUnder		    True			    CSG
	  XmCSaveUnder			   Boolean
    ______________________________________________________________________
    XmNvisual			    CopyFromParent		    CSG
	  XmCVisual			   Visual *
    ______________________________________________________________________

			    CCoommppoossiittee RReessoouurrccee SSeett
	     _____________________________________________________
	     NNaammee		       DDeeffaauulltt		    AAcccceessss
		   CCllaassss		     TTyyppee
	     _____________________________________________________
	     _____________________________________________________
	     XmNchildren	       NULL		    G
		   XmCReadOnly		      WidgetList
	     _____________________________________________________
	     XmNinsertPosition	       NULL		    CSG
		   XmCInsertPosition	      XtOrderProc
	     _____________________________________________________
	     XmNnumChildren	       0		    G
		   XmCReadOnly		      Cardinal
	     _____________________________________________________

			      CCoorree RReessoouurrccee SSeett
     ____________________________________________________________________
     NNaammee				   DDeeffaauulltt		   AAcccceessss
	   CCllaassss				 TTyyppee
     ____________________________________________________________________
     ____________________________________________________________________
     XmNaccelerators			   dynamic		   CSG
	   XmCAccelerators			  XtAccelerators
     ____________________________________________________________________
     XmNancestorSensitive		   dynamic		   G
	   XmCSensitive				  Boolean
     ____________________________________________________________________
     XmNbackground			   dynamic		   CSG
	   XmCBackground			  Pixel
     ____________________________________________________________________
     XmNbackgroundPixmap		   XmUNSPECIFIED_PIXMAP	   CSG
	   XmCPixmap				  Pixmap
     ____________________________________________________________________
     XmNborderColor			   XtDefaultForeground	   CSG
	   XmCBorderColor			  Pixel
     ____________________________________________________________________
     XmNborderPixmap			   XmUNSPECIFIED_PIXMAP	   CSG
	   XmCPixmap				  Pixmap
     ____________________________________________________________________
     XmNborderWidth			   1			   CSG
	   XmCBorderWidth			  Dimension
     ____________________________________________________________________
     XmNcolormap			   dynamic		   CG
	   XmCColormap				  Colormap
     ____________________________________________________________________
     XmNdepth				   dynamic		   CG
	   XmCDepth				  int
     ____________________________________________________________________
     XmNdestroyCallback			   NULL			   C
	   XmCCallback				  XtCallbackList
     ____________________________________________________________________
     XmNheight				   dynamic		   CSG
	   XmCHeight				  Dimension
     ____________________________________________________________________
     XmNinitialResourcesPersistent	   True			   C
	   XmCInitialResourcesPersistent	  Boolean
     ____________________________________________________________________
     XmNmappedWhenManaged		   True			   CSG
	   XmCMappedWhenManaged			  Boolean
     ____________________________________________________________________
     XmNscreen				   dynamic		   CG
	   XmCScreen				  Screen *
     ____________________________________________________________________
     XmNsensitive			   True			   CSG
	   XmCSensitive				  Boolean
     ____________________________________________________________________
     XmNtranslations			   dynamic		   CSG
	   XmCTranslations			  XtTranslations
     ____________________________________________________________________
     XmNwidth				   dynamic		   CSG
	   XmCWidth				  Dimension
     ____________________________________________________________________
     XmNx				   0			   CSG
	   XmCPosition				  Position
     ____________________________________________________________________
     XmNy				   0			   CSG
	   XmCPosition				  Position
     ____________________________________________________________________

  Translations

  The XmMenuShell translations are listed below.  These	translations may not
  directly correspond to a translation table.

       BBSSeelleecctt PPrreessss:: CClleeaarrTTrraavveerrssaall(())
       BBSSeelleecctt RReelleeaassee::MMeennuuSShheellllPPooppddoowwnnDDoonnee(())




  Action Routines

  The XmMenuShell action routines are described	below:

  CClleeaarrTTrraavveerrssaall(()):
	    Disables keyboard traversal	for the	menu, enables mouse traver-
	    sal, and unposts any menus posted by this menu.

  MMeennuuSShheellllPPooppddoowwnnDDoonnee(()):
	    Unposts the	menu hierarchy and, when the shell's keyboard focus
	    policy is XXmmEEXXPPLLIICCIITT, restores focus to the	widget that had	the
	    focus before the menu system was entered.

  MMeennuuSShheellllPPooppddoowwnnOOnnee(()):
	    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 XXmmEEXXPPLLIICCTT,	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 key-
	    board focus	policy is XXmmEEXXPPLLIICCTT, 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 VViirrttuuaallBBiinnddiinnggss((33XX)).

RELATED	INFORMATION
  CCoommppoossiittee((33XX)), CCoorree((33XX)), OOvveerrrriiddeeSShheellll((33XX)), SShheellll((33XX)),
  XXmmCCrreeaatteeMMeennuuSShheellll((33XX)), XXmmCCrreeaatteePPooppuuppMMeennuu((33XX)),	XXmmCCrreeaatteePPuullllddoowwnnMMeennuu((33XX)),
  XXmmRRoowwCCoolluummnn((33XX))

































