[Contents] [Index] [Next] [Previous]



XmDrawingArea - The DrawingArea widget class


#include <Xm/DrawingA.h>


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 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
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.

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.
Specifies the minimum spacing in pixels between the top or bottom edge of DrawingArea and any child widget.
Specifies the minimum spacing in pixels between the left or right edge of DrawingArea and any child widget.
Specifies the list of callbacks that is called when the DrawingArea is resized. The callback reason is XmCR_RESIZE.
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 XemTAB_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
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:

typedef struct
   int     reason;
   XEvent  * event;
   Window  window;
} XmDrawingAreaCallbackStruct;
Indicates why the callback was invoked
Points to the XEvent that triggered the callback. This is NULL for the XmNresizeCallback.
Is set to the widget window


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()
MAny KAny Release:  DrawingAreaInput()

Action Routines

The XmDrawingArea action routines are described below:

Unless the event takes place in a gadget, calls the callbacks for XmNinputCallback.
Causes the current gadget to process a keyboard event.

Additional Behavior

The XmDrawingArea widget has the additional behavior described below:

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(3X).


Composite(3X), Constraint(3X), Core(3X), XmCreateDrawingArea(3X), and XmManager(3X).