|
ActiveTcl User Guide |
|
Tk_Grab, Tk_Ungrab - manipulate grab state in an application
#include <tk.h>
int
Tk_Grab(interp, tkwin, grabGlobal)
void
Tk_Ungrab(tkwin)
- 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
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.
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.
Tcl_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.
grab, window
Copyright © 1998-2000 by Scriptics Corporation.
Copyright © 1995-1997 Roger E. Critchlow Jr.