#ifndef _XKBSRV_H_
#define _XKBSRV_H_
#ifdef XKB_IN_SERVER
#define XkbAllocClientMap SrvXkbAllocClientMap
#define XkbAllocServerMap SrvXkbAllocServerMap
#define XkbChangeTypesOfKey SrvXkbChangeTypesOfKey
#define XkbAddKeyType SrvXkbAddKeyType
#define XkbCopyKeyType SrvXkbCopyKeyType
#define XkbCopyKeyTypes SrvXkbCopyKeyTypes
#define XkbFreeClientMap SrvXkbFreeClientMap
#define XkbFreeServerMap SrvXkbFreeServerMap
#define XkbInitCanonicalKeyTypes SrvXkbInitCanonicalKeyTypes
#define XkbKeyTypesForCoreSymbols SrvXkbKeyTypesForCoreSymbols
#define XkbApplyCompatMapToKey SrvXkbApplyCompatMapToKey
#define XkbUpdateMapFromCore SrvXkbUpdateMapFromCore
#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 XkbFreeControls SrvXkbFreeControls
#define XkbFreeIndicatorMaps SrvXkbFreeIndicatorMaps
#define XkbFreeKeyboard SrvXkbFreeKeyboard
#define XkbFreeNames SrvXkbFreeNames
#define XkbAddDeviceLedInfo SrvXkbAddDeviceLedInfo
#define XkbAllocDeviceInfo SrvXkbAllocDeviceInfo
#define XkbFreeDeviceInfo SrvXkbFreeDeviceInfo
#define XkbResizeDeviceButtonActions SrvXkbResizeDeviceButtonActions
#define XkbLatchModifiers SrvXkbLatchModifiers
#define XkbLatchGroup SrvXkbLatchGroup
#define XkbVirtualModsToReal SrvXkbVirtualModsToReal
#define XkbChangeKeycodeRange SrvXkbChangeKeycodeRange
#define XkbApplyVirtualModChanges SrvXkbApplyVirtualModChanges
#define XkbUpdateActionVirtualMods SrvXkbUpdateActionVirtualMods
#define XkbUpdateKeyTypeVirtualMods SrvXkbUpdateKeyTypeVirtualMods
#endif
#include <X11/extensions/XKBstr.h>
#include <X11/extensions/XKBproto.h>
#include "inputstr.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 _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 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;
} 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;
#define _XkbClientInitialized (1<<15)
#define _XkbWantsDetectableAutoRepeat(c)\
((c)->xkbClientFlags&XkbPCF_DetectableAutoRepeatMask)
#define _XkbStateNotifyInProgress (1<<0)
#define XkbAX_KRGMask (XkbSlowKeysMask|XkbBounceKeysMask)
#define XkbAllFilteredEventsMask \
(XkbAccessXKeysMask|XkbRepeatKeysMask|XkbMouseKeysAccelMask|XkbAX_KRGMask)
extern int XkbReqCode;
extern int XkbEventBase;
extern int XkbKeyboardErrorCode;
extern int XkbDisableLockActions;
extern char * XkbBaseDirectory;
extern char * XkbInitialMap;
extern int _XkbClientMajor;
extern int _XkbClientMinor;
extern unsigned int XkbXIUnsupported;
extern char * XkbModelUsed,*XkbLayoutUsed,*XkbVariantUsed,*XkbOptionsUsed;
extern Bool noXkbExtension;
extern Bool XkbWantRulesProp;
extern pointer XkbLastRepeatEvent;
extern CARD32 xkbDebugFlags;
extern CARD32 xkbDebugCtrls;
#define _XkbAlloc(s) xalloc((s))
#define _XkbCalloc(n,s) Xcalloc((n)*(s))
#define _XkbRealloc(o,s) Xrealloc((o),(s))
#define _XkbTypedAlloc(t) ((t *)xalloc(sizeof(t)))
#define _XkbTypedCalloc(n,t) ((t *)Xcalloc((n)*sizeof(t)))
#define _XkbTypedRealloc(o,n,t) \
((o)?(t *)Xrealloc((o),(n)*sizeof(t)):_XkbTypedCalloc(n,t))
#define _XkbClearElems(a,f,l,t) bzero(&(a)[f],((l)-(f)+1)*sizeof(t))
#define _XkbFree(p) Xfree(p)
#define _XkbLibError(c,l,d) \
{ _XkbErrCode= (c); _XkbErrLocation= (l); _XkbErrData= (d); }
#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)))
extern int DeviceKeyPress,DeviceKeyRelease;
extern int DeviceButtonPress,DeviceButtonRelease;
#ifdef XINPUT
#define _XkbIsPressEvent(t) (((t)==KeyPress)||((t)==DeviceKeyPress))
#define _XkbIsReleaseEvent(t) (((t)==KeyRelease)||((t)==DeviceKeyRelease))
#else
#define _XkbIsPressEvent(t) ((t)==KeyPress)
#define _XkbIsReleaseEvent(t) ((t)==KeyRelease)
#endif
#define _XkbCoreKeycodeInRange(c,k) (((k)>=(c)->curKeySyms.minKeyCode)&&\
((k)<=(c)->curKeySyms.maxKeyCode))
#define _XkbCoreNumKeys(c) ((c)->curKeySyms.maxKeyCode-\
(c)->curKeySyms.minKeyCode+1)
#define XConvertCase(s,l,u) XkbConvertCase(s,l,u)
#undef IsKeypadKey
#define IsKeypadKey(s) XkbKSIsKeypad(s)
#define Status int
#define XPointer pointer
#define Display struct _XDisplay
#ifndef True
#define True 1
#define False 0
#endif
#ifndef PATH_MAX
#ifdef MAXPATHLEN
#define PATH_MAX MAXPATHLEN
#else
#define PATH_MAX 1024
#endif
#endif
_XFUNCPROTOBEGIN
extern void XkbUseMsg(
#if NeedFunctionPrototypes
void
#endif
);
extern int XkbProcessArguments(
#if NeedFunctionPrototypes
int ,
char ** ,
int
#endif
);
extern void XkbFreeCompatMap(
#if NeedFunctionPrototypes
XkbDescPtr ,
unsigned int ,
Bool
#endif
);
extern void XkbFreeNames(
#if NeedFunctionPrototypes
XkbDescPtr ,
unsigned int ,
Bool
#endif
);
extern DeviceIntPtr _XkbLookupAnyDevice(
#if NeedFunctionPrototypes
int ,
int *
#endif
);
extern DeviceIntPtr _XkbLookupKeyboard(
#if NeedFunctionPrototypes
int ,
int *
#endif
);
extern DeviceIntPtr _XkbLookupBellDevice(
#if NeedFunctionPrototypes
int ,
int *
#endif
);
extern DeviceIntPtr _XkbLookupLedDevice(
#if NeedFunctionPrototypes
int ,
int *
#endif
);
extern DeviceIntPtr _XkbLookupButtonDevice(
#if NeedFunctionPrototypes
int ,
int *
#endif
);
extern XkbDescPtr XkbAllocKeyboard(
#if NeedFunctionPrototypes
void
#endif
);
extern Status XkbAllocClientMap(
#if NeedFunctionPrototypes
XkbDescPtr ,
unsigned int ,
unsigned int
#endif
);
extern Status XkbAllocServerMap(
#if NeedFunctionPrototypes
XkbDescPtr ,
unsigned int ,
unsigned int
#endif
);
extern void XkbFreeClientMap(
#if NeedFunctionPrototypes
XkbDescPtr ,
unsigned int ,
Bool
#endif
);
extern void XkbFreeServerMap(
#if NeedFunctionPrototypes
XkbDescPtr ,
unsigned int ,
Bool
#endif
);
extern Status XkbAllocIndicatorMaps(
#if NeedFunctionPrototypes
XkbDescPtr
#endif
);
extern Status XkbAllocCompatMap(
#if NeedFunctionPrototypes
XkbDescPtr ,
unsigned int ,
unsigned int
#endif
);
extern Status XkbAllocNames(
#if NeedFunctionPrototypes
XkbDescPtr ,
unsigned int ,
int ,
int
#endif
);
extern Status XkbAllocControls(
#if NeedFunctionPrototypes
XkbDescPtr ,
unsigned int
#endif
);
extern Status XkbCopyKeyType(
#if NeedFunctionPrototypes
XkbKeyTypePtr ,
XkbKeyTypePtr
#endif
);
extern Status XkbCopyKeyTypes(
#if NeedFunctionPrototypes
XkbKeyTypePtr ,
XkbKeyTypePtr ,
int
#endif
);
extern Status XkbResizeKeyType(
#if NeedFunctionPrototypes
XkbDescPtr ,
int ,
int ,
Bool ,
int
#endif
);
extern void XkbFreeKeyboard(
#if NeedFunctionPrototypes
XkbDescPtr ,
unsigned int ,
Bool
#endif
);
extern void XkbSetActionKeyMods(
#if NeedFunctionPrototypes
XkbDescPtr ,
XkbAction * ,
unsigned int
#endif
);
extern Bool XkbCheckActionVMods(
#if NeedFunctionPrototypes
XkbDescPtr ,
XkbAction * ,
unsigned int
#endif
);
extern Bool XkbApplyVModChanges(
#if NeedFunctionPrototypes
XkbSrvInfoPtr ,
unsigned int ,
XkbChangesPtr ,
unsigned int * ,
XkbEventCausePtr
#endif
);
extern void XkbApplyVModChangesToAllDevices(
#if NeedFunctionPrototypes
DeviceIntPtr ,
XkbDescPtr ,
unsigned int ,
XkbEventCausePtr
#endif
);
extern unsigned int XkbMaskForVMask(
#if NeedFunctionPrototypes
XkbDescPtr ,
unsigned int
#endif
);
extern Bool XkbVirtualModsToReal(
#if NeedFunctionPrototypes
XkbDescPtr ,
unsigned int ,
unsigned int *
#endif
);
extern unsigned int XkbAdjustGroup(
#if NeedFunctionPrototypes
int ,
XkbControlsPtr
#endif
);
extern KeySym *XkbResizeKeySyms(
#if NeedFunctionPrototypes
XkbDescPtr ,
int ,
int
#endif
);
extern XkbAction *XkbResizeKeyActions(
#if NeedFunctionPrototypes
XkbDescPtr ,
int ,
int
#endif
);
extern void XkbUpdateKeyTypesFromCore(
#if NeedFunctionPrototypes
DeviceIntPtr ,
KeyCode ,
CARD8 ,
XkbChangesPtr
#endif
);
extern void XkbUpdateDescActions(
#if NeedFunctionPrototypes
XkbDescPtr ,
KeyCode ,
CARD8 ,
XkbChangesPtr
#endif
);
extern void XkbUpdateActions(
#if NeedFunctionPrototypes
DeviceIntPtr ,
KeyCode ,
CARD8 ,
XkbChangesPtr ,
unsigned int * ,
XkbEventCausePtr
#endif
);
extern void XkbUpdateCoreDescription(
#if NeedFunctionPrototypes
DeviceIntPtr ,
Bool
#endif
);
extern void XkbApplyMappingChange(
#if NeedFunctionPrototypes
DeviceIntPtr ,
CARD8 ,
KeyCode ,
CARD8 ,
ClientPtr
#endif
);
extern void XkbSetIndicators(
#if NeedFunctionPrototypes
DeviceIntPtr ,
CARD32 ,
CARD32 ,
XkbEventCausePtr
#endif
);
extern void XkbUpdateIndicators(
#if NeedFunctionPrototypes
DeviceIntPtr ,
CARD32 ,
Bool ,
XkbChangesPtr ,
XkbEventCausePtr
#endif
);
extern XkbSrvLedInfoPtr XkbAllocSrvLedInfo(
#if NeedFunctionPrototypes
DeviceIntPtr ,
KbdFeedbackPtr ,
LedFeedbackPtr ,
unsigned int
#endif
);
extern XkbSrvLedInfoPtr XkbFindSrvLedInfo(
#if NeedFunctionPrototypes
DeviceIntPtr ,
unsigned int ,
unsigned int ,
unsigned int
#endif
);
extern void XkbApplyLedNameChanges(
#if NeedFunctionPrototypes
DeviceIntPtr ,
XkbSrvLedInfoPtr ,
unsigned int ,
xkbExtensionDeviceNotify * ,
XkbChangesPtr ,
XkbEventCausePtr
#endif
);
extern void XkbApplyLedMapChanges(
#if NeedFunctionPrototypes
DeviceIntPtr ,
XkbSrvLedInfoPtr ,
unsigned int ,
xkbExtensionDeviceNotify * ,
XkbChangesPtr ,
XkbEventCausePtr
#endif
);
extern void XkbApplyLedStateChanges(
#if NeedFunctionPrototypes
DeviceIntPtr ,
XkbSrvLedInfoPtr ,
unsigned int ,
xkbExtensionDeviceNotify * ,
XkbChangesPtr ,
XkbEventCausePtr
#endif
);
extern void XkbUpdateLedAutoState(
#if NeedFunctionPrototypes
DeviceIntPtr ,
XkbSrvLedInfoPtr ,
unsigned int ,
xkbExtensionDeviceNotify * ,
XkbChangesPtr ,
XkbEventCausePtr
#endif
);
extern void XkbFlushLedEvents(
#if NeedFunctionPrototypes
DeviceIntPtr ,
DeviceIntPtr ,
XkbSrvLedInfoPtr ,
xkbExtensionDeviceNotify * ,
XkbChangesPtr ,
XkbEventCausePtr
#endif
);
extern void XkbUpdateAllDeviceIndicators(
#if NeedFunctionPrototypes
XkbChangesPtr ,
XkbEventCausePtr
#endif
);
extern unsigned int XkbIndicatorsToUpdate(
#if NeedFunctionPrototypes
DeviceIntPtr ,
unsigned long ,
Bool
#endif
);
extern void XkbComputeDerivedState(
#if NeedFunctionPrototypes
XkbSrvInfoPtr
#endif
);
extern void XkbCheckSecondaryEffects(
#if NeedFunctionPrototypes
XkbSrvInfoPtr ,
unsigned int ,
XkbChangesPtr ,
XkbEventCausePtr
#endif
);
extern void XkbCheckIndicatorMaps(
#if NeedFunctionPrototypes
DeviceIntPtr ,
XkbSrvLedInfoPtr ,
unsigned int
#endif
);
extern unsigned int XkbStateChangedFlags(
#if NeedFunctionPrototypes
XkbStatePtr ,
XkbStatePtr
#endif
);
extern void XkbSendStateNotify(
#if NeedFunctionPrototypes
DeviceIntPtr ,
xkbStateNotify *
#endif
);
extern void XkbSendMapNotify(
#if NeedFunctionPrototypes
DeviceIntPtr ,
xkbMapNotify *
#endif
);
extern int XkbComputeControlsNotify(
#if NeedFunctionPrototypes
DeviceIntPtr ,
XkbControlsPtr ,
XkbControlsPtr ,
xkbControlsNotify * ,
Bool
#endif
);
extern void XkbSendControlsNotify(
#if NeedFunctionPrototypes
DeviceIntPtr ,
xkbControlsNotify *
#endif
);
extern void XkbSendCompatMapNotify(
#if NeedFunctionPrototypes
DeviceIntPtr ,
xkbCompatMapNotify *
#endif
);
extern void XkbSendIndicatorNotify(
#if NeedFunctionPrototypes
DeviceIntPtr ,
int ,
xkbIndicatorNotify *
#endif
);
extern void XkbHandleBell(
#if NeedFunctionPrototypes
BOOL ,
BOOL ,
DeviceIntPtr ,
CARD8 ,
pointer ,
CARD8 ,
Atom ,
WindowPtr ,
ClientPtr
#endif
);
extern void XkbSendAccessXNotify(
#if NeedFunctionPrototypes
DeviceIntPtr ,
xkbAccessXNotify *
#endif
);
extern void XkbSendNamesNotify(
#if NeedFunctionPrototypes
DeviceIntPtr ,
xkbNamesNotify *
#endif
);
extern void XkbSendCompatNotify(
#if NeedFunctionPrototypes
DeviceIntPtr ,
xkbCompatMapNotify *
#endif
);
extern void XkbSendActionMessage(
#if NeedFunctionPrototypes
DeviceIntPtr ,
xkbActionMessage *
#endif
);
extern void XkbSendExtensionDeviceNotify(
#if NeedFunctionPrototypes
DeviceIntPtr ,
ClientPtr ,
xkbExtensionDeviceNotify *
#endif
);
extern void XkbSendNotification(
#if NeedFunctionPrototypes
DeviceIntPtr ,
XkbChangesPtr ,
XkbEventCausePtr
#endif
);
extern void XkbProcessKeyboardEvent(
#if NeedFunctionPrototypes
struct _xEvent * ,
DeviceIntPtr ,
int
#endif
);
extern void XkbProcessOtherEvent(
#if NeedFunctionPrototypes
struct _xEvent * ,
DeviceIntPtr ,
int
#endif
);
extern void XkbHandleActions(
#if NeedFunctionPrototypes
DeviceIntPtr ,
DeviceIntPtr ,
struct _xEvent * ,
int
#endif
);
extern Bool XkbEnableDisableControls(
#if NeedFunctionPrototypes
XkbSrvInfoPtr ,
unsigned long ,
unsigned long ,
XkbChangesPtr ,
XkbEventCausePtr
#endif
);
extern void AccessXInit(
#if NeedFunctionPrototypes
DeviceIntPtr
#endif
);
extern Bool AccessXFilterPressEvent(
#if NeedFunctionPrototypes
register struct _xEvent * ,
register DeviceIntPtr ,
int
#endif
);
extern Bool AccessXFilterReleaseEvent(
#if NeedFunctionPrototypes
register struct _xEvent * ,
register DeviceIntPtr ,
int
#endif
);
extern void AccessXCancelRepeatKey(
#if NeedFunctionPrototypes
XkbSrvInfoPtr ,
KeyCode
#endif
);
extern void AccessXComputeCurveFactor(
#if NeedFunctionPrototypes
XkbSrvInfoPtr ,
XkbControlsPtr
#endif
);
extern XkbDeviceLedInfoPtr XkbAddDeviceLedInfo(
#if NeedFunctionPrototypes
XkbDeviceInfoPtr ,
unsigned int ,
unsigned int
#endif
);
extern XkbDeviceInfoPtr XkbAllocDeviceInfo(
#if NeedFunctionPrototypes
unsigned int ,
unsigned int ,
unsigned int
#endif
);
extern void XkbFreeDeviceInfo(
#if NeedFunctionPrototypes
XkbDeviceInfoPtr ,
unsigned int ,
Bool
#endif
);
extern Status XkbResizeDeviceButtonActions(
#if NeedFunctionPrototypes
XkbDeviceInfoPtr ,
unsigned int
#endif
);
extern XkbInterestPtr XkbFindClientResource(
#if NeedFunctionPrototypes
DevicePtr ,
ClientPtr
#endif
);
extern XkbInterestPtr XkbAddClientResource(
#if NeedFunctionPrototypes
DevicePtr ,
ClientPtr ,
XID
#endif
);
extern int XkbRemoveClient(
#if NeedFunctionPrototypes
DevicePtr ,
ClientPtr
#endif
);
extern int XkbRemoveResourceClient(
#if NeedFunctionPrototypes
DevicePtr ,
XID
#endif
);
extern int XkbDDXInitDevice(
#if NeedFunctionPrototypes
DeviceIntPtr
#endif
);
extern int XkbDDXAccessXBeep(
#if NeedFunctionPrototypes
DeviceIntPtr ,
unsigned int ,
unsigned int
#endif
);
extern void XkbDDXKeyClick(
#if NeedFunctionPrototypes
DeviceIntPtr ,
int ,
int
#endif
);
extern int XkbDDXUsesSoftRepeat(
#if NeedFunctionPrototypes
DeviceIntPtr
#endif
);
extern void XkbDDXKeybdCtrlProc(
#if NeedFunctionPrototypes
DeviceIntPtr ,
KeybdCtrl *
#endif
);
extern void XkbDDXChangeControls(
#if NeedFunctionPrototypes
DeviceIntPtr ,
XkbControlsPtr ,
XkbControlsPtr
#endif
);
extern void XkbDDXUpdateIndicators(
#if NeedFunctionPrototypes
DeviceIntPtr ,
CARD32
#endif
);
extern void XkbDDXUpdateDeviceIndicators(
#if NeedFunctionPrototypes
DeviceIntPtr ,
XkbSrvLedInfoPtr ,
CARD32
#endif
);
extern void XkbDDXFakePointerButton(
#if NeedFunctionPrototypes
int ,
int
#endif
);
extern void XkbDDXFakePointerMotion(
#if NeedFunctionPrototypes
unsigned int ,
int ,
int
#endif
);
extern void XkbDDXFakeDeviceButton(
#if NeedFunctionPrototypes
DeviceIntPtr ,
Bool ,
int
#endif
);
extern int XkbDDXTerminateServer(
#if NeedFunctionPrototypes
DeviceIntPtr ,
KeyCode ,
XkbAction *
#endif
);
extern int XkbDDXSwitchScreen(
#if NeedFunctionPrototypes
DeviceIntPtr ,
KeyCode ,
XkbAction *
#endif
);
extern int XkbDDXPrivate(
#if NeedFunctionPrototypes
DeviceIntPtr ,
KeyCode ,
XkbAction *
#endif
);
extern void XkbDisableComputedAutoRepeats(
#if NeedFunctionPrototypes
DeviceIntPtr ,
unsigned int
#endif
);
extern void XkbSetRepeatKeys(
#if NeedFunctionPrototypes
DeviceIntPtr ,
int ,
int
#endif
);
extern int XkbLatchModifiers(
#if NeedFunctionPrototypes
DeviceIntPtr ,
CARD8 ,
CARD8
#endif
);
extern int XkbLatchGroup(
#if NeedFunctionPrototypes
DeviceIntPtr ,
int
#endif
);
extern void XkbClearAllLatchesAndLocks(
#if NeedFunctionPrototypes
DeviceIntPtr ,
XkbSrvInfoPtr ,
Bool ,
XkbEventCausePtr
#endif
);
extern void XkbSetRulesDflts(
#if NeedFunctionPrototypes
char * ,
char * ,
char * ,
char * ,
char *
#endif
);
extern void XkbInitDevice(
#if NeedFunctionPrototypes
DeviceIntPtr
#endif
);
extern Bool XkbInitKeyboardDeviceStruct(
#if NeedFunctionPrototypes
DeviceIntPtr ,
XkbComponentNamesPtr ,
KeySymsPtr ,
CARD8 [],
BellProcPtr ,
KbdCtrlProcPtr
#endif
);
extern int SProcXkbDispatch(
#if NeedFunctionPrototypes
ClientPtr
#endif
);
extern XkbGeometryPtr XkbLookupNamedGeometry(
#if NeedFunctionPrototypes
DeviceIntPtr ,
Atom ,
Bool *
#endif
);
extern char * _XkbDupString(
#if NeedFunctionPrototypes
char *
#endif
);
extern void XkbConvertCase(
#if NeedFunctionPrototypes
KeySym ,
KeySym * ,
KeySym *
#endif
);
extern Status XkbChangeKeycodeRange(
#if NeedFunctionPrototypes
XkbDescPtr ,
int ,
int ,
XkbChangesPtr
#endif
);
extern int XkbFinishDeviceInit(
#if NeedFunctionPrototypes
DeviceIntPtr
#endif
);
extern void XkbFreeSrvLedInfo(
#if NeedFunctionPrototypes
XkbSrvLedInfoPtr
#endif
);
extern void XkbFreeInfo(
#if NeedFunctionPrototypes
XkbSrvInfoPtr
#endif
);
extern Status XkbChangeTypesOfKey(
#if NeedFunctionPrototypes
XkbDescPtr ,
int ,
int ,
unsigned int ,
int * ,
XkbMapChangesPtr
#endif
);
extern XkbKeyTypePtr XkbAddKeyType(
#if NeedFunctionPrototypes
XkbDescPtr ,
Atom ,
int ,
Bool ,
int
#endif
);
extern Status XkbInitCanonicalKeyTypes(
#if NeedFunctionPrototypes
XkbDescPtr ,
unsigned int ,
int
#endif
);
extern int XkbKeyTypesForCoreSymbols(
#if NeedFunctionPrototypes
XkbDescPtr ,
int ,
KeySym * ,
unsigned int ,
int * ,
KeySym *
#endif
);
extern Bool XkbApplyCompatMapToKey(
#if NeedFunctionPrototypes
XkbDescPtr ,
KeyCode ,
XkbChangesPtr
#endif
);
extern Bool XkbUpdateMapFromCore(
#if NeedFunctionPrototypes
XkbDescPtr ,
KeyCode ,
int ,
int ,
KeySym * ,
XkbChangesPtr
#endif
);
extern void XkbFreeControls(
#if NeedFunctionPrototypes
XkbDescPtr ,
unsigned int ,
Bool
#endif
);
extern void XkbFreeIndicatorMaps(
#if NeedFunctionPrototypes
XkbDescPtr
#endif
);
extern Bool XkbApplyVirtualModChanges(
#if NeedFunctionPrototypes
XkbDescPtr ,
unsigned int ,
XkbChangesPtr
#endif
);
extern Bool XkbUpdateActionVirtualMods(
#if NeedFunctionPrototypes
XkbDescPtr ,
XkbAction * ,
unsigned int
#endif
);
extern void XkbUpdateKeyTypeVirtualMods(
#if NeedFunctionPrototypes
XkbDescPtr ,
XkbKeyTypePtr ,
unsigned int ,
XkbChangesPtr
#endif
);
extern void XkbSendNewKeyboardNotify(
#if NeedFunctionPrototypes
DeviceIntPtr ,
xkbNewKeyboardNotify *
#endif
);
#ifdef XKBSRV_NEED_FILE_FUNCS
#include <X11/extensions/XKMformat.h>
#include <X11/extensions/XKBfile.h>
#include <X11/extensions/XKBrules.h>
#define _XkbListKeymaps 0
#define _XkbListKeycodes 1
#define _XkbListTypes 2
#define _XkbListCompat 3
#define _XkbListSymbols 4
#define _XkbListGeometry 5
#define _XkbListNumComponents 6
typedef struct _XkbSrvListInfo {
int szPool;
int nPool;
char * pool;
int maxRtrn;
int nTotal;
char * pattern[_XkbListNumComponents];
int nFound[_XkbListNumComponents];
} XkbSrvListInfoRec,*XkbSrvListInfoPtr;
char *
XkbGetRulesDflts(
#if NeedFunctionPrototypes
XkbRF_VarDefsPtr
#endif
);
extern void XkbSetRulesUsed(
#if NeedFunctionPrototypes
XkbRF_VarDefsPtr
#endif
);
extern Status XkbDDXList(
#if NeedFunctionPrototypes
DeviceIntPtr ,
XkbSrvListInfoPtr ,
ClientPtr
#endif
);
extern unsigned int XkbDDXLoadKeymapByNames(
#if NeedFunctionPrototypes
DeviceIntPtr ,
XkbComponentNamesPtr ,
unsigned int ,
unsigned int ,
XkbFileInfoPtr ,
char * ,
int
#endif
);
extern Bool XkbDDXNamesFromRules(
#if NeedFunctionPrototypes
DeviceIntPtr ,
char * ,
XkbRF_VarDefsPtr ,
XkbComponentNamesPtr
#endif
);
extern FILE *XkbDDXOpenConfigFile(
#if NeedFunctionPrototypes
char * ,
char * ,
int
#endif
);
extern Bool XkbDDXApplyConfig(
#if NeedFunctionPrototypes
XPointer ,
XkbSrvInfoPtr
#endif
);
extern XPointer XkbDDXPreloadConfig(
#if NeedFunctionPrototypes
char ** ,
XkbRF_VarDefsPtr ,
XkbComponentNamesPtr ,
DeviceIntPtr
#endif
);
extern int _XkbStrCaseCmp(
#if NeedFunctionPrototypes
char * ,
char *
#endif
);
#endif
_XFUNCPROTOEND
#define XkbAtomGetString(d,s) NameForAtom(s)
#endif