XtAddRawEventHandler()XtAddRawEventHandler()NameXtAddRawEventHandler - register an event handler without selecting for
the event.
Synopsis
void XtAddRawEventHandler(w, event_mask, nonmaskable, proc, client‐
_data)
Widget w;
EventMask event_mask;
Boolean nonmaskable;
XtEventHandler proc;
XtPointer client_data;
Inputs
w Specifies the widget for which this event handler is being
registered. Must be of class Core or any subclass thereof.
event_mask
Specifies the event type that will trigger the handler.
nonmaskable
Specifies whether this procedure should be called on nonmask‐
able event types.
proc Specifies the handler procedure.
client_data
Specifies additional data to be passed to the event handler.
DescriptionXtAddRawEventHandler() registers the procedure proc and the data
client_data with the Intrinsics event dispatching mechanism. When an
event of one of the types set in event_mask occurs on the window of the
widget w, proc will be invoked and client_data passed as one of its
arguments. Additionally, if the handler is registered with the non‐
maskable argument True, then it will also be invoked when any of the
nonmaskable event types occur. These events are GraphicsExpose, NoEx‐
pose, SelectionClear, SelectionRequest, SelectionNotify, ClientMessage,
and MappingNotify. Ordinarily, nonmaskable events are of interest only
to the Intrinsics.
XtAddRawEventHandler() is similar to XtAddEventHandler() except that it
never causes an XSelectInput() call to be made for its events. The
event mask in XtAddRawEventHandler() indicates which events the handler
will be called in response to, but only when these events are selected
elsewhere.
If the specified procedure/data pair has already been registered for
this widget, then the event_mask argument augments the event mask
already registered for the handler, and the procedure will only be
called once for any particular event. The same procedure may be regis‐
tered multiple times with different values of client_data, and each
instance will be treated as a separate handler.
See XtEventHandler(2) for an explanation of how to write an event han‐
dler procedure.
Usage
You rarely need to register a raw event handler. XtAddEventHandler is
sufficient in most cases. In particular, you do not need to use raw
event handlers to avoid redundant calls to XSelectInput(). The Intrin‐
sics keep track of the event mask of each widget and calls XSelectIn‐
put() only when necessary.
The Intrinsics do not specify the order in which event handlers will be
called when an event arrives. As of Release 4, however, the function
XtInsertRawEventHandler() will register a raw event handler that will
be called before or after all previously registered handlers.
Raw event handlers are removed with a call to XtRemoveRawEven‐
tHandler().
Structures
Each of the event types listed in the table below set a single bit in
an event mask. The event_mask argument is formed by combining these
symbols with the bitwise OR operator ( ). Note that the nonmaskable
event types do not appear in this table and cannot be requested in an
event mask.
NoEventMask Button1MotionMask StructureNotifyMask
KeyPressMask Button2MotionMask ResizeRedirectMask
KeyReleaseMask Button3MotionMask SubstructureNotifyMask
ButtonPressMask Button4MotionMask SubstructureRedirectMask
ButtonReleaseMask Button5MotionMask FocusChangeMask
EnterWindowMask ButtonMotionMask PropertyChangeMask
LeaveWindowMask KeymapStateMask ColormapChangeMask
PointerMotionMask ExposureMask OwnerGrabButtonMask
PointerMotionHintMask VisibilityChangeMask
See Appendix C, Event Reference, for more information on event types and
masks.See AlsoXtAddEventHandler(1), XtInsertRawEventHandler(1), XtRemoveRawEven‐
tHandler(1),
XtEventHandler(2).
Xt - Event Handling XtAddRawEventHandler()