Manual Page Result
0
Command: XmPushButton | Section: 3 | Source: Digital UNIX | File: XmPushButton.3X.gz
XmPushButton(3X) 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 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 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 con-
trols the behavior of the PushButton. In addition, BMenu controls the
behavior of the PushButton if it resides in a PopupMenu system. The ac-
tual 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, XmNmar-
ginRight, XmNmarginTop, and XmNmarginBottom may be modified to accommo-
date 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
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 pro-
grammer to specify data. The programmer can also set the resource val-
ues 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
Class: XmCCallback Default: NULL Type: XtCallbackList Access: C Class:
XmCCallback Default: NULL Type: XtCallbackList Access: C Class: Xm-
CArmColor Default: dynamic Type: Pixel Access: CSG Class: XmCArmPixmap
Default: XmUNSPECIFIED_PIXMAP Type: Pixmap Access: CSG Class: XmCDe-
faultButtonShadowThickness Default: dynamic Type: Dimension Access:
CSG Class: XmCCallback Default: NULL Type: XtCallbackList Access: C
Class: XmCFillOnArm Default: True Type: Boolean Access: CSG Class: Xm-
CMultiClick Default: dynamic Type: unsigned char Access: CSG Class:
XmCShowAsDefault Default: 0 Type: Dimension Access: CSG
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 XmCR_ACTIVATE. 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. Specifies the color with which to fill the armed but-
ton. 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 but-
ton is armed. 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. This re-
source 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. Specifies
the list of callbacks that is called when PushButton is dis-
armed. 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. 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. 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 second 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_DISCARD; other-
wise, for a button not in a menu, XmMULTICLICK_KEEP is the de-
fault value. If XmNdefaultButtonShadowThickness is greater than
zero, a value greater than zero in this resource specifies to
mark this button as the default button. If XmNdefaultButtonShad-
owThickness 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, XmNmar-
ginTop, 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 super-
classes. For a complete description of each resource, refer to the man
page for that superclass.
XmLabel Resource Set
Class: XmCAccelerator Default: NULL Type: String Access: CSG Class:
XmCAcceleratorText Default: NULL Type: XmString Access: CSG Class: Xm-
CAlignment Default: dynamic Type: unsigned char Access: CSG Class: Xm-
CFontList Default: dynamic Type: XmFontList Access: CSG Class: XmCLa-
belInsensitivePixmap Default: XmUNSPECIFIED_PIXMAP Type: Pixmap Ac-
cess: CSG Class: XmCLabelPixmap Default: dynamic Type: Pixmap Access:
CSG Class: XmCXmString Default: dynamic Type: XmString Access: CSG
Class: XmCLabelType Default: XmSTRING Type: unsigned char Access: CSG
Class: XmCMarginBottom Default: dynamic Type: Dimension Access: CSG
Class: XmCMarginHeight Default: 2 Type: Dimension Access: CSG Class:
XmCMarginLeft Default: dynamic Type: Dimension Access: CSG Class: XmC-
MarginRight Default: dynamic Type: Dimension Access: CSG Class: XmC-
MarginTop Default: dynamic Type: Dimension Access: CSG Class: XmCMar-
ginWidth Default: 2 Type: Dimension Access: CSG Class: XmCMnemonic De-
fault: NULL Type: KeySym Access: CSG Class: XmCMnemonicCharSet De-
fault: XmFONTLIST_DEFAULT_TAG Type: String Access: CSG Class: XmCRe-
computeSize Default: True Type: Boolean Access: CSG Class: XmC-
StringDirection Default: dynamic Type: XmStringDirection Access: CSG
XmPrimitive Resource Set
Class: XmCBottomShadowColor Default: dynamic Type: Pixel Access: CSG
Class: XmCBottomShadowPixmap Default: XmUNSPECIFIED_PIXMAP Type:
Pixmap Access: CSG Class: XmCForeground Default: dynamic Type: Pixel
Access: CSG Class: XmCCallback Default: NULL Type: XtCallbackList Ac-
cess: C Class: XmCHighlightColor Default: dynamic Type: Pixel Access:
CSG Class: XmCHighlightOnEnter Default: False Type: Boolean Access:
CSG Class: XmCHighlightPixmap Default: dynamic Type: Pixmap Access:
CSG Class: XmCHighlightThickness Default: 2 Type: Dimension Access:
CSG Class: XmCNavigationType Default: XmNONE Type: XmNavigationType
Access: CSG Class: XmCShadowThickness Default: 2 Type: Dimension Ac-
cess: CSG Class: XmCTopShadowColor Default: dynamic Type: Pixel Ac-
cess: CSG Class: XmCTopShadowPixmap Default: dynamic Type: Pixmap Ac-
cess: CSG Class: XmCTraversalOn Default: True Type: Boolean Access:
CSG Class: XmCUnitType Default: dynamic Type: unsigned char Access:
CSG Class: XmCUserData Default: NULL Type: XtPointer Access: CSG
Core Resource Set
Class: XmCAccelerators Default: dynamic Type: XtAccelerators Access:
CSG Class: XmCSensitive Default: dynamic Type: Boolean Access: G
Class: XmCBackground Default: dynamic Type: Pixel Access: CSG Class:
XmCPixmap Default: XmUNSPECIFIED_PIXMAP Type: Pixmap Access: CSG
Class: XmCBorderColor Default: XtDefaultForeground Type: Pixel Access:
CSG Class: XmCPixmap Default: XmUNSPECIFIED_PIXMAP Type: Pixmap Ac-
cess: CSG Class: XmCBorderWidth Default: 0 Type: Dimension Access: CSG
Class: XmCColormap Default: dynamic Type: Colormap Access: CG Class:
XmCDepth Default: dynamic Type: int Access: CG Class: XmCCallback De-
fault: NULL Type: XtCallbackList Access: C Class: XmCHeight Default:
dynamic Type: Dimension Access: CSG Class: XmCInitialResourcesPersis-
tent Default: True Type: Boolean Access: C Class: XmCMappedWhenManaged
Default: True Type: Boolean Access: CSG Class: XmCScreen Default: dy-
namic Type: Screen * Access: CG Class: XmCSensitive Default: True
Type: Boolean Access: CSG Class: XmCTranslations Default: dynamic
Type: XtTranslations Access: CSG Class: XmCWidth Default: dynamic
Type: Dimension Access: CSG Class: XmCPosition Default: 0 Type: Posi-
tion Access: CSG Class: XmCPosition Default: 0 Type: Position Access:
CSG
Callback Information
A pointer to the following structure is passed to each callback:
typedef struct {
int reason;
XEvent * event;
int click_count; } XmPushButtonCallbackStruct;
Indicates why the callback was invoked. Points to the XEvent that
triggered the callback. This value is 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 XmNmultiClick is set to XmMULTICLICK_KEEP.
Translations
XmPushButton includes translations from Primitive.
Note that altering translations in #override or #augment mode is unde-
fined.
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: Acti-
vate()
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. Addi-
tional 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 transla-
tion table.
BSelect Press: BtnDown() BSelect Release:BtnUp() KActivate: ArmAn-
dActivate() KSelect: ArmAndActivate() MAny KCancel:
MenuShellPopdownOne()
Action Routines
The XmPushButton action routines are described below: 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 un-
armed 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. 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 but-
ton with the color specified by XmNarmColor. If XmNlabelType is
XmPIXMAP, the XmNarmPixmap is used for the button face. It calls the
XmNarmCallback callbacks. 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 XmNdis-
armCallback callbacks.
Outside a menu, does the following: Draws the shadow in the
armed state and, if XmNfillOnArm is set to True, fills the but-
ton 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 XmNlabel-
Type is XmPIXMAP, the XmNlabelPixmap is used for the button
face. The XmNactivateCallback and XmNdisarmCallback callbacks
are called. This action unposts any menus posted by the Push-
Button'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. This action unposts all menus in
the menu hierarchy and activates the PushButton. It calls the
XmNactivateCallback callbacks and then the XmNdisarmCallback
callbacks. Calls the callbacks for XmNdisarmCallback. In a
Pulldown or Popup MenuPane, unposts all menus in the menu hier-
archy 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 XmNhelp-
Callback if any exist. If there are no help callbacks for this
widget, this action calls the help callbacks for the nearest an-
cestor that has them. 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 Xm-
EXPLICT, restores keyboard focus to the widget that had the fo-
cus before the MenuBar was entered. In other Pulldown MenuPanes,
unposts the menu.
In a Popup MenuPane, unposts the menu and restores keyboard fo-
cus to the widget from which the menu was posted. If XmNmul-
tiClick is XmMULTICLICK_DISCARD, this action does nothing.
If XmNmultiClick is XmMULTICLICK_KEEP, this action does the fol-
lowing: 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 XmNla-
belPixmap is used for the button face. If the pointer is within
the PushButton, calls the callbacks for XmNactivateCallback.
Calls the callbacks for XmNdisarmCallback. If XmNmultiClick is
XmMULTICLICK_DISCARD, this action does nothing.
If XmNmultiClick is XmMULTICLICK_KEEP, this action does the fol-
lowing: Draws the shadow in the armed state. If the button is
not in a menu and if XmNfillOnArm is set to True, fills the but-
ton with the color specified by XmNarmColor. If XmNlabelType is
XmPIXMAP, the XmNarmPixmap is used for the button face. Calls
the XmNarmCallback callbacks. Drags the contents of a PushBut-
ton 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 Push-
Buttons used in a menu system.
Additional Behavior
This widget has the additional behavior described below: 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 call-
backs.
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 Xm-
NfillOnArm 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. In a menu, if key-
board traversal is enabled, this action does nothing. Otherwise,
it draws the shadow in the unarmed state and calls the XmNdis-
armCallback 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 XmN-
labelType 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).
SEE ALSO
Core(3X), XmCreatePushButton(3X), XmLabel(3X), XmPrimitive(3X), XmRow-
Column(3X)
XmPushButton(3X)