Museum

Home

Lab Overview

Retrotechnology Articles

Online Manuals

⇒ XmCascadeButton(3X) — IRIX 6.5.3f

Media Vault

Software Library

Restoration Projects

Artifacts Sought



     XmCascadeButton(3X)       UNIX System V       XmCascadeButton(3X)



     NAME
          XmCascadeButton - The CascadeButton widget class

     SYNOPSIS
          #include <Xm/CascadeB.h>


     VERSION
          This page documents version 1.2 of the Motif library.

     DESCRIPTION
          CascadeButton links two MenuPanes or a MenuBar to a
          MenuPane.

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

          It is the only widget that can have a Pulldown MenuPane
          attached to it as a submenu.  The submenu is displayed when
          this widget is activated within a MenuBar, a PopupMenu, or a
          PulldownMenu.  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 a MenuBar.

          The default behavior associated with a CascadeButton depends
          on the type of menu system in which it resides.  By default,
          BSelect controls the behavior of the CascadeButton.  In
          addition, BMenu controls the behavior of the CascadeButton
          if it resides in a PopupMenu system.  The actual mouse
          button used is determined by its RowColumn parent.

          A CascadeButton'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 CascadeButton within a Pulldown or Popup MenuPane is
          armed as the result of the user moving the mouse pointer
          into the widget, it does not immediately display its
          submenu.  Instead, it waits a short amount of time to see if
          the arming was temporary (that is, the user was simply
          passing through the widget), or whether the user really
          wanted the submenu posted.  This time delay is configurable
          via XmNmappingDelay.

          CascadeButton provides a single mechanism for activating the
          widget from the keyboard.  This mechanism is referred to as
          a keyboard mnemonic.  If a mnemonic has been specified for
          the widget, the user may activate the CascadeButton by



     Page 1                                          (printed 4/30/98)





     XmCascadeButton(3X)       UNIX System V       XmCascadeButton(3X)



          simply typing the mnemonic while the CascadeButton is
          visible.  If the CascadeButton is in a MenuBar and the
          MenuBar does not have the focus, the MAlt modifier must be
          pressed with the mnemonic.  Mnemonics are typically used to
          interact with a menu via the keyboard interface.

          If 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
          Label's default, which is 2.

        Classes
          CascadeButton inherits behavior and resources from Core,
          XmPrimitive, and XmLabel classes.

          The class pointer is xmCascadeButtonWidgetClass.

          The class name is XmCascadeButton.

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

                            XmCascadeButton Resource Set
     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 CascadeButton widget,
                    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 widget.



     Page 2                                          (printed 4/30/98)





     XmCascadeButton(3X)       UNIX System V       XmCascadeButton(3X)



                    The specific mouse button depends on information
                    in the RowColumn parent.  The reason sent by the
                    callback is XmCRACTIVATE.

          XmNcascadePixmap
                    Specifies the cascade pixmap displayed on one end
                    of the widget when a CascadeButton is used within
                    a Popup or Pulldown MenuPane and a submenu is
                    attached.  The Label class resources
                    XmNmarginBottom, XmNmarginLeft, XmNmarginRight,
                    and XmNmarginTop may be modified to ensure that
                    room is left for the cascade pixmap.  The default
                    cascade pixmap is an arrow pointing to the side of
                    the menu where the submenu will appear.

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

          XmNmappingDelay
                    Specifies the amount of time, in milliseconds,
                    between when a CascadeButton becomes armed and
                    when it maps its submenu.  This delay is used only
                    when the widget 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 CascadeButton.  The
                    specified MenuPane is displayed when the
                    CascadeButton becomes armed.  The MenuPane must
                    have been created with the appropriate parentage
                    depending on the type of menu used.  See
                    XmCreateMenuBar(3X), XmCreatePulldownMenu(3X), and
                    XmCreatePopupMenu(3X) for more information on the
                    menu systems.


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

                                                XmLabel Resource Set
     Name                        Class                       Type                Default                  Access
     ___________________________________________________________________________________________________________
     XmNaccelerator              XmCAccelerator              String              NULL                     N/A
     XmNacceleratorText          XmCAcceleratorText          XmString            NULL                     N/A





     Page 3                                          (printed 4/30/98)





     XmCascadeButton(3X)       UNIX System V       XmCascadeButton(3X)



     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              XmFONTLIST_DEFAULT_TAG   CSG
     XmNrecomputeSize            XmCRecomputeSize            Boolean             True                     CSG
     XmNstringDirection          XmCStringDirection          XmStringDirection   dynamic                  CSG

                                         XmPrimitive Resource Set
     Name                    Class                   Type               Default                Access
     ________________________________________________________________________________________________
     XmNbottomShadowColor    XmCBottomShadowColor    Pixel              dynamic                CSG
     XmNbottomShadowPixmap   XmCBottomShadowPixmap   Pixmap             XmUNSPECIFIED_PIXMAP   CSG
     XmNforeground           XmCForeground           Pixel              dynamic                CSG
     XmNhelpCallback         XmCCallback             XtCallbackList     NULL                   C
     XmNhighlightColor       XmCHighlightColor       Pixel              dynamic                CSG
     XmNhighlightOnEnter     XmCHighlightOnEnter     Boolean            False                  CSG
     XmNhighlightPixmap      XmCHighlightPixmap      Pixmap             dynamic                CSG
     XmNhighlightThickness   XmCHighlightThickness   Dimension          0                      CSG
     XmNnavigationType       XmCNavigationType       XmNavigationType   XmNONE                 CSG
     XmNshadowThickness      XmCShadowThickness      Dimension          2                      CSG
     XmNtopShadowColor       XmCTopShadowColor       Pixel              dynamic                CSG
     XmNtopShadowPixmap      XmCTopShadowPixmap      Pixmap             dynamic                CSG
     XmNtraversalOn          XmCTraversalOn          Boolean            dynamic                G
     XmNunitType             XmCUnitType             unsigned char      dynamic                CSG
     XmNuserData             XmCUserData             XtPointer          NULL                   CSG

                                                   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





     Page 4                                          (printed 4/30/98)





     XmCascadeButton(3X)       UNIX System V       XmCascadeButton(3X)



     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

        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 due to an
                 XEvent.


        Translations
          XmCascadeButton includes translations from Primitive.
          XmCascadeButton includes the menu traversal translations
          from XmLabel.  These translations may not directly
          correspond to a translation table.

          Note that altering translations in #override or #augment
          mode is undefined.

          The translations for a CascadeButton in a MenuBar are listed
          below.  These translations may not directly correspond to a
          translation table.

          BSelect Press: MenuBarSelect()
          BSelect Release:DoSelect()
          KActivate:     KeySelect()
          KSelect:       KeySelect()
          KHelp:         Help()
          MAny KCancel:  CleanupMenuBar()


          The translations for a CascadeButton in a PullDown or Popup
          MenuPane are listed below.  In a Popup menu system, BMenu
          also performs the BSelect actions.  These translations may
          not directly correspond to a translation table.



     Page 5                                          (printed 4/30/98)





     XmCascadeButton(3X)       UNIX System V       XmCascadeButton(3X)



          BSelect Press: StartDrag()
          BSelect Release:DoSelect()
          KActivate:     KeySelect()
          KSelect:       KeySelect()
          KHelp:         Help()
          MAny KCancel:  CleanupMenuBar()


        Action Routines
          The XmCascadeButton action routines are described below:


          CleanupMenuBar():
                    In a MenuBar, disarms the CascadeButton 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.

                    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, when
                    the shell's keyboard focus policy is XmEXPLICT,
                    restores keyboard focus to the widget from which
                    the menu was posted.

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

          Help():   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.

          KeySelect():



     Page 6                                          (printed 4/30/98)





     XmCascadeButton(3X)       UNIX System V       XmCascadeButton(3X)



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

          MenuBarSelect():
                    Unposts any menus posted by the parent menu.  Arms
                    both the CascadeButton and the MenuBar, posts the
                    associated submenu, and enables mouse traversal.
                    If the menu is already active, this event disables
                    keyboard traversal for the menu and returns the
                    menu to mouse traversal mode.

          StartDrag():
                    Arms the CascadeButton, posts the associated
                    submenu, and enables mouse traversal.  If the menu
                    is already active, this event disables keyboard
                    traversal for the menu and returns the menu to
                    mouse traversal mode.


        Additional Behavior
          Posting a submenu calls the XmNcascadingCallback callbacks.
          This widget has the additional behavior described below:


          <EnterWindow>:
                    If keyboard traversal is enabled does nothing.
                    Otherwise, in a MenuBar that is armed, unposts any
                    MenuPanes associated with another MenuBar entry,
                    arms the CascadeButton, and posts the associated
                    submenu.  In other menus, arms the CascadeButton
                    and posts the associated submenu after the delay
                    specified by XmNmappingDelay.

          <LeaveWindow>:
                    If keyboard traversal is enabled does nothing.
                    Otherwise, in a MenuBar that is armed, disarms the
                    CascadeButton if the submenu associated with the
                    CascadeButton is not currently posted or if there
                    is no submenu associated with the CascadeButton.

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


        Virtual Bindings



     Page 7                                          (printed 4/30/98)





     XmCascadeButton(3X)       UNIX System V       XmCascadeButton(3X)



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

     RELATED INFORMATION
          Core(3X), XmCascadeButtonHighlight(3X),
          XmCreateCascadeButton(3X),XmCreateMenuBar(3X),
          XmCreatePulldownMenu(3X), XmCreatePopupMenu(3X),
          XmLabel(3X), XmPrimitive(3X), and XmRowColumn(3X).














































     Page 8                                          (printed 4/30/98)



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