deb4998ba50060c48cce222fd18a8eed053918d7vboxsync/************************************************************
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsyncCopyright 1996 by Thomas E. Dickey <dickey@clark.net>
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync All Rights Reserved
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsyncPermission to use, copy, modify, and distribute this software and its
deb4998ba50060c48cce222fd18a8eed053918d7vboxsyncdocumentation for any purpose and without fee is hereby granted,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsyncprovided that the above copyright notice appear in all copies and that
deb4998ba50060c48cce222fd18a8eed053918d7vboxsyncboth that copyright notice and this permission notice appear in
deb4998ba50060c48cce222fd18a8eed053918d7vboxsyncsupporting documentation, and that the name of the above listed
deb4998ba50060c48cce222fd18a8eed053918d7vboxsynccopyright holder(s) not be used in advertising or publicity pertaining
deb4998ba50060c48cce222fd18a8eed053918d7vboxsyncto distribution of the software without specific, written prior
deb4998ba50060c48cce222fd18a8eed053918d7vboxsyncpermission.
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsyncTHE ABOVE LISTED COPYRIGHT HOLDER(S) DISCLAIM ALL WARRANTIES WITH REGARD
deb4998ba50060c48cce222fd18a8eed053918d7vboxsyncTO THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
deb4998ba50060c48cce222fd18a8eed053918d7vboxsyncAND FITNESS, IN NO EVENT SHALL THE ABOVE LISTED COPYRIGHT HOLDER(S) BE
deb4998ba50060c48cce222fd18a8eed053918d7vboxsyncLIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
deb4998ba50060c48cce222fd18a8eed053918d7vboxsyncWHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
deb4998ba50060c48cce222fd18a8eed053918d7vboxsyncACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
deb4998ba50060c48cce222fd18a8eed053918d7vboxsyncOR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync********************************************************/
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync/********************************************************************
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync * Interface of 'exevents.c'
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync */
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync#ifndef EXEVENTS_H
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync#define EXEVENTS_H
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsyncextern void RegisterOtherDevice (
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync DeviceIntPtr /* device */);
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsyncextern void ProcessOtherEvent (
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync xEventPtr /* FIXME deviceKeyButtonPointer * xE */,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync DeviceIntPtr /* other */,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync int /* count */);
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsyncextern int InitProximityClassDeviceStruct(
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync DeviceIntPtr /* dev */);
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsyncextern void InitValuatorAxisStruct(
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync DeviceIntPtr /* dev */,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync int /* axnum */,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync int /* minval */,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync int /* maxval */,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync int /* resolution */,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync int /* min_res */,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync int /* max_res */);
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsyncextern void DeviceFocusEvent(
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync DeviceIntPtr /* dev */,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync int /* type */,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync int /* mode */,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync int /* detail */,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync WindowPtr /* pWin */);
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsyncextern int GrabButton(
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync ClientPtr /* client */,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync DeviceIntPtr /* dev */,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync BYTE /* this_device_mode */,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync BYTE /* other_devices_mode */,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync CARD16 /* modifiers */,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync DeviceIntPtr /* modifier_device */,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync CARD8 /* button */,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync Window /* grabWindow */,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync BOOL /* ownerEvents */,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync Cursor /* rcursor */,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync Window /* rconfineTo */,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync Mask /* eventMask */);
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsyncextern int GrabKey(
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync ClientPtr /* client */,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync DeviceIntPtr /* dev */,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync BYTE /* this_device_mode */,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync BYTE /* other_devices_mode */,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync CARD16 /* modifiers */,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync DeviceIntPtr /* modifier_device */,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync CARD8 /* key */,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync Window /* grabWindow */,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync BOOL /* ownerEvents */,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync Mask /* mask */);
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsyncextern int SelectForWindow(
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync DeviceIntPtr /* dev */,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync WindowPtr /* pWin */,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync ClientPtr /* client */,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync Mask /* mask */,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync Mask /* exclusivemasks */,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync Mask /* validmasks */);
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsyncextern int AddExtensionClient (
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync WindowPtr /* pWin */,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync ClientPtr /* client */,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync Mask /* mask */,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync int /* mskidx */);
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsyncextern void RecalculateDeviceDeliverableEvents(
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync WindowPtr /* pWin */);
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsyncextern int InputClientGone(
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync WindowPtr /* pWin */,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync XID /* id */);
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsyncextern int SendEvent (
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync ClientPtr /* client */,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync DeviceIntPtr /* d */,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync Window /* dest */,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync Bool /* propagate */,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync xEvent * /* ev */,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync Mask /* mask */,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync int /* count */);
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsyncextern int SetButtonMapping (
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync ClientPtr /* client */,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync DeviceIntPtr /* dev */,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync int /* nElts */,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync BYTE * /* map */);
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsyncextern int SetModifierMapping(
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync ClientPtr /* client */,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync DeviceIntPtr /* dev */,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync int /* len */,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync int /* rlen */,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync int /* numKeyPerModifier */,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync KeyCode * /* inputMap */,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync KeyClassPtr * /* k */);
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsyncextern void SendDeviceMappingNotify(
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync CARD8 /* request, */,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync KeyCode /* firstKeyCode */,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync CARD8 /* count */,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync DeviceIntPtr /* dev */);
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsyncextern int ChangeKeyMapping(
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync ClientPtr /* client */,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync DeviceIntPtr /* dev */,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync unsigned /* len */,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync int /* type */,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync KeyCode /* firstKeyCode */,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync CARD8 /* keyCodes */,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync CARD8 /* keySymsPerKeyCode */,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync KeySym * /* map */);
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsyncextern void DeleteWindowFromAnyExtEvents(
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync WindowPtr /* pWin */,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync Bool /* freeResources */);
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsyncextern void DeleteDeviceFromAnyExtEvents(
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync WindowPtr /* pWin */,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync DeviceIntPtr /* dev */);
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsyncextern int MaybeSendDeviceMotionNotifyHint (
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync deviceKeyButtonPointer * /* pEvents */,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync Mask /* mask */);
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsyncextern void CheckDeviceGrabAndHintWindow (
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync WindowPtr /* pWin */,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync int /* type */,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync deviceKeyButtonPointer * /* xE */,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync GrabPtr /* grab */,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync ClientPtr /* client */,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync Mask /* deliveryMask */);
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsyncextern Mask DeviceEventMaskForClient(
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync DeviceIntPtr /* dev */,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync WindowPtr /* pWin */,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync ClientPtr /* client */);
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsyncextern void MaybeStopDeviceHint(
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync DeviceIntPtr /* dev */,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync ClientPtr /* client */);
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsyncextern int DeviceEventSuppressForWindow(
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync WindowPtr /* pWin */,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync ClientPtr /* client */,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync Mask /* mask */,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync int /* maskndx */);
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync#endif /* EXEVENTS_H */