Museum

Home

Lab Overview

Retrotechnology Articles

Online Manuals

⇒ XmPushButton(3X) — DG/UX 5.4.2A

Media Vault

Software Library

Restoration Projects

Artifacts Sought



     XmPushButton(3X)          UNIX System V          XmPushButton(3X)



     NAME
          XmPushButton-The PushButton widget class

     SYNOPSIS
          #include <Xm/PushB.h>


     DESCRIPTION
          PushButton issues commands within an application.  It
          consists of a text label or pixmap surrounded by a border
          shadow.  When a PushButton is selected, the shadow changes
          to give the appearance that it has been pressed in.  When a
          PushButton is unselected, the shadow changes to give the
          appearance 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
          button used is determined by its RowColumn parent.

          Thickness for a second shadow, used when the PushButton is
          the default button,  may be specified by using the
          XmNshowAsDefault resource.  If it has a non-zero value, the
          Label's resources XmNmarginLeft, XmNmarginRight,
          XmNmarginTop, and XmNmarginBottom 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.

        Classes
          PushButton inherits behavior and resources from Core,
          XmPrimitive, and XmLabel 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 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



     1                                                (printed 6/8/92)





     XmPushButton(3X)          UNIX System V          XmPushButton(3X)



          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 releases the
                    active mouse button while the pointer is inside
                    that widget.  Activating the PushButton also
                    disarms it.  For this callback the reason is
                    XmCRACTIVATE.

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

          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 PushButton is
                    armed.  This resource is disabled when the
                    PushButton is in a menu.

          XmNdefaultButtonShadowThickness
                    This resource specifies the width of the default



     2                                                (printed 6/8/92)





     XmPushButton(3X)          UNIX System V          XmPushButton(3X)



                    button indicator shadow.  If this resource is
                    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 PushButton is disarmed.  PushButton is
                    disarmed when the user presses and releases the
                    active mouse button while the pointer is inside
                    that widget.  For this callback, the reason is
                    XmCRDISARM.

          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 XmMULTICLICKDISCARD, do not process the
                    second click.  If this resource is set to
                    XmMULTICLICKKEEP, process the event and increment
                    click_count in the callback structure.  When the
                    button is in a menu, the default is
                    XmMULTICLICKDISCARD; otherwise, for a button not
                    in a menu, XmMULTICLICKKEEP 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



     3                                                (printed 6/8/92)





     XmPushButton(3X)          UNIX System V          XmPushButton(3X)



                    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





     4                                                (printed 6/8/92)





     XmPushButton(3X)          UNIX System V          XmPushButton(3X)



     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
                 XmCRACTIVATE.  It contains the number of clicks in
                 the last multiclick sequence if the XmNmultiClick
                 resource is set to XmMULTICLICKKEEP, otherwise it
                 contains 1.  The activate callback is invoked for
                 each click if XmNmultiClick is set to
                 XmMULTICLICKKEEP.


        Translations
          XmPushButton includes translations from Primitive.

          Note that altering translations in #override or #augment



     5                                                (printed 6/8/92)





     XmPushButton(3X)          UNIX System V          XmPushButton(3X)



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



     6                                                (printed 6/8/92)





     XmPushButton(3X)          UNIX System V          XmPushButton(3X)



                    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 hierarchy.  Unless the button is
                    already armed, calls the XmNarmCallback callbacks.
                    Calls the XmNactivateCallback and
                    XmNdisarmCallback 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
                    specified 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, 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.

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




     7                                                (printed 6/8/92)





     XmPushButton(3X)          UNIX System V          XmPushButton(3X)



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

          MultiActivate():
                    If XmNmultiClick is XmMULTICLICKDISCARD, this
                    action does nothing.

                    If XmNmultiClick is XmMULTICLICKKEEP, this action
                    does the following:  Increments 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
                    XmNlabelType is XmPIXMAP, the XmNlabelPixmap is
                    used for the button face.  If the pointer is
                    within the PushButton, calls the callbacks for
                    XmNactivateCallback.  Calls the callbacks for
                    XmNdisarmCallback.

          MultiArm():
                    If XmNmultiClick is XmMULTICLICKDISCARD, this
                    action does nothing.

                    If XmNmultiClick is XmMULTICLICKKEEP, 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 XmNexportTargets
                    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.





     8                                                (printed 6/8/92)





     XmPushButton(3X)          UNIX System V          XmPushButton(3X)



        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
                    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(3X).

     RELATED INFORMATION
          Core(3X), XmCreatePushButton(3X), XmLabel(3X),
          XmPrimitive(3X), and XmRowColumn(3X).













     9                                                (printed 6/8/92)



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