105b261ecSmrg/************************************************************
205b261ecSmrg
305b261ecSmrgCopyright 1996 by Thomas E. Dickey <dickey@clark.net>
405b261ecSmrg
505b261ecSmrg                        All Rights Reserved
605b261ecSmrg
705b261ecSmrgPermission to use, copy, modify, and distribute this software and its
805b261ecSmrgdocumentation for any purpose and without fee is hereby granted,
905b261ecSmrgprovided that the above copyright notice appear in all copies and that
1005b261ecSmrgboth that copyright notice and this permission notice appear in
1105b261ecSmrgsupporting documentation, and that the name of the above listed
1205b261ecSmrgcopyright holder(s) not be used in advertising or publicity pertaining
1305b261ecSmrgto distribution of the software without specific, written prior
1405b261ecSmrgpermission.
1505b261ecSmrg
1605b261ecSmrgTHE ABOVE LISTED COPYRIGHT HOLDER(S) DISCLAIM ALL WARRANTIES WITH REGARD
1705b261ecSmrgTO THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
1805b261ecSmrgAND FITNESS, IN NO EVENT SHALL THE ABOVE LISTED COPYRIGHT HOLDER(S) BE
1905b261ecSmrgLIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
2005b261ecSmrgWHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
2105b261ecSmrgACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
2205b261ecSmrgOR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
2305b261ecSmrg
2405b261ecSmrg********************************************************/
2505b261ecSmrg
2605b261ecSmrg#ifndef DIXGRABS_H
2705b261ecSmrg#define DIXGRABS_H 1
2805b261ecSmrg
296747b715Smrgstruct _GrabParameters;
306747b715Smrg
3135c4bbdfSmrgextern void PrintDeviceGrabInfo(DeviceIntPtr dev);
3235c4bbdfSmrgextern void UngrabAllDevices(Bool kill_client);
3335c4bbdfSmrg
3435c4bbdfSmrgextern GrabPtr AllocGrab(const GrabPtr src);
3535c4bbdfSmrgextern void FreeGrab(GrabPtr grab);
3635c4bbdfSmrgextern Bool CopyGrab(GrabPtr dst, const GrabPtr src);
3735c4bbdfSmrg
3835c4bbdfSmrgextern GrabPtr CreateGrab(int /* client */ ,
3935c4bbdfSmrg                          DeviceIntPtr /* device */ ,
4035c4bbdfSmrg                          DeviceIntPtr /* modDevice */ ,
4135c4bbdfSmrg                          WindowPtr /* window */ ,
4235c4bbdfSmrg                          enum InputLevel /* grabtype */ ,
4335c4bbdfSmrg                          GrabMask * /* mask */ ,
4435c4bbdfSmrg                          struct _GrabParameters * /* param */ ,
4535c4bbdfSmrg                          int /* type */ ,
4635c4bbdfSmrg                          KeyCode /* keybut */ ,
4735c4bbdfSmrg                          WindowPtr /* confineTo */ ,
4835c4bbdfSmrg                          CursorPtr /* cursor */ );
4935c4bbdfSmrg
5035c4bbdfSmrgextern _X_EXPORT int DeletePassiveGrab(void *value,
5135c4bbdfSmrg                                       XID id);
5235c4bbdfSmrg
5335c4bbdfSmrgextern _X_EXPORT Bool GrabMatchesSecond(GrabPtr /* pFirstGrab */ ,
5435c4bbdfSmrg                                        GrabPtr /* pSecondGrab */ ,
5535c4bbdfSmrg                                        Bool /*ignoreDevice */ );
5635c4bbdfSmrg
5735c4bbdfSmrgextern _X_EXPORT int AddPassiveGrabToList(ClientPtr /* client */ ,
5835c4bbdfSmrg                                          GrabPtr /* pGrab */ );
5935c4bbdfSmrg
6035c4bbdfSmrgextern _X_EXPORT Bool DeletePassiveGrabFromList(GrabPtr /* pMinuendGrab */ );
6135c4bbdfSmrg
6235c4bbdfSmrgextern Bool GrabIsPointerGrab(GrabPtr grab);
6335c4bbdfSmrgextern Bool GrabIsKeyboardGrab(GrabPtr grab);
64ed6184dfSmrgextern Bool GrabIsGestureGrab(GrabPtr grab);
6535c4bbdfSmrg#endif                          /* DIXGRABS_H */
66