XmDrawnButton(3X)XmDrawnButton(3X)NAMEXmDrawnButton - The DrawnButton widget class
SYNOPSIS
#include <Xm/DrawnB.h>
DESCRIPTION
The DrawnButton widget consists of an empty widget window surrounded by
a shadow border. It provides the application developer with a graphics
area that can have PushButton input semantics.
Callback types are defined for widget exposure and widget resize to
allow the application to redraw or reposition its graphics. If the
DrawnButton widget has a highlight and shadow thickness, the applica‐
tion should not draw in that area. To avoid drawing in the highlight
and shadow area, create the graphics context with a clipping rectangle
for drawing in the widget. The clipping rectangle should take into
account the size of the widget's highlight thickness and shadow.
Classes
DrawnButton inherits behavior and resources from Core, XmPrimitive, and
XmLabel Classes.
The class pointer is xmDrawnButtonWidgetClass.
The class name is XmDrawnButton.
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).
XmDrawnButton Resource Set
Class: XmCCallback
Default: NULL
Type: XtCallbackList
Access: C
Class: XmCCallback
Default: NULL
Type: XtCallbackList
Access: C
Class: XmCCallback
Default: NULL
Type: XtCallbackList
Access: C
Class: XmCCallback
Default: NULL
Type: XtCallbackList
Access: C
Class: XmCMultiClick
Default: dynamic
Type: unsigned char
Access: CSG
Class: XmCPushButtonEnabled
Default: False
Type: Boolean
Access: CSG
Class: XmCCallback
Default: NULL
Type: XtCallbackList
Access: C
Class: XmCShadowType
Default: XmSHADOW_ETCHED_IN
Type: unsigned char
Access: CSG
Specifies the list of callbacks that is called when the widget
becomes selected. The reason sent by the callback is XmCR_ACTI‐
VATE. Specifies the list of callbacks that is called when the
widget becomes armed. The reason sent by the callback is
XmCR_ARM. Specifies the list of callbacks that is called when
the widget becomes disarmed. The reason sent by the callback is
XmCR_DISARM. Specifies the list of callbacks that is called
when the widget receives an exposure event. The reason sent by
the callback is XmCR_EXPOSE. If a button click is followed by
another button click within the time span specified by the dis‐
play's multi-click time, and this resource is set to XmMUL‐
TICLICK_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 not in a menu, the default value is XmMULTICLICK_KEEP.
Enables or disables the three-dimensional shadow drawing as in
PushButton. Specifies the list of callbacks that is called when
the widget receives a resize event. The reason sent by the call‐
back is XmCR_RESIZE. The event returned for this callback is
NULL. Describes the drawing style for the DrawnButton. This
resource can have the following values: XmSHADOW_IN--draws the
DrawnButton so that the shadow appears inset. This means that
the bottom shadow visuals and top shadow visuals are reversed.
XmSHADOW_OUT--draws the DrawnButton so that the shadow appears
outset. XmSHADOW_ETCHED_IN--draws the DrawnButton using a dou‐
ble line. This gives the effect of a line etched into the win‐
dow. The thickness of the double line is equal to the value of
XmNshadowThickness. XmSHADOW_ETCHED_OUT--draws the DrawnButton
using a double line. This gives the effect of a line coming out
of the window. The thickness of the double line is equal to the
value of XmNshadowThickness.
Inherited Resources
DrawnButton 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: N/A
Class: XmCAcceleratorText
Default: NULL
Type: XmString
Access: N/A
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: XmUNSPECIFIED_PIXMAP
Type: Pixmap
Access: CSG
Class: XmCXmString
Default: "\0"
Type: XmString
Access: CSG
Class: XmCLabelType
Default: XmSTRING
Type: unsigned char
Access: CSG
Class: XmCMarginBottom
Default: 0
Type: Dimension
Access: CSG
Class: XmCMarginHeight
Default: 2
Type: Dimension
Access: CSG
Class: XmCMarginLeft
Default: 0
Type: Dimension
Access: CSG
Class: XmCMarginRight
Default: 0
Type: Dimension
Access: CSG
Class: XmCMarginTop
Default: 0
Type: Dimension
Access: CSG
Class: XmCMarginWidth
Default: 2
Type: Dimension
Access: CSG
Class: XmCMnemonic
Default: NULL
Type: KeySym
Access: N/A
Class: XmCMnemonicCharSet
Default: XmFONTLIST_DEFAULT_TAG
Type: String
Access: N/A
Class: XmCRecomputeSize
Default: True
Type: Boolean
Access: CSG
Class: XmCStringDirection
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
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
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
A pointer to the following structure is passed to each callback: type‐
def struct {
int reason;
XEvent * event;
Window window;
int click_count; }XmDrawnButtonCallbackStruct;
Indicates why the callback was invoked. Points to the XEvent that
triggered the callback. This is NULL for XmNresizeCallback. Is set to
the window ID in which the event occurred. 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 call‐
back is invoked for each click if XmNmultiClick is set to XmMUL‐
TICLICK_KEEP.
Translations
XmDrawnButton includes translations from Primitive. Additional XmDrawn‐
Button translations are listed below. These translations may not
directly correspond to a translation table. BSelect Press: Arm() BSe‐
lect Click: Activate()Disarm() BSelect Release:Activate()Disarm() BSelect Press 2+:MultiArm() BSelect Release
2+:MultiActivate() KSelect: ArmAndActivate() KHelp:
Help()
Action Routines
The XmDrawnButton action routines are described below: If XmNpushButto‐
nEnabled is True, redraws the shadow in the unselected state; other‐
wise, redraws the shadow according to XmNshadowType. If the pointer is
within the DrawnButton, calls the XmNactivateCallback callbacks. If
XmNpushButtonEnabled is True, redraws the shadow in the selected state;
otherwise, redraws the shadow according to XmNshadowType. Calls the
callbacks for XmNarmCallback. If XmNpushButtonEnabled is True, redraws
the shadow in the selected state; otherwise, redraws the shadow accord‐
ing to XmNshadowType. Calls the callbacks for XmNarmCallback.
Arranges for the following to happen, either immediately or at a
later time: If XmNpushButtonEnabled is True, the shadow is
redrawn in the unselected state; otherwise, the shadow is
redrawn according to XmNshadowType. The callbacks for XmNacti‐
vateCallback and XmNdisarmCallback are called. Marks the Drawn‐
Button as unselected and calls the callbacks for XmNdisarmCall‐
back. 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. If
XmNmultiClick 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. If
XmNpushButtonEnabled is True, redraws the shadow in the unse‐
lected state; otherwise, redraws the shadow according to XmN‐
shadowType. If the pointer is within the DrawnButton, calls the
XmNactivateCallback callbacks. Calls the callbacks for XmNdis‐
armCallback. If XmNmultiClick is XmMULTICLICK_DISCARD, this
action does nothing.
If XmNmultiClick is XmMULTICLICK_KEEP, this action does the fol‐
lowing: If XmNpushButtonEnabled is True, redraws the shadow in
the selected state; otherwise, redraws the shadow according to
XmNshadowType. Calls the callbacks for XmNarmCallback.
Additional Behavior
This widget has the additional behavior described below: Draws the
shadow in its selected state if XmNpushButtonEnabled is True and if the
cursor leaves and re-enters the window while BSelect is pressed. Draws
the shadow in its unselected state if XmNpushButtonEnabled is True and
if the cursor leaves the window while BSelect is pressed.
Virtual Bindings
The bindings for virtual keys are vendor specific. For information
about bindings for virtual buttons and keys, see VirtualBindings(3X).
SEE ALSOCore(3X), XmCreateDrawnButton(3X), XmLabel(3X), XmPrimitive(3X),
XmPushButton(3X), XmSeparator(3X)XmDrawnButton(3X)