XtAddEventHandler()XtAddEventHandler()NameXtAddEventHandler - register a procedure to be called when specified
events occur on a widget.
Synopsis
void XtAddEventHandler(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.
DescriptionXtAddEventHandler() 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. If the window of the widget is not already receiving events
of the specified types, XtAddEventHandler() calls XSelectInput() to
ensure that they will be delivered. Additionally, if the handler is
registered with the nonmaskable argument True, then it will also be
invoked when any of the nonmaskable event types occur. These events
are GraphicsExpose, NoExpose, SelectionClear, SelectionRequest, Selec‐
tionNotify, ClientMessage, and MappingNotify. Ordinarily, nonmaskable
events are of interest only to the Intrinsics.
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
Neither applications nor widgets often need to use event handlers.
Using action procedures and translation tables provides a more flexible
way to respond to input events.
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
XtInsertEventHandler() will register an event handler that will be
called before or after all previously registered handlers.
An event handler can be removed with XtRemoveEventHandler().
Structures
Each of the event mask symbols 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 nonmask‐
able 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 AlsoXtAddRawEventHandler(1), XtInsertEventHandler(1), XtRemoveEven‐
tHandler(1),
XtEventHandler(2).
Xt - Event Handling XtAddEventHandler()