900 lines
34 KiB
C
900 lines
34 KiB
C
/************************************************************
|
|
Copyright (c) 1993 by Silicon Graphics Computer Systems, Inc.
|
|
|
|
Permission to use, copy, modify, and distribute this
|
|
software and its documentation for any purpose and without
|
|
fee is hereby granted, provided that the above copyright
|
|
notice appear in all copies and that both that copyright
|
|
notice and this permission notice appear in supporting
|
|
documentation, and that the name of Silicon Graphics not be
|
|
used in advertising or publicity pertaining to distribution
|
|
of the software without specific prior written permission.
|
|
Silicon Graphics makes no representation about the suitability
|
|
of this software for any purpose. It is provided "as is"
|
|
without any express or implied warranty.
|
|
|
|
SILICON GRAPHICS DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS
|
|
SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
|
|
AND FITNESS FOR A PARTICULAR PURPOSE. IN NO EVENT SHALL SILICON
|
|
GRAPHICS BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL
|
|
DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
|
|
DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE
|
|
OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH
|
|
THE USE OR PERFORMANCE OF THIS SOFTWARE.
|
|
|
|
********************************************************/
|
|
|
|
#ifndef _XKBSRV_H_
|
|
#define _XKBSRV_H_
|
|
|
|
#define XkbAllocClientMap SrvXkbAllocClientMap
|
|
#define XkbAllocServerMap SrvXkbAllocServerMap
|
|
#define XkbChangeTypesOfKey SrvXkbChangeTypesOfKey
|
|
#define XkbCopyKeyTypes SrvXkbCopyKeyTypes
|
|
#define XkbFreeClientMap SrvXkbFreeClientMap
|
|
#define XkbFreeServerMap SrvXkbFreeServerMap
|
|
#define XkbKeyTypesForCoreSymbols SrvXkbKeyTypesForCoreSymbols
|
|
#define XkbApplyCompatMapToKey SrvXkbApplyCompatMapToKey
|
|
#define XkbResizeKeyActions SrvXkbResizeKeyActions
|
|
#define XkbResizeKeySyms SrvXkbResizeKeySyms
|
|
#define XkbResizeKeyType SrvXkbResizeKeyType
|
|
#define XkbAllocCompatMap SrvXkbAllocCompatMap
|
|
#define XkbAllocControls SrvXkbAllocControls
|
|
#define XkbAllocIndicatorMaps SrvXkbAllocIndicatorMaps
|
|
#define XkbAllocKeyboard SrvXkbAllocKeyboard
|
|
#define XkbAllocNames SrvXkbAllocNames
|
|
#define XkbFreeCompatMap SrvXkbFreeCompatMap
|
|
#define XkbFreeKeyboard SrvXkbFreeKeyboard
|
|
#define XkbFreeNames SrvXkbFreeNames
|
|
#define XkbLatchModifiers SrvXkbLatchModifiers
|
|
#define XkbLatchGroup SrvXkbLatchGroup
|
|
#define XkbVirtualModsToReal SrvXkbVirtualModsToReal
|
|
#define XkbChangeKeycodeRange SrvXkbChangeKeycodeRange
|
|
#define XkbApplyVirtualModChanges SrvXkbApplyVirtualModChanges
|
|
|
|
#include <X11/extensions/XKBproto.h>
|
|
#include "xkbstr.h"
|
|
#include "xkbrules.h"
|
|
#include "inputstr.h"
|
|
#include "events.h"
|
|
|
|
typedef struct _XkbInterest {
|
|
DeviceIntPtr dev;
|
|
ClientPtr client;
|
|
XID resource;
|
|
struct _XkbInterest *next;
|
|
CARD16 extDevNotifyMask;
|
|
CARD16 stateNotifyMask;
|
|
CARD16 namesNotifyMask;
|
|
CARD32 ctrlsNotifyMask;
|
|
CARD8 compatNotifyMask;
|
|
BOOL bellNotifyMask;
|
|
BOOL actionMessageMask;
|
|
CARD16 accessXNotifyMask;
|
|
CARD32 iStateNotifyMask;
|
|
CARD32 iMapNotifyMask;
|
|
CARD16 altSymsNotifyMask;
|
|
CARD32 autoCtrls;
|
|
CARD32 autoCtrlValues;
|
|
} XkbInterestRec, *XkbInterestPtr;
|
|
|
|
typedef struct _XkbRadioGroup {
|
|
CARD8 flags;
|
|
CARD8 nMembers;
|
|
CARD8 dfltDown;
|
|
CARD8 currentDown;
|
|
CARD8 members[XkbRGMaxMembers];
|
|
} XkbRadioGroupRec, *XkbRadioGroupPtr;
|
|
|
|
typedef struct _XkbEventCause {
|
|
CARD8 kc;
|
|
CARD8 event;
|
|
CARD8 mjr;
|
|
CARD8 mnr;
|
|
ClientPtr client;
|
|
} XkbEventCauseRec, *XkbEventCausePtr;
|
|
|
|
#define XkbSetCauseKey(c,k,e) { (c)->kc= (k),(c)->event= (e),\
|
|
(c)->mjr= (c)->mnr= 0; \
|
|
(c)->client= NULL; }
|
|
#define XkbSetCauseReq(c,j,n,cl) { (c)->kc= (c)->event= 0,\
|
|
(c)->mjr= (j),(c)->mnr= (n);\
|
|
(c)->client= (cl); }
|
|
#define XkbSetCauseCoreReq(c,e,cl) XkbSetCauseReq(c,e,0,cl)
|
|
#define XkbSetCauseXkbReq(c,e,cl) XkbSetCauseReq(c,XkbReqCode,e,cl)
|
|
#define XkbSetCauseUnknown(c) XkbSetCauseKey(c,0,0)
|
|
|
|
#define _OFF_TIMER 0
|
|
#define _KRG_WARN_TIMER 1
|
|
#define _KRG_TIMER 2
|
|
#define _SK_TIMEOUT_TIMER 3
|
|
#define _ALL_TIMEOUT_TIMER 4
|
|
|
|
#define _BEEP_NONE 0
|
|
#define _BEEP_FEATURE_ON 1
|
|
#define _BEEP_FEATURE_OFF 2
|
|
#define _BEEP_FEATURE_CHANGE 3
|
|
#define _BEEP_SLOW_WARN 4
|
|
#define _BEEP_SLOW_PRESS 5
|
|
#define _BEEP_SLOW_ACCEPT 6
|
|
#define _BEEP_SLOW_REJECT 7
|
|
#define _BEEP_SLOW_RELEASE 8
|
|
#define _BEEP_STICKY_LATCH 9
|
|
#define _BEEP_STICKY_LOCK 10
|
|
#define _BEEP_STICKY_UNLOCK 11
|
|
#define _BEEP_LED_ON 12
|
|
#define _BEEP_LED_OFF 13
|
|
#define _BEEP_LED_CHANGE 14
|
|
#define _BEEP_BOUNCE_REJECT 15
|
|
|
|
typedef struct _XkbFilter {
|
|
CARD16 keycode;
|
|
CARD8 what;
|
|
CARD8 active;
|
|
CARD8 filterOthers;
|
|
CARD32 priv;
|
|
XkbAction upAction;
|
|
int (*filter) (struct _XkbSrvInfo * /* xkbi */ ,
|
|
struct _XkbFilter * /* filter */ ,
|
|
unsigned /* keycode */ ,
|
|
XkbAction * /* action */
|
|
);
|
|
struct _XkbFilter *next;
|
|
} XkbFilterRec, *XkbFilterPtr;
|
|
|
|
typedef Bool (*XkbSrvCheckRepeatPtr) (DeviceIntPtr dev,
|
|
struct _XkbSrvInfo * /* xkbi */ ,
|
|
unsigned /* keycode */);
|
|
|
|
typedef struct _XkbSrvInfo {
|
|
XkbStateRec prev_state;
|
|
XkbStateRec state;
|
|
XkbDescPtr desc;
|
|
|
|
DeviceIntPtr device;
|
|
KbdCtrlProcPtr kbdProc;
|
|
|
|
XkbRadioGroupPtr radioGroups;
|
|
CARD8 nRadioGroups;
|
|
CARD8 clearMods;
|
|
CARD8 setMods;
|
|
INT16 groupChange;
|
|
|
|
CARD16 dfltPtrDelta;
|
|
|
|
double mouseKeysCurve;
|
|
double mouseKeysCurveFactor;
|
|
INT16 mouseKeysDX;
|
|
INT16 mouseKeysDY;
|
|
CARD8 mouseKeysFlags;
|
|
Bool mouseKeysAccel;
|
|
CARD8 mouseKeysCounter;
|
|
|
|
CARD8 lockedPtrButtons;
|
|
CARD8 shiftKeyCount;
|
|
KeyCode mouseKey;
|
|
KeyCode inactiveKey;
|
|
KeyCode slowKey;
|
|
KeyCode slowKeyEnableKey;
|
|
KeyCode repeatKey;
|
|
CARD8 krgTimerActive;
|
|
CARD8 beepType;
|
|
CARD8 beepCount;
|
|
|
|
CARD32 flags;
|
|
CARD32 lastPtrEventTime;
|
|
CARD32 lastShiftEventTime;
|
|
OsTimerPtr beepTimer;
|
|
OsTimerPtr mouseKeyTimer;
|
|
OsTimerPtr slowKeysTimer;
|
|
OsTimerPtr bounceKeysTimer;
|
|
OsTimerPtr repeatKeyTimer;
|
|
OsTimerPtr krgTimer;
|
|
|
|
int szFilters;
|
|
XkbFilterPtr filters;
|
|
|
|
XkbSrvCheckRepeatPtr checkRepeat;
|
|
|
|
char overlay_perkey_state[256/8]; /* bitfield */
|
|
} XkbSrvInfoRec, *XkbSrvInfoPtr;
|
|
|
|
#define XkbSLI_IsDefault (1L<<0)
|
|
#define XkbSLI_HasOwnState (1L<<1)
|
|
|
|
typedef struct _XkbSrvLedInfo {
|
|
CARD16 flags;
|
|
CARD16 class;
|
|
CARD16 id;
|
|
union {
|
|
KbdFeedbackPtr kf;
|
|
LedFeedbackPtr lf;
|
|
} fb;
|
|
|
|
CARD32 physIndicators;
|
|
CARD32 autoState;
|
|
CARD32 explicitState;
|
|
CARD32 effectiveState;
|
|
|
|
CARD32 mapsPresent;
|
|
CARD32 namesPresent;
|
|
XkbIndicatorMapPtr maps;
|
|
Atom *names;
|
|
|
|
CARD32 usesBase;
|
|
CARD32 usesLatched;
|
|
CARD32 usesLocked;
|
|
CARD32 usesEffective;
|
|
CARD32 usesCompat;
|
|
CARD32 usesControls;
|
|
|
|
CARD32 usedComponents;
|
|
} XkbSrvLedInfoRec, *XkbSrvLedInfoPtr;
|
|
|
|
/*
|
|
* Settings for xkbClientFlags field (used by DIX)
|
|
* These flags _must_ not overlap with XkbPCF_*
|
|
*/
|
|
#define _XkbClientInitialized (1<<7)
|
|
#define _XkbClientIsAncient (1<<6)
|
|
|
|
#define _XkbWantsDetectableAutoRepeat(c)\
|
|
((c)->xkbClientFlags&XkbPCF_DetectableAutoRepeatMask)
|
|
|
|
/*
|
|
* Settings for flags field
|
|
*/
|
|
#define _XkbStateNotifyInProgress (1<<0)
|
|
|
|
typedef struct {
|
|
ProcessInputProc processInputProc;
|
|
/* If processInputProc is set to something different than realInputProc,
|
|
* UNWRAP and COND_WRAP will not touch processInputProc and update only
|
|
* realInputProc. This ensures that
|
|
* processInputProc == (frozen ? EnqueueEvent : realInputProc)
|
|
*
|
|
* WRAP_PROCESS_INPUT_PROC should only be called during initialization,
|
|
* since it may destroy this invariant.
|
|
*/
|
|
ProcessInputProc realInputProc;
|
|
DeviceUnwrapProc unwrapProc;
|
|
} xkbDeviceInfoRec, *xkbDeviceInfoPtr;
|
|
|
|
#define WRAP_PROCESS_INPUT_PROC(device, oldprocs, proc, unwrapproc) \
|
|
device->public.processInputProc = proc; \
|
|
oldprocs->processInputProc = \
|
|
oldprocs->realInputProc = device->public.realInputProc; \
|
|
device->public.realInputProc = proc; \
|
|
oldprocs->unwrapProc = device->unwrapProc; \
|
|
device->unwrapProc = unwrapproc;
|
|
|
|
#define COND_WRAP_PROCESS_INPUT_PROC(device, oldprocs, proc, unwrapproc) \
|
|
if (device->public.processInputProc == device->public.realInputProc)\
|
|
device->public.processInputProc = proc; \
|
|
oldprocs->processInputProc = \
|
|
oldprocs->realInputProc = device->public.realInputProc; \
|
|
device->public.realInputProc = proc; \
|
|
oldprocs->unwrapProc = device->unwrapProc; \
|
|
device->unwrapProc = unwrapproc;
|
|
|
|
#define UNWRAP_PROCESS_INPUT_PROC(device, oldprocs, backupproc) \
|
|
backupproc = device->public.realInputProc; \
|
|
if (device->public.processInputProc == device->public.realInputProc)\
|
|
device->public.processInputProc = oldprocs->realInputProc; \
|
|
device->public.realInputProc = oldprocs->realInputProc; \
|
|
device->unwrapProc = oldprocs->unwrapProc;
|
|
|
|
extern _X_EXPORT DevPrivateKeyRec xkbDevicePrivateKeyRec;
|
|
|
|
#define xkbDevicePrivateKey (&xkbDevicePrivateKeyRec)
|
|
|
|
#define XKBDEVICEINFO(dev) ((xkbDeviceInfoPtr)dixLookupPrivate(&(dev)->devPrivates, xkbDevicePrivateKey))
|
|
|
|
extern void xkbUnwrapProc(DeviceIntPtr, DeviceHandleProc, void *);
|
|
|
|
/***====================================================================***/
|
|
|
|
/***====================================================================***/
|
|
|
|
#define XkbAX_KRGMask (XkbSlowKeysMask|XkbBounceKeysMask)
|
|
#define XkbAllFilteredEventsMask \
|
|
(XkbAccessXKeysMask|XkbRepeatKeysMask|XkbMouseKeysAccelMask|XkbAX_KRGMask)
|
|
|
|
/***====================================================================***/
|
|
|
|
extern _X_EXPORT int XkbReqCode;
|
|
extern _X_EXPORT int XkbEventBase;
|
|
extern _X_EXPORT int XkbKeyboardErrorCode;
|
|
extern _X_EXPORT const char *XkbBaseDirectory;
|
|
extern _X_EXPORT const char *XkbBinDirectory;
|
|
|
|
extern _X_EXPORT CARD32 xkbDebugFlags;
|
|
|
|
#define _XkbLibError(c,l,d) /* Epoch fail */
|
|
|
|
/* "a" is a "unique" numeric identifier that just defines which error
|
|
* code statement it is. _XkbErrCode2(4, foo) means "this is the 4th error
|
|
* statement in this function". lovely.
|
|
*/
|
|
#define _XkbErrCode2(a,b) ((XID)((((unsigned int)(a))<<24)|((b)&0xffffff)))
|
|
#define _XkbErrCode3(a,b,c) _XkbErrCode2(a,(((unsigned int)(b))<<16)|(c))
|
|
#define _XkbErrCode4(a,b,c,d) _XkbErrCode3(a,b,((((unsigned int)(c))<<8)|(d)))
|
|
|
|
#define Status int
|
|
|
|
extern _X_EXPORT void XkbUseMsg(void
|
|
);
|
|
|
|
extern _X_EXPORT int XkbProcessArguments(int /* argc */ ,
|
|
char ** /* argv */ ,
|
|
int /* i */
|
|
);
|
|
|
|
extern _X_EXPORT Bool XkbInitPrivates(void);
|
|
|
|
extern _X_EXPORT void XkbSetExtension(DeviceIntPtr device,
|
|
ProcessInputProc proc);
|
|
|
|
extern _X_EXPORT void XkbFreeCompatMap(XkbDescPtr /* xkb */ ,
|
|
unsigned int /* which */ ,
|
|
Bool /* freeMap */
|
|
);
|
|
|
|
extern _X_EXPORT void XkbFreeNames(XkbDescPtr /* xkb */ ,
|
|
unsigned int /* which */ ,
|
|
Bool /* freeMap */
|
|
);
|
|
|
|
extern _X_EXPORT int _XkbLookupAnyDevice(DeviceIntPtr *pDev,
|
|
int id,
|
|
ClientPtr client,
|
|
Mask access_mode, int *xkb_err);
|
|
|
|
extern _X_EXPORT int _XkbLookupKeyboard(DeviceIntPtr *pDev,
|
|
int id,
|
|
ClientPtr client,
|
|
Mask access_mode, int *xkb_err);
|
|
|
|
extern _X_EXPORT int _XkbLookupBellDevice(DeviceIntPtr *pDev,
|
|
int id,
|
|
ClientPtr client,
|
|
Mask access_mode, int *xkb_err);
|
|
|
|
extern _X_EXPORT int _XkbLookupLedDevice(DeviceIntPtr *pDev,
|
|
int id,
|
|
ClientPtr client,
|
|
Mask access_mode, int *xkb_err);
|
|
|
|
extern _X_EXPORT int _XkbLookupButtonDevice(DeviceIntPtr *pDev,
|
|
int id,
|
|
ClientPtr client,
|
|
Mask access_mode, int *xkb_err);
|
|
|
|
extern _X_EXPORT XkbDescPtr XkbAllocKeyboard(void
|
|
);
|
|
|
|
extern _X_EXPORT Status XkbAllocClientMap(XkbDescPtr /* xkb */ ,
|
|
unsigned int /* which */ ,
|
|
unsigned int /* nTypes */
|
|
);
|
|
|
|
extern _X_EXPORT Status XkbAllocServerMap(XkbDescPtr /* xkb */ ,
|
|
unsigned int /* which */ ,
|
|
unsigned int /* nNewActions */
|
|
);
|
|
|
|
extern _X_EXPORT void XkbFreeClientMap(XkbDescPtr /* xkb */ ,
|
|
unsigned int /* what */ ,
|
|
Bool /* freeMap */
|
|
);
|
|
|
|
extern _X_EXPORT void XkbFreeServerMap(XkbDescPtr /* xkb */ ,
|
|
unsigned int /* what */ ,
|
|
Bool /* freeMap */
|
|
);
|
|
|
|
extern _X_EXPORT Status XkbAllocIndicatorMaps(XkbDescPtr /* xkb */
|
|
);
|
|
|
|
extern _X_EXPORT Status XkbAllocCompatMap(XkbDescPtr /* xkb */ ,
|
|
unsigned int /* which */ ,
|
|
unsigned int /* nInterpret */
|
|
);
|
|
|
|
extern _X_EXPORT Status XkbAllocNames(XkbDescPtr /* xkb */ ,
|
|
unsigned int /* which */ ,
|
|
int /* nTotalRG */ ,
|
|
int /* nTotalAliases */
|
|
);
|
|
|
|
extern _X_EXPORT Status XkbAllocControls(XkbDescPtr /* xkb */ ,
|
|
unsigned int /* which */
|
|
);
|
|
|
|
extern _X_EXPORT Status XkbCopyKeyTypes(XkbKeyTypePtr /* from */ ,
|
|
XkbKeyTypePtr /* into */ ,
|
|
int /* num_types */
|
|
);
|
|
|
|
extern _X_EXPORT Status XkbResizeKeyType(XkbDescPtr /* xkb */ ,
|
|
int /* type_ndx */ ,
|
|
int /* map_count */ ,
|
|
Bool /* want_preserve */ ,
|
|
int /* new_num_lvls */
|
|
);
|
|
|
|
extern _X_EXPORT void XkbFreeKeyboard(XkbDescPtr /* xkb */ ,
|
|
unsigned int /* which */ ,
|
|
Bool /* freeDesc */
|
|
);
|
|
|
|
extern _X_EXPORT void XkbFreeComponentNames(XkbComponentNamesPtr /* names */ ,
|
|
Bool /* freeNames */
|
|
);
|
|
|
|
extern _X_EXPORT void XkbSetActionKeyMods(XkbDescPtr /* xkb */ ,
|
|
XkbAction * /* act */ ,
|
|
unsigned int /* mods */
|
|
);
|
|
|
|
extern _X_EXPORT unsigned int XkbMaskForVMask(XkbDescPtr /* xkb */ ,
|
|
unsigned int /* vmask */
|
|
);
|
|
|
|
extern _X_EXPORT Bool XkbVirtualModsToReal(XkbDescPtr /* xkb */ ,
|
|
unsigned int /* virtua_mask */ ,
|
|
unsigned int * /* mask_rtrn */
|
|
);
|
|
|
|
extern _X_EXPORT unsigned int XkbAdjustGroup(int /* group */ ,
|
|
XkbControlsPtr /* ctrls */
|
|
);
|
|
|
|
extern _X_EXPORT KeySym *XkbResizeKeySyms(XkbDescPtr /* xkb */ ,
|
|
int /* key */ ,
|
|
int /* needed */
|
|
);
|
|
|
|
extern _X_EXPORT XkbAction *XkbResizeKeyActions(XkbDescPtr /* xkb */ ,
|
|
int /* key */ ,
|
|
int /* needed */
|
|
);
|
|
|
|
extern _X_EXPORT void XkbUpdateKeyTypesFromCore(DeviceIntPtr /* pXDev */ ,
|
|
KeySymsPtr /* syms */ ,
|
|
KeyCode /* first */ ,
|
|
CARD8 /* num */ ,
|
|
XkbChangesPtr /* pChanges */
|
|
);
|
|
|
|
extern _X_EXPORT void XkbUpdateDescActions(XkbDescPtr /* xkb */ ,
|
|
KeyCode /* first */ ,
|
|
CARD8 /* num */ ,
|
|
XkbChangesPtr /* changes */
|
|
);
|
|
|
|
extern _X_EXPORT void XkbUpdateActions(DeviceIntPtr /* pXDev */ ,
|
|
KeyCode /* first */ ,
|
|
CARD8 /* num */ ,
|
|
XkbChangesPtr /* pChanges */ ,
|
|
unsigned int * /* needChecksRtrn */ ,
|
|
XkbEventCausePtr /* cause */
|
|
);
|
|
|
|
extern _X_EXPORT KeySymsPtr XkbGetCoreMap(DeviceIntPtr /* keybd */
|
|
);
|
|
|
|
extern _X_EXPORT void XkbApplyMappingChange(DeviceIntPtr /* pXDev */ ,
|
|
KeySymsPtr /* map */ ,
|
|
KeyCode /* firstKey */ ,
|
|
CARD8 /* num */ ,
|
|
CARD8 * /* modmap */ ,
|
|
ClientPtr /* client */
|
|
);
|
|
|
|
extern _X_EXPORT void XkbSetIndicators(DeviceIntPtr /* pXDev */ ,
|
|
CARD32 /* affect */ ,
|
|
CARD32 /* values */ ,
|
|
XkbEventCausePtr /* cause */
|
|
);
|
|
|
|
extern _X_EXPORT void XkbUpdateIndicators(DeviceIntPtr /* keybd */ ,
|
|
CARD32 /* changed */ ,
|
|
Bool /* check_edevs */ ,
|
|
XkbChangesPtr /* pChanges */ ,
|
|
XkbEventCausePtr /* cause */
|
|
);
|
|
|
|
extern _X_EXPORT void XkbUpdateAllDeviceIndicators(XkbChangesPtr /* changes */,
|
|
XkbEventCausePtr /* cause */
|
|
);
|
|
|
|
extern _X_EXPORT XkbSrvLedInfoPtr XkbAllocSrvLedInfo(DeviceIntPtr /* dev */ ,
|
|
KbdFeedbackPtr /* kf */ ,
|
|
LedFeedbackPtr /* lf */ ,
|
|
unsigned int /* needed_parts */
|
|
);
|
|
|
|
extern _X_EXPORT XkbSrvLedInfoPtr XkbCopySrvLedInfo(DeviceIntPtr /* dev */ ,
|
|
XkbSrvLedInfoPtr /* src */ ,
|
|
KbdFeedbackPtr /* kf */ ,
|
|
LedFeedbackPtr /* lf */
|
|
);
|
|
|
|
extern _X_EXPORT XkbSrvLedInfoPtr XkbFindSrvLedInfo(DeviceIntPtr /* dev */ ,
|
|
unsigned int /* class */ ,
|
|
unsigned int /* id */ ,
|
|
unsigned int /* needed_parts */
|
|
);
|
|
|
|
extern _X_EXPORT void XkbApplyLedNameChanges(DeviceIntPtr /* dev */ ,
|
|
XkbSrvLedInfoPtr /* sli */ ,
|
|
unsigned int /* changed_names */ ,
|
|
xkbExtensionDeviceNotify * /* ed */
|
|
,
|
|
XkbChangesPtr /* changes */ ,
|
|
XkbEventCausePtr /* cause */
|
|
);
|
|
|
|
extern _X_EXPORT void XkbApplyLedMapChanges(DeviceIntPtr /* dev */ ,
|
|
XkbSrvLedInfoPtr /* sli */ ,
|
|
unsigned int /* changed_maps */ ,
|
|
xkbExtensionDeviceNotify * /* ed */
|
|
,
|
|
XkbChangesPtr /* changes */ ,
|
|
XkbEventCausePtr /* cause */
|
|
);
|
|
|
|
extern _X_EXPORT void XkbApplyLedStateChanges(DeviceIntPtr /* dev */ ,
|
|
XkbSrvLedInfoPtr /* sli */ ,
|
|
unsigned int /* changed_leds */ ,
|
|
xkbExtensionDeviceNotify *
|
|
/* ed */ ,
|
|
XkbChangesPtr /* changes */ ,
|
|
XkbEventCausePtr /* cause */
|
|
);
|
|
|
|
extern _X_EXPORT void XkbFlushLedEvents(DeviceIntPtr /* dev */ ,
|
|
DeviceIntPtr /* kbd */ ,
|
|
XkbSrvLedInfoPtr /* sli */ ,
|
|
xkbExtensionDeviceNotify * /* ed */ ,
|
|
XkbChangesPtr /* changes */ ,
|
|
XkbEventCausePtr /* cause */
|
|
);
|
|
|
|
extern _X_EXPORT unsigned int XkbIndicatorsToUpdate(DeviceIntPtr /* dev */ ,
|
|
unsigned long
|
|
/* state_changes */ ,
|
|
Bool /* enabled_ctrl_changes */
|
|
);
|
|
|
|
extern _X_EXPORT void XkbComputeDerivedState(XkbSrvInfoPtr /* xkbi */
|
|
);
|
|
|
|
extern _X_EXPORT void XkbCheckSecondaryEffects(XkbSrvInfoPtr /* xkbi */ ,
|
|
unsigned int /* which */ ,
|
|
XkbChangesPtr /* changes */ ,
|
|
XkbEventCausePtr /* cause */
|
|
);
|
|
|
|
extern _X_EXPORT void XkbCheckIndicatorMaps(DeviceIntPtr /* dev */ ,
|
|
XkbSrvLedInfoPtr /* sli */ ,
|
|
unsigned int /* which */
|
|
);
|
|
|
|
extern _X_EXPORT unsigned int XkbStateChangedFlags(XkbStatePtr /* old */ ,
|
|
XkbStatePtr /* new */
|
|
);
|
|
|
|
extern _X_EXPORT void XkbSendStateNotify(DeviceIntPtr /* kbd */ ,
|
|
xkbStateNotify * /* pSN */
|
|
);
|
|
|
|
extern _X_EXPORT void XkbSendMapNotify(DeviceIntPtr /* kbd */ ,
|
|
xkbMapNotify * /* ev */
|
|
);
|
|
|
|
extern _X_EXPORT int XkbComputeControlsNotify(DeviceIntPtr /* kbd */ ,
|
|
XkbControlsPtr /* old */ ,
|
|
XkbControlsPtr /* new */ ,
|
|
xkbControlsNotify * /* pCN */ ,
|
|
Bool /* forceCtrlProc */
|
|
);
|
|
|
|
extern _X_EXPORT void XkbSendControlsNotify(DeviceIntPtr /* kbd */ ,
|
|
xkbControlsNotify * /* ev */
|
|
);
|
|
|
|
extern _X_EXPORT void XkbSendCompatMapNotify(DeviceIntPtr /* kbd */ ,
|
|
xkbCompatMapNotify * /* ev */
|
|
);
|
|
|
|
extern _X_EXPORT void XkbHandleBell(BOOL force,
|
|
BOOL eventOnly,
|
|
DeviceIntPtr kbd,
|
|
CARD8 percent,
|
|
void *ctrl,
|
|
CARD8 class,
|
|
Atom name,
|
|
WindowPtr pWin,
|
|
ClientPtr pClient
|
|
);
|
|
|
|
extern _X_EXPORT void XkbSendAccessXNotify(DeviceIntPtr /* kbd */ ,
|
|
xkbAccessXNotify * /* pEv */
|
|
);
|
|
|
|
extern _X_EXPORT void XkbSendNamesNotify(DeviceIntPtr /* kbd */ ,
|
|
xkbNamesNotify * /* ev */
|
|
);
|
|
|
|
extern _X_EXPORT void XkbSendActionMessage(DeviceIntPtr /* kbd */ ,
|
|
xkbActionMessage * /* ev */
|
|
);
|
|
|
|
extern _X_EXPORT void XkbSendExtensionDeviceNotify(DeviceIntPtr /* kbd */ ,
|
|
ClientPtr /* client */ ,
|
|
xkbExtensionDeviceNotify * /* ev */
|
|
);
|
|
|
|
extern _X_EXPORT void XkbSendNotification(DeviceIntPtr /* kbd */ ,
|
|
XkbChangesPtr /* pChanges */ ,
|
|
XkbEventCausePtr /* cause */
|
|
);
|
|
|
|
extern _X_EXPORT void XkbProcessKeyboardEvent(DeviceEvent * /* event */ ,
|
|
DeviceIntPtr /* keybd */
|
|
);
|
|
|
|
extern _X_EXPORT void XkbHandleActions(DeviceIntPtr /* dev */ ,
|
|
DeviceIntPtr /* kbd */ ,
|
|
DeviceEvent * /* event */
|
|
);
|
|
|
|
extern void XkbPushLockedStateToSlaves(DeviceIntPtr /* master */,
|
|
int /* evtype */,
|
|
int /* key */);
|
|
|
|
extern _X_EXPORT Bool XkbEnableDisableControls(XkbSrvInfoPtr /* xkbi */ ,
|
|
unsigned long /* change */ ,
|
|
unsigned long /* newValues */ ,
|
|
XkbChangesPtr /* changes */ ,
|
|
XkbEventCausePtr /* cause */
|
|
);
|
|
|
|
extern _X_EXPORT void AccessXInit(DeviceIntPtr /* dev */
|
|
);
|
|
|
|
extern _X_EXPORT Bool AccessXFilterPressEvent(DeviceEvent * /* event */ ,
|
|
DeviceIntPtr /* keybd */
|
|
);
|
|
|
|
extern _X_EXPORT Bool AccessXFilterReleaseEvent(DeviceEvent * /* event */ ,
|
|
DeviceIntPtr /* keybd */
|
|
);
|
|
|
|
extern _X_EXPORT void AccessXCancelRepeatKey(XkbSrvInfoPtr /* xkbi */ ,
|
|
KeyCode /* key */
|
|
);
|
|
|
|
extern _X_EXPORT void AccessXComputeCurveFactor(XkbSrvInfoPtr /* xkbi */ ,
|
|
XkbControlsPtr /* ctrls */
|
|
);
|
|
|
|
extern _X_EXPORT XkbInterestPtr XkbFindClientResource(DevicePtr /* inDev */ ,
|
|
ClientPtr /* client */
|
|
);
|
|
|
|
extern _X_EXPORT XkbInterestPtr XkbAddClientResource(DevicePtr /* inDev */ ,
|
|
ClientPtr /* client */ ,
|
|
XID /* id */
|
|
);
|
|
|
|
extern _X_EXPORT int XkbRemoveResourceClient(DevicePtr /* inDev */ ,
|
|
XID /* id */
|
|
);
|
|
|
|
extern _X_EXPORT int XkbDDXAccessXBeep(DeviceIntPtr /* dev */ ,
|
|
unsigned int /* what */ ,
|
|
unsigned int /* which */
|
|
);
|
|
|
|
extern _X_EXPORT int XkbDDXUsesSoftRepeat(DeviceIntPtr /* dev */
|
|
);
|
|
|
|
extern _X_EXPORT void XkbDDXKeybdCtrlProc(DeviceIntPtr /* dev */ ,
|
|
KeybdCtrl * /* ctrl */
|
|
);
|
|
|
|
extern _X_EXPORT void XkbDDXChangeControls(DeviceIntPtr /* dev */ ,
|
|
XkbControlsPtr /* old */ ,
|
|
XkbControlsPtr /* new */
|
|
);
|
|
|
|
extern _X_EXPORT void XkbDDXUpdateDeviceIndicators(DeviceIntPtr /* dev */ ,
|
|
XkbSrvLedInfoPtr /* sli */ ,
|
|
CARD32 /* newState */
|
|
);
|
|
|
|
extern _X_EXPORT int XkbDDXTerminateServer(DeviceIntPtr /* dev */ ,
|
|
KeyCode /* key */ ,
|
|
XkbAction * /* act */
|
|
);
|
|
|
|
extern _X_EXPORT int XkbDDXSwitchScreen(DeviceIntPtr /* dev */ ,
|
|
KeyCode /* key */ ,
|
|
XkbAction * /* act */
|
|
);
|
|
|
|
extern _X_EXPORT int XkbDDXPrivate(DeviceIntPtr /* dev */ ,
|
|
KeyCode /* key */ ,
|
|
XkbAction * /* act */
|
|
);
|
|
|
|
extern _X_EXPORT void XkbDisableComputedAutoRepeats(DeviceIntPtr /* pXDev */ ,
|
|
unsigned int /* key */
|
|
);
|
|
|
|
extern _X_EXPORT void XkbSetRepeatKeys(DeviceIntPtr /* pXDev */ ,
|
|
int /* key */ ,
|
|
int /* onoff */
|
|
);
|
|
|
|
extern _X_EXPORT int XkbLatchModifiers(DeviceIntPtr /* pXDev */ ,
|
|
CARD8 /* mask */ ,
|
|
CARD8 /* latches */
|
|
);
|
|
|
|
extern _X_EXPORT int XkbLatchGroup(DeviceIntPtr /* pXDev */ ,
|
|
int /* group */
|
|
);
|
|
|
|
extern _X_EXPORT void XkbClearAllLatchesAndLocks(DeviceIntPtr /* dev */ ,
|
|
XkbSrvInfoPtr /* xkbi */ ,
|
|
Bool /* genEv */ ,
|
|
XkbEventCausePtr /* cause */
|
|
);
|
|
|
|
extern _X_EXPORT void XkbInitRules(XkbRMLVOSet * /* rmlvo */,
|
|
const char * /* rules */,
|
|
const char * /* model */,
|
|
const char * /* layout */,
|
|
const char * /* variant */,
|
|
const char * /* options */
|
|
) ;
|
|
|
|
extern _X_EXPORT void XkbGetRulesDflts(XkbRMLVOSet * /* rmlvo */
|
|
);
|
|
|
|
extern _X_EXPORT void XkbFreeRMLVOSet(XkbRMLVOSet * /* rmlvo */ ,
|
|
Bool /* freeRMLVO */
|
|
);
|
|
|
|
extern _X_EXPORT void XkbSetRulesDflts(XkbRMLVOSet * /* rmlvo */
|
|
);
|
|
|
|
extern _X_EXPORT void XkbDeleteRulesDflts(void
|
|
);
|
|
|
|
extern _X_EXPORT void XkbDeleteRulesUsed(void
|
|
);
|
|
|
|
extern _X_EXPORT int SProcXkbDispatch(ClientPtr /* client */
|
|
);
|
|
|
|
extern _X_EXPORT XkbGeometryPtr XkbLookupNamedGeometry(DeviceIntPtr /* dev */ ,
|
|
Atom /* name */ ,
|
|
Bool * /* shouldFree */
|
|
);
|
|
|
|
extern _X_EXPORT void XkbConvertCase(KeySym /* sym */ ,
|
|
KeySym * /* lower */ ,
|
|
KeySym * /* upper */
|
|
);
|
|
|
|
extern _X_EXPORT Status XkbChangeKeycodeRange(XkbDescPtr /* xkb */ ,
|
|
int /* minKC */ ,
|
|
int /* maxKC */ ,
|
|
XkbChangesPtr /* changes */
|
|
);
|
|
|
|
extern _X_EXPORT void XkbFreeSrvLedInfo(XkbSrvLedInfoPtr /* sli */
|
|
);
|
|
|
|
extern _X_EXPORT void XkbFreeInfo(XkbSrvInfoPtr /* xkbi */
|
|
);
|
|
|
|
extern _X_EXPORT Status XkbChangeTypesOfKey(XkbDescPtr /* xkb */ ,
|
|
int /* key */ ,
|
|
int /* nGroups */ ,
|
|
unsigned int /* groups */ ,
|
|
int * /* newTypesIn */ ,
|
|
XkbMapChangesPtr /* changes */
|
|
);
|
|
|
|
extern _X_EXPORT int XkbKeyTypesForCoreSymbols(XkbDescPtr /* xkb */ ,
|
|
int /* map_width */ ,
|
|
KeySym * /* core_syms */ ,
|
|
unsigned int /* protected */ ,
|
|
int * /* types_inout */ ,
|
|
KeySym * /* xkb_syms_rtrn */
|
|
);
|
|
|
|
extern _X_EXPORT Bool XkbApplyCompatMapToKey(XkbDescPtr /* xkb */ ,
|
|
KeyCode /* key */ ,
|
|
XkbChangesPtr /* changes */
|
|
);
|
|
|
|
extern _X_EXPORT Bool XkbApplyVirtualModChanges(XkbDescPtr /* xkb */ ,
|
|
unsigned int /* changed */ ,
|
|
XkbChangesPtr /* changes */
|
|
);
|
|
|
|
extern _X_EXPORT void XkbSendNewKeyboardNotify(DeviceIntPtr /* kbd */ ,
|
|
xkbNewKeyboardNotify * /* pNKN */
|
|
);
|
|
|
|
extern Bool XkbCopyKeymap(XkbDescPtr /* dst */ ,
|
|
XkbDescPtr /* src */ );
|
|
|
|
extern _X_EXPORT Bool XkbCopyDeviceKeymap(DeviceIntPtr /* dst */,
|
|
DeviceIntPtr /* src */);
|
|
|
|
extern _X_EXPORT Bool XkbDeviceApplyKeymap(DeviceIntPtr /* dst */ ,
|
|
XkbDescPtr /* src */ );
|
|
|
|
extern void XkbFilterEvents(ClientPtr /* pClient */ ,
|
|
int /* nEvents */ ,
|
|
xEvent * /* xE */ );
|
|
|
|
extern int XkbGetEffectiveGroup(XkbSrvInfoPtr /* xkbi */ ,
|
|
XkbStatePtr /* xkbstate */ ,
|
|
CARD8 /* keycode */ );
|
|
|
|
extern void XkbMergeLockedPtrBtns(DeviceIntPtr /* master */ );
|
|
|
|
extern void XkbFakeDeviceButton(DeviceIntPtr /* dev */ ,
|
|
int /* press */ ,
|
|
int /* button */ );
|
|
|
|
extern _X_EXPORT void XkbCopyControls(XkbDescPtr /* dst */ ,
|
|
XkbDescPtr /* src */ );
|
|
|
|
#include "xkbfile.h"
|
|
#include "xkbrules.h"
|
|
|
|
#define _XkbListKeycodes 0
|
|
#define _XkbListTypes 1
|
|
#define _XkbListCompat 2
|
|
#define _XkbListSymbols 3
|
|
#define _XkbListGeometry 4
|
|
#define _XkbListNumComponents 5
|
|
|
|
extern _X_EXPORT unsigned int XkbDDXLoadKeymapByNames(DeviceIntPtr /* keybd */ ,
|
|
XkbComponentNamesPtr
|
|
/* names */ ,
|
|
unsigned int /* want */ ,
|
|
unsigned int /* need */ ,
|
|
XkbDescPtr *
|
|
/* finfoRtrn */ ,
|
|
char *
|
|
/* keymapNameRtrn */ ,
|
|
int /* keymapNameRtrnLen */
|
|
);
|
|
|
|
extern _X_EXPORT Bool XkbDDXNamesFromRules(DeviceIntPtr /* keybd */ ,
|
|
const char * /* rules */ ,
|
|
XkbRF_VarDefsPtr /* defs */ ,
|
|
XkbComponentNamesPtr /* names */
|
|
);
|
|
|
|
extern _X_EXPORT XkbDescPtr XkbCompileKeymap(DeviceIntPtr /* dev */ ,
|
|
XkbRMLVOSet * /* rmlvo */
|
|
);
|
|
|
|
extern _X_EXPORT XkbDescPtr XkbCompileKeymapFromString(DeviceIntPtr dev,
|
|
const char *keymap,
|
|
int keymap_length);
|
|
|
|
#endif /* _XKBSRV_H_ */
|