1*4882a593Smuzhiyun /************************************************************ 2*4882a593Smuzhiyun 3*4882a593Smuzhiyun Copyright 1996 by Thomas E. Dickey <dickey@clark.net> 4*4882a593Smuzhiyun 5*4882a593Smuzhiyun All Rights Reserved 6*4882a593Smuzhiyun 7*4882a593Smuzhiyun Permission to use, copy, modify, and distribute this software and its 8*4882a593Smuzhiyun documentation for any purpose and without fee is hereby granted, 9*4882a593Smuzhiyun provided that the above copyright notice appear in all copies and that 10*4882a593Smuzhiyun both that copyright notice and this permission notice appear in 11*4882a593Smuzhiyun supporting documentation, and that the name of the above listed 12*4882a593Smuzhiyun copyright holder(s) not be used in advertising or publicity pertaining 13*4882a593Smuzhiyun to distribution of the software without specific, written prior 14*4882a593Smuzhiyun permission. 15*4882a593Smuzhiyun 16*4882a593Smuzhiyun THE ABOVE LISTED COPYRIGHT HOLDER(S) DISCLAIM ALL WARRANTIES WITH REGARD 17*4882a593Smuzhiyun TO THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY 18*4882a593Smuzhiyun AND FITNESS, IN NO EVENT SHALL THE ABOVE LISTED COPYRIGHT HOLDER(S) BE 19*4882a593Smuzhiyun LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES 20*4882a593Smuzhiyun WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN 21*4882a593Smuzhiyun ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF 22*4882a593Smuzhiyun OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. 23*4882a593Smuzhiyun 24*4882a593Smuzhiyun ********************************************************/ 25*4882a593Smuzhiyun 26*4882a593Smuzhiyun #ifndef DIXGRABS_H 27*4882a593Smuzhiyun #define DIXGRABS_H 1 28*4882a593Smuzhiyun 29*4882a593Smuzhiyun struct _GrabParameters; 30*4882a593Smuzhiyun 31*4882a593Smuzhiyun extern void PrintDeviceGrabInfo(DeviceIntPtr dev); 32*4882a593Smuzhiyun extern void UngrabAllDevices(Bool kill_client); 33*4882a593Smuzhiyun 34*4882a593Smuzhiyun extern GrabPtr AllocGrab(const GrabPtr src); 35*4882a593Smuzhiyun extern void FreeGrab(GrabPtr grab); 36*4882a593Smuzhiyun extern Bool CopyGrab(GrabPtr dst, const GrabPtr src); 37*4882a593Smuzhiyun 38*4882a593Smuzhiyun extern GrabPtr CreateGrab(int /* client */ , 39*4882a593Smuzhiyun DeviceIntPtr /* device */ , 40*4882a593Smuzhiyun DeviceIntPtr /* modDevice */ , 41*4882a593Smuzhiyun WindowPtr /* window */ , 42*4882a593Smuzhiyun enum InputLevel /* grabtype */ , 43*4882a593Smuzhiyun GrabMask * /* mask */ , 44*4882a593Smuzhiyun struct _GrabParameters * /* param */ , 45*4882a593Smuzhiyun int /* type */ , 46*4882a593Smuzhiyun KeyCode /* keybut */ , 47*4882a593Smuzhiyun WindowPtr /* confineTo */ , 48*4882a593Smuzhiyun CursorPtr /* cursor */ ); 49*4882a593Smuzhiyun 50*4882a593Smuzhiyun extern _X_EXPORT int DeletePassiveGrab(void *value, 51*4882a593Smuzhiyun XID id); 52*4882a593Smuzhiyun 53*4882a593Smuzhiyun extern _X_EXPORT Bool GrabMatchesSecond(GrabPtr /* pFirstGrab */ , 54*4882a593Smuzhiyun GrabPtr /* pSecondGrab */ , 55*4882a593Smuzhiyun Bool /*ignoreDevice */ ); 56*4882a593Smuzhiyun 57*4882a593Smuzhiyun extern _X_EXPORT int AddPassiveGrabToList(ClientPtr /* client */ , 58*4882a593Smuzhiyun GrabPtr /* pGrab */ ); 59*4882a593Smuzhiyun 60*4882a593Smuzhiyun extern _X_EXPORT Bool DeletePassiveGrabFromList(GrabPtr /* pMinuendGrab */ ); 61*4882a593Smuzhiyun 62*4882a593Smuzhiyun extern Bool GrabIsPointerGrab(GrabPtr grab); 63*4882a593Smuzhiyun extern Bool GrabIsKeyboardGrab(GrabPtr grab); 64*4882a593Smuzhiyun #endif /* DIXGRABS_H */ 65