1002 lines
		
	
	
		
			25 KiB
		
	
	
	
		
			C
		
	
	
	
			
		
		
	
	
			1002 lines
		
	
	
		
			25 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 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;
 | 
						|
 | 
						|
/*
 | 
						|
 * Settings for xkbClientFlags field (used by DIX)
 | 
						|
 * These flags _must_ not overlap with XkbPCF_*
 | 
						|
 */
 | 
						|
#define	_XkbClientInitialized		(1<<15)
 | 
						|
 | 
						|
#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 DevPrivateKey xkbDevicePrivateKey;
 | 
						|
#define XKBDEVICEINFO(dev) ((xkbDeviceInfoPtr)dixLookupPrivate(&(dev)->devPrivates, xkbDevicePrivateKey))
 | 
						|
 | 
						|
extern _X_EXPORT 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 pointer	XkbLastRepeatEvent;
 | 
						|
 | 
						|
extern _X_EXPORT CARD32	xkbDebugFlags;
 | 
						|
 | 
						|
#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	_XkbLibError(c,l,d) /* Epoch fail */
 | 
						|
#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	_XkbIsPressEvent(t)	(((t)==KeyPress)||((t)==DeviceKeyPress))
 | 
						|
#define	_XkbIsReleaseEvent(t)	(((t)==KeyRelease)||((t)==DeviceKeyRelease))
 | 
						|
 | 
						|
#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
 | 
						|
 | 
						|
extern _X_EXPORT void XkbUseMsg(
 | 
						|
    void
 | 
						|
);
 | 
						|
 | 
						|
extern _X_EXPORT int XkbProcessArguments(
 | 
						|
    int				/* argc */,
 | 
						|
    char **			/* argv */,
 | 
						|
    int				/* i */
 | 
						|
);
 | 
						|
 | 
						|
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 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 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 */,
 | 
						|
       pointer 		/* 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 _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 void XkbDDXFakePointerMotion(
 | 
						|
 	unsigned int	/* flags */,
 | 
						|
	int		/* x */,
 | 
						|
	int		/* y */
 | 
						|
);
 | 
						|
 | 
						|
extern _X_EXPORT void XkbDDXFakeDeviceButton(
 | 
						|
	DeviceIntPtr	/* dev */,
 | 
						|
	Bool		/* press */,
 | 
						|
	int		/* button */
 | 
						|
);
 | 
						|
 | 
						|
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	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 int SProcXkbDispatch(
 | 
						|
	ClientPtr		/* client */
 | 
						|
);
 | 
						|
 | 
						|
extern _X_EXPORT XkbGeometryPtr XkbLookupNamedGeometry(
 | 
						|
	DeviceIntPtr		/* dev */,
 | 
						|
	Atom			/* name */,
 | 
						|
	Bool *			/* shouldFree */
 | 
						|
);
 | 
						|
 | 
						|
extern _X_EXPORT char *	_XkbDupString(
 | 
						|
	const char *		/* str */
 | 
						|
);
 | 
						|
 | 
						|
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 Bool XkbCopyDeviceKeymap(
 | 
						|
        DeviceIntPtr            /* dst */,
 | 
						|
        DeviceIntPtr            /* src */);
 | 
						|
 | 
						|
extern int XkbGetKeysym(
 | 
						|
        DeviceIntPtr            /* dev */,
 | 
						|
        DeviceEvent*            /* event*/);
 | 
						|
 | 
						|
#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		/* dev */,
 | 
						|
	XkbSrvListInfoPtr	/* listing */,
 | 
						|
	ClientPtr		/* client */
 | 
						|
);
 | 
						|
 | 
						|
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 */,
 | 
						|
	char *			/* rules */,
 | 
						|
	XkbRF_VarDefsPtr	/* defs */,
 | 
						|
	XkbComponentNamesPtr	/* names */
 | 
						|
);
 | 
						|
 | 
						|
extern _X_EXPORT XkbDescPtr XkbCompileKeymap(
 | 
						|
        DeviceIntPtr    /* dev */,
 | 
						|
        XkbRMLVOSet *   /* rmlvo */
 | 
						|
);
 | 
						|
 | 
						|
#define	XkbAtomGetString(s)	NameForAtom(s)
 | 
						|
 | 
						|
#endif /* _XKBSRV_H_ */
 |