#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* ,
struct _XkbFilter * ,
unsigned ,
XkbAction *
);
struct _XkbFilter *next;
} XkbFilterRec,*XkbFilterPtr;
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;
int szFilters;
XkbFilterPtr filters;
} 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)
typedef struct
{
ProcessInputProc processInputProc;
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, pointer);
#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 char * XkbBaseDirectory;
extern _X_EXPORT char * XkbBinDirectory;
extern _X_EXPORT CARD32 xkbDebugFlags;
#define _XkbLibError(c,l,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 _X_EXPORT int DeviceKeyPress,DeviceKeyRelease,DeviceMotionNotify;
extern _X_EXPORT int DeviceButtonPress,DeviceButtonRelease;
#define Status int
extern _X_EXPORT void XkbUseMsg(
void
);
extern _X_EXPORT int XkbProcessArguments(
int ,
char ** ,
int
);
extern _X_EXPORT Bool XkbInitPrivates(void);
extern _X_EXPORT void XkbSetExtension(DeviceIntPtr device, ProcessInputProc proc);
extern _X_EXPORT void XkbFreeCompatMap(
XkbDescPtr ,
unsigned int ,
Bool
);
extern _X_EXPORT void XkbFreeNames(
XkbDescPtr ,
unsigned int ,
Bool
);
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 ,
unsigned int ,
unsigned int
);
extern _X_EXPORT Status XkbAllocServerMap(
XkbDescPtr ,
unsigned int ,
unsigned int
);
extern _X_EXPORT void XkbFreeClientMap(
XkbDescPtr ,
unsigned int ,
Bool
);
extern _X_EXPORT void XkbFreeServerMap(
XkbDescPtr ,
unsigned int ,
Bool
);
extern _X_EXPORT Status XkbAllocIndicatorMaps(
XkbDescPtr
);
extern _X_EXPORT Status XkbAllocCompatMap(
XkbDescPtr ,
unsigned int ,
unsigned int
);
extern _X_EXPORT Status XkbAllocNames(
XkbDescPtr ,
unsigned int ,
int ,
int
);
extern _X_EXPORT Status XkbAllocControls(
XkbDescPtr ,
unsigned int
);
extern _X_EXPORT Status XkbCopyKeyTypes(
XkbKeyTypePtr ,
XkbKeyTypePtr ,
int
);
extern _X_EXPORT Status XkbResizeKeyType(
XkbDescPtr ,
int ,
int ,
Bool ,
int
);
extern _X_EXPORT void XkbFreeKeyboard(
XkbDescPtr ,
unsigned int ,
Bool
);
extern _X_EXPORT void XkbFreeComponentNames(
XkbComponentNamesPtr ,
Bool
);
extern _X_EXPORT void XkbSetActionKeyMods(
XkbDescPtr ,
XkbAction * ,
unsigned int
);
extern _X_EXPORT unsigned int XkbMaskForVMask(
XkbDescPtr ,
unsigned int
);
extern _X_EXPORT Bool XkbVirtualModsToReal(
XkbDescPtr ,
unsigned int ,
unsigned int *
);
extern _X_EXPORT unsigned int XkbAdjustGroup(
int ,
XkbControlsPtr
);
extern _X_EXPORT KeySym *XkbResizeKeySyms(
XkbDescPtr ,
int ,
int
);
extern _X_EXPORT XkbAction *XkbResizeKeyActions(
XkbDescPtr ,
int ,
int
);
extern _X_EXPORT void XkbUpdateKeyTypesFromCore(
DeviceIntPtr ,
KeySymsPtr ,
KeyCode ,
CARD8 ,
XkbChangesPtr
);
extern _X_EXPORT void XkbUpdateDescActions(
XkbDescPtr ,
KeyCode ,
CARD8 ,
XkbChangesPtr
);
extern _X_EXPORT void XkbUpdateActions(
DeviceIntPtr ,
KeyCode ,
CARD8 ,
XkbChangesPtr ,
unsigned int * ,
XkbEventCausePtr
);
extern _X_EXPORT KeySymsPtr XkbGetCoreMap(
DeviceIntPtr
);
extern _X_EXPORT void XkbApplyMappingChange(
DeviceIntPtr ,
KeySymsPtr ,
KeyCode ,
CARD8 ,
CARD8 * ,
ClientPtr
);
extern _X_EXPORT void XkbSetIndicators(
DeviceIntPtr ,
CARD32 ,
CARD32 ,
XkbEventCausePtr
);
extern _X_EXPORT void XkbUpdateIndicators(
DeviceIntPtr ,
CARD32 ,
Bool ,
XkbChangesPtr ,
XkbEventCausePtr
);
extern _X_EXPORT XkbSrvLedInfoPtr XkbAllocSrvLedInfo(
DeviceIntPtr ,
KbdFeedbackPtr ,
LedFeedbackPtr ,
unsigned int
);
extern _X_EXPORT XkbSrvLedInfoPtr XkbCopySrvLedInfo(
DeviceIntPtr ,
XkbSrvLedInfoPtr ,
KbdFeedbackPtr ,
LedFeedbackPtr
);
extern _X_EXPORT XkbSrvLedInfoPtr XkbFindSrvLedInfo(
DeviceIntPtr ,
unsigned int ,
unsigned int ,
unsigned int
);
extern _X_EXPORT void XkbApplyLedNameChanges(
DeviceIntPtr ,
XkbSrvLedInfoPtr ,
unsigned int ,
xkbExtensionDeviceNotify * ,
XkbChangesPtr ,
XkbEventCausePtr
);
extern _X_EXPORT void XkbApplyLedMapChanges(
DeviceIntPtr ,
XkbSrvLedInfoPtr ,
unsigned int ,
xkbExtensionDeviceNotify * ,
XkbChangesPtr ,
XkbEventCausePtr
);
extern _X_EXPORT void XkbApplyLedStateChanges(
DeviceIntPtr ,
XkbSrvLedInfoPtr ,
unsigned int ,
xkbExtensionDeviceNotify * ,
XkbChangesPtr ,
XkbEventCausePtr
);
extern _X_EXPORT void XkbFlushLedEvents(
DeviceIntPtr ,
DeviceIntPtr ,
XkbSrvLedInfoPtr ,
xkbExtensionDeviceNotify * ,
XkbChangesPtr ,
XkbEventCausePtr
);
extern _X_EXPORT unsigned int XkbIndicatorsToUpdate(
DeviceIntPtr ,
unsigned long ,
Bool
);
extern _X_EXPORT void XkbComputeDerivedState(
XkbSrvInfoPtr
);
extern _X_EXPORT void XkbCheckSecondaryEffects(
XkbSrvInfoPtr ,
unsigned int ,
XkbChangesPtr ,
XkbEventCausePtr
);
extern _X_EXPORT void XkbCheckIndicatorMaps(
DeviceIntPtr ,
XkbSrvLedInfoPtr ,
unsigned int
);
extern _X_EXPORT unsigned int XkbStateChangedFlags(
XkbStatePtr ,
XkbStatePtr
);
extern _X_EXPORT void XkbSendStateNotify(
DeviceIntPtr ,
xkbStateNotify *
);
extern _X_EXPORT void XkbSendMapNotify(
DeviceIntPtr ,
xkbMapNotify *
);
extern _X_EXPORT int XkbComputeControlsNotify(
DeviceIntPtr ,
XkbControlsPtr ,
XkbControlsPtr ,
xkbControlsNotify * ,
Bool
);
extern _X_EXPORT void XkbSendControlsNotify(
DeviceIntPtr ,
xkbControlsNotify *
);
extern _X_EXPORT void XkbSendCompatMapNotify(
DeviceIntPtr ,
xkbCompatMapNotify *
);
extern _X_EXPORT void XkbHandleBell(
BOOL ,
BOOL ,
DeviceIntPtr ,
CARD8 ,
pointer ,
CARD8 ,
Atom ,
WindowPtr ,
ClientPtr
);
extern _X_EXPORT void XkbSendAccessXNotify(
DeviceIntPtr ,
xkbAccessXNotify *
);
extern _X_EXPORT void XkbSendNamesNotify(
DeviceIntPtr ,
xkbNamesNotify *
);
extern _X_EXPORT void XkbSendActionMessage(
DeviceIntPtr ,
xkbActionMessage *
);
extern _X_EXPORT void XkbSendExtensionDeviceNotify(
DeviceIntPtr ,
ClientPtr ,
xkbExtensionDeviceNotify *
);
extern _X_EXPORT void XkbSendNotification(
DeviceIntPtr ,
XkbChangesPtr ,
XkbEventCausePtr
);
extern _X_EXPORT void XkbProcessKeyboardEvent(
DeviceEvent* ,
DeviceIntPtr
);
extern _X_EXPORT void XkbHandleActions(
DeviceIntPtr ,
DeviceIntPtr ,
DeviceEvent*
);
extern _X_EXPORT Bool XkbEnableDisableControls(
XkbSrvInfoPtr ,
unsigned long ,
unsigned long ,
XkbChangesPtr ,
XkbEventCausePtr
);
extern _X_EXPORT void AccessXInit(
DeviceIntPtr
);
extern _X_EXPORT Bool AccessXFilterPressEvent(
DeviceEvent* ,
DeviceIntPtr
);
extern _X_EXPORT Bool AccessXFilterReleaseEvent(
DeviceEvent* ,
DeviceIntPtr
);
extern _X_EXPORT void AccessXCancelRepeatKey(
XkbSrvInfoPtr ,
KeyCode
);
extern _X_EXPORT void AccessXComputeCurveFactor(
XkbSrvInfoPtr ,
XkbControlsPtr
);
extern _X_EXPORT XkbInterestPtr XkbFindClientResource(
DevicePtr ,
ClientPtr
);
extern _X_EXPORT XkbInterestPtr XkbAddClientResource(
DevicePtr ,
ClientPtr ,
XID
);
extern _X_EXPORT int XkbRemoveResourceClient(
DevicePtr ,
XID
);
extern _X_EXPORT int XkbDDXAccessXBeep(
DeviceIntPtr ,
unsigned int ,
unsigned int
);
extern _X_EXPORT int XkbDDXUsesSoftRepeat(
DeviceIntPtr
);
extern _X_EXPORT void XkbDDXKeybdCtrlProc(
DeviceIntPtr ,
KeybdCtrl *
);
extern _X_EXPORT void XkbDDXChangeControls(
DeviceIntPtr ,
XkbControlsPtr ,
XkbControlsPtr
);
extern _X_EXPORT void XkbDDXUpdateDeviceIndicators(
DeviceIntPtr ,
XkbSrvLedInfoPtr ,
CARD32
);
extern _X_EXPORT int XkbDDXTerminateServer(
DeviceIntPtr ,
KeyCode ,
XkbAction *
);
extern _X_EXPORT int XkbDDXSwitchScreen(
DeviceIntPtr ,
KeyCode ,
XkbAction *
);
extern _X_EXPORT int XkbDDXPrivate(
DeviceIntPtr ,
KeyCode ,
XkbAction *
);
extern _X_EXPORT void XkbDisableComputedAutoRepeats(
DeviceIntPtr ,
unsigned int
);
extern _X_EXPORT void XkbSetRepeatKeys(
DeviceIntPtr ,
int ,
int
);
extern _X_EXPORT int XkbLatchModifiers(
DeviceIntPtr ,
CARD8 ,
CARD8
);
extern _X_EXPORT int XkbLatchGroup(
DeviceIntPtr ,
int
);
extern _X_EXPORT void XkbClearAllLatchesAndLocks(
DeviceIntPtr ,
XkbSrvInfoPtr ,
Bool ,
XkbEventCausePtr
);
extern _X_EXPORT void XkbGetRulesDflts(
XkbRMLVOSet *
);
extern _X_EXPORT void XkbFreeRMLVOSet(
XkbRMLVOSet * ,
Bool
);
extern _X_EXPORT void XkbSetRulesDflts(
XkbRMLVOSet *
);
extern _X_EXPORT void XkbDeleteRulesDflts(
void
);
extern _X_EXPORT int SProcXkbDispatch(
ClientPtr
);
extern _X_EXPORT XkbGeometryPtr XkbLookupNamedGeometry(
DeviceIntPtr ,
Atom ,
Bool *
);
extern _X_EXPORT char * _XkbDupString(
const char *
);
extern _X_EXPORT void XkbConvertCase(
KeySym ,
KeySym * ,
KeySym *
);
extern _X_EXPORT Status XkbChangeKeycodeRange(
XkbDescPtr ,
int ,
int ,
XkbChangesPtr
);
extern _X_EXPORT void XkbFreeSrvLedInfo(
XkbSrvLedInfoPtr
);
extern _X_EXPORT void XkbFreeInfo(
XkbSrvInfoPtr
);
extern _X_EXPORT Status XkbChangeTypesOfKey(
XkbDescPtr ,
int ,
int ,
unsigned int ,
int * ,
XkbMapChangesPtr
);
extern _X_EXPORT int XkbKeyTypesForCoreSymbols(
XkbDescPtr ,
int ,
KeySym * ,
unsigned int ,
int * ,
KeySym *
);
extern _X_EXPORT Bool XkbApplyCompatMapToKey(
XkbDescPtr ,
KeyCode ,
XkbChangesPtr
);
extern _X_EXPORT Bool XkbApplyVirtualModChanges(
XkbDescPtr ,
unsigned int ,
XkbChangesPtr
);
extern _X_EXPORT void XkbSendNewKeyboardNotify(
DeviceIntPtr ,
xkbNewKeyboardNotify *
);
extern Bool XkbCopyKeymap(
XkbDescPtr ,
XkbDescPtr );
extern _X_EXPORT Bool XkbCopyDeviceKeymap(
DeviceIntPtr ,
DeviceIntPtr );
extern void XkbFilterEvents(
ClientPtr ,
int ,
xEvent* );
extern int XkbGetEffectiveGroup(
XkbSrvInfoPtr ,
XkbStatePtr ,
CARD8 );
extern void XkbMergeLockedPtrBtns(
DeviceIntPtr );
extern void XkbFakeDeviceButton(
DeviceIntPtr ,
int ,
int );
#include "xkbfile.h"
#include "xkbrules.h"
#define _XkbListKeycodes 0
#define _XkbListTypes 1
#define _XkbListCompat 2
#define _XkbListSymbols 3
#define _XkbListGeometry 4
#define _XkbListNumComponents 5
typedef struct _XkbSrvListInfo {
int szPool;
int nPool;
char * pool;
int maxRtrn;
int nTotal;
char * pattern[_XkbListNumComponents];
int nFound[_XkbListNumComponents];
} XkbSrvListInfoRec,*XkbSrvListInfoPtr;
extern _X_EXPORT Status XkbDDXList(
DeviceIntPtr ,
XkbSrvListInfoPtr ,
ClientPtr
);
extern _X_EXPORT unsigned int XkbDDXLoadKeymapByNames(
DeviceIntPtr ,
XkbComponentNamesPtr ,
unsigned int ,
unsigned int ,
XkbDescPtr * ,
char * ,
int
);
extern _X_EXPORT Bool XkbDDXNamesFromRules(
DeviceIntPtr ,
char * ,
XkbRF_VarDefsPtr ,
XkbComponentNamesPtr
);
extern _X_EXPORT XkbDescPtr XkbCompileKeymap(
DeviceIntPtr ,
XkbRMLVOSet *
);
#endif