Query: xtaddraweventhandler
OS: hpux
Section: 1
Format: Original Unix Latex Style Formatted with HTML and a Horizontal Scroll Bar
XtAddRawEventHandler() XtAddRawEventHandler() Name XtAddRawEventHandler - 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 nonmaskable event types. proc Specifies the handler procedure. client_data Specifies additional data to be passed to the event handler. Description XtAddRawEventHandler() 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 nonmaskable argument True, then it will also be invoked when any of the nonmaskable event types occur. These events are GraphicsExpose, NoExpose, SelectionClear, SelectionRequest, SelectionNotify, ClientMes- sage, 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 handler 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 Intrinsics 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 func- tion 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 XtRemoveRawEventHandler(). 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 Also XtAddEventHandler(1), XtInsertRawEventHandler(1), XtRemoveRawEventHandler(1), XtEventHandler(2). Xt - Event Handling XtAddRawEventHandler()