| /************************************************************ |
| 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_ */ |