[ Previous |
Next |
Contents |
Glossary |
Home |
Search ]
Motif 2.1 Programmer's Reference
XmDrawingArea
The DrawingArea widget class
Format
#include <Xm/DrawingA.h>
DESCRIPTION
DrawingArea is an empty widget that is easily adaptable to a variety of
purposes. It does no drawing and defines no behavior except for invoking
callbacks. Callbacks notify the application when graphics need to be drawn
(exposure events or widget resize) and when the widget receives input from the
keyboard or mouse.
Applications are responsible for defining appearance and behavior as needed
in response to DrawingArea callbacks.
DrawingArea is also a composite widget and subclass of XmManager that
supports minimal geometry management for multiple widget or gadget children.
DrawingArea uses the XmNinitialFocus resource of XmManager to define
whether or not DrawingArea will receive focus when it is traversed to, even if
it has traversable children. If XmNinitialFocus is NULL, DrawingArea receives
focus only if it does not have any traversable children. If XmNinitialFocus is
not NULL, then DrawingArea receives focus when traversed to. In the latter
case, the application first needs to be able to realize that the DrawingArea
will receive focus, then, as appropriate, needs to either call the
XmProcessTraversal function for the desired child, or to navigate across the
private DrawingArea graphics objects.
The following resources are not currently used by the DrawingArea
widget: XmNshadowThickness, XmNtopShadowPixmap, XmNbottomShadowPixmap,
XmNtopShadowColor, and XmNbottomShadowColor
DrawingArea has no widget class conversion or destination procedure.
Subclasses and the XmNconvertCallback procedures are responsible for any
conversion of selections. Subclasses and the XmNdestinationCallback procedures
are responsible for any data transfers to the widget.
DrawingArea inherits behavior and resources from the Core, Composite,
Constraint, and XmManager classes.
The class pointer is xmDrawingAreaWidgetClass.
The class name is XmDrawingArea.
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).
XmDrawingArea Resource Set |
Name |
Class |
Type |
Default |
Access |
XmNconvertCallback |
XmCCallback |
XtCallbackList |
NULL |
C |
XmNdestinationCallback |
XmCCallback |
XtCallbackList |
NULL |
C |
XmNexposeCallback |
XmCCallback |
XtCallbackList |
NULL |
C |
XmNinputCallback |
XmCCallback |
XtCallbackList |
NULL |
C |
XmNmarginHeight |
XmCMarginHeight |
Dimension |
10 |
CSG |
XmNmarginWidth |
XmCMarginWidth |
Dimension |
10 |
CSG |
XmNresizeCallback |
XmCCallback |
XtCallbackList |
NULL |
C |
XmNresizePolicy |
XmCResizePolicy |
unsigned char |
XmRESIZE_ANY |
CSG |
XmNconvertCallbackSpecifies a list of callbacks called when the DrawingArea is asked to
convert a selection. The type of the structure whose address is passed to
these callbacks is XmConvertCallbackStruct. The reason is XmCR_OK.
XmNdestinationCallbackSpecifies a list of callbacks called when the DrawingArea is the
destination of a transfer operation. The type of the structure whose address
is passed to these callbacks is XmDestinationCallbackStruct. The reason is
XmCR_OK.
XmNexposeCallbackSpecifies the list of callbacks that is called when DrawingArea receives
an exposure event. The callback reason is XmCR_EXPOSE. The callback structure
also includes the exposure event.
The default bit gravity for Manager windows is NorthWestGravity. This may
cause the XmNexposeCallback procedures not to be invoked when the DrawingArea
window is made smaller.
XmNinputCallbackSpecifies the list of callbacks that is called when the DrawingArea
receives a keyboard or mouse event (key or button, up or down). The callback
reason is XmCR_INPUT. The callback structure also includes the input event.
XmNmarginHeightSpecifies the minimum spacing in pixels between the top or bottom edge of
DrawingArea and any child widget.
XmNmarginWidthSpecifies the minimum spacing in pixels between the left or right edge of
DrawingArea and any child widget.
XmNresizeCallbackSpecifies the list of callbacks that is called when the DrawingArea is
resized. The callback reason is XmCR_RESIZE.
XmNresizePolicyControls the policy for resizing DrawingArea widgets. Possible values
include XmRESIZE_NONE (fixed size), XmRESIZE_ANY (shrink or grow as needed),
and XmRESIZE_GROW (grow only).
DrawingArea inherits behavior and resources from the following
superclasses. For a complete description of each resource, refer to the
reference page for that superclass.
XmManager 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 |
XmNhighlightPixmap |
XmCHighlightPixmap |
Pixmap |
dynamic |
CSG |
XmNinitialFocus |
XmCInitialFocus |
Widget |
NULL |
CSG |
XmNlayoutDirection |
XmCLayoutDirection |
XmDirection |
dynamic |
CG |
XmNnavigationType |
XmCNavigationType |
XmNavigationType |
XmTAB_GROUP |
CSG |
XmNpopupHandlerCallback |
XmCCallback |
XtCallbackList |
NULL |
C |
XmNshadowThickness |
XmCShadowThickness |
Dimension |
0 |
CSG |
XmNstringDirection |
XmCStringDirection |
XmStringDirection |
dynamic |
CG |
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 |
Composite Resource Set |
Name |
Class |
Type |
Default |
Access |
XmNchildren |
XmCReadOnly |
WidgetList |
NULL |
G |
XmNinsertPosition |
XmCInsertPosition |
XtOrderProc |
NULL |
CSG |
XmNnumChildren |
XmCReadOnly |
Cardinal |
0 |
G |
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 the
XmNexposeCallback, XmNinputCallback, and XmNresizeCallback procedures:
typedef struct
{
int
reason;
XEvent
* event;
Window
window;
} XmDrawingAreaCallbackStruct;
reasonIndicates why the callback was invoked.
eventPoints to the XEvent that triggered the callback. This is NULL
for the XmNresizeCallback.
windowIs set to the widget window.
A pointer to the following structure is passed to the XmNconvertCallback
procedures:
typedef struct
{
int
reason;
XEvent *
event;
Atom
selection;
Atom
target;
XtPointer
source_data;
XtPointer
location_data;
int
flags;
XtPointer
parm;
int
parm_format;
unsigned long
parm_length;
int
status;
XtPointer
value;
Atom
type;
int
format;
unsigned long
length;
} XmConvertCallbackStruct;
reasonIndicates why the callback was invoked.
eventPoints to the XEvent that triggered the callback. It can be NULL.
selectionIndicates the selection for which conversion is being requested. Possible
values are CLIPBOARD, PRIMARY, SECONDARY, and
_MOTIF_DROP.
targetIndicates the conversion target.
source_dataContains information about the selection source. When the selection is
_MOTIF_DROP, source_data is the DragContext. Otherwise, it is NULL.
location_dataContains information about the location of data to be converted. If the
value is NULL, the data to be transferred consists of the widget's
current selection.
flagsIndicates the status of the conversion. Following are the possible
values:
XmCONVERTING_NONEThis flag is currently unused.
XmCONVERTING_PARTIALThe target widget was able to be converted, but some data was lost.
XmCONVERTING_SAMEThe conversion target is the source of the data to be transferred.
XmCONVERTING_TRANSACTThis flag is currently unused.
parmContains parameter data for this target. If no parameter data exists, the
value is NULL.
When selection is CLIPBOARD and target is
_MOTIF_CLIPBOARD_TARGETS or _MOTIF_DEFERRED_CLIPBOARD_TARGETS, the value is
the requested operation (XmCOPY, XmMOVE, or XmLINK).
parm_formatSpecifies whether the data in parm should be viewed as a list of
char, short, or long quantities. Possible values
are 0 (when parm is NULL), 8 (when the data in parm should
be viewed as a list of chars), 16 (when the data in parm
should be viewed as a list of shorts), or 32 (when the data in
parm should be viewed as a list of longs). Note that
parm_format symbolizes a data type, not the number of bits in each
list element. For example, on some machines, a parm_format of 32
means that the data in parm should be viewed as a list of 64-bit
quantities, not 32-bit quantities.
parm_lengthSpecifies the number of elements of data in parm, where each
element has the size specified by parm_format. When parm is
NULL, the value is 0.
statusAn IN/OUT member that specifies the status of the conversion. The initial
value is XmCONVERT_DEFAULT. The callback procedure can set this member to one
of the following values:
XmCONVERT_DEFAULTThis value means that the widget class conversion procedure, if any, is
called after the callback procedures return. If the widget class conversion
procedure produces any data, it overwrites the data provided by the callback
procedures in the value member.
XmCONVERT_MERGEThis value means that the widget class conversion procedure, if any, is
called after the callback procedures return. If the widget class conversion
procedure produces any data, it appends its data to the data provided by the
callback procedures in the value member. This value is intended for
use with targets that result in lists of data, such as TARGETS.
XmCONVERT_DONEThis value means that the callback procedure has successfully finished the
conversion. The widget class conversion procedure, if any, is not called after
the callback procedures return.
XmCONVERT_REFUSEThis value means that the callback procedure has terminated the conversion
process without completing the requested conversion. The widget class
conversion procedure, if any, is not called after the callback procedures
return.
valueAn IN/OUT parameter that contains any data that the callback procedure
produces as a result of the conversion. The initial value is NULL. If the
callback procedure sets this member, it must ensure that the type,
format, and length members correspond to the data in
value. The callback procedure is responsible for allocating, but not
for freeing, memory when it sets this member.
typeAn IN/OUT parameter that indicates the type of the data in the
value member. The initial value is INTEGER.
formatAn IN/OUT parameter that specifies whether the data in value
should be viewed as a list of char, short, or long
quantities. The initial value is 8. The callback procedure can set this member
to 8 (for a list of char), 16 (for a list of short), or 32
(for a list of long).
lengthAn IN/OUT member that specifies the number of elements of data in
value, where each element has the size symbolized by format.
The initial value is 0.
A pointer to the following callback structure is passed to the
XmNdestinationCallback procedures:
typedef struct
{
int
reason;
XEvent *
event;
Atom
selection;
XtEnum
operation;
int
flags;
XtPointer
transfer_id;
XtPointer
destination_data;
XtPointer
location_data;
Time
time;
} XmDestinationCallbackStruct;
reasonIndicates why the callback was invoked.
eventPoints to the XEvent that triggered the callback. It can be NULL.
selectionIndicates the selection for which data transfer is being requested.
Possible values are CLIPBOARD, PRIMARY, SECONDARY,
and _MOTIF_DROP.
operationIndicates the type of transfer operation requested.
When the selection is PRIMARY, possible values are XmMOVE,
XmCOPY, and XmLINK.
When the selection is SECONDARY or CLIPBOARD, possible
values are XmCOPY and XmLINK.
When the selection is _MOTIF_DROP, possible values are XmMOVE, XmCOPY,
XmLINK, and XmOTHER. A value of XmOTHER means that the callback procedure must
get further information from the XmDropProcCallbackStruct in the
destination_data member.
flagsIndicates whether or not the destination widget is also the source of the
data to be transferred. Following are the possible values:
XmCONVERTING_NONEThe destination widget is not the source of the data to be transferred.
XmCONVERTING_SAMEThe destination widget is the source of the data to be transferred.
transfer_idServes as a unique ID to identify the transfer transaction.
destination_dataContains information about the destination. When the selection is
_MOTIF_DROP, the callback procedures are called by the drop site's
XmNdropProc, and destination_data is a pointer to the
XmDropProcCallbackStruct passed to the XmNdropProc procedure. When the
selection is SECONDARY, destination_data is an Atom
representing a target recommmended by the selection owner for use in
converting the selection. Otherwise, destination_data is NULL.
location_dataContains information about the location where data is to be transferred.
The value is always NULL when the selection is SECONDARY or
CLIPBOARD. If the value is NULL, the data is to be inserted at the
widget's cursor position. location_data
is only valid for the
duration of a transfer. Once XmTransferDone procedures start to be
called, location_data
will no longer be stable.
timeIndicates the time when the transfer operation began.
XmDrawingArea inherits translations from XmManager. Before calling the
XmManager actions, all events in the inherited translations except BtnMotion,
EnterWindow, LeaveWindow, FocusIn, and FocusOut also call the
DrawingAreaInput() action.
XmDrawingArea has the following additional translations. 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.
BtnDown:DrawingAreaInput()
BtnUp:DrawingAreaInput()
KeyDown:DrawingAreaInput() ManagerGadgetKeyInput()
KeyUp:DrawingAreaInput()
The XmDrawingArea action routines are
DrawingAreaInput() :Unless the event takes place in a gadget, calls the callbacks for
XmNinputCallback
ManagerGadgetKeyInput() :Causes the current gadget to process a keyboard event
The XmDrawingArea widget has the following additional behavior:
Expose:Calls the callbacks for XmNexposeCallback
Widget Resize:Calls the callbacks for XmNresizeCallback
The bindings for virtual keys are vendor specific. For information
about bindings for virtual buttons and keys, see
VirtualBindings
(3).
RELATED
Composite
(3), Constraint
(3), Core
(3),
XmCreateDrawingArea
(3), and XmManager
(3).
[ Previous |
Next |
Contents |
Glossary |
Home |
Search ]