summaryrefslogtreecommitdiffstats
path: root/xlib
diff options
context:
space:
mode:
Diffstat (limited to 'xlib')
-rw-r--r--xlib/X11/XKBlib.h1149
-rw-r--r--xlib/X11/extensions/XKB.h786
-rw-r--r--xlib/X11/extensions/XKBstr.h642
3 files changed, 0 insertions, 2577 deletions
diff --git a/xlib/X11/XKBlib.h b/xlib/X11/XKBlib.h
deleted file mode 100644
index 8f6c72c..0000000
--- a/xlib/X11/XKBlib.h
+++ /dev/null
@@ -1,1149 +0,0 @@
-/************************************************************
-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 _X11_XKBLIB_H_
-#define _X11_XKBLIB_H_
-
-#include <X11/Xlib.h>
-#include <X11/extensions/XKBstr.h>
-
-typedef struct _XkbAnyEvent {
- int type; /* XkbAnyEvent */
- unsigned long serial; /* # of last req processed by server */
- Bool send_event; /* is this from a SendEvent request? */
- Display * display; /* Display the event was read from */
- Time time; /* milliseconds */
- int xkb_type; /* XKB event minor code */
- unsigned int device; /* device ID */
-} XkbAnyEvent;
-
-typedef struct _XkbNewKeyboardNotify {
- int type; /* XkbAnyEvent */
- unsigned long serial; /* of last req processed by server */
- Bool send_event; /* is this from a SendEvent request? */
- Display * display; /* Display the event was read from */
- Time time; /* milliseconds */
- int xkb_type; /* XkbNewKeyboardNotify */
- int device; /* device ID */
- int old_device; /* device ID of previous keyboard */
- int min_key_code; /* minimum key code */
- int max_key_code; /* maximum key code */
- int old_min_key_code;/* min key code of previous kbd */
- int old_max_key_code;/* max key code of previous kbd */
- unsigned int changed; /* changed aspects of the keyboard */
- char req_major; /* major and minor opcode of req */
- char req_minor; /* that caused change, if applicable */
-} XkbNewKeyboardNotifyEvent;
-
-typedef struct _XkbMapNotifyEvent {
- int type; /* XkbAnyEvent */
- unsigned long serial; /* of last req processed by server */
- Bool send_event; /* is this from a SendEvent request */
- Display * display; /* Display the event was read from */
- Time time; /* milliseconds */
- int xkb_type; /* XkbMapNotify */
- int device; /* device ID */
- unsigned int changed; /* fields which have been changed */
- unsigned int flags; /* reserved */
- int first_type; /* first changed key type */
- int num_types; /* number of changed key types */
- KeyCode min_key_code;
- KeyCode max_key_code;
- KeyCode first_key_sym;
- KeyCode first_key_act;
- KeyCode first_key_behavior;
- KeyCode first_key_explicit;
- KeyCode first_modmap_key;
- KeyCode first_vmodmap_key;
- int num_key_syms;
- int num_key_acts;
- int num_key_behaviors;
- int num_key_explicit;
- int num_modmap_keys;
- int num_vmodmap_keys;
- unsigned int vmods; /* mask of changed virtual mods */
-} XkbMapNotifyEvent;
-
-typedef struct _XkbStateNotifyEvent {
- int type; /* XkbAnyEvent */
- unsigned long serial; /* # of last req processed by server */
- Bool send_event; /* is this from a SendEvent request? */
- Display * display; /* Display the event was read from */
- Time time; /* milliseconds */
- int xkb_type; /* XkbStateNotify */
- int device; /* device ID */
- unsigned int changed; /* mask of changed state components */
- int group; /* keyboard group */
- int base_group; /* base keyboard group */
- int latched_group; /* latched keyboard group */
- int locked_group; /* locked keyboard group */
- unsigned int mods; /* modifier state */
- unsigned int base_mods; /* base modifier state */
- unsigned int latched_mods; /* latched modifiers */
- unsigned int locked_mods; /* locked modifiers */
- int compat_state; /* compatibility state */
- unsigned char grab_mods; /* mods used for grabs */
- unsigned char compat_grab_mods;/* grab mods for non-XKB clients */
- unsigned char lookup_mods; /* mods sent to clients */
- unsigned char compat_lookup_mods; /* mods sent to non-XKB clients */
- int ptr_buttons; /* pointer button state */
- KeyCode keycode; /* keycode that caused the change */
- char event_type; /* KeyPress or KeyRelease */
- char req_major; /* Major opcode of request */
- char req_minor; /* Minor opcode of request */
-} XkbStateNotifyEvent;
-
-typedef struct _XkbControlsNotify {
- int type; /* XkbAnyEvent */
- unsigned long serial; /* of last req processed by server */
- Bool send_event; /* is this from a SendEvent request? */
- Display * display; /* Display the event was read from */
- Time time; /* milliseconds */
- int xkb_type; /* XkbControlsNotify */
- int device; /* device ID */
- unsigned int changed_ctrls; /* controls with changed sub-values */
- unsigned int enabled_ctrls; /* controls currently enabled */
- unsigned int enabled_ctrl_changes;/* controls just {en,dis}abled */
- int num_groups; /* total groups on keyboard */
- KeyCode keycode; /* key that caused change or 0 */
- char event_type; /* type of event that caused change */
- char req_major; /* if keycode==0, major and minor */
- char req_minor; /* opcode of req that caused change */
-} XkbControlsNotifyEvent;
-
-typedef struct _XkbIndicatorNotify {
- int type; /* XkbAnyEvent */
- unsigned long serial; /* of last req processed by server */
- Bool send_event; /* is this from a SendEvent request? */
- Display * display; /* Display the event was read from */
- Time time; /* milliseconds */
- int xkb_type; /* XkbIndicatorNotify */
- int device; /* device ID */
- unsigned int changed; /* indicators with new state or map */
- unsigned int state; /* current state of all indicators */
-} XkbIndicatorNotifyEvent;
-
-typedef struct _XkbNamesNotify {
- int type; /* XkbAnyEvent */
- unsigned long serial; /* of last req processed by server */
- Bool send_event; /* is this from a SendEvent request? */
- Display * display; /* Display the event was read from */
- Time time; /* milliseconds */
- int xkb_type; /* XkbNamesNotify */
- int device; /* device ID */
- unsigned int changed; /* names that have changed */
- int first_type; /* first key type with new name */
- int num_types; /* number of key types with new names */
- int first_lvl; /* first key type new new level names */
- int num_lvls; /* # of key types w/new level names */
- int num_aliases; /* total number of key aliases*/
- int num_radio_groups;/* total number of radio groups */
- unsigned int changed_vmods; /* virtual modifiers with new names */
- unsigned int changed_groups; /* groups with new names */
- unsigned int changed_indicators;/* indicators with new names */
- int first_key; /* first key with new name */
- int num_keys; /* number of keys with new names */
-} XkbNamesNotifyEvent;
-
-typedef struct _XkbCompatMapNotify {
- int type; /* XkbAnyEvent */
- unsigned long serial; /* of last req processed by server */
- Bool send_event; /* is this from a SendEvent request? */
- Display * display; /* Display the event was read from */
- Time time; /* milliseconds */
- int xkb_type; /* XkbCompatMapNotify */
- int device; /* device ID */
- unsigned int changed_groups; /* groups with new compat maps */
- int first_si; /* first new symbol interp */
- int num_si; /* number of new symbol interps */
- int num_total_si; /* total # of symbol interps */
-} XkbCompatMapNotifyEvent;
-
-typedef struct _XkbBellNotify {
- int type; /* XkbAnyEvent */
- unsigned long serial; /* of last req processed by server */
- Bool send_event; /* is this from a SendEvent request? */
- Display * display; /* Display the event was read from */
- Time time; /* milliseconds */
- int xkb_type; /* XkbBellNotify */
- int device; /* device ID */
- int percent; /* requested volume as a % of maximum */
- int pitch; /* requested pitch in Hz */
- int duration; /* requested duration in useconds */
- int bell_class; /* (input extension) feedback class */
- int bell_id; /* (input extension) ID of feedback */
- Atom name; /* "name" of requested bell */
- Window window; /* window associated with event */
- Bool event_only; /* "event only" requested */
-} XkbBellNotifyEvent;
-
-typedef struct _XkbActionMessage {
- int type; /* XkbAnyEvent */
- unsigned long serial; /* of last req processed by server */
- Bool send_event; /* is this from a SendEvent request? */
- Display * display; /* Display the event was read from */
- Time time; /* milliseconds */
- int xkb_type; /* XkbActionMessage */
- int device; /* device ID */
- KeyCode keycode; /* key that generated the event */
- Bool press; /* true if act caused by key press */
- Bool key_event_follows;/* true if key event also generated */
- int group; /* effective group */
- unsigned int mods; /* effective mods */
- char message[XkbActionMessageLength+1];
- /* message -- leave space for NUL */
-} XkbActionMessageEvent;
-
-typedef struct _XkbAccessXNotify {
- int type; /* XkbAnyEvent */
- unsigned long serial; /* of last req processed by server */
- Bool send_event; /* is this from a SendEvent request? */
- Display * display; /* Display the event was read from */
- Time time; /* milliseconds */
- int xkb_type; /* XkbAccessXNotify */
- int device; /* device ID */
- int detail; /* XkbAXN_* */
- int keycode; /* key of event */
- int sk_delay; /* current slow keys delay */
- int debounce_delay; /* current debounce delay */
-} XkbAccessXNotifyEvent;
-
-typedef struct _XkbExtensionDeviceNotify {
- int type; /* XkbAnyEvent */
- unsigned long serial; /* of last req processed by server */
- Bool send_event; /* is this from a SendEvent request? */
- Display * display; /* Display the event was read from */
- Time time; /* milliseconds */
- int xkb_type; /* XkbExtensionDeviceNotify */
- int device; /* device ID */
- unsigned int reason; /* reason for the event */
- unsigned int supported; /* mask of supported features */
- unsigned int unsupported; /* mask of unsupported features */
- /* that some app tried to use */
- int first_btn; /* first button that changed */
- int num_btns; /* range of buttons changed */
- unsigned int leds_defined; /* indicators with names or maps */
- unsigned int led_state; /* current state of the indicators */
- int led_class; /* feedback class for led changes */
- int led_id; /* feedback id for led changes */
-} XkbExtensionDeviceNotifyEvent;
-
-typedef union _XkbEvent {
- int type;
- XkbAnyEvent any;
- XkbNewKeyboardNotifyEvent new_kbd;
- XkbMapNotifyEvent map;
- XkbStateNotifyEvent state;
- XkbControlsNotifyEvent ctrls;
- XkbIndicatorNotifyEvent indicators;
- XkbNamesNotifyEvent names;
- XkbCompatMapNotifyEvent compat;
- XkbBellNotifyEvent bell;
- XkbActionMessageEvent message;
- XkbAccessXNotifyEvent accessx;
- XkbExtensionDeviceNotifyEvent device;
- XEvent core;
-} XkbEvent;
-
-typedef struct _XkbKbdDpyState XkbKbdDpyStateRec,*XkbKbdDpyStatePtr;
-
- /* XkbOpenDisplay error codes */
-#define XkbOD_Success 0
-#define XkbOD_BadLibraryVersion 1
-#define XkbOD_ConnectionRefused 2
-#define XkbOD_NonXkbServer 3
-#define XkbOD_BadServerVersion 4
-
- /* Values for XlibFlags */
-#define XkbLC_ForceLatin1Lookup (1<<0)
-#define XkbLC_ConsumeLookupMods (1<<1)
-#define XkbLC_AlwaysConsumeShiftAndLock (1<<2)
-#define XkbLC_IgnoreNewKeyboards (1<<3)
-#define XkbLC_ControlFallback (1<<4)
-#define XkbLC_ConsumeKeysOnComposeFail (1<<29)
-#define XkbLC_ComposeLED (1<<30)
-#define XkbLC_BeepOnComposeFail (1<<31)
-
-#define XkbLC_AllComposeControls (0xc0000000)
-#define XkbLC_AllControls (0xc000001f)
-
-_XFUNCPROTOBEGIN
-
-extern Bool XkbIgnoreExtension(
- Bool /* ignore */
-);
-
-extern Display *XkbOpenDisplay(
- char * /* name */,
- int * /* ev_rtrn */,
- int * /* err_rtrn */,
- int * /* major_rtrn */,
- int * /* minor_rtrn */,
- int * /* reason */
-);
-
-extern Bool XkbQueryExtension(
- Display * /* dpy */,
- int * /* opcodeReturn */,
- int * /* eventBaseReturn */,
- int * /* errorBaseReturn */,
- int * /* majorRtrn */,
- int * /* minorRtrn */
-);
-
-extern Bool XkbUseExtension(
- Display * /* dpy */,
- int * /* major_rtrn */,
- int * /* minor_rtrn */
-);
-
-extern Bool XkbLibraryVersion(
- int * /* libMajorRtrn */,
- int * /* libMinorRtrn */
-);
-
-extern unsigned int XkbSetXlibControls(
- Display* /* dpy */,
- unsigned int /* affect */,
- unsigned int /* values */
-);
-
-extern unsigned int XkbGetXlibControls(
- Display* /* dpy */
-);
-
-extern unsigned int XkbXlibControlsImplemented(void);
-
-typedef Atom (*XkbInternAtomFunc)(
- Display * /* dpy */,
- _Xconst char * /* name */,
- Bool /* only_if_exists */
-);
-
-typedef char * (*XkbGetAtomNameFunc)(
- Display * /* dpy */,
- Atom /* atom */
-);
-
-extern void XkbSetAtomFuncs(
- XkbInternAtomFunc /* getAtom */,
- XkbGetAtomNameFunc /* getName */
-);
-
-extern KeySym XkbKeycodeToKeysym(
- Display * /* dpy */,
-#if NeedWidePrototypes
- unsigned int /* kc */,
-#else
- KeyCode /* kc */,
-#endif
- int /* group */,
- int /* level */
-);
-
-extern unsigned int XkbKeysymToModifiers(
- Display * /* dpy */,
- KeySym /* ks */
-);
-
-extern Bool XkbLookupKeySym(
- Display * /* dpy */,
- KeyCode /* keycode */,
- unsigned int /* modifiers */,
- unsigned int * /* modifiers_return */,
- KeySym * /* keysym_return */
-);
-
-extern int XkbLookupKeyBinding(
- Display * /* dpy */,
- KeySym /* sym_rtrn */,
- unsigned int /* mods */,
- char * /* buffer */,
- int /* nbytes */,
- int * /* extra_rtrn */
-);
-
-extern Bool XkbTranslateKeyCode(
- XkbDescPtr /* xkb */,
- KeyCode /* keycode */,
- unsigned int /* modifiers */,
- unsigned int * /* modifiers_return */,
- KeySym * /* keysym_return */
-);
-
-extern int XkbTranslateKeySym(
- Display * /* dpy */,
- register KeySym * /* sym_return */,
- unsigned int /* modifiers */,
- char * /* buffer */,
- int /* nbytes */,
- int * /* extra_rtrn */
-);
-
-extern Bool XkbSetAutoRepeatRate(
- Display * /* dpy */,
- unsigned int /* deviceSpec */,
- unsigned int /* delay */,
- unsigned int /* interval */
-);
-
-extern Bool XkbGetAutoRepeatRate(
- Display * /* dpy */,
- unsigned int /* deviceSpec */,
- unsigned int * /* delayRtrn */,
- unsigned int * /* intervalRtrn */
-);
-
-extern Bool XkbChangeEnabledControls(
- Display * /* dpy */,
- unsigned int /* deviceSpec */,
- unsigned int /* affect */,
- unsigned int /* values */
-);
-
-extern Bool XkbDeviceBell(
- Display * /* dpy */,
- Window /* win */,
- int /* deviceSpec */,
- int /* bellClass */,
- int /* bellID */,
- int /* percent */,
- Atom /* name */
-);
-
-extern Bool XkbForceDeviceBell(
- Display * /* dpy */,
- int /* deviceSpec */,
- int /* bellClass */,
- int /* bellID */,
- int /* percent */
-);
-
-extern Bool XkbDeviceBellEvent(
- Display * /* dpy */,
- Window /* win */,
- int /* deviceSpec */,
- int /* bellClass */,
- int /* bellID */,
- int /* percent */,
- Atom /* name */
-);
-
-extern Bool XkbBell(
- Display * /* dpy */,
- Window /* win */,
- int /* percent */,
- Atom /* name */
-);
-
-extern Bool XkbForceBell(
- Display * /* dpy */,
- int /* percent */
-);
-
-extern Bool XkbBellEvent(
- Display * /* dpy */,
- Window /* win */,
- int /* percent */,
- Atom /* name */
-);
-
-extern Bool XkbSelectEvents(
- Display * /* dpy */,
- unsigned int /* deviceID */,
- unsigned int /* affect */,
- unsigned int /* values */
-);
-
-extern Bool XkbSelectEventDetails(
- Display * /* dpy */,
- unsigned int /* deviceID */,
- unsigned int /* eventType */,
- unsigned long /* affect */,
- unsigned long /* details */
-);
-
-extern void XkbNoteMapChanges(
- XkbMapChangesPtr /* old */,
- XkbMapNotifyEvent * /* new */,
- unsigned int /* wanted */
-);
-
-extern void XkbNoteNameChanges(
- XkbNameChangesPtr /* old */,
- XkbNamesNotifyEvent * /* new */,
- unsigned int /* wanted */
-);
-
-extern Status XkbGetIndicatorState(
- Display * /* dpy */,
- unsigned int /* deviceSpec */,
- unsigned int * /* pStateRtrn */
-);
-
-extern Status XkbGetDeviceIndicatorState(
- Display * /* dpy */,
- unsigned int /* deviceSpec */,
- unsigned int /* ledClass */,
- unsigned int /* ledID */,
- unsigned int * /* pStateRtrn */
-);
-
-extern Status XkbGetIndicatorMap(
- Display * /* dpy */,
- unsigned long /* which */,
- XkbDescPtr /* desc */
-);
-
-extern Bool XkbSetIndicatorMap(
- Display * /* dpy */,
- unsigned long /* which */,
- XkbDescPtr /* desc */
-);
-
-#define XkbNoteIndicatorMapChanges(o,n,w) \
- ((o)->map_changes|=((n)->map_changes&(w)))
-#define XkbNoteIndicatorStateChanges(o,n,w)\
- ((o)->state_changes|=((n)->state_changes&(w)))
-#define XkbGetIndicatorMapChanges(d,x,c) \
- (XkbGetIndicatorMap((d),(c)->map_changes,x))
-#define XkbChangeIndicatorMaps(d,x,c) \
- (XkbSetIndicatorMap((d),(c)->map_changes,x))
-
-extern Bool XkbGetNamedIndicator(
- Display * /* dpy */,
- Atom /* name */,
- int * /* pNdxRtrn */,
- Bool * /* pStateRtrn */,
- XkbIndicatorMapPtr /* pMapRtrn */,
- Bool * /* pRealRtrn */
-);
-
-extern Bool XkbGetNamedDeviceIndicator(
- Display * /* dpy */,
- unsigned int /* deviceSpec */,
- unsigned int /* ledClass */,
- unsigned int /* ledID */,
- Atom /* name */,
- int * /* pNdxRtrn */,
- Bool * /* pStateRtrn */,
- XkbIndicatorMapPtr /* pMapRtrn */,
- Bool * /* pRealRtrn */
-);
-
-extern Bool XkbSetNamedIndicator(
- Display * /* dpy */,
- Atom /* name */,
- Bool /* changeState */,
- Bool /* state */,
- Bool /* createNewMap */,
- XkbIndicatorMapPtr /* pMap */
-);
-
-extern Bool XkbSetNamedDeviceIndicator(
- Display * /* dpy */,
- unsigned int /* deviceSpec */,
- unsigned int /* ledClass */,
- unsigned int /* ledID */,
- Atom /* name */,
- Bool /* changeState */,
- Bool /* state */,
- Bool /* createNewMap */,
- XkbIndicatorMapPtr /* pMap */
-);
-
-extern Bool XkbLockModifiers(
- Display * /* dpy */,
- unsigned int /* deviceSpec */,
- unsigned int /* affect */,
- unsigned int /* values */
-);
-
-extern Bool XkbLatchModifiers(
- Display * /* dpy */,
- unsigned int /* deviceSpec */,
- unsigned int /* affect */,
- unsigned int /* values */
-);
-
-extern Bool XkbLockGroup(
- Display * /* dpy */,
- unsigned int /* deviceSpec */,
- unsigned int /* group */
-);
-
-extern Bool XkbLatchGroup(
- Display * /* dpy */,
- unsigned int /* deviceSpec */,
- unsigned int /* group */
-);
-
-extern Bool XkbSetServerInternalMods(
- Display * /* dpy */,
- unsigned int /* deviceSpec */,
- unsigned int /* affectReal */,
- unsigned int /* realValues */,
- unsigned int /* affectVirtual */,
- unsigned int /* virtualValues */
-);
-
-extern Bool XkbSetIgnoreLockMods(
- Display * /* dpy */,
- unsigned int /* deviceSpec */,
- unsigned int /* affectReal */,
- unsigned int /* realValues */,
- unsigned int /* affectVirtual */,
- unsigned int /* virtualValues */
-);
-
-
-extern Bool XkbVirtualModsToReal(
- XkbDescPtr /* xkb */,
- unsigned int /* virtual_mask */,
- unsigned int * /* mask_rtrn */
-);
-
-extern Bool XkbComputeEffectiveMap(
- XkbDescPtr /* xkb */,
- XkbKeyTypePtr /* type */,
- unsigned char * /* map_rtrn */
-);
-
-extern Status XkbInitCanonicalKeyTypes(
- XkbDescPtr /* xkb */,
- unsigned int /* which */,
- int /* keypadVMod */
-);
-
-extern XkbDescPtr XkbAllocKeyboard(
- void
-);
-
-extern void XkbFreeKeyboard(
- XkbDescPtr /* xkb */,
- unsigned int /* which */,
- Bool /* freeDesc */
-);
-
-extern Status XkbAllocClientMap(
- XkbDescPtr /* xkb */,
- unsigned int /* which */,
- unsigned int /* nTypes */
-);
-
-extern Status XkbAllocServerMap(
- XkbDescPtr /* xkb */,
- unsigned int /* which */,
- unsigned int /* nActions */
-);
-
-extern void XkbFreeClientMap(
- XkbDescPtr /* xkb */,
- unsigned int /* what */,
- Bool /* freeMap */
-);
-
-extern void XkbFreeServerMap(
- XkbDescPtr /* xkb */,
- unsigned int /* what */,
- Bool /* freeMap */
-);
-
-extern XkbKeyTypePtr XkbAddKeyType(
- XkbDescPtr /* xkb */,
- Atom /* name */,
- int /* map_count */,
- Bool /* want_preserve */,
- int /* num_lvls */
-);
-
-extern Status XkbAllocIndicatorMaps(
- XkbDescPtr /* xkb */
-);
-
-extern void XkbFreeIndicatorMaps(
- XkbDescPtr /* xkb */
-);
-
-extern XkbDescPtr XkbGetMap(
- Display * /* dpy */,
- unsigned int /* which */,
- unsigned int /* deviceSpec */
-);
-
-extern Status XkbGetUpdatedMap(
- Display * /* dpy */,
- unsigned int /* which */,
- XkbDescPtr /* desc */
-);
-
-extern Status XkbGetMapChanges(
- Display * /* dpy */,
- XkbDescPtr /* xkb */,
- XkbMapChangesPtr /* changes */
-);
-
-
-extern Status XkbRefreshKeyboardMapping(
- XkbMapNotifyEvent * /* event */
-);
-
-extern Status XkbGetKeyTypes(
- Display * /* dpy */,
- unsigned int /* first */,
- unsigned int /* num */,
- XkbDescPtr /* xkb */
-);
-
-extern Status XkbGetKeySyms(
- Display * /* dpy */,
- unsigned int /* first */,
- unsigned int /* num */,
- XkbDescPtr /* xkb */
-);
-
-extern Status XkbGetKeyActions(
- Display * /* dpy */,
- unsigned int /* first */,
- unsigned int /* num */,
- XkbDescPtr /* xkb */
-);
-
-extern Status XkbGetKeyBehaviors(
- Display * /* dpy */,
- unsigned int /* firstKey */,
- unsigned int /* nKeys */,
- XkbDescPtr /* desc */
-);
-
-extern Status XkbGetVirtualMods(
- Display * /* dpy */,
- unsigned int /* which */,
- XkbDescPtr /* desc */
-);
-
-extern Status XkbGetKeyExplicitComponents(
- Display * /* dpy */,
- unsigned int /* firstKey */,
- unsigned int /* nKeys */,
- XkbDescPtr /* desc */
-);
-
-extern Status XkbGetKeyModifierMap(
- Display * /* dpy */,
- unsigned int /* firstKey */,
- unsigned int /* nKeys */,
- XkbDescPtr /* desc */
-);
-
-extern Status XkbGetKeyVirtualModMap(
- Display * /* dpy */,
- unsigned int /* first */,
- unsigned int /* num */,
- XkbDescPtr /* xkb */
-);
-
-extern Status XkbAllocControls(
- XkbDescPtr /* xkb */,
- unsigned int /* which*/
-);
-
-extern void XkbFreeControls(
- XkbDescPtr /* xkb */,
- unsigned int /* which */,
- Bool /* freeMap */
-);
-
-extern Status XkbGetControls(
- Display * /* dpy */,
- unsigned long /* which */,
- XkbDescPtr /* desc */
-);
-
-extern Bool XkbSetControls(
- Display * /* dpy */,
- unsigned long /* which */,
- XkbDescPtr /* desc */
-);
-
-extern void XkbNoteControlsChanges(
- XkbControlsChangesPtr /* old */,
- XkbControlsNotifyEvent * /* new */,
- unsigned int /* wanted */
-);
-
-#define XkbGetControlsChanges(d,x,c) XkbGetControls(d,(c)->changed_ctrls,x)
-#define XkbChangeControls(d,x,c) XkbSetControls(d,(c)->changed_ctrls,x)
-
-extern Status XkbAllocCompatMap(
- XkbDescPtr /* xkb */,
- unsigned int /* which */,
- unsigned int /* nInterpret */
-);
-
-extern void XkbFreeCompatMap(
- XkbDescPtr /* xkb */,
- unsigned int /* which */,
- Bool /* freeMap */
-);
-
-extern Status XkbGetCompatMap(
- Display * /* dpy */,
- unsigned int /* which */,
- XkbDescPtr /* xkb */
-);
-
-extern Bool XkbSetCompatMap(
- Display * /* dpy */,
- unsigned int /* which */,
- XkbDescPtr /* xkb */,
- Bool /* updateActions */
-);
-
-extern XkbSymInterpretPtr XkbAddSymInterpret(
- XkbDescPtr /* xkb */,
- XkbSymInterpretPtr /* si */,
- Bool /* updateMap */,
- XkbChangesPtr /* changes */
-);
-
-extern Status XkbAllocNames(
- XkbDescPtr /* xkb */,
- unsigned int /* which */,
- int /* nTotalRG */,
- int /* nTotalAliases */
-);
-
-extern Status XkbGetNames(
- Display * /* dpy */,
- unsigned int /* which */,
- XkbDescPtr /* desc */
-);
-
-extern Bool XkbSetNames(
- Display * /* dpy */,
- unsigned int /* which */,
- unsigned int /* firstType */,
- unsigned int /* nTypes */,
- XkbDescPtr /* desc */
-);
-
-extern Bool XkbChangeNames(
- Display * /* dpy */,
- XkbDescPtr /* xkb */,
- XkbNameChangesPtr /* changes */
-);
-
-extern void XkbFreeNames(
- XkbDescPtr /* xkb */,
- unsigned int /* which */,
- Bool /* freeMap */
-);
-
-
-extern Status XkbGetState(
- Display * /* dpy */,
- unsigned int /* deviceSpec */,
- XkbStatePtr /* rtrnState */
-);
-
-extern Bool XkbSetMap(
- Display * /* dpy */,
- unsigned int /* which */,
- XkbDescPtr /* desc */
-);
-
-extern Bool XkbChangeMap(
- Display* /* dpy */,
- XkbDescPtr /* desc */,
- XkbMapChangesPtr /* changes */
-);
-
-extern Bool XkbSetDetectableAutoRepeat(
- Display * /* dpy */,
- Bool /* detectable */,
- Bool * /* supported */
-);
-
-extern Bool XkbGetDetectableAutoRepeat(
- Display * /* dpy */,
- Bool * /* supported */
-);
-
-extern Bool XkbSetAutoResetControls(
- Display * /* dpy */,
- unsigned int /* changes */,
- unsigned int * /* auto_ctrls */,
- unsigned int * /* auto_values */
-);
-
-extern Bool XkbGetAutoResetControls(
- Display * /* dpy */,
- unsigned int * /* auto_ctrls */,
- unsigned int * /* auto_ctrl_values */
-);
-
-extern Bool XkbSetPerClientControls(
- Display * /* dpy */,
- unsigned int /* change */,
- unsigned int * /* values */
-);
-
-extern Bool XkbGetPerClientControls(
- Display * /* dpy */,
- unsigned int * /* ctrls */
-);
-
-extern Status XkbCopyKeyType(
- XkbKeyTypePtr /* from */,
- XkbKeyTypePtr /* into */
-);
-
-extern Status XkbCopyKeyTypes(
- XkbKeyTypePtr /* from */,
- XkbKeyTypePtr /* into */,
- int /* num_types */
-);
-
-extern Status XkbResizeKeyType(
- XkbDescPtr /* xkb */,
- int /* type_ndx */,
- int /* map_count */,
- Bool /* want_preserve */,
- int /* new_num_lvls */
-);
-
-extern KeySym *XkbResizeKeySyms(
- XkbDescPtr /* desc */,
- int /* forKey */,
- int /* symsNeeded */
-);
-
-extern XkbAction *XkbResizeKeyActions(
- XkbDescPtr /* desc */,
- int /* forKey */,
- int /* actsNeeded */
-);
-
-extern Status XkbChangeTypesOfKey(
- XkbDescPtr /* xkb */,
- int /* key */,
- int /* num_groups */,
- unsigned int /* groups */,
- int * /* newTypes */,
- XkbMapChangesPtr /* pChanges */
-);
-
-extern Status XkbChangeKeycodeRange(
- XkbDescPtr /* xkb */,
- int /* minKC */,
- int /* maxKC */,
- XkbChangesPtr /* changes */
-);
-
-/***====================================================================***/
-
-extern XkbComponentListPtr XkbListComponents(
- Display * /* dpy */,
- unsigned int /* deviceSpec */,
- XkbComponentNamesPtr /* ptrns */,
- int * /* max_inout */
-);
-
-extern void XkbFreeComponentList(
- XkbComponentListPtr /* list */
-);
-
-extern XkbDescPtr XkbGetKeyboard(
- Display * /* dpy */,
- unsigned int /* which */,
- unsigned int /* deviceSpec */
-);
-
-extern XkbDescPtr XkbGetKeyboardByName(
- Display * /* dpy */,
- unsigned int /* deviceSpec */,
- XkbComponentNamesPtr /* names */,
- unsigned int /* want */,
- unsigned int /* need */,
- Bool /* load */
-);
-
-/***====================================================================***/
-
-extern int XkbKeyTypesForCoreSymbols( /* returns # of groups */
- XkbDescPtr /* xkb */, /* keyboard device */
- int /* map_width */, /* width of core KeySym array */
- KeySym * /* core_syms */, /* always mapWidth symbols */
- unsigned int /* protected */, /* explicit key types */
- int * /* types_inout */, /* always four type indices */
- KeySym * /* xkb_syms_rtrn */ /* must have enough space */
-);
-
-extern Bool XkbApplyCompatMapToKey( /* False only on error */
- XkbDescPtr /* xkb */, /* keymap to be edited */
- KeyCode /* key */, /* key to be updated */
- XkbChangesPtr /* changes */ /* resulting changes to map */
-);
-
-extern Bool XkbUpdateMapFromCore( /* False only on error */
- XkbDescPtr /* xkb */, /* XKB keyboard to be edited */
- KeyCode /* first_key */, /* first changed key */
- int /* num_keys */, /* number of changed keys */
- int /* map_width */, /* width of core keymap */
- KeySym * /* core_keysyms */, /* symbols from core keymap */
- XkbChangesPtr /* changes */ /* resulting changes */
-);
-
-/***====================================================================***/
-
-extern XkbDeviceLedInfoPtr XkbAddDeviceLedInfo(
- XkbDeviceInfoPtr /* devi */,
- unsigned int /* ledClass */,
- unsigned int /* ledId */
-);
-
-extern Status XkbResizeDeviceButtonActions(
- XkbDeviceInfoPtr /* devi */,
- unsigned int /* newTotal */
-);
-
-extern XkbDeviceInfoPtr XkbAllocDeviceInfo(
- unsigned int /* deviceSpec */,
- unsigned int /* nButtons */,
- unsigned int /* szLeds */
-);
-
-extern void XkbFreeDeviceInfo(
- XkbDeviceInfoPtr /* devi */,
- unsigned int /* which */,
- Bool /* freeDevI */
-);
-
-extern void XkbNoteDeviceChanges(
- XkbDeviceChangesPtr /* old */,
- XkbExtensionDeviceNotifyEvent * /* new */,
- unsigned int /* wanted */
-);
-
-extern XkbDeviceInfoPtr XkbGetDeviceInfo(
- Display * /* dpy */,
- unsigned int /* which */,
- unsigned int /* deviceSpec */,
- unsigned int /* ledClass */,
- unsigned int /* ledID */
-);
-
-extern Status XkbGetDeviceInfoChanges(
- Display * /* dpy */,
- XkbDeviceInfoPtr /* devi */,
- XkbDeviceChangesPtr /* changes */
-);
-
-extern Status XkbGetDeviceButtonActions(
- Display * /* dpy */,
- XkbDeviceInfoPtr /* devi */,
- Bool /* all */,
- unsigned int /* first */,
- unsigned int /* nBtns */
-);
-
-extern Status XkbGetDeviceLedInfo(
- Display * /* dpy */,
- XkbDeviceInfoPtr /* devi */,
- unsigned int /* ledClass (class, XIDflt, XIAll) */,
- unsigned int /* ledId (id, XIDflt, XIAll) */,
- unsigned int /* which (XkbXI_Indicator{Names,Map}Mask */
-);
-
-extern Bool XkbSetDeviceInfo(
- Display * /* dpy */,
- unsigned int /* which */,
- XkbDeviceInfoPtr /* devi */
-);
-
-extern Bool XkbChangeDeviceInfo(
- Display* /* dpy */,
- XkbDeviceInfoPtr /* desc */,
- XkbDeviceChangesPtr /* changes */
-);
-
-extern Bool XkbSetDeviceLedInfo(
- Display * /* dpy */,
- XkbDeviceInfoPtr /* devi */,
- unsigned int /* ledClass */,
- unsigned int /* ledID */,
- unsigned int /* which */
-);
-
-extern Bool XkbSetDeviceButtonActions(
- Display * /* dpy */,
- XkbDeviceInfoPtr /* devi */,
- unsigned int /* first */,
- unsigned int /* nBtns */
-);
-
-/***====================================================================***/
-
-extern char XkbToControl(
- char /* c */
-);
-
-/***====================================================================***/
-
-extern Bool XkbSetDebuggingFlags(
- Display * /* dpy */,
- unsigned int /* mask */,
- unsigned int /* flags */,
- char * /* msg */,
- unsigned int /* ctrls_mask */,
- unsigned int /* ctrls */,
- unsigned int * /* rtrn_flags */,
- unsigned int * /* rtrn_ctrls */
-);
-
-extern Bool XkbApplyVirtualModChanges(
- XkbDescPtr /* xkb */,
- unsigned int /* changed */,
- XkbChangesPtr /* changes */
-);
-
-extern Bool XkbUpdateActionVirtualMods(
- XkbDescPtr /* xkb */,
- XkbAction * /* act */,
- unsigned int /* changed */
-);
-
-extern void XkbUpdateKeyTypeVirtualMods(
- XkbDescPtr /* xkb */,
- XkbKeyTypePtr /* type */,
- unsigned int /* changed */,
- XkbChangesPtr /* changes */
-);
-
-_XFUNCPROTOEND
-
-#endif /* _X11_XKBLIB_H_ */
diff --git a/xlib/X11/extensions/XKB.h b/xlib/X11/extensions/XKB.h
deleted file mode 100644
index 7e702eb..0000000
--- a/xlib/X11/extensions/XKB.h
+++ /dev/null
@@ -1,786 +0,0 @@
-/************************************************************
-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 _XKB_H_
-#define _XKB_H_
-
- /*
- * XKB request codes, used in:
- * - xkbReqType field of all requests
- * - requestMinor field of some events
- */
-#define X_kbUseExtension 0
-#define X_kbSelectEvents 1
-#define X_kbBell 3
-#define X_kbGetState 4
-#define X_kbLatchLockState 5
-#define X_kbGetControls 6
-#define X_kbSetControls 7
-#define X_kbGetMap 8
-#define X_kbSetMap 9
-#define X_kbGetCompatMap 10
-#define X_kbSetCompatMap 11
-#define X_kbGetIndicatorState 12
-#define X_kbGetIndicatorMap 13
-#define X_kbSetIndicatorMap 14
-#define X_kbGetNamedIndicator 15
-#define X_kbSetNamedIndicator 16
-#define X_kbGetNames 17
-#define X_kbSetNames 18
-#define X_kbGetGeometry 19
-#define X_kbSetGeometry 20
-#define X_kbPerClientFlags 21
-#define X_kbListComponents 22
-#define X_kbGetKbdByName 23
-#define X_kbGetDeviceInfo 24
-#define X_kbSetDeviceInfo 25
-#define X_kbSetDebuggingFlags 101
-
- /*
- * In the X sense, XKB reports only one event.
- * The type field of all XKB events is XkbEventCode
- */
-#define XkbEventCode 0
-#define XkbNumberEvents (XkbEventCode+1)
-
- /*
- * XKB has a minor event code so it can use one X event code for
- * multiple purposes.
- * - reported in the xkbType field of all XKB events.
- * - XkbSelectEventDetails: Indicates the event for which event details
- * are being changed
- */
-#define XkbNewKeyboardNotify 0
-#define XkbMapNotify 1
-#define XkbStateNotify 2
-#define XkbControlsNotify 3
-#define XkbIndicatorStateNotify 4
-#define XkbIndicatorMapNotify 5
-#define XkbNamesNotify 6
-#define XkbCompatMapNotify 7
-#define XkbBellNotify 8
-#define XkbActionMessage 9
-#define XkbAccessXNotify 10
-#define XkbExtensionDeviceNotify 11
-
- /*
- * Event Mask:
- * - XkbSelectEvents: Specifies event interest.
- */
-#define XkbNewKeyboardNotifyMask (1L << 0)
-#define XkbMapNotifyMask (1L << 1)
-#define XkbStateNotifyMask (1L << 2)
-#define XkbControlsNotifyMask (1L << 3)
-#define XkbIndicatorStateNotifyMask (1L << 4)
-#define XkbIndicatorMapNotifyMask (1L << 5)
-#define XkbNamesNotifyMask (1L << 6)
-#define XkbCompatMapNotifyMask (1L << 7)
-#define XkbBellNotifyMask (1L << 8)
-#define XkbActionMessageMask (1L << 9)
-#define XkbAccessXNotifyMask (1L << 10)
-#define XkbExtensionDeviceNotifyMask (1L << 11)
-#define XkbAllEventsMask (0xFFF)
-
- /*
- * NewKeyboardNotify event details:
- */
-#define XkbNKN_KeycodesMask (1L << 0)
-#define XkbNKN_GeometryMask (1L << 1)
-#define XkbNKN_DeviceIDMask (1L << 2)
-#define XkbAllNewKeyboardEventsMask (0x7)
-
- /*
- * AccessXNotify event types:
- * - The 'what' field of AccessXNotify events reports the
- * reason that the event was generated.
- */
-#define XkbAXN_SKPress 0
-#define XkbAXN_SKAccept 1
-#define XkbAXN_SKReject 2
-#define XkbAXN_SKRelease 3
-#define XkbAXN_BKAccept 4
-#define XkbAXN_BKReject 5
-#define XkbAXN_AXKWarning 6
-
- /*
- * AccessXNotify details:
- * - Used as an event detail mask to limit the conditions under which
- * AccessXNotify events are reported
- */
-#define XkbAXN_SKPressMask (1L << 0)
-#define XkbAXN_SKAcceptMask (1L << 1)
-#define XkbAXN_SKRejectMask (1L << 2)
-#define XkbAXN_SKReleaseMask (1L << 3)
-#define XkbAXN_BKAcceptMask (1L << 4)
-#define XkbAXN_BKRejectMask (1L << 5)
-#define XkbAXN_AXKWarningMask (1L << 6)
-#define XkbAllAccessXEventsMask (0x7f)
-
- /*
- * Miscellaneous event details:
- * - event detail masks for assorted events that don't reall
- * have any details.
- */
-#define XkbAllStateEventsMask XkbAllStateComponentsMask
-#define XkbAllMapEventsMask XkbAllMapComponentsMask
-#define XkbAllControlEventsMask XkbAllControlsMask
-#define XkbAllIndicatorEventsMask XkbAllIndicatorsMask
-#define XkbAllNameEventsMask XkbAllNamesMask
-#define XkbAllCompatMapEventsMask XkbAllCompatMask
-#define XkbAllBellEventsMask (1L << 0)
-#define XkbAllActionMessagesMask (1L << 0)
-
- /*
- * XKB reports one error: BadKeyboard
- * A further reason for the error is encoded into to most significant
- * byte of the resourceID for the error:
- * XkbErr_BadDevice - the device in question was not found
- * XkbErr_BadClass - the device was found but it doesn't belong to
- * the appropriate class.
- * XkbErr_BadId - the device was found and belongs to the right
- * class, but not feedback with a matching id was
- * found.
- * The low byte of the resourceID for this error contains the device
- * id, class specifier or feedback id that failed.
- */
-#define XkbKeyboard 0
-#define XkbNumberErrors 1
-
-#define XkbErr_BadDevice 0xff
-#define XkbErr_BadClass 0xfe
-#define XkbErr_BadId 0xfd
-
- /*
- * Keyboard Components Mask:
- * - Specifies the components that follow a GetKeyboardByNameReply
- */
-#define XkbClientMapMask (1L << 0)
-#define XkbServerMapMask (1L << 1)
-#define XkbCompatMapMask (1L << 2)
-#define XkbIndicatorMapMask (1L << 3)
-#define XkbNamesMask (1L << 4)
-#define XkbGeometryMask (1L << 5)
-#define XkbControlsMask (1L << 6)
-#define XkbAllComponentsMask (0x7f)
-
- /*
- * State detail mask:
- * - The 'changed' field of StateNotify events reports which of
- * the keyboard state components have changed.
- * - Used as an event detail mask to limit the conditions under
- * which StateNotify events are reported.
- */
-#define XkbModifierStateMask (1L << 0)
-#define XkbModifierBaseMask (1L << 1)
-#define XkbModifierLatchMask (1L << 2)
-#define XkbModifierLockMask (1L << 3)
-#define XkbGroupStateMask (1L << 4)
-#define XkbGroupBaseMask (1L << 5)
-#define XkbGroupLatchMask (1L << 6)
-#define XkbGroupLockMask (1L << 7)
-#define XkbCompatStateMask (1L << 8)
-#define XkbGrabModsMask (1L << 9)
-#define XkbCompatGrabModsMask (1L << 10)
-#define XkbLookupModsMask (1L << 11)
-#define XkbCompatLookupModsMask (1L << 12)
-#define XkbPointerButtonMask (1L << 13)
-#define XkbAllStateComponentsMask (0x3fff)
-
- /*
- * Controls detail masks:
- * The controls specified in XkbAllControlsMask:
- * - The 'changed' field of ControlsNotify events reports which of
- * the keyboard controls have changed.
- * - The 'changeControls' field of the SetControls request specifies
- * the controls for which values are to be changed.
- * - Used as an event detail mask to limit the conditions under
- * which ControlsNotify events are reported.
- *
- * The controls specified in the XkbAllBooleanCtrlsMask:
- * - The 'enabledControls' field of ControlsNotify events reports the
- * current status of the boolean controls.
- * - The 'enabledControlsChanges' field of ControlsNotify events reports
- * any boolean controls that have been turned on or off.
- * - The 'affectEnabledControls' and 'enabledControls' fields of the
- * kbSetControls request change the set of enabled controls.
- * - The 'accessXTimeoutMask' and 'accessXTimeoutValues' fields of
- * an XkbControlsRec specify the controls to be changed if the keyboard
- * times out and the values to which they should be changed.
- * - The 'autoCtrls' and 'autoCtrlsValues' fields of the PerClientFlags
- * request specifies the specify the controls to be reset when the
- * client exits and the values to which they should be reset.
- * - The 'ctrls' field of an indicator map specifies the controls
- * that drive the indicator.
- * - Specifies the boolean controls affected by the SetControls and
- * LockControls key actions.
- */
-#define XkbRepeatKeysMask (1L << 0)
-#define XkbSlowKeysMask (1L << 1)
-#define XkbBounceKeysMask (1L << 2)
-#define XkbStickyKeysMask (1L << 3)
-#define XkbMouseKeysMask (1L << 4)
-#define XkbMouseKeysAccelMask (1L << 5)
-#define XkbAccessXKeysMask (1L << 6)
-#define XkbAccessXTimeoutMask (1L << 7)
-#define XkbAccessXFeedbackMask (1L << 8)
-#define XkbAudibleBellMask (1L << 9)
-#define XkbOverlay1Mask (1L << 10)
-#define XkbOverlay2Mask (1L << 11)
-#define XkbIgnoreGroupLockMask (1L << 12)
-#define XkbGroupsWrapMask (1L << 27)
-#define XkbInternalModsMask (1L << 28)
-#define XkbIgnoreLockModsMask (1L << 29)
-#define XkbPerKeyRepeatMask (1L << 30)
-#define XkbControlsEnabledMask (1L << 31)
-
-#define XkbAccessXOptionsMask (XkbStickyKeysMask|XkbAccessXFeedbackMask)
-
-#define XkbAllBooleanCtrlsMask (0x00001FFF)
-#define XkbAllControlsMask (0xF8001FFF)
-#define XkbAllControlEventsMask XkbAllControlsMask
-
- /*
- * AccessX Options Mask
- * - The 'accessXOptions' field of an XkbControlsRec specifies the
- * AccessX options that are currently in effect.
- * - The 'accessXTimeoutOptionsMask' and 'accessXTimeoutOptionsValues'
- * fields of an XkbControlsRec specify the Access X options to be
- * changed if the keyboard times out and the values to which they
- * should be changed.
- */
-#define XkbAX_SKPressFBMask (1L << 0)
-#define XkbAX_SKAcceptFBMask (1L << 1)
-#define XkbAX_FeatureFBMask (1L << 2)
-#define XkbAX_SlowWarnFBMask (1L << 3)
-#define XkbAX_IndicatorFBMask (1L << 4)
-#define XkbAX_StickyKeysFBMask (1L << 5)
-#define XkbAX_TwoKeysMask (1L << 6)
-#define XkbAX_LatchToLockMask (1L << 7)
-#define XkbAX_SKReleaseFBMask (1L << 8)
-#define XkbAX_SKRejectFBMask (1L << 9)
-#define XkbAX_BKRejectFBMask (1L << 10)
-#define XkbAX_DumbBellFBMask (1L << 11)
-#define XkbAX_FBOptionsMask (0xF3F)
-#define XkbAX_SKOptionsMask (0x0C0)
-#define XkbAX_AllOptionsMask (0xFFF)
-
- /*
- * XkbUseCoreKbd is used to specify the core keyboard without having
- * to look up its X input extension identifier.
- * XkbUseCorePtr is used to specify the core pointer without having
- * to look up its X input extension identifier.
- * XkbDfltXIClass is used to specify "don't care" any place that the
- * XKB protocol is looking for an X Input Extension
- * device class.
- * XkbDfltXIId is used to specify "don't care" any place that the
- * XKB protocol is looking for an X Input Extension
- * feedback identifier.
- * XkbAllXIClasses is used to get information about all device indicators,
- * whether they're part of the indicator feedback class
- * or the keyboard feedback class.
- * XkbAllXIIds is used to get information about all device indicator
- * feedbacks without having to list them.
- * XkbXINone is used to indicate that no class or id has been specified.
- * XkbLegalXILedClass(c) True if 'c' specifies a legal class with LEDs
- * XkbLegalXIBellClass(c) True if 'c' specifies a legal class with bells
- * XkbExplicitXIDevice(d) True if 'd' explicitly specifies a device
- * XkbExplicitXIClass(c) True if 'c' explicitly specifies a device class
- * XkbExplicitXIId(c) True if 'i' explicitly specifies a device id
- * XkbSingleXIClass(c) True if 'c' specifies exactly one device class,
- * including the default.
- * XkbSingleXIId(i) True if 'i' specifies exactly one device
- * identifier, including the default.
- */
-#define XkbUseCoreKbd 0x0100
-#define XkbUseCorePtr 0x0200
-#define XkbDfltXIClass 0x0300
-#define XkbDfltXIId 0x0400
-#define XkbAllXIClasses 0x0500
-#define XkbAllXIIds 0x0600
-#define XkbXINone 0xff00
-
-#define XkbLegalXILedClass(c) (((c)==KbdFeedbackClass)||\
- ((c)==LedFeedbackClass)||\
- ((c)==XkbDfltXIClass)||\
- ((c)==XkbAllXIClasses))
-#define XkbLegalXIBellClass(c) (((c)==KbdFeedbackClass)||\
- ((c)==BellFeedbackClass)||\
- ((c)==XkbDfltXIClass)||\
- ((c)==XkbAllXIClasses))
-#define XkbExplicitXIDevice(c) (((c)&(~0xff))==0)
-#define XkbExplicitXIClass(c) (((c)&(~0xff))==0)
-#define XkbExplicitXIId(c) (((c)&(~0xff))==0)
-#define XkbSingleXIClass(c) ((((c)&(~0xff))==0)||((c)==XkbDfltXIClass))
-#define XkbSingleXIId(c) ((((c)&(~0xff))==0)||((c)==XkbDfltXIId))
-
-#define XkbNoModifier 0xff
-#define XkbNoShiftLevel 0xff
-#define XkbNoShape 0xff
-#define XkbNoIndicator 0xff
-
-#define XkbNoModifierMask 0
-#define XkbAllModifiersMask 0xff
-#define XkbAllVirtualModsMask 0xffff
-
-#define XkbNumKbdGroups 4
-#define XkbMaxKbdGroup (XkbNumKbdGroups-1)
-
-#define XkbMaxMouseKeysBtn 4
-
- /*
- * Group Index and Mask:
- * - Indices into the kt_index array of a key type.
- * - Mask specifies types to be changed for XkbChangeTypesOfKey
- */
-#define XkbGroup1Index 0
-#define XkbGroup2Index 1
-#define XkbGroup3Index 2
-#define XkbGroup4Index 3
-#define XkbAnyGroup 254
-#define XkbAllGroups 255
-
-#define XkbGroup1Mask (1<<0)
-#define XkbGroup2Mask (1<<1)
-#define XkbGroup3Mask (1<<2)
-#define XkbGroup4Mask (1<<3)
-#define XkbAnyGroupMask (1<<7)
-#define XkbAllGroupsMask (0xf)
-
- /*
- * BuildCoreState: Given a keyboard group and a modifier state,
- * construct the value to be reported an event.
- * GroupForCoreState: Given the state reported in an event,
- * determine the keyboard group.
- * IsLegalGroup: Returns TRUE if 'g' is a valid group index.
- */
-#define XkbBuildCoreState(m,g) ((((g)&0x3)<<13)|((m)&0xff))
-#define XkbGroupForCoreState(s) (((s)>>13)&0x3)
-#define XkbIsLegalGroup(g) (((g)>=0)&&((g)<XkbNumKbdGroups))
-
- /*
- * GroupsWrap values:
- * - The 'groupsWrap' field of an XkbControlsRec specifies the
- * treatment of out of range groups.
- * - Bits 6 and 7 of the group info field of a key symbol map
- * specify the interpretation of out of range groups for the
- * corresponding key.
- */
-#define XkbWrapIntoRange (0x00)
-#define XkbClampIntoRange (0x40)
-#define XkbRedirectIntoRange (0x80)
-
- /*
- * Action flags: Reported in the 'flags' field of most key actions.
- * Interpretation depends on the type of the action; not all actions
- * accept all flags.
- *
- * Option Used for Actions
- * ------ ----------------
- * ClearLocks SetMods, LatchMods, SetGroup, LatchGroup
- * LatchToLock SetMods, LatchMods, SetGroup, LatchGroup
- * LockNoLock LockMods, ISOLock, LockPtrBtn, LockDeviceBtn
- * LockNoUnlock LockMods, ISOLock, LockPtrBtn, LockDeviceBtn
- * UseModMapMods SetMods, LatchMods, LockMods, ISOLock
- * GroupAbsolute SetGroup, LatchGroup, LockGroup, ISOLock
- * UseDfltButton PtrBtn, LockPtrBtn
- * NoAcceleration MovePtr
- * MoveAbsoluteX MovePtr
- * MoveAbsoluteY MovePtr
- * ISODfltIsGroup ISOLock
- * ISONoAffectMods ISOLock
- * ISONoAffectGroup ISOLock
- * ISONoAffectPtr ISOLock
- * ISONoAffectCtrls ISOLock
- * MessageOnPress ActionMessage
- * MessageOnRelease ActionMessage
- * MessageGenKeyEvent ActionMessage
- * AffectDfltBtn SetPtrDflt
- * DfltBtnAbsolute SetPtrDflt
- * SwitchApplication SwitchScreen
- * SwitchAbsolute SwitchScreen
- */
-
-#define XkbSA_ClearLocks (1L << 0)
-#define XkbSA_LatchToLock (1L << 1)
-
-#define XkbSA_LockNoLock (1L << 0)
-#define XkbSA_LockNoUnlock (1L << 1)
-
-#define XkbSA_UseModMapMods (1L << 2)
-
-#define XkbSA_GroupAbsolute (1L << 2)
-#define XkbSA_UseDfltButton 0
-
-#define XkbSA_NoAcceleration (1L << 0)
-#define XkbSA_MoveAbsoluteX (1L << 1)
-#define XkbSA_MoveAbsoluteY (1L << 2)
-
-#define XkbSA_ISODfltIsGroup (1L << 7)
-#define XkbSA_ISONoAffectMods (1L << 6)
-#define XkbSA_ISONoAffectGroup (1L << 5)
-#define XkbSA_ISONoAffectPtr (1L << 4)
-#define XkbSA_ISONoAffectCtrls (1L << 3)
-#define XkbSA_ISOAffectMask (0x78)
-
-#define XkbSA_MessageOnPress (1L << 0)
-#define XkbSA_MessageOnRelease (1L << 1)
-#define XkbSA_MessageGenKeyEvent (1L << 2)
-
-#define XkbSA_AffectDfltBtn 1
-#define XkbSA_DfltBtnAbsolute (1L << 2)
-
-#define XkbSA_SwitchApplication (1L << 0)
-#define XkbSA_SwitchAbsolute (1L << 2)
-
- /*
- * The following values apply to the SA_DeviceValuator
- * action only. Valuator operations specify the action
- * to be taken. Values specified in the action are
- * multiplied by 2^scale before they are applied.
- */
-#define XkbSA_IgnoreVal (0x00)
-#define XkbSA_SetValMin (0x10)
-#define XkbSA_SetValCenter (0x20)
-#define XkbSA_SetValMax (0x30)
-#define XkbSA_SetValRelative (0x40)
-#define XkbSA_SetValAbsolute (0x50)
-#define XkbSA_ValOpMask (0x70)
-#define XkbSA_ValScaleMask (0x07)
-#define XkbSA_ValOp(a) ((a)&XkbSA_ValOpMask)
-#define XkbSA_ValScale(a) ((a)&XkbSA_ValScaleMask)
-
- /*
- * Action types: specifies the type of a key action. Reported in the
- * type field of all key actions.
- */
-#define XkbSA_NoAction 0x00
-#define XkbSA_SetMods 0x01
-#define XkbSA_LatchMods 0x02
-#define XkbSA_LockMods 0x03
-#define XkbSA_SetGroup 0x04
-#define XkbSA_LatchGroup 0x05
-#define XkbSA_LockGroup 0x06
-#define XkbSA_MovePtr 0x07
-#define XkbSA_PtrBtn 0x08
-#define XkbSA_LockPtrBtn 0x09
-#define XkbSA_SetPtrDflt 0x0a
-#define XkbSA_ISOLock 0x0b
-#define XkbSA_Terminate 0x0c
-#define XkbSA_SwitchScreen 0x0d
-#define XkbSA_SetControls 0x0e
-#define XkbSA_LockControls 0x0f
-#define XkbSA_ActionMessage 0x10
-#define XkbSA_RedirectKey 0x11
-#define XkbSA_DeviceBtn 0x12
-#define XkbSA_LockDeviceBtn 0x13
-#define XkbSA_DeviceValuator 0x14
-#define XkbSA_LastAction XkbSA_DeviceValuator
-#define XkbSA_NumActions (XkbSA_LastAction+1)
-
-#define XkbSA_XFree86Private 0x86
-
- /*
- * Specifies the key actions that clear latched groups or modifiers.
- */
-#define XkbSA_BreakLatch \
- ((1<<XkbSA_NoAction)|(1<<XkbSA_PtrBtn)|(1<<XkbSA_LockPtrBtn)|\
- (1<<XkbSA_Terminate)|(1<<XkbSA_SwitchScreen)|(1<<XkbSA_SetControls)|\
- (1<<XkbSA_LockControls)|(1<<XkbSA_ActionMessage)|\
- (1<<XkbSA_RedirectKey)|(1<<XkbSA_DeviceBtn)|(1<<XkbSA_LockDeviceBtn))
-
- /*
- * Macros to classify key actions
- */
-#define XkbIsModAction(a) (((a)->type>=Xkb_SASetMods)&&((a)->type<=XkbSA_LockMods))
-#define XkbIsGroupAction(a) (((a)->type>=XkbSA_SetGroup)&&((a)->type<=XkbSA_LockGroup))
-#define XkbIsPtrAction(a) (((a)->type>=XkbSA_MovePtr)&&((a)->type<=XkbSA_SetPtrDflt))
-
-
- /*
- * Key Behavior Qualifier:
- * KB_Permanent indicates that the behavior describes an unalterable
- * characteristic of the keyboard, not an XKB software-simulation of
- * the listed behavior.
- * Key Behavior Types:
- * Specifies the behavior of the underlying key.
- */
-#define XkbKB_Permanent 0x80
-#define XkbKB_OpMask 0x7f
-
-#define XkbKB_Default 0x00
-#define XkbKB_Lock 0x01
-#define XkbKB_RadioGroup 0x02
-#define XkbKB_Overlay1 0x03
-#define XkbKB_Overlay2 0x04
-
-#define XkbKB_RGAllowNone 0x80
-
- /*
- * Various macros which describe the range of legal keycodes.
- */
-#define XkbMinLegalKeyCode 8
-#define XkbMaxLegalKeyCode 255
-#define XkbMaxKeyCount (XkbMaxLegalKeyCode-XkbMinLegalKeyCode+1)
-#define XkbPerKeyBitArraySize ((XkbMaxLegalKeyCode+1)/8)
-/* Seems kinda silly to check that an unsigned char is <= 255... */
-#define XkbIsLegalKeycode(k) ((k)>=XkbMinLegalKeyCode)
-
- /*
- * Assorted constants and limits.
- */
-#define XkbNumModifiers 8
-#define XkbNumVirtualMods 16
-#define XkbNumIndicators 32
-#define XkbAllIndicatorsMask (0xffffffff)
-#define XkbMaxRadioGroups 32
-#define XkbAllRadioGroupsMask (0xffffffff)
-#define XkbMaxShiftLevel 63
-#define XkbMaxSymsPerKey (XkbMaxShiftLevel*XkbNumKbdGroups)
-#define XkbRGMaxMembers 12
-#define XkbActionMessageLength 6
-#define XkbKeyNameLength 4
-#define XkbMaxRedirectCount 8
-
-#define XkbGeomPtsPerMM 10
-#define XkbGeomMaxColors 32
-#define XkbGeomMaxLabelColors 3
-#define XkbGeomMaxPriority 255
-
- /*
- * Key Type index and mask for the four standard key types.
- */
-#define XkbOneLevelIndex 0
-#define XkbTwoLevelIndex 1
-#define XkbAlphabeticIndex 2
-#define XkbKeypadIndex 3
-#define XkbLastRequiredType XkbKeypadIndex
-#define XkbNumRequiredTypes (XkbLastRequiredType+1)
-#define XkbMaxKeyTypes 255
-
-#define XkbOneLevelMask (1<<0)
-#define XkbTwoLevelMask (1<<1)
-#define XkbAlphabeticMask (1<<2)
-#define XkbKeypadMask (1<<3)
-#define XkbAllRequiredTypes (0xf)
-
-#define XkbShiftLevel(n) ((n)-1)
-#define XkbShiftLevelMask(n) (1<<((n)-1))
-
- /*
- * Extension name and version information
- */
-#define XkbName "XKEYBOARD"
-#define XkbMajorVersion 1
-#define XkbMinorVersion 0
-
- /*
- * Explicit map components:
- * - Used in the 'explicit' field of an XkbServerMap. Specifies
- * the keyboard components that should _not_ be updated automatically
- * in response to core protocol keyboard mapping requests.
- */
-#define XkbExplicitKeyTypesMask (0x0f)
-#define XkbExplicitKeyType1Mask (1<<0)
-#define XkbExplicitKeyType2Mask (1<<1)
-#define XkbExplicitKeyType3Mask (1<<2)
-#define XkbExplicitKeyType4Mask (1<<3)
-#define XkbExplicitInterpretMask (1<<4)
-#define XkbExplicitAutoRepeatMask (1<<5)
-#define XkbExplicitBehaviorMask (1<<6)
-#define XkbExplicitVModMapMask (1<<7)
-#define XkbAllExplicitMask (0xff)
-
- /*
- * Map components masks:
- * Those in AllMapComponentsMask:
- * - Specifies the individual fields to be loaded or changed for the
- * GetMap and SetMap requests.
- * Those in ClientInfoMask:
- * - Specifies the components to be allocated by XkbAllocClientMap.
- * Those in ServerInfoMask:
- * - Specifies the components to be allocated by XkbAllocServerMap.
- */
-#define XkbKeyTypesMask (1<<0)
-#define XkbKeySymsMask (1<<1)
-#define XkbModifierMapMask (1<<2)
-#define XkbExplicitComponentsMask (1<<3)
-#define XkbKeyActionsMask (1<<4)
-#define XkbKeyBehaviorsMask (1<<5)
-#define XkbVirtualModsMask (1<<6)
-#define XkbVirtualModMapMask (1<<7)
-
-#define XkbAllClientInfoMask (XkbKeyTypesMask|XkbKeySymsMask|XkbModifierMapMask)
-#define XkbAllServerInfoMask (XkbExplicitComponentsMask|XkbKeyActionsMask|XkbKeyBehaviorsMask|XkbVirtualModsMask|XkbVirtualModMapMask)
-#define XkbAllMapComponentsMask (XkbAllClientInfoMask|XkbAllServerInfoMask)
-
- /*
- * Symbol interpretations flags:
- * - Used in the flags field of a symbol interpretation
- */
-#define XkbSI_AutoRepeat (1<<0)
-#define XkbSI_LockingKey (1<<1)
-
- /*
- * Symbol interpretations match specification:
- * - Used in the match field of a symbol interpretation to specify
- * the conditions under which an interpretation is used.
- */
-#define XkbSI_LevelOneOnly (0x80)
-#define XkbSI_OpMask (0x7f)
-#define XkbSI_NoneOf (0)
-#define XkbSI_AnyOfOrNone (1)
-#define XkbSI_AnyOf (2)
-#define XkbSI_AllOf (3)
-#define XkbSI_Exactly (4)
-
- /*
- * Indicator map flags:
- * - Used in the flags field of an indicator map to indicate the
- * conditions under which and indicator can be changed and the
- * effects of changing the indicator.
- */
-#define XkbIM_NoExplicit (1L << 7)
-#define XkbIM_NoAutomatic (1L << 6)
-#define XkbIM_LEDDrivesKB (1L << 5)
-
- /*
- * Indicator map component specifications:
- * - Used by the 'which_groups' and 'which_mods' fields of an indicator
- * map to specify which keyboard components should be used to drive
- * the indicator.
- */
-#define XkbIM_UseBase (1L << 0)
-#define XkbIM_UseLatched (1L << 1)
-#define XkbIM_UseLocked (1L << 2)
-#define XkbIM_UseEffective (1L << 3)
-#define XkbIM_UseCompat (1L << 4)
-
-#define XkbIM_UseNone 0
-#define XkbIM_UseAnyGroup (XkbIM_UseBase|XkbIM_UseLatched|XkbIM_UseLocked\
- |XkbIM_UseEffective)
-#define XkbIM_UseAnyMods (XkbIM_UseAnyGroup|XkbIM_UseCompat)
-
- /*
- * Compatibility Map Components:
- * - Specifies the components to be allocated in XkbAllocCompatMap.
- */
-#define XkbSymInterpMask (1<<0)
-#define XkbGroupCompatMask (1<<1)
-#define XkbAllCompatMask (0x3)
-
- /*
- * Names component mask:
- * - Specifies the names to be loaded or changed for the GetNames and
- * SetNames requests.
- * - Specifies the names that have changed in a NamesNotify event.
- * - Specifies the names components to be allocated by XkbAllocNames.
- */
-#define XkbKeycodesNameMask (1<<0)
-#define XkbGeometryNameMask (1<<1)
-#define XkbSymbolsNameMask (1<<2)
-#define XkbPhysSymbolsNameMask (1<<3)
-#define XkbTypesNameMask (1<<4)
-#define XkbCompatNameMask (1<<5)
-#define XkbKeyTypeNamesMask (1<<6)
-#define XkbKTLevelNamesMask (1<<7)
-#define XkbIndicatorNamesMask (1<<8)
-#define XkbKeyNamesMask (1<<9)
-#define XkbKeyAliasesMask (1<<10)
-#define XkbVirtualModNamesMask (1<<11)
-#define XkbGroupNamesMask (1<<12)
-#define XkbRGNamesMask (1<<13)
-#define XkbComponentNamesMask (0x3f)
-#define XkbAllNamesMask (0x3fff)
-
- /*
- * GetByName components:
- * - Specifies desired or necessary components to GetKbdByName request.
- * - Reports the components that were found in a GetKbdByNameReply
- */
-#define XkbGBN_TypesMask (1L << 0)
-#define XkbGBN_CompatMapMask (1L << 1)
-#define XkbGBN_ClientSymbolsMask (1L << 2)
-#define XkbGBN_ServerSymbolsMask (1L << 3)
-#define XkbGBN_SymbolsMask (XkbGBN_ClientSymbolsMask|XkbGBN_ServerSymbolsMask)
-#define XkbGBN_IndicatorMapMask (1L << 4)
-#define XkbGBN_KeyNamesMask (1L << 5)
-#define XkbGBN_GeometryMask (1L << 6)
-#define XkbGBN_OtherNamesMask (1L << 7)
-#define XkbGBN_AllComponentsMask (0xff)
-
- /*
- * ListComponents flags
- */
-#define XkbLC_Hidden (1L << 0)
-#define XkbLC_Default (1L << 1)
-#define XkbLC_Partial (1L << 2)
-
-#define XkbLC_AlphanumericKeys (1L << 8)
-#define XkbLC_ModifierKeys (1L << 9)
-#define XkbLC_KeypadKeys (1L << 10)
-#define XkbLC_FunctionKeys (1L << 11)
-#define XkbLC_AlternateGroup (1L << 12)
-
- /*
- * X Input Extension Interactions
- * - Specifies the possible interactions between XKB and the X input
- * extension
- * - Used to request (XkbGetDeviceInfo) or change (XKbSetDeviceInfo)
- * XKB information about an extension device.
- * - Reports the list of supported optional features in the reply to
- * XkbGetDeviceInfo or in an XkbExtensionDeviceNotify event.
- * XkbXI_UnsupportedFeature is reported in XkbExtensionDeviceNotify
- * events to indicate an attempt to use an unsupported feature.
- */
-#define XkbXI_KeyboardsMask (1L << 0)
-#define XkbXI_ButtonActionsMask (1L << 1)
-#define XkbXI_IndicatorNamesMask (1L << 2)
-#define XkbXI_IndicatorMapsMask (1L << 3)
-#define XkbXI_IndicatorStateMask (1L << 4)
-#define XkbXI_UnsupportedFeatureMask (1L << 15)
-#define XkbXI_AllFeaturesMask (0x001f)
-#define XkbXI_AllDeviceFeaturesMask (0x001e)
-
-#define XkbXI_IndicatorsMask (0x001c)
-#define XkbAllExtensionDeviceEventsMask (0x801f)
-
- /*
- * Per-Client Flags:
- * - Specifies flags to be changed by the PerClientFlags request.
- */
-#define XkbPCF_DetectableAutoRepeatMask (1L << 0)
-#define XkbPCF_GrabsUseXKBStateMask (1L << 1)
-#define XkbPCF_AutoResetControlsMask (1L << 2)
-#define XkbPCF_LookupStateWhenGrabbed (1L << 3)
-#define XkbPCF_SendEventUsesXKBState (1L << 4)
-#define XkbPCF_AllFlagsMask (0x1F)
-
- /*
- * Debugging flags and controls
- */
-#define XkbDF_DisableLocks (1<<0)
-
-#endif /* _XKB_H_ */
diff --git a/xlib/X11/extensions/XKBstr.h b/xlib/X11/extensions/XKBstr.h
deleted file mode 100644
index ef26911..0000000
--- a/xlib/X11/extensions/XKBstr.h
+++ /dev/null
@@ -1,642 +0,0 @@
-/************************************************************
-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 _XKBSTR_H_
-#define _XKBSTR_H_
-
-#include <X11/extensions/XKB.h>
-
-#define XkbCharToInt(v) ((v)&0x80?(int)((v)|(~0xff)):(int)((v)&0x7f))
-#define XkbIntTo2Chars(i,h,l) (((h)=((i>>8)&0xff)),((l)=((i)&0xff)))
-#define Xkb2CharsToInt(h,l) ((short)(((h)<<8)|(l)))
-
-/*
- * The Xkb structs are full of implicit padding to properly align members.
- * We can't clean that up without breaking ABI, so tell clang not to bother
- * complaining about it.
- */
-#ifdef __clang__
-#pragma clang diagnostic push
-#pragma clang diagnostic ignored "-Wpadded"
-#endif
-
- /*
- * Common data structures and access macros
- */
-
-typedef struct _XkbStateRec {
- unsigned char group;
- unsigned char locked_group;
- unsigned short base_group;
- unsigned short latched_group;
- unsigned char mods;
- unsigned char base_mods;
- unsigned char latched_mods;
- unsigned char locked_mods;
- unsigned char compat_state;
- unsigned char grab_mods;
- unsigned char compat_grab_mods;
- unsigned char lookup_mods;
- unsigned char compat_lookup_mods;
- unsigned short ptr_buttons;
-} XkbStateRec,*XkbStatePtr;
-#define XkbModLocks(s) ((s)->locked_mods)
-#define XkbStateMods(s) ((s)->base_mods|(s)->latched_mods|XkbModLocks(s))
-#define XkbGroupLock(s) ((s)->locked_group)
-#define XkbStateGroup(s) ((s)->base_group+(s)->latched_group+XkbGroupLock(s))
-#define XkbStateFieldFromRec(s) XkbBuildCoreState((s)->lookup_mods,(s)->group)
-#define XkbGrabStateFromRec(s) XkbBuildCoreState((s)->grab_mods,(s)->group)
-
-typedef struct _XkbMods {
- unsigned char mask; /* effective mods */
- unsigned char real_mods;
- unsigned short vmods;
-} XkbModsRec,*XkbModsPtr;
-
-typedef struct _XkbKTMapEntry {
- Bool active;
- unsigned char level;
- XkbModsRec mods;
-} XkbKTMapEntryRec,*XkbKTMapEntryPtr;
-
-typedef struct _XkbKeyType {
- XkbModsRec mods;
- unsigned char num_levels;
- unsigned char map_count;
- /* map is an array of map_count XkbKTMapEntryRec structs */
- XkbKTMapEntryPtr map;
- /* preserve is an array of map_count XkbModsRec structs */
- XkbModsPtr preserve;
- Atom name;
- /* level_names is an array of num_levels Atoms */
- Atom * level_names;
-} XkbKeyTypeRec, *XkbKeyTypePtr;
-
-#define XkbNumGroups(g) ((g)&0x0f)
-#define XkbOutOfRangeGroupInfo(g) ((g)&0xf0)
-#define XkbOutOfRangeGroupAction(g) ((g)&0xc0)
-#define XkbOutOfRangeGroupNumber(g) (((g)&0x30)>>4)
-#define XkbSetGroupInfo(g,w,n) (((w)&0xc0)|(((n)&3)<<4)|((g)&0x0f))
-#define XkbSetNumGroups(g,n) (((g)&0xf0)|((n)&0x0f))
-
- /*
- * Structures and access macros used primarily by the server
- */
-
-typedef struct _XkbBehavior {
- unsigned char type;
- unsigned char data;
-} XkbBehavior;
-
-#define XkbAnyActionDataSize 7
-typedef struct _XkbAnyAction {
- unsigned char type;
- unsigned char data[XkbAnyActionDataSize];
-} XkbAnyAction;
-
-typedef struct _XkbModAction {
- unsigned char type;
- unsigned char flags;
- unsigned char mask;
- unsigned char real_mods;
- unsigned char vmods1;
- unsigned char vmods2;
-} XkbModAction;
-#define XkbModActionVMods(a) \
- ((short)(((a)->vmods1<<8)|((a)->vmods2)))
-#define XkbSetModActionVMods(a,v) \
- (((a)->vmods1=(((v)>>8)&0xff)),(a)->vmods2=((v)&0xff))
-
-typedef struct _XkbGroupAction {
- unsigned char type;
- unsigned char flags;
- char group_XXX;
-} XkbGroupAction;
-#define XkbSAGroup(a) (XkbCharToInt((a)->group_XXX))
-#define XkbSASetGroup(a,g) ((a)->group_XXX=(g))
-
-typedef struct _XkbISOAction {
- unsigned char type;
- unsigned char flags;
- unsigned char mask;
- unsigned char real_mods;
- char group_XXX;
- unsigned char affect;
- unsigned char vmods1;
- unsigned char vmods2;
-} XkbISOAction;
-
-typedef struct _XkbPtrAction {
- unsigned char type;
- unsigned char flags;
- unsigned char high_XXX;
- unsigned char low_XXX;
- unsigned char high_YYY;
- unsigned char low_YYY;
-} XkbPtrAction;
-#define XkbPtrActionX(a) (Xkb2CharsToInt((a)->high_XXX,(a)->low_XXX))
-#define XkbPtrActionY(a) (Xkb2CharsToInt((a)->high_YYY,(a)->low_YYY))
-#define XkbSetPtrActionX(a,x) (XkbIntTo2Chars(x,(a)->high_XXX,(a)->low_XXX))
-#define XkbSetPtrActionY(a,y) (XkbIntTo2Chars(y,(a)->high_YYY,(a)->low_YYY))
-
-typedef struct _XkbPtrBtnAction {
- unsigned char type;
- unsigned char flags;
- unsigned char count;
- unsigned char button;
-} XkbPtrBtnAction;
-
-typedef struct _XkbPtrDfltAction {
- unsigned char type;
- unsigned char flags;
- unsigned char affect;
- char valueXXX;
-} XkbPtrDfltAction;
-#define XkbSAPtrDfltValue(a) (XkbCharToInt((a)->valueXXX))
-#define XkbSASetPtrDfltValue(a,c) ((a)->valueXXX= ((c)&0xff))
-
-typedef struct _XkbSwitchScreenAction {
- unsigned char type;
- unsigned char flags;
- char screenXXX;
-} XkbSwitchScreenAction;
-#define XkbSAScreen(a) (XkbCharToInt((a)->screenXXX))
-#define XkbSASetScreen(a,s) ((a)->screenXXX= ((s)&0xff))
-
-typedef struct _XkbCtrlsAction {
- unsigned char type;
- unsigned char flags;
- unsigned char ctrls3;
- unsigned char ctrls2;
- unsigned char ctrls1;
- unsigned char ctrls0;
-} XkbCtrlsAction;
-#define XkbActionSetCtrls(a,c) (((a)->ctrls3=(((c)>>24)&0xff)),\
- ((a)->ctrls2=(((c)>>16)&0xff)),\
- ((a)->ctrls1=(((c)>>8)&0xff)),\
- ((a)->ctrls0=((c)&0xff)))
-#define XkbActionCtrls(a) ((((unsigned int)(a)->ctrls3)<<24)|\
- (((unsigned int)(a)->ctrls2)<<16)|\
- (((unsigned int)(a)->ctrls1)<<8)|\
- ((unsigned int)((a)->ctrls0)))
-
-typedef struct _XkbMessageAction {
- unsigned char type;
- unsigned char flags;
- unsigned char message[6];
-} XkbMessageAction;
-
-typedef struct _XkbRedirectKeyAction {
- unsigned char type;
- unsigned char new_key;
- unsigned char mods_mask;
- unsigned char mods;
- unsigned char vmods_mask0;
- unsigned char vmods_mask1;
- unsigned char vmods0;
- unsigned char vmods1;
-} XkbRedirectKeyAction;
-
-#define XkbSARedirectVMods(a) ((((unsigned int)(a)->vmods1)<<8)|\
- ((unsigned int)(a)->vmods0))
-#define XkbSARedirectSetVMods(a,m) (((a)->vmods1=(((m)>>8)&0xff)),\
- ((a)->vmods0=((m)&0xff)))
-#define XkbSARedirectVModsMask(a) ((((unsigned int)(a)->vmods_mask1)<<8)|\
- ((unsigned int)(a)->vmods_mask0))
-#define XkbSARedirectSetVModsMask(a,m) (((a)->vmods_mask1=(((m)>>8)&0xff)),\
- ((a)->vmods_mask0=((m)&0xff)))
-
-typedef struct _XkbDeviceBtnAction {
- unsigned char type;
- unsigned char flags;
- unsigned char count;
- unsigned char button;
- unsigned char device;
-} XkbDeviceBtnAction;
-
-typedef struct _XkbDeviceValuatorAction {
- unsigned char type;
- unsigned char device;
- unsigned char v1_what;
- unsigned char v1_ndx;
- unsigned char v1_value;
- unsigned char v2_what;
- unsigned char v2_ndx;
- unsigned char v2_value;
-} XkbDeviceValuatorAction;
-
-typedef union _XkbAction {
- XkbAnyAction any;
- XkbModAction mods;
- XkbGroupAction group;
- XkbISOAction iso;
- XkbPtrAction ptr;
- XkbPtrBtnAction btn;
- XkbPtrDfltAction dflt;
- XkbSwitchScreenAction screen;
- XkbCtrlsAction ctrls;
- XkbMessageAction msg;
- XkbRedirectKeyAction redirect;
- XkbDeviceBtnAction devbtn;
- XkbDeviceValuatorAction devval;
- unsigned char type;
-} XkbAction;
-
-typedef struct _XkbControls {
- unsigned char mk_dflt_btn;
- unsigned char num_groups;
- unsigned char groups_wrap;
- XkbModsRec internal;
- XkbModsRec ignore_lock;
- unsigned int enabled_ctrls;
- unsigned short repeat_delay;
- unsigned short repeat_interval;
- unsigned short slow_keys_delay;
- unsigned short debounce_delay;
- unsigned short mk_delay;
- unsigned short mk_interval;
- unsigned short mk_time_to_max;
- unsigned short mk_max_speed;
- short mk_curve;
- unsigned short ax_options;
- unsigned short ax_timeout;
- unsigned short axt_opts_mask;
- unsigned short axt_opts_values;
- unsigned int axt_ctrls_mask;
- unsigned int axt_ctrls_values;
- unsigned char per_key_repeat[XkbPerKeyBitArraySize];
-} XkbControlsRec, *XkbControlsPtr;
-
-#define XkbAX_AnyFeedback(c) ((c)->enabled_ctrls&XkbAccessXFeedbackMask)
-#define XkbAX_NeedOption(c,w) ((c)->ax_options&(w))
-#define XkbAX_NeedFeedback(c,w) (XkbAX_AnyFeedback(c)&&XkbAX_NeedOption(c,w))
-
-typedef struct _XkbServerMapRec {
- /* acts is an array of XkbActions structs, with size_acts entries
- allocated, and num_acts entries used. */
- unsigned short num_acts;
- unsigned short size_acts;
- XkbAction *acts;
-
- /* behaviors, key_acts, explicit, & vmodmap are all arrays with
- (xkb->max_key_code + 1) entries allocated for each. */
- XkbBehavior *behaviors;
- unsigned short *key_acts;
-#if defined(__cplusplus) || defined(c_plusplus)
- /* explicit is a C++ reserved word */
- unsigned char *c_explicit;
-#else
- unsigned char *explicit;
-#endif
- unsigned char vmods[XkbNumVirtualMods];
- unsigned short *vmodmap;
-} XkbServerMapRec, *XkbServerMapPtr;
-
-#define XkbSMKeyActionsPtr(m,k) (&(m)->acts[(m)->key_acts[k]])
-
- /*
- * Structures and access macros used primarily by clients
- */
-
-typedef struct _XkbSymMapRec {
- unsigned char kt_index[XkbNumKbdGroups];
- unsigned char group_info;
- unsigned char width;
- unsigned short offset;
-} XkbSymMapRec, *XkbSymMapPtr;
-
-typedef struct _XkbClientMapRec {
- /* types is an array of XkbKeyTypeRec structs, with size_types entries
- allocated, and num_types entries used. */
- unsigned char size_types;
- unsigned char num_types;
- XkbKeyTypePtr types;
-
- /* syms is an array of size_syms KeySyms, in which num_syms are used */
- unsigned short size_syms;
- unsigned short num_syms;
- KeySym *syms;
- /* key_sym_map is an array of (max_key_code + 1) XkbSymMapRec structs */
- XkbSymMapPtr key_sym_map;
-
- /* modmap is an array of (max_key_code + 1) unsigned chars */
- unsigned char *modmap;
-} XkbClientMapRec, *XkbClientMapPtr;
-
-#define XkbCMKeyGroupInfo(m,k) ((m)->key_sym_map[k].group_info)
-#define XkbCMKeyNumGroups(m,k) (XkbNumGroups((m)->key_sym_map[k].group_info))
-#define XkbCMKeyGroupWidth(m,k,g) (XkbCMKeyType(m,k,g)->num_levels)
-#define XkbCMKeyGroupsWidth(m,k) ((m)->key_sym_map[k].width)
-#define XkbCMKeyTypeIndex(m,k,g) ((m)->key_sym_map[k].kt_index[g&0x3])
-#define XkbCMKeyType(m,k,g) (&(m)->types[XkbCMKeyTypeIndex(m,k,g)])
-#define XkbCMKeyNumSyms(m,k) (XkbCMKeyGroupsWidth(m,k)*XkbCMKeyNumGroups(m,k))
-#define XkbCMKeySymsOffset(m,k) ((m)->key_sym_map[k].offset)
-#define XkbCMKeySymsPtr(m,k) (&(m)->syms[XkbCMKeySymsOffset(m,k)])
-
- /*
- * Compatibility structures and access macros
- */
-
-typedef struct _XkbSymInterpretRec {
- KeySym sym;
- unsigned char flags;
- unsigned char match;
- unsigned char mods;
- unsigned char virtual_mod;
- XkbAnyAction act;
-} XkbSymInterpretRec,*XkbSymInterpretPtr;
-
-typedef struct _XkbCompatMapRec {
- /* sym_interpret is an array of XkbSymInterpretRec structs,
- in which size_si are allocated & num_si are used. */
- XkbSymInterpretPtr sym_interpret;
- XkbModsRec groups[XkbNumKbdGroups];
- unsigned short num_si;
- unsigned short size_si;
-} XkbCompatMapRec, *XkbCompatMapPtr;
-
-typedef struct _XkbIndicatorMapRec {
- unsigned char flags;
- unsigned char which_groups;
- unsigned char groups;
- unsigned char which_mods;
- XkbModsRec mods;
- unsigned int ctrls;
-} XkbIndicatorMapRec, *XkbIndicatorMapPtr;
-
-#define XkbIM_IsAuto(i) ((((i)->flags&XkbIM_NoAutomatic)==0)&&\
- (((i)->which_groups&&(i)->groups)||\
- ((i)->which_mods&&(i)->mods.mask)||\
- ((i)->ctrls)))
-#define XkbIM_InUse(i) (((i)->flags)||((i)->which_groups)||\
- ((i)->which_mods)||((i)->ctrls))
-
-
-typedef struct _XkbIndicatorRec {
- unsigned long phys_indicators;
- XkbIndicatorMapRec maps[XkbNumIndicators];
-} XkbIndicatorRec,*XkbIndicatorPtr;
-
-typedef struct _XkbKeyNameRec {
- char name[XkbKeyNameLength];
-} XkbKeyNameRec,*XkbKeyNamePtr;
-
-typedef struct _XkbKeyAliasRec {
- char real[XkbKeyNameLength];
- char alias[XkbKeyNameLength];
-} XkbKeyAliasRec,*XkbKeyAliasPtr;
-
- /*
- * Names for everything
- */
-typedef struct _XkbNamesRec {
- Atom keycodes;
- Atom geometry;
- Atom symbols;
- Atom types;
- Atom compat;
- Atom vmods[XkbNumVirtualMods];
- Atom indicators[XkbNumIndicators];
- Atom groups[XkbNumKbdGroups];
- /* keys is an array of (xkb->max_key_code + 1) XkbKeyNameRec entries */
- XkbKeyNamePtr keys;
- /* key_aliases is an array of num_key_aliases XkbKeyAliasRec entries */
- XkbKeyAliasPtr key_aliases;
- /* radio_groups is an array of num_rg Atoms */
- Atom *radio_groups;
- Atom phys_symbols;
-
- /* num_keys seems to be unused in libX11 */
- unsigned char num_keys;
- unsigned char num_key_aliases;
- unsigned short num_rg;
-} XkbNamesRec,*XkbNamesPtr;
-
-typedef struct _XkbGeometry *XkbGeometryPtr;
- /*
- * Tie it all together into one big keyboard description
- */
-typedef struct _XkbDesc {
- struct _XDisplay * dpy;
- unsigned short flags;
- unsigned short device_spec;
- KeyCode min_key_code;
- KeyCode max_key_code;
-
- XkbControlsPtr ctrls;
- XkbServerMapPtr server;
- XkbClientMapPtr map;
- XkbIndicatorPtr indicators;
- XkbNamesPtr names;
- XkbCompatMapPtr compat;
- XkbGeometryPtr geom;
-} XkbDescRec, *XkbDescPtr;
-#define XkbKeyKeyTypeIndex(d,k,g) (XkbCMKeyTypeIndex((d)->map,k,g))
-#define XkbKeyKeyType(d,k,g) (XkbCMKeyType((d)->map,k,g))
-#define XkbKeyGroupWidth(d,k,g) (XkbCMKeyGroupWidth((d)->map,k,g))
-#define XkbKeyGroupsWidth(d,k) (XkbCMKeyGroupsWidth((d)->map,k))
-#define XkbKeyGroupInfo(d,k) (XkbCMKeyGroupInfo((d)->map,(k)))
-#define XkbKeyNumGroups(d,k) (XkbCMKeyNumGroups((d)->map,(k)))
-#define XkbKeyNumSyms(d,k) (XkbCMKeyNumSyms((d)->map,(k)))
-#define XkbKeySymsPtr(d,k) (XkbCMKeySymsPtr((d)->map,(k)))
-#define XkbKeySym(d,k,n) (XkbKeySymsPtr(d,k)[n])
-#define XkbKeySymEntry(d,k,sl,g) \
- (XkbKeySym(d,k,((XkbKeyGroupsWidth(d,k)*(g))+(sl))))
-#define XkbKeyAction(d,k,n) \
- (XkbKeyHasActions(d,k)?&XkbKeyActionsPtr(d,k)[n]:NULL)
-#define XkbKeyActionEntry(d,k,sl,g) \
- (XkbKeyHasActions(d,k)?\
- XkbKeyAction(d,k,((XkbKeyGroupsWidth(d,k)*(g))+(sl))):NULL)
-
-#define XkbKeyHasActions(d,k) ((d)->server->key_acts[k]!=0)
-#define XkbKeyNumActions(d,k) (XkbKeyHasActions(d,k)?XkbKeyNumSyms(d,k):1)
-#define XkbKeyActionsPtr(d,k) (XkbSMKeyActionsPtr((d)->server,k))
-#define XkbKeycodeInRange(d,k) (((k)>=(d)->min_key_code)&&\
- ((k)<=(d)->max_key_code))
-#define XkbNumKeys(d) ((d)->max_key_code-(d)->min_key_code+1)
-
-
- /*
- * The following structures can be used to track changes
- * to a keyboard device
- */
-typedef struct _XkbMapChanges {
- unsigned short changed;
- KeyCode min_key_code;
- KeyCode max_key_code;
- unsigned char first_type;
- unsigned char num_types;
- KeyCode first_key_sym;
- unsigned char num_key_syms;
- KeyCode first_key_act;
- unsigned char num_key_acts;
- KeyCode first_key_behavior;
- unsigned char num_key_behaviors;
- KeyCode first_key_explicit;
- unsigned char num_key_explicit;
- KeyCode first_modmap_key;
- unsigned char num_modmap_keys;
- KeyCode first_vmodmap_key;
- unsigned char num_vmodmap_keys;
- unsigned char pad;
- unsigned short vmods;
-} XkbMapChangesRec,*XkbMapChangesPtr;
-
-typedef struct _XkbControlsChanges {
- unsigned int changed_ctrls;
- unsigned int enabled_ctrls_changes;
- Bool num_groups_changed;
-} XkbControlsChangesRec,*XkbControlsChangesPtr;
-
-typedef struct _XkbIndicatorChanges {
- unsigned int state_changes;
- unsigned int map_changes;
-} XkbIndicatorChangesRec,*XkbIndicatorChangesPtr;
-
-typedef struct _XkbNameChanges {
- unsigned int changed;
- unsigned char first_type;
- unsigned char num_types;
- unsigned char first_lvl;
- unsigned char num_lvls;
- unsigned char num_aliases;
- unsigned char num_rg;
- unsigned char first_key;
- unsigned char num_keys;
- unsigned short changed_vmods;
- unsigned long changed_indicators;
- unsigned char changed_groups;
-} XkbNameChangesRec,*XkbNameChangesPtr;
-
-typedef struct _XkbCompatChanges {
- unsigned char changed_groups;
- unsigned short first_si;
- unsigned short num_si;
-} XkbCompatChangesRec,*XkbCompatChangesPtr;
-
-typedef struct _XkbChanges {
- unsigned short device_spec;
- unsigned short state_changes;
- XkbMapChangesRec map;
- XkbControlsChangesRec ctrls;
- XkbIndicatorChangesRec indicators;
- XkbNameChangesRec names;
- XkbCompatChangesRec compat;
-} XkbChangesRec, *XkbChangesPtr;
-
- /*
- * These data structures are used to construct a keymap from
- * a set of components or to list components in the server
- * database.
- */
-typedef struct _XkbComponentNames {
- char * keymap;
- char * keycodes;
- char * types;
- char * compat;
- char * symbols;
- char * geometry;
-} XkbComponentNamesRec, *XkbComponentNamesPtr;
-
-typedef struct _XkbComponentName {
- unsigned short flags;
- char * name;
-} XkbComponentNameRec,*XkbComponentNamePtr;
-
-typedef struct _XkbComponentList {
- int num_keymaps;
- int num_keycodes;
- int num_types;
- int num_compat;
- int num_symbols;
- int num_geometry;
- XkbComponentNamePtr keymaps;
- XkbComponentNamePtr keycodes;
- XkbComponentNamePtr types;
- XkbComponentNamePtr compat;
- XkbComponentNamePtr symbols;
- XkbComponentNamePtr geometry;
-} XkbComponentListRec, *XkbComponentListPtr;
-
- /*
- * The following data structures describe and track changes to a
- * non-keyboard extension device
- */
-typedef struct _XkbDeviceLedInfo {
- unsigned short led_class;
- unsigned short led_id;
- unsigned int phys_indicators;
- unsigned int maps_present;
- unsigned int names_present;
- unsigned int state;
- Atom names[XkbNumIndicators];
- XkbIndicatorMapRec maps[XkbNumIndicators];
-} XkbDeviceLedInfoRec,*XkbDeviceLedInfoPtr;
-
-typedef struct _XkbDeviceInfo {
- char * name;
- Atom type;
- unsigned short device_spec;
- Bool has_own_state;
- unsigned short supported;
- unsigned short unsupported;
-
- /* btn_acts is an array of num_btn XkbAction entries */
- unsigned short num_btns;
- XkbAction * btn_acts;
-
- unsigned short sz_leds;
- unsigned short num_leds;
- unsigned short dflt_kbd_fb;
- unsigned short dflt_led_fb;
- /* leds is an array of XkbDeviceLedInfoRec in which
- sz_leds entries are allocated and num_leds entries are used */
- XkbDeviceLedInfoPtr leds;
-} XkbDeviceInfoRec,*XkbDeviceInfoPtr;
-
-#define XkbXI_DevHasBtnActs(d) (((d)->num_btns>0)&&((d)->btn_acts!=NULL))
-#define XkbXI_LegalDevBtn(d,b) (XkbXI_DevHasBtnActs(d)&&((b)<(d)->num_btns))
-#define XkbXI_DevHasLeds(d) (((d)->num_leds>0)&&((d)->leds!=NULL))
-
-typedef struct _XkbDeviceLedChanges {
- unsigned short led_class;
- unsigned short led_id;
- unsigned int defined; /* names or maps changed */
- struct _XkbDeviceLedChanges *next;
-} XkbDeviceLedChangesRec,*XkbDeviceLedChangesPtr;
-
-typedef struct _XkbDeviceChanges {
- unsigned int changed;
- unsigned short first_btn;
- unsigned short num_btns;
- XkbDeviceLedChangesRec leds;
-} XkbDeviceChangesRec,*XkbDeviceChangesPtr;
-
-#ifdef __clang__
-#pragma clang diagnostic pop
-#endif
-
-#endif /* _XKBSTR_H_ */