Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages

  
 
  

home | help
XmCascadeButtonGadget(3)    Library Functions Manual	XmCascadeButtonGadget(3)

NAME
     XmCascadeButtonGadget -- The CascadeButtonGadget widget class

SYNOPSIS
     #include <Xm/CascadeBG.h>

DESCRIPTION
     CascadeButtonGadget  links  two menu panes, a MenuBar to a menu pane, or an
     OptionMenu to a menu pane.

     It is used in menu systems and must have a RowColumn parent with  its  XmN-
     rowColumnType resource set to XmMENU_BAR, XmMENU_POPUP, XmMENU_PULLDOWN, or
     XmMENU_OPTION.

     It  is the only gadget that can have a Pulldown menu pane attached to it as
     a submenu. The submenu is displayed when this gadget is activated within  a
     PopupMenu,  a PulldownMenu, or an OptionMenu. Its visuals can include a la-
     bel or pixmap and a cascading indicator when it is in a Popup  or	Pulldown
     menu  pane; or it can include only a label or a pixmap when it is in an Op-
     tionMenu.	The positioning of the PulldownMenu with respect to the Cascade-
     Button depends on the XmNlayoutDirection resource of the MenuShell.

     The default behavior associated with a CascadeButtonGadget depends  on  the
     type  of menu system in which it resides.	By default, BSelect controls the
     behavior of the CascadeButtonGadget.  In addition, BMenu controls	the  be-
     havior of the CascadeButtonGadget if it resides in a PopupMenu system.  The
     actual mouse button used is determined by its RowColumn parent.  BMenu also
     performs the BSelect actions in all types of menu systems.

     A CascadeButtonGadget's visuals differ from most other button gadgets. When
     the  button becomes armed, its visuals change from a 2-D to a 3-D look, and
     it displays the submenu that has been attached to it. If no submenu is  at-
     tached, it simply changes its visuals.

     When a CascadeButtonGadget within a Pulldown or Popup menu pane is armed as
     the  result  of  the user moving the mouse pointer into the gadget, it does
     not immediately display its submenu. Instead, it waits a short time to  see
     if  the  arming was temporary (that is, the user was simply passing through
     the gadget), or the user really wanted the submenu posted.  This  delay  is
     configurable using XmNmappingDelay.

     CascadeButtonGadget  provides  a single mechanism for activating the gadget
     from the keyboard. This mechanism is referred to as  a  keyboard  mnemonic.
     If  a  mnemonic has been specified for the gadget, the user may activate it
     by simply typing the mnemonic while the CascadeButtonGadget is visible.  If
     the CascadeButtonGadget is in a MenuBar and the MenuBar does not  have  fo-
     cus,  the	MAlt  modifier must be pressed with the mnemonic.  Mnemonics are
     typically used to interact with a menu using the keyboard.

     If a CascadeButtonGadget is in a Pulldown or Popup menu pane and there is a
     submenu attached, the XmNmarginBottom, XmNmarginLeft,  XmNmarginRight,  and
     XmNmarginTop  resources  may enlarge to accommodate XmNcascadePixmap.  XmN-
     marginWidth defaults to 6 if this resource is in a MenuBar;  otherwise,  it
     takes LabelGadget's default, which is 2.

     CascadeButtonGadget  uses	the  XmQTmenuSystem  and  XmQTspecifyRenderTable
     traits.

   Classes
     CascadeButtonGadget inherits behavior, resources, and traits from	the  Ob-
     ject, RectObj, XmGadget, and XmLabelGadget classes.

     The class pointer is xmCascadeButtonGadgetClass.

     The class name is XmCascadeButtonGadget.

   New Resources
     The  following table defines a set of widget resources used by the program-
     mer to specify data. The programmer can also set the  resource  values  for
     the inherited classes to set attributes for this widget. To reference a re-
     source by name or by class in a .Xdefaults file, remove the XmN or XmC pre-
     fix 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 be-
     tween words).  The codes in the access column indicate  if  the  given  re-
     source  can  be set at creation time (C), set by using XtSetValues (S), re-
     trieved by using XtGetValues (G), or is not applicable (N/A).

     +----------------------------------------------------------------------------+
     |			    |	 XmCascadeButtonGadget	       |	 |	  |
     | Name		    | Class	      | Type	       | Default | Access |
     +----------------------+-----------------+----------------+---------+--------+
     | XmNactivateCallback  | XmCCallback     | XtCallbackList | NULL	 | C	  |
     +----------------------+-----------------+----------------+---------+--------+
     | XmNcascadePixmap     | XmCPixmap       | Pixmap	       | dynamic | CSG	  |
     +----------------------+-----------------+----------------+---------+--------+
     | XmNcascadingCallback | XmCCallback     | XtCallbackList | NULL	 | C	  |
     +----------------------+-----------------+----------------+---------+--------+
     | XmNmappingDelay	    | XmCMappingDelay | int	       | 180 ms  | CSG	  |
     +----------------------+-----------------+----------------+---------+--------+
     | XmNsubMenuId	    | XmCMenuWidget   | Widget	       | NULL	 | CSG	  |
     +----------------------+-----------------+----------------+---------+--------+
     +----------------------+-----------------+----------------+---------+--------+

     XmNactivateCallback
	       Specifies the list of callbacks that is called when the user  ac-
	       tivates the CascadeButtonGadget, and there is no submenu attached
	       to  pop up. The activation occurs when a mouse button is released
	       or when the mnemonic associated with the  gadget  is  typed.  The
	       specific  mouse	button	depends  on information in the RowColumn
	       parent. The reason sent by the callback is XmCR_ACTIVATE.

     XmNcascadePixmap
	       Specifies the cascade pixmap displayed on one end of  the  gadget
	       when  a	CascadeButtonGadget  is  used within a Popup or Pulldown
	       menu pane and a submenu is attached.  The LabelGadget  class  re-
	       sources	XmNmarginBottom, XmNmarginLeft, XmNmarginRight, and XmN-
	       marginTop may be modified to ensure that room  is  left	for  the
	       cascade	pixmap.   The default cascade pixmap in menus other than
	       option menus is an arrow pointing to the side of the  menu  where
	       the submenu will appear.  The default for the CascadeButtonGadget
	       in an option menu is XmUNSPECIFIED_PIXMAP.

	       The positioning of the cascade pixmap to either the left of right
	       of the widget, and the direction of the arrow, depend on the XmN-
	       layoutDirection resource of the MenuShell.

     XmNcascadingCallback
	       Specifies  the list of callbacks that is called just prior to the
	       mapping of the submenu associated with  the  CascadeButtonGadget.
	       The reason sent by the callback is XmCR_CASCADING.

     XmNmappingDelay
	       Specifies  the  amount  of  time, in milliseconds, between when a
	       CascadeButtonGadget becomes armed and when it maps  its	submenu.
	       This  delay  is	used  only  when the gadget is within a Popup or
	       Pulldown menu pane.  The value must not be negative.

     XmNsubMenuId
	       Specifies the widget ID for the Pulldown menu pane to be  associ-
	       ated  with  this  CascadeButtonGadget. The specified menu pane is
	       displayed when the CascadeButtonGadget becomes  armed.  The  menu
	       pane  must  have  been created with the appropriate parentage de-
	       pending on the type of menu  used.  See	XmCreatePulldownMenu(3),
	       XmCreatePopupMenu(3), and XmCreateOptionMenu(3) for more informa-
	       tion on the menu systems.

   Inherited Resources
     CascadeButtonGadget  inherits  behavior and resources from the superclasses
     described in the following tables.  For a complete description of each  re-
     source, refer to the reference page for that superclass.

     +-----------------------------------------------------------------------------------------------------------+
     |				 |	      XmLabelGadget Resource Set	 |			|	 |
     | Name			 | Class		     | Type		 | Default		| Access |
     +---------------------------+---------------------------+-------------------+----------------------+--------+
     | XmNaccelerator		 | XmCAccelerator	     | String		 | NULL 		| N/A	 |
     +---------------------------+---------------------------+-------------------+----------------------+--------+
     | XmNacceleratorText	 | XmCAcceleratorText	     | XmString 	 | NULL 		| N/A	 |
     +---------------------------+---------------------------+-------------------+----------------------+--------+
     | XmNalignment		 | XmCAlignment 	     | unsigned char	 | dynamic		| CSG	 |
     +---------------------------+---------------------------+-------------------+----------------------+--------+
     | XmNfontList		 | XmCFontList		     | XmFontList	 | dynamic		| CSG	 |
     +---------------------------+---------------------------+-------------------+----------------------+--------+
     | XmNlabelInsensitivePixmap | XmCLabelInsensitivePixmap | Pixmap		 | XmUNSPECIFIED_PIXMAP | CSG	 |
     +---------------------------+---------------------------+-------------------+----------------------+--------+
     | XmNlabelPixmap		 | XmCLabelPixmap	     | Pixmap		 | XmUNSPECIFIED_PIXMAP | CSG	 |
     +---------------------------+---------------------------+-------------------+----------------------+--------+
     | XmNlabelString		 | XmCXmString		     | XmString 	 | dynamic		| CSG	 |
     +---------------------------+---------------------------+-------------------+----------------------+--------+
     | XmNlabelType		 | XmCLabelType 	     | unsigned char	 | XmSTRING		| CSG	 |
     +---------------------------+---------------------------+-------------------+----------------------+--------+
     | XmNmarginBottom		 | XmCMarginBottom	     | Dimension	 | dynamic		| CSG	 |
     +---------------------------+---------------------------+-------------------+----------------------+--------+
     | XmNmarginHeight		 | XmCMarginHeight	     | Dimension	 | 2			| CSG	 |
     +---------------------------+---------------------------+-------------------+----------------------+--------+
     | XmNmarginLeft		 | XmCMarginLeft	     | Dimension	 | 0			| CSG	 |
     +---------------------------+---------------------------+-------------------+----------------------+--------+
     | XmNmarginRight		 | XmCMarginRight	     | Dimension	 | dynamic		| CSG	 |
     +---------------------------+---------------------------+-------------------+----------------------+--------+
     | XmNmarginTop		 | XmCMarginTop 	     | Dimension	 | dynamic		| CSG	 |
     +---------------------------+---------------------------+-------------------+----------------------+--------+
     | XmNmarginWidth		 | XmCMarginWidth	     | Dimension	 | dynamic		| CSG	 |
     +---------------------------+---------------------------+-------------------+----------------------+--------+
     | XmNmnemonic		 | XmCMnemonic		     | KeySym		 | NULL 		| CSG	 |
     +---------------------------+---------------------------+-------------------+----------------------+--------+
     | XmNmnemonicCharSet	 | XmCMnemonicCharSet	     | String		 | dynamic		| CSG	 |
     +---------------------------+---------------------------+-------------------+----------------------+--------+
     | XmNrecomputeSize 	 | XmCRecomputeSize	     | Boolean		 | True 		| CSG	 |
     +---------------------------+---------------------------+-------------------+----------------------+--------+
     | XmNrenderTable		 | XmCRenderTable	     | XmRenderTable	 | dynamic		| CSG	 |
     +---------------------------+---------------------------+-------------------+----------------------+--------+
     | XmNstringDirection	 | XmCStringDirection	     | XmStringDirection | dynamic		| CSG	 |
     +---------------------------+---------------------------+-------------------+----------------------+--------+
     +---------------------------+---------------------------+-------------------+----------------------+--------+

     +--------------------------------------------------------------------------------------------------+
     |			     |		    XmGadget Resource Set	|		       |	|
     | Name		     | Class		     | Type		| Default	       | Access |
     +-----------------------+-----------------------+------------------+----------------------+--------+
     | XmNbackground	     | XmCBackground	     | Pixel		| dynamic	       | CSG	|
     +-----------------------+-----------------------+------------------+----------------------+--------+
     | XmNbackgroundPixmap   | XmCPixmap	     | Pixmap		| XmUNSPECIFIED_PIXMAP | CSG	|
     +-----------------------+-----------------------+------------------+----------------------+--------+
     | XmNbottomShadowColor  | XmCBottomShadowColor  | Pixel		| dynamic	       | CSG	|
     +-----------------------+-----------------------+------------------+----------------------+--------+
     | XmNbottomShadowPixmap | XmCBottomShadowPixmap | Pixmap		| dynamic	       | CSG	|
     +-----------------------+-----------------------+------------------+----------------------+--------+
     | XmNhelpCallback	     | XmCCallback	     | XtCallbackList	| NULL		       | C	|
     +-----------------------+-----------------------+------------------+----------------------+--------+
     | XmNforeground	     | XmCForeground	     | Pixel		| dynamic	       | CSG	|
     +-----------------------+-----------------------+------------------+----------------------+--------+
     | XmNhighlightColor     | XmCHighlightColor     | Pixel		| dynamic	       | CSG	|
     +-----------------------+-----------------------+------------------+----------------------+--------+
     | XmNhighlightOnEnter   | XmCHighlightOnEnter   | Boolean		| False 	       | CSG	|
     +-----------------------+-----------------------+------------------+----------------------+--------+
     | XmNhighlightPixmap    | XmCHighlightPixmap    | Pixmap		| dynamic	       | CSG	|
     +-----------------------+-----------------------+------------------+----------------------+--------+
     | XmNhighlightThickness | XmCHighlightThickness | Dimension	| 0		       | CSG	|
     +-----------------------+-----------------------+------------------+----------------------+--------+
     | XmNlayoutDirection    | XmNCLayoutDirection   | XmDirection	| dynamic	       | CG	|
     +-----------------------+-----------------------+------------------+----------------------+--------+
     | XmNnavigationType     | XmCNavigationType     | XmNavigationType | XmNONE	       | CSG	|
     +-----------------------+-----------------------+------------------+----------------------+--------+
     | XmNshadowThickness    | XmCShadowThickness    | Dimension	| 2		       | CSG	|
     +-----------------------+-----------------------+------------------+----------------------+--------+
     | XmNtopShadowColor     | XmCTopShadowColor     | Pixel		| dynamic	       | CSG	|
     +-----------------------+-----------------------+------------------+----------------------+--------+
     | XmNtopShadowPixmap    | XmCTopShadowPixmap    | Pixmap		| dynamic	       | CSG	|
     +-----------------------+-----------------------+------------------+----------------------+--------+
     | XmNtraversalOn	     | XmCTraversalOn	     | Boolean		| True		       | CSG	|
     +-----------------------+-----------------------+------------------+----------------------+--------+
     | XmNunitType	     | XmCUnitType	     | unsigned char	| dynamic	       | CSG	|
     +-----------------------+-----------------------+------------------+----------------------+--------+
     | XmNuserData	     | XmCUserData	     | XtPointer	| NULL		       | CSG	|
     +-----------------------+-----------------------+------------------+----------------------+--------+
     +-----------------------+-----------------------+------------------+----------------------+--------+

     +----------------------------------------------------------------------+
     |			    |  RectObj Resource Set	 |	   |	    |
     | Name		    | Class	     | Type	 | Default | Access |
     +----------------------+----------------+-----------+---------+--------+
     | XmNancestorSensitive | XmCSensitive   | Boolean	 | dynamic | G	    |
     +----------------------+----------------+-----------+---------+--------+
     | XmNborderWidth	    | XmCBorderWidth | Dimension | 0	   | N/A    |
     +----------------------+----------------+-----------+---------+--------+
     | XmNheight	    | XmCHeight      | Dimension | dynamic | CSG    |
     +----------------------+----------------+-----------+---------+--------+
     | XmNsensitive	    | XmCSensitive   | Boolean	 | True    | CSG    |
     +----------------------+----------------+-----------+---------+--------+
     | XmNwidth 	    | XmCWidth	     | Dimension | dynamic | CSG    |
     +----------------------+----------------+-----------+---------+--------+
     | XmNx		    | XmCPosition    | Position  | 0	   | CSG    |
     +----------------------+----------------+-----------+---------+--------+
     | XmNy		    | XmCPosition    | Position  | 0	   | CSG    |
     +----------------------+----------------+-----------+---------+--------+
     +----------------------+----------------+-----------+---------+--------+

     +----------------------------------------------------------------------+
     |			  |    Object Resource Set	 |	   |	    |
     | Name		  | Class	| Type		 | Default | Access |
     +--------------------+-------------+----------------+---------+--------+
     | XmNdestroyCallback | XmCCallback | XtCallbackList | NULL    | C	    |
     +--------------------+-------------+----------------+---------+--------+
     +--------------------+-------------+----------------+---------+--------+

   Callback Information
     A pointer to the following structure is passed to each callback:

     typedef struct
     {
	     int reason;
	     XEvent * event;
     } XmAnyCallbackStruct;

     reason    Indicates why the callback was invoked

     event     Points  to  the	XEvent that triggered the callback or is NULL if
	       this callback was not triggered by an XEvent

   Behavior
     XmCascadeButtonGadget includes behavior from XmGadget.  XmCascadeButton in-
     cludes the menu traversal behavior from XmLabel.  Additional  XmCascadeBut-
     tonGadget behavior is described in the following list (in a Popup menu sys-
     tem, <Btn3> also performs the <Btn1> actions).

     <Btn1Down>:
	       Unposts	any  menus posted by the parent menu.  Arms the Cascade-
	       ButtonGadget, posts the associated submenu, enables mouse traver-
	       sal, and, in a MenuBar, arms the MenuBar.  If the menu is already
	       active, this event disables keyboard traversal for the  menu  and
	       returns the menu to mouse traversal mode.

     <Btn1Up>: Calls  the  callbacks  in XmNcascadingCallback, posts the submenu
	       attached to the CascadeButtonGadget and enables keyboard  traver-
	       sal  within the menu.  If the CascadeButtonGadget does not have a
	       submenu attached, this action calls the callbacks in XmNactivate-
	       Callback, activates  the  CascadeButtonGadget,  and  unposts  all
	       posted menus in the cascade.

     <Key><osfActivate>:
	       Calls  the  callbacks in XmNcascadingCallback, and posts the sub-
	       menu attached to the CascadeButtonGadget if keyboard traversal is
	       enabled in the menu.  If the CascadeButtonGadget does not have  a
	       submenu attached, this action calls the callbacks in XmNactivate-
	       Callback,  activates  the  CascadeButtonGadget,	and  unposts all
	       posted menus in the cascade.  This action applies only to gadgets
	       in MenuBars, PulldownMenus, and PopupMenus. For a  CascadeButton-
	       Gadget  in an OptionMenu, if the parent is a manager, this action
	       passes the event to the parent.

     <Key><osfSelect>:
	       Calls the callbacks in XmNcascadingCallback, and posts  the  sub-
	       menu attached to the CascadeButtonGadget if keyboard traversal is
	       enabled	in the menu.  If the CascadeButtonGadget does not have a
	       submenu attached, this action calls the callbacks in XmNactivate-
	       Callback, activates  the  CascadeButtonGadget,  and  unposts  all
	       posted menus in the cascade.

     <Key><osfHelp>:
	       Unposts	all  menus  in	the menu hierarchy and, when the shell's
	       keyboard focus policy is XmEXPLICIT, restores keyboard  focus  to
	       the widget that had the focus before the menu system was entered.
	       Calls  the  callbacks for XmNhelpCallback if any exist.	If there
	       are no help callbacks for this widget, this action calls the help
	       callbacks for the nearest ancestor that has them.

     <Key><osfCancel>:
	       In a MenuBar, disarms the CascadeButtonGadget and the  menu  and,
	       when  the  shell's  keyboard focus policy is XmEXPLICIT, restores
	       keyboard focus to the widget that had the focus before  the  menu
	       was  entered.  For a CascadeButtonGadget in an OptionMenu, if the
	       parent is a manager, this action passes the event to the parent.

	       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 XmEXPLICIT, restores keyboard
	       focus 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 restores keyboard focus
	       to the widget from which the menu was posted.

     <Enter>:  If keyboard traversal is enabled does nothing.  Otherwise,  in  a
	       MenuBar,  unposts  any  MenuPanes associated with another MenuBar
	       entry, arms the CascadeButtonGadget,  and  posts  the  associated
	       submenu.   In other menus, arms the CascadeButtonGadget and posts
	       the associated submenu after the delay specified by XmNmappingDe-
	       lay.

     <Leave>:  If keyboard traversal is enabled does nothing.  Otherwise,  in  a
	       MenuBar,  disarms  the CascadeButtonGadget if the submenu associ-
	       ated with the CascadeButtonGadget is not currently posted  or  if
	       there is no submenu associated with the CascadeButtonGadget.

	       In  other menus, if the pointer moves anywhere except into a sub-
	       menu associated with the CascadeButtonGadget, the  CascadeButton-
	       Gadget is disarmed and its submenu is unposted.

   Virtual Bindings
     The  bindings  for virtual keys are vendor specific.  For information about
     bindings for virtual buttons and keys, see VirtualBindings(3).

RELATED
     Object(3), RectObj(3), XmCascadeButtonHighlight(3),  XmCreateCascadeButton-
     Gadget(3),  XmCreatePulldownMenu(3),  XmCreatePopupMenu(3), XmCreateOption-
     Menu(3), XmGadget(3), XmLabelGadget(3), XmRowColumn(3),  XmVaCreateCascade-
     ButtonGadget(3), and XmVaCreateManagedCascadeButtonGadget(3).

							XmCascadeButtonGadget(3)

Want to link to this manual page? Use this URL:
<https://man.freebsd.org/cgi/man.cgi?query=XmCascadeButtonGadget&sektion=3&manpath=FreeBSD+Ports+15.1.quarterly>

home | help