The PushButton widget class
Format
#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, Btn1 controls the behavior of the PushButton. In addition, Btn3 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 with the XmNshowAsDefault resource. If it has a nonzero 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.
PushButton uses the XmQTmenuSystem and XmQTspecifyRenderTable traits, and holds the XmQactivatable, XmQTmenuSavvy, and XmQTtakesDefault traits.
PushButton inherits behavior, resources, and traits from Core, XmPrimitive, and XmLabel.
The class pointer is xmPushButtonWidgetClass.
The class name is XmPushButton.
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).
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 |
This resource is also used when the button is armed in a menu and the XmNenableEtchedInMenu resource is True .
PushButton inherits behavior and resources from the superclasses described the following tables. For a complete description of each resource, refer to the reference 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 |
XmNrenderTable | XmCRenderTable | XmRenderTable | dynamic | 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 |
XmNconvertCallback | XmCCallback | XtCallbackList | NULL | C |
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 |
XmNlayoutDirection | XmCLayoutDirection | XmDirection | dynamic | CG |
XmNnavigationType | XmCNavigationType | XmNavigationType | XmNONE | CSG |
XmNpopupHandlerCallback | XmCCallback | XtCallbackList | NULL | C |
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 |
A pointer to the following structure is passed to each callback:
typedef struct { int reason; XEvent * event; int click_count; } XmPushButtonCallbackStruct;
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 described in the following list.
The following key names are listed in the X standard key event translation table syntax. This format is the one used by Motif to specify the widget actions corresponding to a given key. A brief overview of the format is provided under VirtualBindings (3). For a complete description of the format, please refer to the X Toolkit Instrinsics Documentation.
XmPushButton inherits menu traversal translations from XmLabel. Additional XmPushButton translations for PushButtons in a menu system are described in the following list. In a Popup menu system, Btn3 also performs the Btn1 actions.
The following key names are listed in the X standard key event translation table syntax. This format is the one used by Motif to specify the widget actions corresponding to a given key. A brief overview of the format is provided under VirtualBindings (3). For a complete description of the format, please refer to the X Toolkit Instrinsics Documentation.
The XmPushButton action routines are
Outside a menu, 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, XmNlabelPixmap is used for the button face. The XmNactivateCallback and XmNdisarmCallback callbacks are called.
In a Popup MenuPane, this action unposts the menu and restores keyboard focus to the widget from which the menu was posted.
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, the XmNlabelPixmap is used for the button face. If the pointer is within the PushButton, calls the callbacks for XmNactivateCallback and XmNdisarmCallback.
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, this action 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.
This widget has the following additional behavior:
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, XmNarmPixmap is used for the button face.
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.
The bindings for virtual keys are vendor specific. For information about bindings for virtual buttons and keys, see VirtualBindings (3).
RELATED
Core (3), XmCreatePushButton (3), XmLabel (3), XmPrimitive (3), and XmRowColumn (3).