XmPushButtonGadget(3X)

XmPushButtonGadget - The PushButtonGadget widget class

As shipped in IRIX 6.5.15. Added in IRIX 6.5.5.

     NAME
          XmPushButtonGadget - The PushButtonGadget widget class

     SYNOPSIS
          #include <Xm/PushBG.h>

     VERSION
          This page documents Motif 2.1.

     DESCRIPTION
          PushButtonGadget issues commands within an application.  It
          consists of a text label or pixmap surrounded by a border
          shadow.  When PushButtonGadget is selected, the shadow
          changes to give the appearance that the PushButtonGadget has
          been pressed in. When PushButtonGadget is unselected, the
          shadow changes to give the appearance that the
          PushButtonGadget is out.

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

          Thickness for a second shadow may be specified with the
          XmNshowAsDefault resource. If it has a nonzero value, the
          Label's XmNmarginLeft, XmNmarginRight, XmNmarginTop, and
          XmNmarginBottom resources may be modified to accommodate the
          second shadow.

          If an initial value is specified for XmNarmPixmap but not
          for XmNlabelPixmap, the XmNarmPixmap value is used for
          XmNlabelPixmap.

          PushButtonGadget uses the XmQTmenuSystem and
          XmQTspecifyRenderTable traits, and holds the XmQactivatable,
          XmQTmenuSavvy, and XmQTtakesDefault traits.

        Classes
          PushButtonGadget inherits behavior, resources, and traits
          from Object, RectObj, XmGadgetand XmLabelGadget.

          The class pointer is xmPushButtonGadgetClass.

          The class name is XmPushButtonGadget.

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

                                                   XmPushButtonGadget Resource Set
          Name                              Class                             Type             Default                Access
          XmNactivateCallback               XmCCallback                       XtCallbackList   NULL                   C
          XmNarmCallback                    XmCCallback                       XtCallbackList   NULL                   C
          XmNarmColor                       XmCArmColor                       Pixel            dynamic                CSG
          XmNarmPixmap                      XmCArmPixmap                      Pixmap           XmUNSPECIFIED_PIXMAP   CSG
          XmNdefaultButtonShadowThickness   XmCdefaultButtonShadowThickness   Dimension        dynamic                CSG
          XmNdisarmCallback                 XmCCallback                       XtCallbackList   NULL                   C
          XmNfillOnArm                      XmCFillOnArm                      Boolean          True                   CSG
          XmNmultiClick                     XmCMultiClick                     unsigned char    dynamic                CSG
          XmNshowAsDefault                  XmCShowAsDefault                  Dimension        0                      CSG

          XmNactivateCallback
                    Specifies the list of callbacks that is called
                    when the PushButtonGadget is activated.  It is
                    activated when the user presses and releases the
                    active mouse button while the pointer is inside
                    the PushButtonGadget. Activating PushButtonGadget
                    also disarms it.  For this callback, the reason is
                    XmCR_ACTIVATE.  This callback uses the
                    XmQTactivatable trait.

          XmNarmCallback
                    Specifies the list of callbacks that is called
                    when PushButtonGadget is armed.  It is armed when
                    the user presses the active mouse button while the
                    pointer is inside the PushButtonGadget.  For this
                    callback, the reason is XmCR_ARM.

          XmNarmColor
                    Specifies the color with which to fill the armed
                    button.  XmNfillOnArm must be set to True for this
                    resource to have an effect.  The default for a
                    color display is a color between the background
                    and the bottom shadow color. For a monochrome
                    display, the default is set to the foreground
                    color, and any text in the label appears in the
                    background color when the button is armed.

          XmNarmPixmap
                    Specifies the pixmap to be used as the button face
                    if XmNlabeltype is XmPIXMAP and PushButtonGadget
                    is armed.  This resource is disabled when the
                    PushButtonGadget is in a menu.

          XmNdefaultButtonShadowThickness
                    This resource specifies the width of the default
                    button indicator shadow.  If this resource is 0
                    (zero), the width of the shadow comes from the
                    value of the XmNshowAsDefault resource. If this
                    resource is greater than zero, the
                    XmNshowAsDefault resource is only used to specify
                    whether this button is the default.  The default
                    value is the initial value of XmNshowAsDefault.

          XmNdisarmCallback
                    Specifies the list of callbacks that is called
                    when the PushButtonGadget is disarmed.
                    PushButtonGadget is disarmed when the user presses
                    and releases the active mouse button while the
                    pointer is inside that gadget.  For this callback,
                    the reason is XmCR_DISARM.

          XmNfillOnArm
                    Forces the PushButtonGadget to fill the background
                    of the button with the color specified by
                    XmNarmColor when the button is armed and when this
                    resource is set to True. If it is False, only the
                    top and bottom shadow colors are switched. When
                    the PushButtonGadget is in a menu, this resource
                    is ignored and assumed to be False.

          XmNmultiClick
                    If a button click is followed by another button
                    click within the time span specified by the
                    display's multiclick time, and this resource is
                    set to XmMULTICLICK_DISCARD, the second click is
                    not processed.  If this resource is set to
                    XmMULTICLICK_KEEP, the event is processed and
                    click_count is incremented in the callback
                    structure.  When the button is in a menu, the
                    default is XmMULTICLICK_DISCARD; otherwise, for a
                    button not in a menu, the default value is
                    XmMULTICLICK_KEEP.

          XmNshowAsDefault
                    If XmNdefaultButtonShadowThickness is greater than
                    0 (zero), a value greater than zero in this
                    resource specifies to mark this button as the
                    default button.  If
                    XmNdefaultButtonShadowThickness is 0, a value
                    greater than 0 in this resource specifies to mark
                    this button as the default button with the shadow
                    thickness specified by this resource.  The space
                    between the shadow and the default shadow is equal
                    to the sum of both shadows.  The default value is
                    0.  When the Display resource
                    XmNdefaultButtonEmphasis has a value of
                    XmEXTERNAL_HIGHLIGHT (the default), PushButton
                    draws the location cursor outside of the outer
                    shadow. When this resource has a value of
                    XmINTERNAL_HIGHLIGHT, the highlight is drawn
                    between the inner and outer shadows.  When this
                    value is not 0, the Label XmNmarginLeft,
                    XmNmarginRight, XmNmarginTop, and XmNmarginBottom
                    resources may be modified to accommodate the
                    second shadow.  This resource is disabled when the
                    PushButton is in a menu.

        Inherited Resources
          PushButtonGadget 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.

                                                 XmLabelGadget Resource Set
          Name                        Class                       Type                Default                Access
          XmNaccelerator              XmCAccelerator              String              NULL                   CSG
          XmNacceleratorText          XmCAcceleratorText          XmString            NULL                   CSG
          XmNalignment                XmCAlignment                unsigned char       dynamic                CSG
          XmNfontList                 XmCFontList                 XmFontList          dynamic                CSG
          XmNlabelInsensitivePixmap   XmCLabelInsensitivePixmap   Pixmap              XmUNSPECIFIED_PIXMAP   CSG
          XmNlabelPixmap              XmCLabelPixmap              Pixmap              dynamic                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           dynamic                CSG
          XmNmarginRight              XmCMarginRight              Dimension           dynamic                CSG
          XmNmarginTop                XmCMarginTop                Dimension           dynamic                CSG
          XmNmarginWidth              XmCMarginWidth              Dimension           2                      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          2                      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;
                  int click_count;
          } XmPushButtonCallbackStruct;

          reason    Indicates why the callback was invoked.

          event     Points to the XEvent that triggered the callback.

          click_count
                    Valid only when the reason is XmCR_ACTIVATE.  It
                    contains the number of clicks in the last
                    multiclick sequence if the XmNmultiClick resource
                    is set to XmMULTICLICK_KEEP; otherwise it contains
                    1.  The activate callback is invoked for each
                    click if XmNmultiClickis set to XmMULTICLICK_KEEP.

        Behavior
          XmPushButtonGadget includes behavior from XmGadget.
          XmPushButtonGadget includes menu traversal behavior from
          XmLabelGadget.  Additional behavior for XmPushButtonGadget
          is described in the following list.

          <Btn2Down>:
                    Drags the contents of a PushButtonGadget label,
                    identified when <Btn2> is pressed.  This action is
                    undefined for PushButtonGadgets used in a menu
                    system.

          <Btn1Down>:
                    This action arms the PushButtonGadget.

                    In a menu, this action unposts any menus posted by
                    the PushButtonGadget's parent menu, disables
                    keyboard traversal for the menu, and enables mouse
                    traversal for the menu.  It draws the shadow in
                    the armed state.  Unless the button is already
                    armed, it calls the XmNarmCallbackcallbacks.

                    If the button is not in a menu, this action draws
                    the shadow in the armed state.  If XmNfillOnArm is
                    set to True, it fills the button with the color
                    specified by XmNarmColor.  If XmNlabelType is
                    XmPIXMAP, the XmNarmPixmap is used for the button
                    face.  It calls the XmNarmCallback callbacks.

          <Btn1>(2+):
                    If XmNmultiClick is XmMULTICLICK_DISCARD, this
                    action does nothing.

                    If XmNmultiClick is XmMULTICLICK_KEEP, this action
                    draws the shadow in the armed state.  If the
                    button is not in a menu and if XmNfillOnArm is set
                    to True, it fills the button with the color
                    specified by XmNarmColor.  If XmNlabelType is
                    XmPIXMAP, the XmNarmPixmap is used for the button
                    face.  This action calls the XmNarmCallback
                    callbacks.

          <Btn1Up>: In a menu, this action unposts all menus in the
                    menu hierarchy and activates the PushButtonGadget.
                    It calls the XmNactivateCallback callbacks and
                    then the XmNdisarmCallback callbacks.

                    If the PushButtonGadget is not in a menu, this
                    action draws the shadow in the unarmed state.  If
                    XmNfillOnArm is set to True, the background color
                    reverts to the unarmed color.  If XmNlabelType is
                    XmPIXMAP, the XmNlabelPixmap is used for the
                    button face.  If the pointer is still within the
                    button, this action calls the callbacks for
                    XmNactivateCallbackand XmNdisarmCallback.

          <Btn1Up>(2+):
                    If XmNmultiClick is XmMULTICLICK_DISCARD, this
                    action does nothing.

                    If XmNmultiClick is XmMULTICLICK_KEEP, this action
                    increments click_count in the callback structure
                    and draws the shadow in the unarmed state.  If the
                    button is not in a menu and if XmNfillOnArm is set
                    to True, the background color reverts to the
                    unarmed color.  If XmNlabelType is XmPIXMAP,
                    XmNlabelPixmap is used for the button face.  If
                    the pointer is within the PushButtonGadget, this
                    action calls the callbacks for
                    XmNactivateCallbackand XmNdisarmCallback.

          <Key><osfActivate>:
                    In a menu, this action unposts all menus in the
                    menu hierarchy, unless the button is already
                    armed, and calls the XmNarmCallbackcallbacks, the
                    XmNactivateCallback and the XmNdisarmCallback
                    callbacks. Outside a menu, KActivatehas no effect.
                    For PushButtonGadgets outside of a menu, if the
                    parent is a manager, this action passes the event
                    to the parent.

          <Key><osfSelect>:
                    In a menu, this action unposts all menus in the
                    menu hierarchy, unless the button is already
                    armed, and calls the XmNarmCallback callbacks.
                    This acton calls the XmNactivateCallback and
                    XmNdisarmCallback callbacks.

                    Outside a menu, this action draws the shadow in
                    the armed state and, if XmNfillOnArm is set to
                    True, fills the button with the color specified by
                    XmNarmColor.  If XmNlabelType is XmPIXMAP,
                    XmNarmPixmap is used for the button face.  This
                    action calls the XmNarmCallback callbacks.

                    Outside a menu, this action also arranges for the
                    following to happen, either immediately or at a
                    later time:  the shadow is drawn in the unarmed
                    state and, if XmNfillOnArm is set to True, the
                    background color reverts to the unarmed color.  If
                    XmNlabelType is XmPIXMAP, the XmNlabelPixmap is
                    used for the button face.  The XmNactivateCallback
                    and XmNdisarmCallback callbacks are called.

          <Key><osfHelp>:
                    In a Pulldown or Popup MenuPane, unposts all menus
                    in the menu hierarchy and restores keyboard focus
                    to the widget that had the focus before the menu
                    system was entered.  This action 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 toplevel Pulldown MenuPane from a MenuBar,
                    unposts the menu, disarms the MenuBar
                    CascadeButton and the MenuBar, and 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.  For a PushButtonGadget outside of a
                    menu, if the parent is a manger, this action
                    passes the event to the parent.

          <Enter>:  In a menu, if keyboard traversal is enabled, this
                    action does nothing.  Otherwise, it draws the
                    shadow in the armed state and calls the
                    XmNarmCallback callbacks.

                    If the PushButtonGadget is not in a menu and the
                    cursor leaves and then reenters the
                    PushButtonGadget while the button is pressed, this
                    action draws the shadow in the armed state.  If
                    XmNfillOnArm is set to True, it also fills the
                    button with the color specified by XmNarmColor.
                    If XmNlabelType is XmPIXMAP, the XmNarmPixmap is
                    used for the button face.

          <Leave>:  In a menu, if keyboard traversal is enabled, this
                    action does nothing.  Otherwise, it draws the
                    shadow in the unarmed state and calls the
                    XmNdisarmCallback callbacks.

                    If the PushButtonGadget is not in a menu and the
                    cursor leaves the PushButtonGadget while the
                    button is pressed, this action draws the shadow in
                    the unarmed state.  If XmNfillOnArm is set to
                    True, the background color reverts to the unarmed
                    color.  If XmNlabelType is XmPIXMAP, the
                    XmNlabelPixmap is used for the button face.

        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), XmCreatePushButtonGadget(3),
          XmGadget(3), XmLabelGadget(3), and XmRowColumn(3).