deb4998ba50060c48cce222fd18a8eed053918d7vboxsync/************************************************************
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsyncCopyright 1987, 1998 The Open Group
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsyncPermission to use, copy, modify, distribute, and sell this software and its
deb4998ba50060c48cce222fd18a8eed053918d7vboxsyncdocumentation for any purpose is hereby granted without fee, provided that
deb4998ba50060c48cce222fd18a8eed053918d7vboxsyncthe above copyright notice appear in all copies and that both that
deb4998ba50060c48cce222fd18a8eed053918d7vboxsynccopyright notice and this permission notice appear in supporting
deb4998ba50060c48cce222fd18a8eed053918d7vboxsyncdocumentation.
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsyncThe above copyright notice and this permission notice shall be included in
deb4998ba50060c48cce222fd18a8eed053918d7vboxsyncall copies or substantial portions of the Software.
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsyncTHE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
deb4998ba50060c48cce222fd18a8eed053918d7vboxsyncIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsyncFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
deb4998ba50060c48cce222fd18a8eed053918d7vboxsyncOPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
deb4998ba50060c48cce222fd18a8eed053918d7vboxsyncAN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
deb4998ba50060c48cce222fd18a8eed053918d7vboxsyncCONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsyncExcept as contained in this notice, the name of The Open Group shall not be
deb4998ba50060c48cce222fd18a8eed053918d7vboxsyncused in advertising or otherwise to promote the sale, use or other dealings
deb4998ba50060c48cce222fd18a8eed053918d7vboxsyncin this Software without prior written authorization from The Open Group.
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsyncCopyright 1987 by Digital Equipment Corporation, Maynard, Massachusetts.
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 Digital not be
deb4998ba50060c48cce222fd18a8eed053918d7vboxsyncused in advertising or publicity pertaining to distribution of the
deb4998ba50060c48cce222fd18a8eed053918d7vboxsyncsoftware without specific, written prior permission.
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsyncDIGITAL DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING
deb4998ba50060c48cce222fd18a8eed053918d7vboxsyncALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL
deb4998ba50060c48cce222fd18a8eed053918d7vboxsyncDIGITAL BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR
deb4998ba50060c48cce222fd18a8eed053918d7vboxsyncANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsyncWHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsyncARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS
deb4998ba50060c48cce222fd18a8eed053918d7vboxsyncSOFTWARE.
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync********************************************************/
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync#ifndef INPUT_H
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync#define INPUT_H
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync#include "misc.h"
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync#include "screenint.h"
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync#include <X11/Xmd.h>
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync#include <X11/Xproto.h>
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync#include "window.h" /* for WindowPtr */
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync#define DEVICE_INIT 0
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync#define DEVICE_ON 1
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync#define DEVICE_OFF 2
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync#define DEVICE_CLOSE 3
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync#define MAP_LENGTH 256
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync#define DOWN_LENGTH 32 /* 256/8 => number of bytes to hold 256 bits */
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync#define NullGrab ((GrabPtr)NULL)
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync#define PointerRootWin ((WindowPtr)PointerRoot)
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync#define NoneWin ((WindowPtr)None)
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync#define NullDevice ((DevicePtr)NULL)
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync#ifndef FollowKeyboard
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync#define FollowKeyboard 3
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync#endif
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync#ifndef FollowKeyboardWin
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync#define FollowKeyboardWin ((WindowPtr) FollowKeyboard)
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync#endif
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync#ifndef RevertToFollowKeyboard
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync#define RevertToFollowKeyboard 3
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync#endif
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsynctypedef unsigned long Leds;
deb4998ba50060c48cce222fd18a8eed053918d7vboxsynctypedef struct _OtherClients *OtherClientsPtr;
deb4998ba50060c48cce222fd18a8eed053918d7vboxsynctypedef struct _InputClients *InputClientsPtr;
deb4998ba50060c48cce222fd18a8eed053918d7vboxsynctypedef struct _DeviceIntRec *DeviceIntPtr;
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsynctypedef int (*DeviceProc)(
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync DeviceIntPtr /*device*/,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync int /*what*/);
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsynctypedef void (*ProcessInputProc)(
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync xEventPtr /*events*/,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync DeviceIntPtr /*device*/,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync int /*count*/);
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsynctypedef Bool (*DeviceHandleProc)(
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync DeviceIntPtr /*device*/,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync void* /*data*/
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync );
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsynctypedef void (*DeviceUnwrapProc)(
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync DeviceIntPtr /*device*/,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync DeviceHandleProc /*proc*/,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync void* /*data*/
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync );
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsynctypedef struct _DeviceRec {
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync pointer devicePrivate;
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync ProcessInputProc processInputProc; /* current */
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync ProcessInputProc realInputProc; /* deliver */
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync ProcessInputProc enqueueInputProc; /* enqueue */
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync Bool on; /* used by DDX to keep state */
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync} DeviceRec, *DevicePtr;
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsynctypedef struct {
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync int click, bell, bell_pitch, bell_duration;
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync Bool autoRepeat;
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync unsigned char autoRepeats[32];
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync Leds leds;
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync unsigned char id;
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync} KeybdCtrl;
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsynctypedef struct {
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync KeySym *map;
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync KeyCode minKeyCode,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync maxKeyCode;
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync int mapWidth;
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync} KeySymsRec, *KeySymsPtr;
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsynctypedef struct {
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync int num, den, threshold;
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync unsigned char id;
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync} PtrCtrl;
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsynctypedef struct {
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync int resolution, min_value, max_value;
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync int integer_displayed;
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync unsigned char id;
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync} IntegerCtrl;
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsynctypedef struct {
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync int max_symbols, num_symbols_supported;
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync int num_symbols_displayed;
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync KeySym *symbols_supported;
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync KeySym *symbols_displayed;
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync unsigned char id;
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync} StringCtrl;
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsynctypedef struct {
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync int percent, pitch, duration;
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync unsigned char id;
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync} BellCtrl;
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsynctypedef struct {
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync Leds led_values;
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync Mask led_mask;
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync unsigned char id;
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync} LedCtrl;
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsyncextern int AllocateDevicePrivateIndex(void);
deb4998ba50060c48cce222fd18a8eed053918d7vboxsyncextern Bool AllocateDevicePrivate(DeviceIntPtr device, int index);
deb4998ba50060c48cce222fd18a8eed053918d7vboxsyncextern void ResetDevicePrivateIndex(void);
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsyncextern KeybdCtrl defaultKeyboardControl;
deb4998ba50060c48cce222fd18a8eed053918d7vboxsyncextern PtrCtrl defaultPointerControl;
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsyncextern DeviceIntPtr AddInputDevice(
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync DeviceProc /*deviceProc*/,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync Bool /*autoStart*/);
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsyncextern Bool EnableDevice(
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync DeviceIntPtr /*device*/);
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsyncextern Bool DisableDevice(
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync DeviceIntPtr /*device*/);
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsyncextern int InitAndStartDevices(void);
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsyncextern void CloseDownDevices(void);
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsyncextern void RemoveDevice(
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync DeviceIntPtr /*dev*/);
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsyncextern int NumMotionEvents(void);
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsyncextern void RegisterPointerDevice(
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync DeviceIntPtr /*device*/);
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsyncextern void RegisterKeyboardDevice(
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync DeviceIntPtr /*device*/);
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsyncextern DevicePtr LookupKeyboardDevice(void);
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsyncextern DevicePtr LookupPointerDevice(void);
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsyncextern DevicePtr LookupDevice(
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync int /* id */);
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsyncextern void QueryMinMaxKeyCodes(
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync KeyCode* /*minCode*/,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync KeyCode* /*maxCode*/);
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsyncextern Bool SetKeySymsMap(
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync KeySymsPtr /*dst*/,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync KeySymsPtr /*src*/);
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsyncextern Bool InitKeyClassDeviceStruct(
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync DeviceIntPtr /*device*/,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync KeySymsPtr /*pKeySyms*/,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync CARD8 /*pModifiers*/[]);
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsyncextern Bool InitButtonClassDeviceStruct(
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync DeviceIntPtr /*device*/,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync int /*numButtons*/,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync CARD8* /*map*/);
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsynctypedef int (*ValuatorMotionProcPtr)(
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync DeviceIntPtr /*pdevice*/,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync xTimecoord * /*coords*/,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync unsigned long /*start*/,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync unsigned long /*stop*/,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync ScreenPtr /*pScreen*/);
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsyncextern Bool InitValuatorClassDeviceStruct(
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync DeviceIntPtr /*device*/,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync int /*numAxes*/,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync ValuatorMotionProcPtr /* motionProc */,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync int /*numMotionEvents*/,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync int /*mode*/);
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsyncextern Bool InitFocusClassDeviceStruct(
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync DeviceIntPtr /*device*/);
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsynctypedef void (*BellProcPtr)(
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync int /*percent*/,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync DeviceIntPtr /*device*/,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync pointer /*ctrl*/,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync int);
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsynctypedef void (*KbdCtrlProcPtr)(
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync DeviceIntPtr /*device*/,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync KeybdCtrl * /*ctrl*/);
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsyncextern Bool InitKbdFeedbackClassDeviceStruct(
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync DeviceIntPtr /*device*/,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync BellProcPtr /*bellProc*/,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync KbdCtrlProcPtr /*controlProc*/);
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsynctypedef void (*PtrCtrlProcPtr)(
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync DeviceIntPtr /*device*/,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync PtrCtrl * /*ctrl*/);
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsyncextern Bool InitPtrFeedbackClassDeviceStruct(
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync DeviceIntPtr /*device*/,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync PtrCtrlProcPtr /*controlProc*/);
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsynctypedef void (*StringCtrlProcPtr)(
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync DeviceIntPtr /*device*/,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync StringCtrl * /*ctrl*/);
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsyncextern Bool InitStringFeedbackClassDeviceStruct(
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync DeviceIntPtr /*device*/,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync StringCtrlProcPtr /*controlProc*/,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync int /*max_symbols*/,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync int /*num_symbols_supported*/,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync KeySym* /*symbols*/);
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsynctypedef void (*BellCtrlProcPtr)(
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync DeviceIntPtr /*device*/,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync BellCtrl * /*ctrl*/);
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsyncextern Bool InitBellFeedbackClassDeviceStruct(
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync DeviceIntPtr /*device*/,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync BellProcPtr /*bellProc*/,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync BellCtrlProcPtr /*controlProc*/);
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsynctypedef void (*LedCtrlProcPtr)(
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync DeviceIntPtr /*device*/,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync LedCtrl * /*ctrl*/);
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsyncextern Bool InitLedFeedbackClassDeviceStruct(
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync DeviceIntPtr /*device*/,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync LedCtrlProcPtr /*controlProc*/);
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsynctypedef void (*IntegerCtrlProcPtr)(
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync DeviceIntPtr /*device*/,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync IntegerCtrl * /*ctrl*/);
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsyncextern Bool InitIntegerFeedbackClassDeviceStruct(
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync DeviceIntPtr /*device*/,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync IntegerCtrlProcPtr /*controlProc*/);
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsyncextern Bool InitPointerDeviceStruct(
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync DevicePtr /*device*/,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync CARD8* /*map*/,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync int /*numButtons*/,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync ValuatorMotionProcPtr /*motionProc*/,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync PtrCtrlProcPtr /*controlProc*/,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync int /*numMotionEvents*/);
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsyncextern Bool InitKeyboardDeviceStruct(
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync DevicePtr /*device*/,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync KeySymsPtr /*pKeySyms*/,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync CARD8 /*pModifiers*/[],
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync BellProcPtr /*bellProc*/,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync KbdCtrlProcPtr /*controlProc*/);
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsyncextern void SendMappingNotify(
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync unsigned int /*request*/,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync unsigned int /*firstKeyCode*/,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync unsigned int /*count*/,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync ClientPtr /* client */);
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsyncextern Bool BadDeviceMap(
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync BYTE* /*buff*/,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync int /*length*/,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync unsigned /*low*/,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync unsigned /*high*/,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync XID* /*errval*/);
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsyncextern Bool AllModifierKeysAreUp(
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync DeviceIntPtr /*device*/,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync CARD8* /*map1*/,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync int /*per1*/,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync CARD8* /*map2*/,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync int /*per2*/);
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsyncextern void NoteLedState(
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync DeviceIntPtr /*keybd*/,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync int /*led*/,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync Bool /*on*/);
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsyncextern void MaybeStopHint(
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync DeviceIntPtr /*device*/,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync ClientPtr /*client*/);
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsyncextern void ProcessPointerEvent(
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync xEventPtr /*xE*/,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync DeviceIntPtr /*mouse*/,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync int /*count*/);
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsyncextern void ProcessKeyboardEvent(
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync xEventPtr /*xE*/,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync DeviceIntPtr /*keybd*/,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync int /*count*/);
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync#ifdef XKB
deb4998ba50060c48cce222fd18a8eed053918d7vboxsyncextern void CoreProcessPointerEvent(
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync xEventPtr /*xE*/,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync DeviceIntPtr /*mouse*/,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync int /*count*/);
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsyncextern void CoreProcessKeyboardEvent(
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync xEventPtr /*xE*/,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync DeviceIntPtr /*keybd*/,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync int /*count*/);
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync#endif
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsyncextern Bool LegalModifier(
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync unsigned int /*key*/,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync DevicePtr /*pDev*/);
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsyncextern void ProcessInputEvents(void);
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsyncextern void InitInput(
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync int /*argc*/,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync char ** /*argv*/);
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync#endif /* INPUT_H */