|
XmPushButton(3X)
Contents
|
XmPushButton - The PushButton widget class
#include <Xm/PushB.h>
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 [Toc] [Back]
PushButton inherits behavior and resources from Core,
XmPrimitive, and XmLabel Classes.
The class pointer is xmPushButtonWidgetClass.
The class name is XmPushButton.
New Resources [Toc] [Back]
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 [Toc] [Back]
Class: XmCCallback
Default: NULL
Type: XtCallbackList
Access: C
Class: XmCCallback
Default: NULL
Type: XtCallbackList
Access: C
Class: XmCArmColor
Default: dynamic
Type: Pixel
Access: CSG
Class: XmCArmPixmap
Default: XmUNSPECIFIED_PIXMAP
Type: Pixmap
Access: CSG
Class: XmCDefaultButtonShadowThickness
Default: dynamic
Type: Dimension
Access: CSG
Class: XmCCallback
Default: NULL
Type: XtCallbackList
Access: C
Class: XmCFillOnArm
Default: True
Type: Boolean
Access: CSG
Class: XmCMultiClick
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 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.
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 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 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.
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 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;
otherwise, for a button not in a
menu, XmMULTICLICK_KEEP is the default 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 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 [Toc] [Back]
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 [Toc] [Back]
Class: XmCAccelerator
Default: NULL
Type: String
Access: CSG
Class: XmCAcceleratorText
Default: NULL
Type: XmString
Access: CSG
Class: XmCAlignment
Default: dynamic
Type: unsigned char
Access: CSG
Class: XmCFontList
Default: dynamic
Type: XmFontList
Access: CSG
Class: XmCLabelInsensitivePixmap
Default: XmUNSPECIFIED_PIXMAP
Type: Pixmap
Access: 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: XmCMarginRight
Default: dynamic
Type: Dimension
Access: CSG
Class: XmCMarginTop
Default: dynamic
Type: Dimension
Access: CSG
Class: XmCMarginWidth
Default: 2
Type: Dimension
Access: CSG
Class: XmCMnemonic
Default: NULL
Type: KeySym
Access: CSG
Class: XmCMnemonicCharSet
Default: XmFONTLIST_DEFAULT_TAG
Type: String
Access: CSG
Class: XmCRecomputeSize
Default: True
Type: Boolean
Access: CSG
Class: XmCStringDirection
Default: dynamic
Type: XmStringDirection
Access: CSG
XmPrimitive Resource Set [Toc] [Back]
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
Access: 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
Access: CSG
Class: XmCTopShadowColor
Default: dynamic
Type: Pixel
Access: CSG
Class: XmCTopShadowPixmap
Default: dynamic
Type: Pixmap
Access: 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 [Toc] [Back]
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
Access: 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
Default: NULL
Type: XtCallbackList
Access: C
Class: XmCHeight
Default: dynamic
Type: Dimension
Access: CSG
Class: XmCInitialResourcesPersistent
Default: True
Type: Boolean
Access: C
Class: XmCMappedWhenManaged
Default: True
Type: Boolean
Access: CSG
Class: XmCScreen
Default: dynamic
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: Position
Access: CSG
Class: XmCPosition
Default: 0
Type: Position
Access: CSG
Callback Information [Toc] [Back]
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 [Toc] [Back]
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 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 [Toc] [Back]
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 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.
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. 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. 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. 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 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. 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. If XmNmultiClick is XmMULTICLICK_DISCARD,
this action does nothing.
If XmNmultiClick is XmMULTICLICK_KEEP, 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. If XmNmultiClick
is XmMULTICLICK_DISCARD, this action does
nothing.
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. 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.
Additional Behavior [Toc] [Back]
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 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. 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 [Toc] [Back]
The bindings for virtual keys are vendor specific. For
information about bindings for virtual buttons and keys,
see VirtualBindings(3X).
Core(3X), XmCreatePushButton(3X), XmLabel(3X), XmPrimitive(3X), XmRowColumn(3X)
XmPushButton(3X)
[ Back ] |