XmPushButton(3X)

XmPushButton --The PushButton widget class

As shipped in IRIX 6.5.22. Unchanged since IRIX 6.5.

NAME
     XmPushButton --The PushButton widget class

SYNOPSIS
     #include <Xm/PushB.h>


VERSION
     This page documents version 1.2 of the Motif library.

DESCRIPTION
     PushButton  issues  commands  within an application.  It consists of a text
     label or pixmap surrounded by a border shadow.  When a  PushButton  is  se-
     lected,  the shadow changes to give the appearance that it has been pressed
     in.  When a PushButton is unselected, the shadow changes to  give  the  ap-
     pearance that it is out.

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

     Thickness for a second shadow, used when the PushButton is the default but-
     ton,  may be specified by using the XmNshowAsDefault resource.  If it has a
     non-zero  value,  the Label's resources XmNmarginLeft, XmNmarginRight, XmN-
     marginTop, and XmNmarginBottom may be modified to  accommodate  the  second
     shadow.

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

   Classes
     PushButton inherits behavior and resources from Core, XmPrimitive, and  Xm-
     Label Classes.

     The class pointer is xmPushButtonWidgetClass.

     The class name is XmPushButton.

   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
     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 re-
     maining 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  XtSetValues
     (S), retrieved by using XtGetValues (G), or is not applicable (N/A).

                                            XmPushButton 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 PushButton is
               activated.  PushButton is activated when the user presses and re-
               leases  the  active mouse button while the pointer is inside that
               widget.  Activating the PushButton also  disarms  it.   For  this
               callback the reason is XmCR_ACTIVATE.

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

     XmNarmColor
               Specifies the color with which to fill the armed button.  XmNfil-
               lOnArm  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  de-
               fault  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  XmNlabel-
               Type  is XmPIXMAP and PushButton is armed.  This resource is dis-
               abled when the PushButton is in a menu.

     XmNdefaultButtonShadowThickness
               This resource specifies the width of the default button indicator
               shadow.  If this resource is zero, the width of the shadow  comes
               from  the  value  of  the XmNshowAsDefault resource.  If this re-
               source is greater than zero,  the  XmNshowAsDefault  resource  is
               only used to specify whether this button is the default.  The de-
               fault value is the initial value of XmNshowAsDefault.

     XmNdisarmCallback
               Specifies the list of callbacks that is called when PushButton is
               disarmed.   PushButton  is disarmed when the user presses and re-
               leases the active mouse button while the pointer is  inside  that
               widget.  For this callback, the reason is XmCR_DISARM.

     XmNfillOnArm
               Forces  the  PushButton 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 False, only the top and
               bottom shadow colors are switched.  When the PushButton 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 multi-click time,  and  this
               resource  is set to XmMULTICLICK_DISCARD, do not process the sec-
               ond click.  If this resource is set to XmMULTICLICK_KEEP, process
               the event and increment click_count in  the  callback  structure.
               When  the  button  is in a menu, the default is XmMULTICLICK_DIS-
               CARD; otherwise, for a button not in a menu, XmMULTICLICK_KEEP is
               the default value.

     XmNshowAsDefault
               If XmNdefaultButtonShadowThickness is greater than zero, a  value
               greater  than zero in this resource specifies to mark this button
               as the default  button.   If  XmNdefaultButtonShadowThickness  is
               zero,  a  value  greater  than zero 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 zero.  When this value is not zero, the Label  resources
               XmNmarginLeft,  XmNmarginRight, XmNmarginTop, and XmNmarginBottom
               may be modified to accommodate the second shadow.  This  resource
               is disabled when the PushButton is in a menu.


   Inherited Resources
     PushButton 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                     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              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          2                      CSG
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

                                              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
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;
       int      click_count;
     } XmPushButtonCallbackStruct;


     reason Indicates why the callback was invoked.

     event  Points to the XEvent that triggered the callback.

     click_count
            This  value is valid only when the reason is XmCR_ACTIVATE.  It con-
            tains 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 XmN-
            multiClick is set to XmMULTICLICK_KEEP.


   Translations
     XmPushButton includes translations from Primitive.

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

     Additional XmPushButton translations for XmPushButtons not in a menu system
     are listed below.  These translations may  not  directly  correspond  to  a
     translation table.

     BDrag Press:   ProcessDrag()

     BSelect Press: Arm()
     BSelect Click: Activate()
                    Disarm()
     BSelect Release:Activate()
                    Disarm()
     BSelect Press 2+:MultiArm()
     BSelect Release 2+:MultiActivate()
                    Disarm()
     KSelect:       ArmAndActivate()
     KHelp:         Help()


     XmPushButton inherits menu traversal translations from XmLabel.  Additional
     XmPushButton  translations  for PushButtons in a menu system are listed be-
     low.  In a Popup menu system, BMenu  also  performs  the  BSelect  actions.
     These translations may not directly correspond to a translation table.

     BSelect Press: BtnDown()
     BSelect Release:BtnUp()
     KActivate:     ArmAndActivate()
     KSelect:       ArmAndActivate()
     MAny KCancel:  MenuShellPopdownOne()


   Action Routines
     The XmPushButton action routines are described below:


     Activate():
               This action draws the shadow in the unarmed state.  If the button
               is  not  in  a menu and if XmNfillOnArm is set to True, the back-
               ground 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 call-
               backs for XmNactivateCallback.

     Arm():    This action arms the PushButton.  It  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.  It calls the XmNarmCallback callbacks.

     ArmAndActivate():
               In a menu, does the following: Unposts all menus in the menu  hi-
               erarchy.   Unless  the button is already armed, calls the XmNarm-
               Callback callbacks.  Calls the XmNactivateCallback and XmNdisarm-
               Callback callbacks.

     Outside a menu, does the following: Draws the shadow  in  the  armed  state
     and, if XmNfillOnArm is set to True, fills the button with the color speci-
     fied by XmNarmColor.  If XmNlabelType is XmPIXMAP, the XmNarmPixmap is used
     for the button face.  Calls the XmNarmCallback callbacks.

     Outside  a menu, this action also arranges for the following to happen, ei-
     ther 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  call-
     backs are called.

     BtnDown():This  action  unposts any menus posted by the PushButton's parent
               menu, disables keyboard traversal for the menu, and enables mouse
               traversal for the menu.  It draws the shadow in the  armed  state
               and, unless the button is already armed, calls the XmNarmCallback
               callbacks.

     BtnUp():  This action unposts all menus in the menu hierarchy and activates
               the  PushButton.   It calls the XmNactivateCallback callbacks and
               then the XmNdisarmCallback callbacks.

     Disarm(): Calls the callbacks for XmNdisarmCallback.

     Help():   In a Pulldown or Popup MenuPane, unposts all menus  in  the  menu
               hierarchy  and,  when  the shell's keyboard focus policy is XmEX-
               PLICT, restores keyboard focus to the widget that had  the  focus
               before the menu system was entered.  Calls the callbacks for XmN-
               helpCallback  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.

     MenuShellPopdownOne():
               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 fo-
               cus  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.

     MultiActivate():
               If  XmNmultiClick is XmMULTICLICK_DISCARD, this action does noth-
               ing.

     If XmNmultiClick is XmMULTICLICK_KEEP, this action does the following:  In-
     crements  click_count  in  the callback structure.  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 XmNlabel-
     Type is XmPIXMAP, the XmNlabelPixmap is used for the button face.   If  the
     pointer  is within the PushButton, calls the callbacks for XmNactivateCall-
     back.  Calls the callbacks for XmNdisarmCallback.

     MultiArm():
               If XmNmultiClick is XmMULTICLICK_DISCARD, this action does  noth-
               ing.

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

     ProcessDrag():
               Drags  the contents of a PushButton label, identified by pressing
               BDrag.  This action creates a DragContext object whose XmNexport-
               Targets resource is set to "COMPOUND_TEXT" for a  label  type  of
               XmSTRING;  otherwise,  "PIXMAP"  if  the  label type is XmPIXMAP.
               This action is undefined for PushButtons used in a menu system.


   Additional Behavior
     This widget has the additional behavior described below:


     <EnterWindow>:
               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 PushButton is not in a menu and the cursor leaves and then  reenters
     the  PushButton's window 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.

     <LeaveWindow>:
               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  PushButton is not in a menu and the cursor leaves the PushButton's
     window while the button is pressed, this action draws the shadow in the un-
     armed 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(3X).

RELATED INFORMATION
     Core(3X), XmCreatePushButton(3X), XmLabel(3X), XmPrimitive(3X), and XmRow-
     Column(3X).

                                                                XmPushButton(3X)