Museum

Home

Lab Overview

Retrotechnology Articles

Online Manuals

⇒ XmCascadeButtonGadget(3X) — DG/UX 5.4R2.01

Media Vault

Software Library

Restoration Projects

Artifacts Sought



     XmCascadeButtonGadget(3X)      OSF      XmCascadeButtonGadget(3X)



     NAME
          XmCascadeButtonGadget-The CascadeButtonGadget widget class

     SYNOPSIS
          #include <Xm/CascadeBG.h>


     DESCRIPTION
          CascadeButtonGadget links two MenuPanes, a MenuBar to a
          MenuPane, or an OptionMenu to a MenuPane.

          It is used in menu systems and must have a RowColumn parent
          with its XmNrowColumnType resource set to XmMENUBAR,
          XmMENUPOPUP, XmMENUPULLDOWN, or XmMENUOPTION.

          It is the only gadget that can have a Pulldown MenuPane
          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 label or pixmap
          and a cascading indicator when it is in a Popup or Pulldown
          MenuPane; or it can include only a label or a pixmap when it
          is in an OptionMenu.

          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
          behavior of the CascadeButtonGadget if it resides in a
          PopupMenu system.  The actual mouse button used is
          determined by its RowColumn parent.

          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 attached, it
          simply changes its visuals.

          When a CascadeButtonGadget within a Pulldown or Popup
          MenuPane 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 via 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 the focus, the MAlt modifier must be



     1                                                (printed 6/8/92)





     XmCascadeButtonGadget(3X)      OSF      XmCascadeButtonGadget(3X)



          pressed with the mnemonic.  Mnemonics are typically used to
          interact with a menu via the keyboard.

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

        Classes
          CascadeButtonGadget inherits behavior and resources from
          Object, 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 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).

                               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 activates the CascadeButtonGadget,
                    and there is no submenu attached to pop up.  The
                    activation occurs by releasing a mouse button or
                    by typing the mnemonic associated with the gadget.
                    The specific mouse button depends on information
                    in the RowColumn parent.  The reason sent by the
                    callback is XmCRACTIVATE.



     2                                                (printed 6/8/92)





     XmCascadeButtonGadget(3X)      OSF      XmCascadeButtonGadget(3X)



          XmNcascadePixmap
                    Specifies the cascade pixmap displayed on one end
                    of the gadget when a CascadeButtonGadget is used
                    within a Popup or Pulldown MenuPane and a submenu
                    is attached.  The LabelGadget class resources
                    XmNmarginBottom, XmNmarginLeft, XmNmarginRight,
                    and XmNmarginTop 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
                    XmUNSPECIFIEDPIXMAP.

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

          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
                    MenuPane.  The value must not be negative.

          XmNsubMenuId
                    Specifies the widget ID for the Pulldown MenuPane
                    to be associated with this CascadeButtonGadget.
                    The specified MenuPane is displayed when the
                    CascadeButtonGadget becomes armed.  The MenuPane
                    must have been created with the appropriate
                    parentage depending on the type of menu used.  See
                    XmCreatePulldownMenu(3X), XmCreatePopupMenu(3X),
                    and XmCreateOptionMenu(3X) for more information on
                    the menu systems.


        Inherited Resources
          CascadeButtonGadget inherits behavior and resources from the
          following superclasses.  For a complete description of each
          resource, refer to the man page for that superclass.

                                            XmLabelGadget Resource Set
     Name                        Class                       Type                Default                Access
     _________________________________________________________________________________________________________
     XmNaccelerator              XmCAccelerator              String              NULL                   N/A







     3                                                (printed 6/8/92)





     XmCascadeButtonGadget(3X)      OSF      XmCascadeButtonGadget(3X)



     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
     XmNstringDirection          XmCStringDirection          XmStringDirection   dynamic                CSG

                                    XmGadget Resource Set
     Name                    Class                   Type               Default   Access
     ___________________________________________________________________________________
     XmNbottomShadowColor    XmCBottomShadowColor    Pixel              dynamic   G
     XmNhelpCallback         XmCCallback             XtCallbackList     NULL      C
     XmNhighlightColor       XmCHighlightColor       Pixel              dynamic   G
     XmNhighlightOnEnter     XmCHighlightOnEnter     Boolean            False     CSG
     XmNhighlightThickness   XmCHighlightThickness   Dimension          0         CSG
     XmNnavigationType       XmCNavigationType       XmNavigationType   XmNONE    CSG
     XmNshadowThickness      XmCShadowThickness      Dimension          2         CSG
     XmNtopShadowColor       XmCTopShadowColor       Pixel              dynamic   G
     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         CSG
      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:



     4                                                (printed 6/8/92)





     XmCascadeButtonGadget(3X)      OSF      XmCascadeButtonGadget(3X)



          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 includes the menu traversal behavior from
          XmLabel.  Additional XmCascadeButtonGadget behavior is
          described below (in a Popup menu system, BMenu also performs
          the BSelect actions):


          BSelect Press:
                    Unposts any menus posted by the parent menu.  Arms
                    the CascadeButtonGadget, posts the associated
                    submenu, enables mouse traversal, 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.

          BSelect Release:
                    Calls the callbacks in XmNcascadingCallback, posts
                    the submenu attached to the CascadeButtonGadget
                    and enables keyboard traversal within the menu.
                    If the CascadeButtonGadget does not have a submenu
                    attached, calls the callbacks in
                    XmNactivateCallback, the CascadeButtonGadget is
                    activated and all posted menus in the cascade are
                    unposted.

          KActivate:
                    Calls the callbacks in XmNcascadingCallback, and
                    posts the submenu attached to the
                    CascadeButtonGadget if keyboard traversal is
                    enabled in the menu.  If the CascadeButtonGadget
                    does not have a submenu attached, calls the
                    callbacks in XmNactivateCallback, the
                    CascadeButtonGadget is activated and all posted
                    menus in the cascade are unposted.  This action
                    applies only to gadgets in MenuBars,
                    PulldownMenus, and PopupMenus.  For a



     5                                                (printed 6/8/92)





     XmCascadeButtonGadget(3X)      OSF      XmCascadeButtonGadget(3X)



                    CascadeButtonGadget in an OptionMenu, if the
                    parent is a manager, this action passes the event
                    to the parent.

          KSelect:  Calls the callbacks in XmNcascadingCallback, and
                    posts the submenu attached to the
                    CascadeButtonGadget if keyboard traversal is
                    enabled in the menu.  If the CascadeButtonGadget
                    does not have a submenu attached, calls the
                    callbacks in XmNactivateCallback, the
                    CascadeButtonGadget is activated and all posted
                    menus in the cascade are unposted.

          KHelp:    Unposts all menus in the menu hierarchy and, when
                    the shell's keyboard focus policy is XmEXPLICT,
                    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.

          MAny KCancel:
                    In a MenuBar, disarms the CascadeButtonGadget and
                    the menu and, when the shell's keyboard focus
                    policy is XmEXPLICT, 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 XmEXPLICT,
                    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 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
                    XmNmappingDelay.




     6                                                (printed 6/8/92)





     XmCascadeButtonGadget(3X)      OSF      XmCascadeButtonGadget(3X)



          <Leave>:  If keyboard traversal is enabled does nothing.
                    Otherwise, in a MenuBar, disarms the
                    CascadeButtonGadget if the submenu associated 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 submenu associated with the
                    CascadeButtonGadget, the CascadeButtonGadget 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(3X).

     RELATED INFORMATION
          Object(3X), RectObj(3X), XmCascadeButtonHighlight(3),
          XmCreateCascadeButtonGadget(3X), XmCreatePulldownMenu(3X),
          XmCreatePopupMenu(3X), XmCreateOptionMenu(3X),XmGadget(3X),
          XmLabelGadget(3X), and XmRowColumn(3X).
































     7                                                (printed 6/8/92)



Typewritten Software • bear@typewritten.org • Edmonds, WA 98026