Tk_Grab, Tk_Ungrab — manipulate grab state in an application
- Tk_Grab, Tk_Ungrab — manipulate grab state in an application
- #include <tk.h>
- Tk_Grab(interp, tkwin, grabGlobal)
Tk_Grab(interp, tkwin, grabGlobal)
These functions are used to set or release a global or
application local grab. When a grab is set on a particular window
in a Tk application, mouse and keyboard events can only be received by
that window and its descendants. Mouse and keyboard events for
windows outside the tree rooted at tkwin will be redirected to
tkwin. If the grab is global, then all mouse and keyboard
events for windows outside the tree rooted at tkwin (even those
intended for windows in other applications) will be redirected to
tkwin. If the grab is application local, only mouse and
keyboard events intended for a windows within the same application
(but outside the tree rooted at tkwin) will be redirected.
- Tcl_Interp *interp (in)
Interpreter to use for error reporting
- Tk_Window tkwin (in)
Window on whose behalf the pointer is to be grabbed or released
- int grabGlobal (in)
Boolean indicating whether the grab is global or application local
Tk_Grab sets a grab on a particular window. Tkwin
specifies the window on whose behalf the pointer is to be grabbed.
GrabGlobal indicates whether the grab should be global or
application local; if it is non-zero, it means the grab should be
global. Normally, Tk_Grab returns TCL_OK; if an error occurs
and the grab cannot be set, TCL_ERROR is returned and an error message
is left if interp's result. Once this call completes
successfully, no window outside the tree rooted at tkwin will
receive pointer- or keyboard-related events until the next call to
Tk_Ungrab. If a previous grab was in effect within the application,
then it is replaced with a new one.
Tk_Ungrab releases a grab on the mouse pointer and keyboard, if
there is one set on the window given by tkwin. Once a grab is
released, pointer and keyboard events will start being delivered to
other windows again.
Copyright © 1998-2000 by Scriptics Corporation.