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.
Classes
DrawingArea inherits behavior and resources from the Core,
Composite, Constraint, and XmManager classes.
The class pointer is xmDrawingAreaWidgetClass.
The class name is XmDrawingArea.
New resources
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
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
XmNexposeCallback
Specifies 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.
XmNinputCallback
Specifies 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.
XmNmarginHeight
Specifies the minimum spacing in pixels between the top or bottom edge
of DrawingArea and any child widget.
XmNmarginWidth
Specifies the minimum spacing in pixels between the left or right edge
of DrawingArea and any child widget.
XmNresizeCallback
Specifies the list of callbacks that is
called when the DrawingArea is resized.
The callback reason is XmCR_RESIZE.
XmNresizePolicy
Controls 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).
Inherited resources
DrawingArea inherits behavior and resources from the following
superclasses. For a complete description of each resource, refer to the
man 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
XmNnavigationType
XmCNavigationType
XmNavigationType
XmTAB_GROUP
CSG
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
Callback information
A pointer to the following structure is passed to each callback:
Points to the XEvent that triggered the callback.
This is NULL for the XmNresizeCallback.
window
Is set to the widget window.
Translations
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 additional translations listed below.
These translations may not directly correspond to a
translation table.
MAny BAny Press: DrawingAreaInput()
MAny BAny Release: DrawingAreaInput()
MAny KAny Press: DrawingAreaInput()
ManagerGadgetKeyInput()
MAny KAny Release: DrawingAreaInput()
Action routines
The XmDrawingArea action routines are described below:
DrawingAreaInput():
Unless the event takes place in a gadget, calls the callbacks for
XmNinputCallback.
ManagerGadgetKeyInput():
Causes the current gadget to process a keyboard event.
Additional behavior
The XmDrawingArea widget has the additional behavior described below:
<Expose>:
Calls the callbacks for XmNexposeCallback.
<Widget Resize>:
Calls the callbacks for XmNresizeCallback.
Virtual bindings
The bindings for virtual keys are vendor specific.
For information about bindings for virtual buttons and keys, see
VirtualBindings(X3mot).