Museum

Home

Lab Overview

Retrotechnology Articles

Online Manuals

⇒ XtAddEventH(3x) — HP-UX 9.10

Media Vault

Software Library

Restoration Projects

Artifacts Sought

Related Articles

XtAddRawEventHandler(1)

XtInsertEventHandler(1)

XtRemoveEventHandler(1)

XtEventHandler(2)

 

NAME

XtAddEventHandler − 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

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

procSpecifies the handler procedure. 

client_data
Specifies additional data to be passed to the event handler.

Description

XtAddEventHandler() 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, SelectionNotify, 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 registered 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

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

XtAddRawEventHandler(1), XtInsertEventHandler(1), XtRemoveEventHandler(1),
XtEventHandler(2). 

Copyright O’Reilly & Assoc.  —  X Toolkit Intrinsics Reference Manual © O’Reilly & Associates

Typewritten Software • bear@typewritten.org • Edmonds, WA 98026