#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 "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 _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 DevPrivateKey xkbDevicePrivateKey;
#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 int XkbReqCode;
extern int XkbEventBase;
extern int XkbDisableLockActions;
extern int XkbKeyboardErrorCode;
extern char * XkbBaseDirectory;
extern char * XkbBinDirectory;
extern char * XkbInitialMap;
extern unsigned int XkbXIUnsupported;
extern Bool noXkbExtension;
extern pointer XkbLastRepeatEvent;
extern CARD32 xkbDebugFlags;
#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)
#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,DeviceMotionNotify;
extern int DeviceButtonPress,DeviceButtonRelease;
extern int DeviceEnterNotify,DeviceLeaveNotify;
#define _XkbIsPressEvent(t) (((t)==KeyPress)||((t)==DeviceKeyPress))
#define _XkbIsReleaseEvent(t) (((t)==KeyRelease)||((t)==DeviceKeyRelease))
#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
#ifndef True
#define True TRUE
#define False FALSE
#endif
_XFUNCPROTOBEGIN
extern void XkbUseMsg(
void
);
extern int XkbProcessArguments(
int ,
char ** ,
int
);
extern void XkbSetExtension(DeviceIntPtr device, ProcessInputProc proc);
extern void XkbFreeCompatMap(
XkbDescPtr ,
unsigned int ,
Bool
);
extern void XkbFreeNames(
XkbDescPtr ,
unsigned int ,
Bool
);
extern int _XkbLookupAnyDevice(
DeviceIntPtr *pDev,
int id,
ClientPtr client,
Mask access_mode,
int *xkb_err
);
extern int _XkbLookupKeyboard(
DeviceIntPtr *pDev,
int id,
ClientPtr client,
Mask access_mode,
int *xkb_err
);
extern int _XkbLookupBellDevice(
DeviceIntPtr *pDev,
int id,
ClientPtr client,
Mask access_mode,
int *xkb_err
);
extern int _XkbLookupLedDevice(
DeviceIntPtr *pDev,
int id,
ClientPtr client,
Mask access_mode,
int *xkb_err
);
extern int _XkbLookupButtonDevice(
DeviceIntPtr *pDev,
int id,
ClientPtr client,
Mask access_mode,
int *xkb_err
);
extern XkbDescPtr XkbAllocKeyboard(
void
);
extern Status XkbAllocClientMap(
XkbDescPtr ,
unsigned int ,
unsigned int
);
extern Status XkbAllocServerMap(
XkbDescPtr ,
unsigned int ,
unsigned int
);
extern void XkbFreeClientMap(
XkbDescPtr ,
unsigned int ,
Bool
);
extern void XkbFreeServerMap(
XkbDescPtr ,
unsigned int ,
Bool
);
extern Status XkbAllocIndicatorMaps(
XkbDescPtr
);
extern Status XkbAllocCompatMap(
XkbDescPtr ,
unsigned int ,
unsigned int
);
extern Status XkbAllocNames(
XkbDescPtr ,
unsigned int ,
int ,
int
);
extern Status XkbAllocControls(
XkbDescPtr ,
unsigned int
);
extern Status XkbCopyKeyTypes(
XkbKeyTypePtr ,
XkbKeyTypePtr ,
int
);
extern Status XkbResizeKeyType(
XkbDescPtr ,
int ,
int ,
Bool ,
int
);
extern void XkbFreeKeyboard(
XkbDescPtr ,
unsigned int ,
Bool
);
extern void XkbSetActionKeyMods(
XkbDescPtr ,
XkbAction * ,
unsigned int
);
extern Bool XkbCheckActionVMods(
XkbDescPtr ,
XkbAction * ,
unsigned int
);
extern unsigned int XkbMaskForVMask(
XkbDescPtr ,
unsigned int
);
extern Bool XkbVirtualModsToReal(
XkbDescPtr ,
unsigned int ,
unsigned int *
);
extern unsigned int XkbAdjustGroup(
int ,
XkbControlsPtr
);
extern KeySym *XkbResizeKeySyms(
XkbDescPtr ,
int ,
int
);
extern XkbAction *XkbResizeKeyActions(
XkbDescPtr ,
int ,
int
);
extern void XkbUpdateKeyTypesFromCore(
DeviceIntPtr ,
KeyCode ,
CARD8 ,
XkbChangesPtr
);
extern void XkbUpdateDescActions(
XkbDescPtr ,
KeyCode ,
CARD8 ,
XkbChangesPtr
);
extern void XkbUpdateActions(
DeviceIntPtr ,
KeyCode ,
CARD8 ,
XkbChangesPtr ,
unsigned int * ,
XkbEventCausePtr
);
extern void XkbUpdateCoreDescription(
DeviceIntPtr ,
Bool
);
extern void XkbApplyMappingChange(
DeviceIntPtr ,
CARD8 ,
KeyCode ,
CARD8 ,
ClientPtr
);
extern void XkbSetIndicators(
DeviceIntPtr ,
CARD32 ,
CARD32 ,
XkbEventCausePtr
);
extern void XkbUpdateIndicators(
DeviceIntPtr ,
CARD32 ,
Bool ,
XkbChangesPtr ,
XkbEventCausePtr
);
extern XkbSrvLedInfoPtr XkbAllocSrvLedInfo(
DeviceIntPtr ,
KbdFeedbackPtr ,
LedFeedbackPtr ,
unsigned int
);
extern XkbSrvLedInfoPtr XkbCopySrvLedInfo(
DeviceIntPtr ,
XkbSrvLedInfoPtr ,
KbdFeedbackPtr ,
LedFeedbackPtr
);
extern XkbSrvLedInfoPtr XkbFindSrvLedInfo(
DeviceIntPtr ,
unsigned int ,
unsigned int ,
unsigned int
);
extern void XkbApplyLedNameChanges(
DeviceIntPtr ,
XkbSrvLedInfoPtr ,
unsigned int ,
xkbExtensionDeviceNotify * ,
XkbChangesPtr ,
XkbEventCausePtr
);
extern void XkbApplyLedMapChanges(
DeviceIntPtr ,
XkbSrvLedInfoPtr ,
unsigned int ,
xkbExtensionDeviceNotify * ,
XkbChangesPtr ,
XkbEventCausePtr
);
extern void XkbApplyLedStateChanges(
DeviceIntPtr ,
XkbSrvLedInfoPtr ,
unsigned int ,
xkbExtensionDeviceNotify * ,
XkbChangesPtr ,
XkbEventCausePtr
);
extern void XkbFlushLedEvents(
DeviceIntPtr ,
DeviceIntPtr ,
XkbSrvLedInfoPtr ,
xkbExtensionDeviceNotify * ,
XkbChangesPtr ,
XkbEventCausePtr
);
extern unsigned int XkbIndicatorsToUpdate(
DeviceIntPtr ,
unsigned long ,
Bool
);
extern void XkbComputeDerivedState(
XkbSrvInfoPtr
);
extern void XkbCheckSecondaryEffects(
XkbSrvInfoPtr ,
unsigned int ,
XkbChangesPtr ,
XkbEventCausePtr
);
extern void XkbCheckIndicatorMaps(
DeviceIntPtr ,
XkbSrvLedInfoPtr ,
unsigned int
);
extern unsigned int XkbStateChangedFlags(
XkbStatePtr ,
XkbStatePtr
);
extern void XkbSendStateNotify(
DeviceIntPtr ,
xkbStateNotify *
);
extern void XkbSendMapNotify(
DeviceIntPtr ,
xkbMapNotify *
);
extern int XkbComputeControlsNotify(
DeviceIntPtr ,
XkbControlsPtr ,
XkbControlsPtr ,
xkbControlsNotify * ,
Bool
);
extern void XkbSendControlsNotify(
DeviceIntPtr ,
xkbControlsNotify *
);
extern void XkbSendCompatMapNotify(
DeviceIntPtr ,
xkbCompatMapNotify *
);
extern void XkbHandleBell(
BOOL ,
BOOL ,
DeviceIntPtr ,
CARD8 ,
pointer ,
CARD8 ,
Atom ,
WindowPtr ,
ClientPtr
);
extern void XkbSendAccessXNotify(
DeviceIntPtr ,
xkbAccessXNotify *
);
extern void XkbSendNamesNotify(
DeviceIntPtr ,
xkbNamesNotify *
);
extern void XkbSendCompatNotify(
DeviceIntPtr ,
xkbCompatMapNotify *
);
extern void XkbSendActionMessage(
DeviceIntPtr ,
xkbActionMessage *
);
extern void XkbSendExtensionDeviceNotify(
DeviceIntPtr ,
ClientPtr ,
xkbExtensionDeviceNotify *
);
extern void XkbSendNotification(
DeviceIntPtr ,
XkbChangesPtr ,
XkbEventCausePtr
);
extern void XkbProcessKeyboardEvent(
struct _xEvent * ,
DeviceIntPtr ,
int
);
extern void XkbHandleActions(
DeviceIntPtr ,
DeviceIntPtr ,
struct _xEvent * ,
int
);
extern Bool XkbEnableDisableControls(
XkbSrvInfoPtr ,
unsigned long ,
unsigned long ,
XkbChangesPtr ,
XkbEventCausePtr
);
extern void AccessXInit(
DeviceIntPtr
);
extern Bool AccessXFilterPressEvent(
struct _xEvent * ,
DeviceIntPtr ,
int
);
extern Bool AccessXFilterReleaseEvent(
struct _xEvent * ,
DeviceIntPtr ,
int
);
extern void AccessXCancelRepeatKey(
XkbSrvInfoPtr ,
KeyCode
);
extern void AccessXComputeCurveFactor(
XkbSrvInfoPtr ,
XkbControlsPtr
);
extern XkbInterestPtr XkbFindClientResource(
DevicePtr ,
ClientPtr
);
extern XkbInterestPtr XkbAddClientResource(
DevicePtr ,
ClientPtr ,
XID
);
extern int XkbRemoveResourceClient(
DevicePtr ,
XID
);
extern int XkbDDXInitDevice(
DeviceIntPtr
);
extern int XkbDDXAccessXBeep(
DeviceIntPtr ,
unsigned int ,
unsigned int
);
extern void XkbDDXKeyClick(
DeviceIntPtr ,
int ,
int
);
extern int XkbDDXUsesSoftRepeat(
DeviceIntPtr
);
extern void XkbDDXKeybdCtrlProc(
DeviceIntPtr ,
KeybdCtrl *
);
extern void XkbDDXChangeControls(
DeviceIntPtr ,
XkbControlsPtr ,
XkbControlsPtr
);
extern void XkbDDXUpdateDeviceIndicators(
DeviceIntPtr ,
XkbSrvLedInfoPtr ,
CARD32
);
extern void XkbDDXFakePointerButton(
int ,
int
);
extern void XkbDDXFakePointerMotion(
unsigned int ,
int ,
int
);
extern void XkbDDXFakeDeviceButton(
DeviceIntPtr ,
Bool ,
int
);
extern int XkbDDXTerminateServer(
DeviceIntPtr ,
KeyCode ,
XkbAction *
);
extern int XkbDDXSwitchScreen(
DeviceIntPtr ,
KeyCode ,
XkbAction *
);
extern int XkbDDXPrivate(
DeviceIntPtr ,
KeyCode ,
XkbAction *
);
extern void XkbDisableComputedAutoRepeats(
DeviceIntPtr ,
unsigned int
);
extern void XkbSetRepeatKeys(
DeviceIntPtr ,
int ,
int
);
extern int XkbLatchModifiers(
DeviceIntPtr ,
CARD8 ,
CARD8
);
extern int XkbLatchGroup(
DeviceIntPtr ,
int
);
extern void XkbClearAllLatchesAndLocks(
DeviceIntPtr ,
XkbSrvInfoPtr ,
Bool ,
XkbEventCausePtr
);
extern void XkbSetRulesDflts(
char * ,
char * ,
char * ,
char * ,
char *
);
extern void XkbDeleteRulesDflts(
void
);
extern void XkbInitDevice(
DeviceIntPtr
);
extern Bool XkbInitKeyboardDeviceStruct(
DeviceIntPtr ,
XkbComponentNamesPtr ,
KeySymsPtr ,
CARD8 [],
BellProcPtr ,
KbdCtrlProcPtr
);
extern int SProcXkbDispatch(
ClientPtr
);
extern XkbGeometryPtr XkbLookupNamedGeometry(
DeviceIntPtr ,
Atom ,
Bool *
);
extern char * _XkbDupString(
char *
);
extern void XkbConvertCase(
KeySym ,
KeySym * ,
KeySym *
);
extern Status XkbChangeKeycodeRange(
XkbDescPtr ,
int ,
int ,
XkbChangesPtr
);
extern int XkbFinishDeviceInit(
DeviceIntPtr
);
extern void XkbFreeSrvLedInfo(
XkbSrvLedInfoPtr
);
extern void XkbFreeInfo(
XkbSrvInfoPtr
);
extern Status XkbChangeTypesOfKey(
XkbDescPtr ,
int ,
int ,
unsigned int ,
int * ,
XkbMapChangesPtr
);
extern int XkbKeyTypesForCoreSymbols(
XkbDescPtr ,
int ,
KeySym * ,
unsigned int ,
int * ,
KeySym *
);
extern Bool XkbApplyCompatMapToKey(
XkbDescPtr ,
KeyCode ,
XkbChangesPtr
);
extern Bool XkbApplyVirtualModChanges(
XkbDescPtr ,
unsigned int ,
XkbChangesPtr
);
extern void XkbSendNewKeyboardNotify(
DeviceIntPtr ,
xkbNewKeyboardNotify *
);
#include "xkbfile.h"
#include <X11/extensions/XKMformat.h>
#include "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;
extern Status XkbDDXList(
DeviceIntPtr ,
XkbSrvListInfoPtr ,
ClientPtr
);
extern unsigned int XkbDDXLoadKeymapByNames(
DeviceIntPtr ,
XkbComponentNamesPtr ,
unsigned int ,
unsigned int ,
XkbDescPtr * ,
char * ,
int
);
extern Bool XkbDDXNamesFromRules(
DeviceIntPtr ,
char * ,
XkbRF_VarDefsPtr ,
XkbComponentNamesPtr
);
extern Bool XkbDDXApplyConfig(
void * ,
XkbSrvInfoPtr
);
extern int _XkbStrCaseCmp(
char * ,
char *
);
_XFUNCPROTOEND
#define XkbAtomGetString(s) NameForAtom(s)
#endif