Tcl/Tk Documentation > TkLib > EventHndlr
Tk_CreateEventHandler(tkwin, mask, proc, clientData)
Tk_DeleteEventHandler(tkwin, mask, proc, clientData)
- Tk_Window tkwin (in)
- Token for window in which events may occur.
- unsigned long mask (in)
- Bit-mask of events (such as ButtonPressMask) for which proc should be called.
- Tk_EventProc *proc (in)
- Procedure to invoke whenever an event in mask occurs in the window given by tkwin.
- ClientData clientData (in)
- Arbitrary one-word value to pass to proc.
Proc should have arguments and result that match the type Tk_EventProc:
typedef void Tk_EventProc( ClientData clientData, XEvent *eventPtr);The clientData parameter to proc is a copy of the clientData argument given to Tk_CreateEventHandler when the callback was created. Typically, clientData points to a data structure containing application-specific information about the window in which the event occurred. EventPtr is a pointer to the X event, which will be one of the ones specified in the mask argument to Tk_CreateEventHandler.
Tk_DeleteEventHandler may be called to delete a previously-created event handler: it deletes the first handler it finds that is associated with tkwin and matches the mask, proc, and clientData arguments. If no such handler exists, then Tk_HandleEvent returns without doing anything. Although Tk supports it, it's probably a bad idea to have more than one callback with the same mask, proc, and clientData arguments. When a window is deleted all of its handlers will be deleted automatically; in this case there is no need to call Tk_DeleteEventHandler.
If multiple handlers are declared for the same type of X event on the same window, then the handlers will be invoked in the order they were created.bind, callback, event, handler