mirror of
https://github.com/godotengine/godot.git
synced 2024-11-24 21:22:48 +00:00
1150 lines
30 KiB
C++
1150 lines
30 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 _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 */,
|
|
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_ */
|