jpayne@69: /************************************************************ jpayne@69: Copyright (c) 1993 by Silicon Graphics Computer Systems, Inc. jpayne@69: jpayne@69: Permission to use, copy, modify, and distribute this jpayne@69: software and its documentation for any purpose and without jpayne@69: fee is hereby granted, provided that the above copyright jpayne@69: notice appear in all copies and that both that copyright jpayne@69: notice and this permission notice appear in supporting jpayne@69: documentation, and that the name of Silicon Graphics not be jpayne@69: used in advertising or publicity pertaining to distribution jpayne@69: of the software without specific prior written permission. jpayne@69: Silicon Graphics makes no representation about the suitability jpayne@69: of this software for any purpose. It is provided "as is" jpayne@69: without any express or implied warranty. jpayne@69: jpayne@69: SILICON GRAPHICS DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS jpayne@69: SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY jpayne@69: AND FITNESS FOR A PARTICULAR PURPOSE. IN NO EVENT SHALL SILICON jpayne@69: GRAPHICS BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL jpayne@69: DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, jpayne@69: DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE jpayne@69: OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH jpayne@69: THE USE OR PERFORMANCE OF THIS SOFTWARE. jpayne@69: jpayne@69: ********************************************************/ jpayne@69: jpayne@69: #ifndef _X11_XKBLIB_H_ jpayne@69: #define _X11_XKBLIB_H_ jpayne@69: jpayne@69: #include jpayne@69: #include jpayne@69: jpayne@69: typedef struct _XkbAnyEvent { jpayne@69: int type; /* XkbAnyEvent */ jpayne@69: unsigned long serial; /* # of last req processed by server */ jpayne@69: Bool send_event; /* is this from a SendEvent request? */ jpayne@69: Display * display; /* Display the event was read from */ jpayne@69: Time time; /* milliseconds */ jpayne@69: int xkb_type; /* XKB event minor code */ jpayne@69: unsigned int device; /* device ID */ jpayne@69: } XkbAnyEvent; jpayne@69: jpayne@69: typedef struct _XkbNewKeyboardNotify { jpayne@69: int type; /* XkbAnyEvent */ jpayne@69: unsigned long serial; /* of last req processed by server */ jpayne@69: Bool send_event; /* is this from a SendEvent request? */ jpayne@69: Display * display; /* Display the event was read from */ jpayne@69: Time time; /* milliseconds */ jpayne@69: int xkb_type; /* XkbNewKeyboardNotify */ jpayne@69: int device; /* device ID */ jpayne@69: int old_device; /* device ID of previous keyboard */ jpayne@69: int min_key_code; /* minimum key code */ jpayne@69: int max_key_code; /* maximum key code */ jpayne@69: int old_min_key_code;/* min key code of previous kbd */ jpayne@69: int old_max_key_code;/* max key code of previous kbd */ jpayne@69: unsigned int changed; /* changed aspects of the keyboard */ jpayne@69: char req_major; /* major and minor opcode of req */ jpayne@69: char req_minor; /* that caused change, if applicable */ jpayne@69: } XkbNewKeyboardNotifyEvent; jpayne@69: jpayne@69: typedef struct _XkbMapNotifyEvent { jpayne@69: int type; /* XkbAnyEvent */ jpayne@69: unsigned long serial; /* of last req processed by server */ jpayne@69: Bool send_event; /* is this from a SendEvent request */ jpayne@69: Display * display; /* Display the event was read from */ jpayne@69: Time time; /* milliseconds */ jpayne@69: int xkb_type; /* XkbMapNotify */ jpayne@69: int device; /* device ID */ jpayne@69: unsigned int changed; /* fields which have been changed */ jpayne@69: unsigned int flags; /* reserved */ jpayne@69: int first_type; /* first changed key type */ jpayne@69: int num_types; /* number of changed key types */ jpayne@69: KeyCode min_key_code; jpayne@69: KeyCode max_key_code; jpayne@69: KeyCode first_key_sym; jpayne@69: KeyCode first_key_act; jpayne@69: KeyCode first_key_behavior; jpayne@69: KeyCode first_key_explicit; jpayne@69: KeyCode first_modmap_key; jpayne@69: KeyCode first_vmodmap_key; jpayne@69: int num_key_syms; jpayne@69: int num_key_acts; jpayne@69: int num_key_behaviors; jpayne@69: int num_key_explicit; jpayne@69: int num_modmap_keys; jpayne@69: int num_vmodmap_keys; jpayne@69: unsigned int vmods; /* mask of changed virtual mods */ jpayne@69: } XkbMapNotifyEvent; jpayne@69: jpayne@69: typedef struct _XkbStateNotifyEvent { jpayne@69: int type; /* XkbAnyEvent */ jpayne@69: unsigned long serial; /* # of last req processed by server */ jpayne@69: Bool send_event; /* is this from a SendEvent request? */ jpayne@69: Display * display; /* Display the event was read from */ jpayne@69: Time time; /* milliseconds */ jpayne@69: int xkb_type; /* XkbStateNotify */ jpayne@69: int device; /* device ID */ jpayne@69: unsigned int changed; /* mask of changed state components */ jpayne@69: int group; /* keyboard group */ jpayne@69: int base_group; /* base keyboard group */ jpayne@69: int latched_group; /* latched keyboard group */ jpayne@69: int locked_group; /* locked keyboard group */ jpayne@69: unsigned int mods; /* modifier state */ jpayne@69: unsigned int base_mods; /* base modifier state */ jpayne@69: unsigned int latched_mods; /* latched modifiers */ jpayne@69: unsigned int locked_mods; /* locked modifiers */ jpayne@69: int compat_state; /* compatibility state */ jpayne@69: unsigned char grab_mods; /* mods used for grabs */ jpayne@69: unsigned char compat_grab_mods;/* grab mods for non-XKB clients */ jpayne@69: unsigned char lookup_mods; /* mods sent to clients */ jpayne@69: unsigned char compat_lookup_mods; /* mods sent to non-XKB clients */ jpayne@69: int ptr_buttons; /* pointer button state */ jpayne@69: KeyCode keycode; /* keycode that caused the change */ jpayne@69: char event_type; /* KeyPress or KeyRelease */ jpayne@69: char req_major; /* Major opcode of request */ jpayne@69: char req_minor; /* Minor opcode of request */ jpayne@69: } XkbStateNotifyEvent; jpayne@69: jpayne@69: typedef struct _XkbControlsNotify { jpayne@69: int type; /* XkbAnyEvent */ jpayne@69: unsigned long serial; /* of last req processed by server */ jpayne@69: Bool send_event; /* is this from a SendEvent request? */ jpayne@69: Display * display; /* Display the event was read from */ jpayne@69: Time time; /* milliseconds */ jpayne@69: int xkb_type; /* XkbControlsNotify */ jpayne@69: int device; /* device ID */ jpayne@69: unsigned int changed_ctrls; /* controls with changed sub-values */ jpayne@69: unsigned int enabled_ctrls; /* controls currently enabled */ jpayne@69: unsigned int enabled_ctrl_changes;/* controls just {en,dis}abled */ jpayne@69: int num_groups; /* total groups on keyboard */ jpayne@69: KeyCode keycode; /* key that caused change or 0 */ jpayne@69: char event_type; /* type of event that caused change */ jpayne@69: char req_major; /* if keycode==0, major and minor */ jpayne@69: char req_minor; /* opcode of req that caused change */ jpayne@69: } XkbControlsNotifyEvent; jpayne@69: jpayne@69: typedef struct _XkbIndicatorNotify { jpayne@69: int type; /* XkbAnyEvent */ jpayne@69: unsigned long serial; /* of last req processed by server */ jpayne@69: Bool send_event; /* is this from a SendEvent request? */ jpayne@69: Display * display; /* Display the event was read from */ jpayne@69: Time time; /* milliseconds */ jpayne@69: int xkb_type; /* XkbIndicatorNotify */ jpayne@69: int device; /* device ID */ jpayne@69: unsigned int changed; /* indicators with new state or map */ jpayne@69: unsigned int state; /* current state of all indicators */ jpayne@69: } XkbIndicatorNotifyEvent; jpayne@69: jpayne@69: typedef struct _XkbNamesNotify { jpayne@69: int type; /* XkbAnyEvent */ jpayne@69: unsigned long serial; /* of last req processed by server */ jpayne@69: Bool send_event; /* is this from a SendEvent request? */ jpayne@69: Display * display; /* Display the event was read from */ jpayne@69: Time time; /* milliseconds */ jpayne@69: int xkb_type; /* XkbNamesNotify */ jpayne@69: int device; /* device ID */ jpayne@69: unsigned int changed; /* names that have changed */ jpayne@69: int first_type; /* first key type with new name */ jpayne@69: int num_types; /* number of key types with new names */ jpayne@69: int first_lvl; /* first key type new new level names */ jpayne@69: int num_lvls; /* # of key types w/new level names */ jpayne@69: int num_aliases; /* total number of key aliases*/ jpayne@69: int num_radio_groups;/* total number of radio groups */ jpayne@69: unsigned int changed_vmods; /* virtual modifiers with new names */ jpayne@69: unsigned int changed_groups; /* groups with new names */ jpayne@69: unsigned int changed_indicators;/* indicators with new names */ jpayne@69: int first_key; /* first key with new name */ jpayne@69: int num_keys; /* number of keys with new names */ jpayne@69: } XkbNamesNotifyEvent; jpayne@69: jpayne@69: typedef struct _XkbCompatMapNotify { jpayne@69: int type; /* XkbAnyEvent */ jpayne@69: unsigned long serial; /* of last req processed by server */ jpayne@69: Bool send_event; /* is this from a SendEvent request? */ jpayne@69: Display * display; /* Display the event was read from */ jpayne@69: Time time; /* milliseconds */ jpayne@69: int xkb_type; /* XkbCompatMapNotify */ jpayne@69: int device; /* device ID */ jpayne@69: unsigned int changed_groups; /* groups with new compat maps */ jpayne@69: int first_si; /* first new symbol interp */ jpayne@69: int num_si; /* number of new symbol interps */ jpayne@69: int num_total_si; /* total # of symbol interps */ jpayne@69: } XkbCompatMapNotifyEvent; jpayne@69: jpayne@69: typedef struct _XkbBellNotify { jpayne@69: int type; /* XkbAnyEvent */ jpayne@69: unsigned long serial; /* of last req processed by server */ jpayne@69: Bool send_event; /* is this from a SendEvent request? */ jpayne@69: Display * display; /* Display the event was read from */ jpayne@69: Time time; /* milliseconds */ jpayne@69: int xkb_type; /* XkbBellNotify */ jpayne@69: int device; /* device ID */ jpayne@69: int percent; /* requested volume as a % of maximum */ jpayne@69: int pitch; /* requested pitch in Hz */ jpayne@69: int duration; /* requested duration in useconds */ jpayne@69: int bell_class; /* (input extension) feedback class */ jpayne@69: int bell_id; /* (input extension) ID of feedback */ jpayne@69: Atom name; /* "name" of requested bell */ jpayne@69: Window window; /* window associated with event */ jpayne@69: Bool event_only; /* "event only" requested */ jpayne@69: } XkbBellNotifyEvent; jpayne@69: jpayne@69: typedef struct _XkbActionMessage { jpayne@69: int type; /* XkbAnyEvent */ jpayne@69: unsigned long serial; /* of last req processed by server */ jpayne@69: Bool send_event; /* is this from a SendEvent request? */ jpayne@69: Display * display; /* Display the event was read from */ jpayne@69: Time time; /* milliseconds */ jpayne@69: int xkb_type; /* XkbActionMessage */ jpayne@69: int device; /* device ID */ jpayne@69: KeyCode keycode; /* key that generated the event */ jpayne@69: Bool press; /* true if act caused by key press */ jpayne@69: Bool key_event_follows;/* true if key event also generated */ jpayne@69: int group; /* effective group */ jpayne@69: unsigned int mods; /* effective mods */ jpayne@69: char message[XkbActionMessageLength+1]; jpayne@69: /* message -- leave space for NUL */ jpayne@69: } XkbActionMessageEvent; jpayne@69: jpayne@69: typedef struct _XkbAccessXNotify { jpayne@69: int type; /* XkbAnyEvent */ jpayne@69: unsigned long serial; /* of last req processed by server */ jpayne@69: Bool send_event; /* is this from a SendEvent request? */ jpayne@69: Display * display; /* Display the event was read from */ jpayne@69: Time time; /* milliseconds */ jpayne@69: int xkb_type; /* XkbAccessXNotify */ jpayne@69: int device; /* device ID */ jpayne@69: int detail; /* XkbAXN_* */ jpayne@69: int keycode; /* key of event */ jpayne@69: int sk_delay; /* current slow keys delay */ jpayne@69: int debounce_delay; /* current debounce delay */ jpayne@69: } XkbAccessXNotifyEvent; jpayne@69: jpayne@69: typedef struct _XkbExtensionDeviceNotify { jpayne@69: int type; /* XkbAnyEvent */ jpayne@69: unsigned long serial; /* of last req processed by server */ jpayne@69: Bool send_event; /* is this from a SendEvent request? */ jpayne@69: Display * display; /* Display the event was read from */ jpayne@69: Time time; /* milliseconds */ jpayne@69: int xkb_type; /* XkbExtensionDeviceNotify */ jpayne@69: int device; /* device ID */ jpayne@69: unsigned int reason; /* reason for the event */ jpayne@69: unsigned int supported; /* mask of supported features */ jpayne@69: unsigned int unsupported; /* mask of unsupported features */ jpayne@69: /* that some app tried to use */ jpayne@69: int first_btn; /* first button that changed */ jpayne@69: int num_btns; /* range of buttons changed */ jpayne@69: unsigned int leds_defined; /* indicators with names or maps */ jpayne@69: unsigned int led_state; /* current state of the indicators */ jpayne@69: int led_class; /* feedback class for led changes */ jpayne@69: int led_id; /* feedback id for led changes */ jpayne@69: } XkbExtensionDeviceNotifyEvent; jpayne@69: jpayne@69: typedef union _XkbEvent { jpayne@69: int type; jpayne@69: XkbAnyEvent any; jpayne@69: XkbNewKeyboardNotifyEvent new_kbd; jpayne@69: XkbMapNotifyEvent map; jpayne@69: XkbStateNotifyEvent state; jpayne@69: XkbControlsNotifyEvent ctrls; jpayne@69: XkbIndicatorNotifyEvent indicators; jpayne@69: XkbNamesNotifyEvent names; jpayne@69: XkbCompatMapNotifyEvent compat; jpayne@69: XkbBellNotifyEvent bell; jpayne@69: XkbActionMessageEvent message; jpayne@69: XkbAccessXNotifyEvent accessx; jpayne@69: XkbExtensionDeviceNotifyEvent device; jpayne@69: XEvent core; jpayne@69: } XkbEvent; jpayne@69: jpayne@69: typedef struct _XkbKbdDpyState XkbKbdDpyStateRec,*XkbKbdDpyStatePtr; jpayne@69: jpayne@69: /* XkbOpenDisplay error codes */ jpayne@69: #define XkbOD_Success 0 jpayne@69: #define XkbOD_BadLibraryVersion 1 jpayne@69: #define XkbOD_ConnectionRefused 2 jpayne@69: #define XkbOD_NonXkbServer 3 jpayne@69: #define XkbOD_BadServerVersion 4 jpayne@69: jpayne@69: /* Values for XlibFlags */ jpayne@69: #define XkbLC_ForceLatin1Lookup (1<<0) jpayne@69: #define XkbLC_ConsumeLookupMods (1<<1) jpayne@69: #define XkbLC_AlwaysConsumeShiftAndLock (1<<2) jpayne@69: #define XkbLC_IgnoreNewKeyboards (1<<3) jpayne@69: #define XkbLC_ControlFallback (1<<4) jpayne@69: #define XkbLC_ConsumeKeysOnComposeFail (1<<29) jpayne@69: #define XkbLC_ComposeLED (1<<30) jpayne@69: #define XkbLC_BeepOnComposeFail (1<<31) jpayne@69: jpayne@69: #define XkbLC_AllComposeControls (0xc0000000) jpayne@69: #define XkbLC_AllControls (0xc000001f) jpayne@69: jpayne@69: _XFUNCPROTOBEGIN jpayne@69: jpayne@69: extern Bool XkbIgnoreExtension( jpayne@69: Bool /* ignore */ jpayne@69: ); jpayne@69: jpayne@69: extern Display *XkbOpenDisplay( jpayne@69: _Xconst char * /* name */, jpayne@69: int * /* ev_rtrn */, jpayne@69: int * /* err_rtrn */, jpayne@69: int * /* major_rtrn */, jpayne@69: int * /* minor_rtrn */, jpayne@69: int * /* reason */ jpayne@69: ); jpayne@69: jpayne@69: extern Bool XkbQueryExtension( jpayne@69: Display * /* dpy */, jpayne@69: int * /* opcodeReturn */, jpayne@69: int * /* eventBaseReturn */, jpayne@69: int * /* errorBaseReturn */, jpayne@69: int * /* majorRtrn */, jpayne@69: int * /* minorRtrn */ jpayne@69: ); jpayne@69: jpayne@69: extern Bool XkbUseExtension( jpayne@69: Display * /* dpy */, jpayne@69: int * /* major_rtrn */, jpayne@69: int * /* minor_rtrn */ jpayne@69: ); jpayne@69: jpayne@69: extern Bool XkbLibraryVersion( jpayne@69: int * /* libMajorRtrn */, jpayne@69: int * /* libMinorRtrn */ jpayne@69: ); jpayne@69: jpayne@69: extern unsigned int XkbSetXlibControls( jpayne@69: Display* /* dpy */, jpayne@69: unsigned int /* affect */, jpayne@69: unsigned int /* values */ jpayne@69: ); jpayne@69: jpayne@69: extern unsigned int XkbGetXlibControls( jpayne@69: Display* /* dpy */ jpayne@69: ); jpayne@69: jpayne@69: extern unsigned int XkbXlibControlsImplemented(void); jpayne@69: jpayne@69: typedef Atom (*XkbInternAtomFunc)( jpayne@69: Display * /* dpy */, jpayne@69: _Xconst char * /* name */, jpayne@69: Bool /* only_if_exists */ jpayne@69: ); jpayne@69: jpayne@69: typedef char * (*XkbGetAtomNameFunc)( jpayne@69: Display * /* dpy */, jpayne@69: Atom /* atom */ jpayne@69: ); jpayne@69: jpayne@69: extern void XkbSetAtomFuncs( jpayne@69: XkbInternAtomFunc /* getAtom */, jpayne@69: XkbGetAtomNameFunc /* getName */ jpayne@69: ); jpayne@69: jpayne@69: extern KeySym XkbKeycodeToKeysym( jpayne@69: Display * /* dpy */, jpayne@69: #if NeedWidePrototypes jpayne@69: unsigned int /* kc */, jpayne@69: #else jpayne@69: KeyCode /* kc */, jpayne@69: #endif jpayne@69: int /* group */, jpayne@69: int /* level */ jpayne@69: ); jpayne@69: jpayne@69: extern unsigned int XkbKeysymToModifiers( jpayne@69: Display * /* dpy */, jpayne@69: KeySym /* ks */ jpayne@69: ); jpayne@69: jpayne@69: extern Bool XkbLookupKeySym( jpayne@69: Display * /* dpy */, jpayne@69: KeyCode /* keycode */, jpayne@69: unsigned int /* modifiers */, jpayne@69: unsigned int * /* modifiers_return */, jpayne@69: KeySym * /* keysym_return */ jpayne@69: ); jpayne@69: jpayne@69: extern int XkbLookupKeyBinding( jpayne@69: Display * /* dpy */, jpayne@69: KeySym /* sym_rtrn */, jpayne@69: unsigned int /* mods */, jpayne@69: char * /* buffer */, jpayne@69: int /* nbytes */, jpayne@69: int * /* extra_rtrn */ jpayne@69: ); jpayne@69: jpayne@69: extern Bool XkbTranslateKeyCode( jpayne@69: XkbDescPtr /* xkb */, jpayne@69: KeyCode /* keycode */, jpayne@69: unsigned int /* modifiers */, jpayne@69: unsigned int * /* modifiers_return */, jpayne@69: KeySym * /* keysym_return */ jpayne@69: ); jpayne@69: jpayne@69: extern int XkbTranslateKeySym( jpayne@69: Display * /* dpy */, jpayne@69: KeySym * /* sym_return */, jpayne@69: unsigned int /* modifiers */, jpayne@69: char * /* buffer */, jpayne@69: int /* nbytes */, jpayne@69: int * /* extra_rtrn */ jpayne@69: ); jpayne@69: jpayne@69: extern Bool XkbSetAutoRepeatRate( jpayne@69: Display * /* dpy */, jpayne@69: unsigned int /* deviceSpec */, jpayne@69: unsigned int /* delay */, jpayne@69: unsigned int /* interval */ jpayne@69: ); jpayne@69: jpayne@69: extern Bool XkbGetAutoRepeatRate( jpayne@69: Display * /* dpy */, jpayne@69: unsigned int /* deviceSpec */, jpayne@69: unsigned int * /* delayRtrn */, jpayne@69: unsigned int * /* intervalRtrn */ jpayne@69: ); jpayne@69: jpayne@69: extern Bool XkbChangeEnabledControls( jpayne@69: Display * /* dpy */, jpayne@69: unsigned int /* deviceSpec */, jpayne@69: unsigned int /* affect */, jpayne@69: unsigned int /* values */ jpayne@69: ); jpayne@69: jpayne@69: extern Bool XkbDeviceBell( jpayne@69: Display * /* dpy */, jpayne@69: Window /* win */, jpayne@69: int /* deviceSpec */, jpayne@69: int /* bellClass */, jpayne@69: int /* bellID */, jpayne@69: int /* percent */, jpayne@69: Atom /* name */ jpayne@69: ); jpayne@69: jpayne@69: extern Bool XkbForceDeviceBell( jpayne@69: Display * /* dpy */, jpayne@69: int /* deviceSpec */, jpayne@69: int /* bellClass */, jpayne@69: int /* bellID */, jpayne@69: int /* percent */ jpayne@69: ); jpayne@69: jpayne@69: extern Bool XkbDeviceBellEvent( jpayne@69: Display * /* dpy */, jpayne@69: Window /* win */, jpayne@69: int /* deviceSpec */, jpayne@69: int /* bellClass */, jpayne@69: int /* bellID */, jpayne@69: int /* percent */, jpayne@69: Atom /* name */ jpayne@69: ); jpayne@69: jpayne@69: extern Bool XkbBell( jpayne@69: Display * /* dpy */, jpayne@69: Window /* win */, jpayne@69: int /* percent */, jpayne@69: Atom /* name */ jpayne@69: ); jpayne@69: jpayne@69: extern Bool XkbForceBell( jpayne@69: Display * /* dpy */, jpayne@69: int /* percent */ jpayne@69: ); jpayne@69: jpayne@69: extern Bool XkbBellEvent( jpayne@69: Display * /* dpy */, jpayne@69: Window /* win */, jpayne@69: int /* percent */, jpayne@69: Atom /* name */ jpayne@69: ); jpayne@69: jpayne@69: extern Bool XkbSelectEvents( jpayne@69: Display * /* dpy */, jpayne@69: unsigned int /* deviceID */, jpayne@69: unsigned int /* affect */, jpayne@69: unsigned int /* values */ jpayne@69: ); jpayne@69: jpayne@69: extern Bool XkbSelectEventDetails( jpayne@69: Display * /* dpy */, jpayne@69: unsigned int /* deviceID */, jpayne@69: unsigned int /* eventType */, jpayne@69: unsigned long /* affect */, jpayne@69: unsigned long /* details */ jpayne@69: ); jpayne@69: jpayne@69: extern void XkbNoteMapChanges( jpayne@69: XkbMapChangesPtr /* old */, jpayne@69: XkbMapNotifyEvent * /* new */, jpayne@69: unsigned int /* wanted */ jpayne@69: ); jpayne@69: jpayne@69: extern void XkbNoteNameChanges( jpayne@69: XkbNameChangesPtr /* old */, jpayne@69: XkbNamesNotifyEvent * /* new */, jpayne@69: unsigned int /* wanted */ jpayne@69: ); jpayne@69: jpayne@69: extern Status XkbGetIndicatorState( jpayne@69: Display * /* dpy */, jpayne@69: unsigned int /* deviceSpec */, jpayne@69: unsigned int * /* pStateRtrn */ jpayne@69: ); jpayne@69: jpayne@69: extern Status XkbGetDeviceIndicatorState( jpayne@69: Display * /* dpy */, jpayne@69: unsigned int /* deviceSpec */, jpayne@69: unsigned int /* ledClass */, jpayne@69: unsigned int /* ledID */, jpayne@69: unsigned int * /* pStateRtrn */ jpayne@69: ); jpayne@69: jpayne@69: extern Status XkbGetIndicatorMap( jpayne@69: Display * /* dpy */, jpayne@69: unsigned long /* which */, jpayne@69: XkbDescPtr /* desc */ jpayne@69: ); jpayne@69: jpayne@69: extern Bool XkbSetIndicatorMap( jpayne@69: Display * /* dpy */, jpayne@69: unsigned long /* which */, jpayne@69: XkbDescPtr /* desc */ jpayne@69: ); jpayne@69: jpayne@69: #define XkbNoteIndicatorMapChanges(o,n,w) \ jpayne@69: ((o)->map_changes|=((n)->map_changes&(w))) jpayne@69: #define XkbNoteIndicatorStateChanges(o,n,w)\ jpayne@69: ((o)->state_changes|=((n)->state_changes&(w))) jpayne@69: #define XkbGetIndicatorMapChanges(d,x,c) \ jpayne@69: (XkbGetIndicatorMap((d),(c)->map_changes,x)) jpayne@69: #define XkbChangeIndicatorMaps(d,x,c) \ jpayne@69: (XkbSetIndicatorMap((d),(c)->map_changes,x)) jpayne@69: jpayne@69: extern Bool XkbGetNamedIndicator( jpayne@69: Display * /* dpy */, jpayne@69: Atom /* name */, jpayne@69: int * /* pNdxRtrn */, jpayne@69: Bool * /* pStateRtrn */, jpayne@69: XkbIndicatorMapPtr /* pMapRtrn */, jpayne@69: Bool * /* pRealRtrn */ jpayne@69: ); jpayne@69: jpayne@69: extern Bool XkbGetNamedDeviceIndicator( jpayne@69: Display * /* dpy */, jpayne@69: unsigned int /* deviceSpec */, jpayne@69: unsigned int /* ledClass */, jpayne@69: unsigned int /* ledID */, jpayne@69: Atom /* name */, jpayne@69: int * /* pNdxRtrn */, jpayne@69: Bool * /* pStateRtrn */, jpayne@69: XkbIndicatorMapPtr /* pMapRtrn */, jpayne@69: Bool * /* pRealRtrn */ jpayne@69: ); jpayne@69: jpayne@69: extern Bool XkbSetNamedIndicator( jpayne@69: Display * /* dpy */, jpayne@69: Atom /* name */, jpayne@69: Bool /* changeState */, jpayne@69: Bool /* state */, jpayne@69: Bool /* createNewMap */, jpayne@69: XkbIndicatorMapPtr /* pMap */ jpayne@69: ); jpayne@69: jpayne@69: extern Bool XkbSetNamedDeviceIndicator( jpayne@69: Display * /* dpy */, jpayne@69: unsigned int /* deviceSpec */, jpayne@69: unsigned int /* ledClass */, jpayne@69: unsigned int /* ledID */, jpayne@69: Atom /* name */, jpayne@69: Bool /* changeState */, jpayne@69: Bool /* state */, jpayne@69: Bool /* createNewMap */, jpayne@69: XkbIndicatorMapPtr /* pMap */ jpayne@69: ); jpayne@69: jpayne@69: extern Bool XkbLockModifiers( jpayne@69: Display * /* dpy */, jpayne@69: unsigned int /* deviceSpec */, jpayne@69: unsigned int /* affect */, jpayne@69: unsigned int /* values */ jpayne@69: ); jpayne@69: jpayne@69: extern Bool XkbLatchModifiers( jpayne@69: Display * /* dpy */, jpayne@69: unsigned int /* deviceSpec */, jpayne@69: unsigned int /* affect */, jpayne@69: unsigned int /* values */ jpayne@69: ); jpayne@69: jpayne@69: extern Bool XkbLockGroup( jpayne@69: Display * /* dpy */, jpayne@69: unsigned int /* deviceSpec */, jpayne@69: unsigned int /* group */ jpayne@69: ); jpayne@69: jpayne@69: extern Bool XkbLatchGroup( jpayne@69: Display * /* dpy */, jpayne@69: unsigned int /* deviceSpec */, jpayne@69: unsigned int /* group */ jpayne@69: ); jpayne@69: jpayne@69: extern Bool XkbSetServerInternalMods( jpayne@69: Display * /* dpy */, jpayne@69: unsigned int /* deviceSpec */, jpayne@69: unsigned int /* affectReal */, jpayne@69: unsigned int /* realValues */, jpayne@69: unsigned int /* affectVirtual */, jpayne@69: unsigned int /* virtualValues */ jpayne@69: ); jpayne@69: jpayne@69: extern Bool XkbSetIgnoreLockMods( jpayne@69: Display * /* dpy */, jpayne@69: unsigned int /* deviceSpec */, jpayne@69: unsigned int /* affectReal */, jpayne@69: unsigned int /* realValues */, jpayne@69: unsigned int /* affectVirtual */, jpayne@69: unsigned int /* virtualValues */ jpayne@69: ); jpayne@69: jpayne@69: jpayne@69: extern Bool XkbVirtualModsToReal( jpayne@69: XkbDescPtr /* xkb */, jpayne@69: unsigned int /* virtual_mask */, jpayne@69: unsigned int * /* mask_rtrn */ jpayne@69: ); jpayne@69: jpayne@69: extern Bool XkbComputeEffectiveMap( jpayne@69: XkbDescPtr /* xkb */, jpayne@69: XkbKeyTypePtr /* type */, jpayne@69: unsigned char * /* map_rtrn */ jpayne@69: ); jpayne@69: jpayne@69: extern Status XkbInitCanonicalKeyTypes( jpayne@69: XkbDescPtr /* xkb */, jpayne@69: unsigned int /* which */, jpayne@69: int /* keypadVMod */ jpayne@69: ); jpayne@69: jpayne@69: extern XkbDescPtr XkbAllocKeyboard( jpayne@69: void jpayne@69: ); jpayne@69: jpayne@69: extern void XkbFreeKeyboard( jpayne@69: XkbDescPtr /* xkb */, jpayne@69: unsigned int /* which */, jpayne@69: Bool /* freeDesc */ jpayne@69: ); jpayne@69: jpayne@69: extern Status XkbAllocClientMap( jpayne@69: XkbDescPtr /* xkb */, jpayne@69: unsigned int /* which */, jpayne@69: unsigned int /* nTypes */ jpayne@69: ); jpayne@69: jpayne@69: extern Status XkbAllocServerMap( jpayne@69: XkbDescPtr /* xkb */, jpayne@69: unsigned int /* which */, jpayne@69: unsigned int /* nActions */ jpayne@69: ); jpayne@69: jpayne@69: extern void XkbFreeClientMap( jpayne@69: XkbDescPtr /* xkb */, jpayne@69: unsigned int /* what */, jpayne@69: Bool /* freeMap */ jpayne@69: ); jpayne@69: jpayne@69: extern void XkbFreeServerMap( jpayne@69: XkbDescPtr /* xkb */, jpayne@69: unsigned int /* what */, jpayne@69: Bool /* freeMap */ jpayne@69: ); jpayne@69: jpayne@69: extern XkbKeyTypePtr XkbAddKeyType( jpayne@69: XkbDescPtr /* xkb */, jpayne@69: Atom /* name */, jpayne@69: int /* map_count */, jpayne@69: Bool /* want_preserve */, jpayne@69: int /* num_lvls */ jpayne@69: ); jpayne@69: jpayne@69: extern Status XkbAllocIndicatorMaps( jpayne@69: XkbDescPtr /* xkb */ jpayne@69: ); jpayne@69: jpayne@69: extern void XkbFreeIndicatorMaps( jpayne@69: XkbDescPtr /* xkb */ jpayne@69: ); jpayne@69: jpayne@69: extern XkbDescPtr XkbGetMap( jpayne@69: Display * /* dpy */, jpayne@69: unsigned int /* which */, jpayne@69: unsigned int /* deviceSpec */ jpayne@69: ); jpayne@69: jpayne@69: extern Status XkbGetUpdatedMap( jpayne@69: Display * /* dpy */, jpayne@69: unsigned int /* which */, jpayne@69: XkbDescPtr /* desc */ jpayne@69: ); jpayne@69: jpayne@69: extern Status XkbGetMapChanges( jpayne@69: Display * /* dpy */, jpayne@69: XkbDescPtr /* xkb */, jpayne@69: XkbMapChangesPtr /* changes */ jpayne@69: ); jpayne@69: jpayne@69: jpayne@69: extern Status XkbRefreshKeyboardMapping( jpayne@69: XkbMapNotifyEvent * /* event */ jpayne@69: ); jpayne@69: jpayne@69: extern Status XkbGetKeyTypes( jpayne@69: Display * /* dpy */, jpayne@69: unsigned int /* first */, jpayne@69: unsigned int /* num */, jpayne@69: XkbDescPtr /* xkb */ jpayne@69: ); jpayne@69: jpayne@69: extern Status XkbGetKeySyms( jpayne@69: Display * /* dpy */, jpayne@69: unsigned int /* first */, jpayne@69: unsigned int /* num */, jpayne@69: XkbDescPtr /* xkb */ jpayne@69: ); jpayne@69: jpayne@69: extern Status XkbGetKeyActions( jpayne@69: Display * /* dpy */, jpayne@69: unsigned int /* first */, jpayne@69: unsigned int /* num */, jpayne@69: XkbDescPtr /* xkb */ jpayne@69: ); jpayne@69: jpayne@69: extern Status XkbGetKeyBehaviors( jpayne@69: Display * /* dpy */, jpayne@69: unsigned int /* firstKey */, jpayne@69: unsigned int /* nKeys */, jpayne@69: XkbDescPtr /* desc */ jpayne@69: ); jpayne@69: jpayne@69: extern Status XkbGetVirtualMods( jpayne@69: Display * /* dpy */, jpayne@69: unsigned int /* which */, jpayne@69: XkbDescPtr /* desc */ jpayne@69: ); jpayne@69: jpayne@69: extern Status XkbGetKeyExplicitComponents( jpayne@69: Display * /* dpy */, jpayne@69: unsigned int /* firstKey */, jpayne@69: unsigned int /* nKeys */, jpayne@69: XkbDescPtr /* desc */ jpayne@69: ); jpayne@69: jpayne@69: extern Status XkbGetKeyModifierMap( jpayne@69: Display * /* dpy */, jpayne@69: unsigned int /* firstKey */, jpayne@69: unsigned int /* nKeys */, jpayne@69: XkbDescPtr /* desc */ jpayne@69: ); jpayne@69: jpayne@69: extern Status XkbGetKeyVirtualModMap( jpayne@69: Display * /* dpy */, jpayne@69: unsigned int /* first */, jpayne@69: unsigned int /* num */, jpayne@69: XkbDescPtr /* xkb */ jpayne@69: ); jpayne@69: jpayne@69: extern Status XkbAllocControls( jpayne@69: XkbDescPtr /* xkb */, jpayne@69: unsigned int /* which*/ jpayne@69: ); jpayne@69: jpayne@69: extern void XkbFreeControls( jpayne@69: XkbDescPtr /* xkb */, jpayne@69: unsigned int /* which */, jpayne@69: Bool /* freeMap */ jpayne@69: ); jpayne@69: jpayne@69: extern Status XkbGetControls( jpayne@69: Display * /* dpy */, jpayne@69: unsigned long /* which */, jpayne@69: XkbDescPtr /* desc */ jpayne@69: ); jpayne@69: jpayne@69: extern Bool XkbSetControls( jpayne@69: Display * /* dpy */, jpayne@69: unsigned long /* which */, jpayne@69: XkbDescPtr /* desc */ jpayne@69: ); jpayne@69: jpayne@69: extern void XkbNoteControlsChanges( jpayne@69: XkbControlsChangesPtr /* old */, jpayne@69: XkbControlsNotifyEvent * /* new */, jpayne@69: unsigned int /* wanted */ jpayne@69: ); jpayne@69: jpayne@69: #define XkbGetControlsChanges(d,x,c) XkbGetControls(d,(c)->changed_ctrls,x) jpayne@69: #define XkbChangeControls(d,x,c) XkbSetControls(d,(c)->changed_ctrls,x) jpayne@69: jpayne@69: extern Status XkbAllocCompatMap( jpayne@69: XkbDescPtr /* xkb */, jpayne@69: unsigned int /* which */, jpayne@69: unsigned int /* nInterpret */ jpayne@69: ); jpayne@69: jpayne@69: extern void XkbFreeCompatMap( jpayne@69: XkbDescPtr /* xkb */, jpayne@69: unsigned int /* which */, jpayne@69: Bool /* freeMap */ jpayne@69: ); jpayne@69: jpayne@69: extern Status XkbGetCompatMap( jpayne@69: Display * /* dpy */, jpayne@69: unsigned int /* which */, jpayne@69: XkbDescPtr /* xkb */ jpayne@69: ); jpayne@69: jpayne@69: extern Bool XkbSetCompatMap( jpayne@69: Display * /* dpy */, jpayne@69: unsigned int /* which */, jpayne@69: XkbDescPtr /* xkb */, jpayne@69: Bool /* updateActions */ jpayne@69: ); jpayne@69: jpayne@69: extern XkbSymInterpretPtr XkbAddSymInterpret( jpayne@69: XkbDescPtr /* xkb */, jpayne@69: XkbSymInterpretPtr /* si */, jpayne@69: Bool /* updateMap */, jpayne@69: XkbChangesPtr /* changes */ jpayne@69: ); jpayne@69: jpayne@69: extern Status XkbAllocNames( jpayne@69: XkbDescPtr /* xkb */, jpayne@69: unsigned int /* which */, jpayne@69: int /* nTotalRG */, jpayne@69: int /* nTotalAliases */ jpayne@69: ); jpayne@69: jpayne@69: extern Status XkbGetNames( jpayne@69: Display * /* dpy */, jpayne@69: unsigned int /* which */, jpayne@69: XkbDescPtr /* desc */ jpayne@69: ); jpayne@69: jpayne@69: extern Bool XkbSetNames( jpayne@69: Display * /* dpy */, jpayne@69: unsigned int /* which */, jpayne@69: unsigned int /* firstType */, jpayne@69: unsigned int /* nTypes */, jpayne@69: XkbDescPtr /* desc */ jpayne@69: ); jpayne@69: jpayne@69: extern Bool XkbChangeNames( jpayne@69: Display * /* dpy */, jpayne@69: XkbDescPtr /* xkb */, jpayne@69: XkbNameChangesPtr /* changes */ jpayne@69: ); jpayne@69: jpayne@69: extern void XkbFreeNames( jpayne@69: XkbDescPtr /* xkb */, jpayne@69: unsigned int /* which */, jpayne@69: Bool /* freeMap */ jpayne@69: ); jpayne@69: jpayne@69: jpayne@69: extern Status XkbGetState( jpayne@69: Display * /* dpy */, jpayne@69: unsigned int /* deviceSpec */, jpayne@69: XkbStatePtr /* rtrnState */ jpayne@69: ); jpayne@69: jpayne@69: extern Bool XkbSetMap( jpayne@69: Display * /* dpy */, jpayne@69: unsigned int /* which */, jpayne@69: XkbDescPtr /* desc */ jpayne@69: ); jpayne@69: jpayne@69: extern Bool XkbChangeMap( jpayne@69: Display* /* dpy */, jpayne@69: XkbDescPtr /* desc */, jpayne@69: XkbMapChangesPtr /* changes */ jpayne@69: ); jpayne@69: jpayne@69: extern Bool XkbSetDetectableAutoRepeat( jpayne@69: Display * /* dpy */, jpayne@69: Bool /* detectable */, jpayne@69: Bool * /* supported */ jpayne@69: ); jpayne@69: jpayne@69: extern Bool XkbGetDetectableAutoRepeat( jpayne@69: Display * /* dpy */, jpayne@69: Bool * /* supported */ jpayne@69: ); jpayne@69: jpayne@69: extern Bool XkbSetAutoResetControls( jpayne@69: Display * /* dpy */, jpayne@69: unsigned int /* changes */, jpayne@69: unsigned int * /* auto_ctrls */, jpayne@69: unsigned int * /* auto_values */ jpayne@69: ); jpayne@69: jpayne@69: extern Bool XkbGetAutoResetControls( jpayne@69: Display * /* dpy */, jpayne@69: unsigned int * /* auto_ctrls */, jpayne@69: unsigned int * /* auto_ctrl_values */ jpayne@69: ); jpayne@69: jpayne@69: extern Bool XkbSetPerClientControls( jpayne@69: Display * /* dpy */, jpayne@69: unsigned int /* change */, jpayne@69: unsigned int * /* values */ jpayne@69: ); jpayne@69: jpayne@69: extern Bool XkbGetPerClientControls( jpayne@69: Display * /* dpy */, jpayne@69: unsigned int * /* ctrls */ jpayne@69: ); jpayne@69: jpayne@69: extern Status XkbCopyKeyType( jpayne@69: XkbKeyTypePtr /* from */, jpayne@69: XkbKeyTypePtr /* into */ jpayne@69: ); jpayne@69: jpayne@69: extern Status XkbCopyKeyTypes( jpayne@69: XkbKeyTypePtr /* from */, jpayne@69: XkbKeyTypePtr /* into */, jpayne@69: int /* num_types */ jpayne@69: ); jpayne@69: jpayne@69: extern Status XkbResizeKeyType( jpayne@69: XkbDescPtr /* xkb */, jpayne@69: int /* type_ndx */, jpayne@69: int /* map_count */, jpayne@69: Bool /* want_preserve */, jpayne@69: int /* new_num_lvls */ jpayne@69: ); jpayne@69: jpayne@69: extern KeySym *XkbResizeKeySyms( jpayne@69: XkbDescPtr /* desc */, jpayne@69: int /* forKey */, jpayne@69: int /* symsNeeded */ jpayne@69: ); jpayne@69: jpayne@69: extern XkbAction *XkbResizeKeyActions( jpayne@69: XkbDescPtr /* desc */, jpayne@69: int /* forKey */, jpayne@69: int /* actsNeeded */ jpayne@69: ); jpayne@69: jpayne@69: extern Status XkbChangeTypesOfKey( jpayne@69: XkbDescPtr /* xkb */, jpayne@69: int /* key */, jpayne@69: int /* num_groups */, jpayne@69: unsigned int /* groups */, jpayne@69: int * /* newTypes */, jpayne@69: XkbMapChangesPtr /* pChanges */ jpayne@69: ); jpayne@69: jpayne@69: extern Status XkbChangeKeycodeRange( jpayne@69: XkbDescPtr /* xkb */, jpayne@69: int /* minKC */, jpayne@69: int /* maxKC */, jpayne@69: XkbChangesPtr /* changes */ jpayne@69: ); jpayne@69: jpayne@69: /***====================================================================***/ jpayne@69: jpayne@69: extern XkbComponentListPtr XkbListComponents( jpayne@69: Display * /* dpy */, jpayne@69: unsigned int /* deviceSpec */, jpayne@69: XkbComponentNamesPtr /* ptrns */, jpayne@69: int * /* max_inout */ jpayne@69: ); jpayne@69: jpayne@69: extern void XkbFreeComponentList( jpayne@69: XkbComponentListPtr /* list */ jpayne@69: ); jpayne@69: jpayne@69: extern XkbDescPtr XkbGetKeyboard( jpayne@69: Display * /* dpy */, jpayne@69: unsigned int /* which */, jpayne@69: unsigned int /* deviceSpec */ jpayne@69: ); jpayne@69: jpayne@69: extern XkbDescPtr XkbGetKeyboardByName( jpayne@69: Display * /* dpy */, jpayne@69: unsigned int /* deviceSpec */, jpayne@69: XkbComponentNamesPtr /* names */, jpayne@69: unsigned int /* want */, jpayne@69: unsigned int /* need */, jpayne@69: Bool /* load */ jpayne@69: ); jpayne@69: jpayne@69: /***====================================================================***/ jpayne@69: jpayne@69: extern int XkbKeyTypesForCoreSymbols( /* returns # of groups */ jpayne@69: XkbDescPtr /* xkb */, /* keyboard device */ jpayne@69: int /* map_width */, /* width of core KeySym array */ jpayne@69: KeySym * /* core_syms */, /* always mapWidth symbols */ jpayne@69: unsigned int /* protected */, /* explicit key types */ jpayne@69: int * /* types_inout */, /* always four type indices */ jpayne@69: KeySym * /* xkb_syms_rtrn */ /* must have enough space */ jpayne@69: ); jpayne@69: jpayne@69: extern Bool XkbApplyCompatMapToKey( /* False only on error */ jpayne@69: XkbDescPtr /* xkb */, /* keymap to be edited */ jpayne@69: KeyCode /* key */, /* key to be updated */ jpayne@69: XkbChangesPtr /* changes */ /* resulting changes to map */ jpayne@69: ); jpayne@69: jpayne@69: extern Bool XkbUpdateMapFromCore( /* False only on error */ jpayne@69: XkbDescPtr /* xkb */, /* XKB keyboard to be edited */ jpayne@69: KeyCode /* first_key */, /* first changed key */ jpayne@69: int /* num_keys */, /* number of changed keys */ jpayne@69: int /* map_width */, /* width of core keymap */ jpayne@69: KeySym * /* core_keysyms */, /* symbols from core keymap */ jpayne@69: XkbChangesPtr /* changes */ /* resulting changes */ jpayne@69: ); jpayne@69: jpayne@69: /***====================================================================***/ jpayne@69: jpayne@69: extern XkbDeviceLedInfoPtr XkbAddDeviceLedInfo( jpayne@69: XkbDeviceInfoPtr /* devi */, jpayne@69: unsigned int /* ledClass */, jpayne@69: unsigned int /* ledId */ jpayne@69: ); jpayne@69: jpayne@69: extern Status XkbResizeDeviceButtonActions( jpayne@69: XkbDeviceInfoPtr /* devi */, jpayne@69: unsigned int /* newTotal */ jpayne@69: ); jpayne@69: jpayne@69: extern XkbDeviceInfoPtr XkbAllocDeviceInfo( jpayne@69: unsigned int /* deviceSpec */, jpayne@69: unsigned int /* nButtons */, jpayne@69: unsigned int /* szLeds */ jpayne@69: ); jpayne@69: jpayne@69: extern void XkbFreeDeviceInfo( jpayne@69: XkbDeviceInfoPtr /* devi */, jpayne@69: unsigned int /* which */, jpayne@69: Bool /* freeDevI */ jpayne@69: ); jpayne@69: jpayne@69: extern void XkbNoteDeviceChanges( jpayne@69: XkbDeviceChangesPtr /* old */, jpayne@69: XkbExtensionDeviceNotifyEvent * /* new */, jpayne@69: unsigned int /* wanted */ jpayne@69: ); jpayne@69: jpayne@69: extern XkbDeviceInfoPtr XkbGetDeviceInfo( jpayne@69: Display * /* dpy */, jpayne@69: unsigned int /* which */, jpayne@69: unsigned int /* deviceSpec */, jpayne@69: unsigned int /* ledClass */, jpayne@69: unsigned int /* ledID */ jpayne@69: ); jpayne@69: jpayne@69: extern Status XkbGetDeviceInfoChanges( jpayne@69: Display * /* dpy */, jpayne@69: XkbDeviceInfoPtr /* devi */, jpayne@69: XkbDeviceChangesPtr /* changes */ jpayne@69: ); jpayne@69: jpayne@69: extern Status XkbGetDeviceButtonActions( jpayne@69: Display * /* dpy */, jpayne@69: XkbDeviceInfoPtr /* devi */, jpayne@69: Bool /* all */, jpayne@69: unsigned int /* first */, jpayne@69: unsigned int /* nBtns */ jpayne@69: ); jpayne@69: jpayne@69: extern Status XkbGetDeviceLedInfo( jpayne@69: Display * /* dpy */, jpayne@69: XkbDeviceInfoPtr /* devi */, jpayne@69: unsigned int /* ledClass (class, XIDflt, XIAll) */, jpayne@69: unsigned int /* ledId (id, XIDflt, XIAll) */, jpayne@69: unsigned int /* which (XkbXI_Indicator{Names,Map}Mask */ jpayne@69: ); jpayne@69: jpayne@69: extern Bool XkbSetDeviceInfo( jpayne@69: Display * /* dpy */, jpayne@69: unsigned int /* which */, jpayne@69: XkbDeviceInfoPtr /* devi */ jpayne@69: ); jpayne@69: jpayne@69: extern Bool XkbChangeDeviceInfo( jpayne@69: Display* /* dpy */, jpayne@69: XkbDeviceInfoPtr /* desc */, jpayne@69: XkbDeviceChangesPtr /* changes */ jpayne@69: ); jpayne@69: jpayne@69: extern Bool XkbSetDeviceLedInfo( jpayne@69: Display * /* dpy */, jpayne@69: XkbDeviceInfoPtr /* devi */, jpayne@69: unsigned int /* ledClass */, jpayne@69: unsigned int /* ledID */, jpayne@69: unsigned int /* which */ jpayne@69: ); jpayne@69: jpayne@69: extern Bool XkbSetDeviceButtonActions( jpayne@69: Display * /* dpy */, jpayne@69: XkbDeviceInfoPtr /* devi */, jpayne@69: unsigned int /* first */, jpayne@69: unsigned int /* nBtns */ jpayne@69: ); jpayne@69: jpayne@69: /***====================================================================***/ jpayne@69: jpayne@69: extern char XkbToControl( jpayne@69: char /* c */ jpayne@69: ); jpayne@69: jpayne@69: /***====================================================================***/ jpayne@69: jpayne@69: extern Bool XkbSetDebuggingFlags( jpayne@69: Display * /* dpy */, jpayne@69: unsigned int /* mask */, jpayne@69: unsigned int /* flags */, jpayne@69: char * /* msg */, jpayne@69: unsigned int /* ctrls_mask */, jpayne@69: unsigned int /* ctrls */, jpayne@69: unsigned int * /* rtrn_flags */, jpayne@69: unsigned int * /* rtrn_ctrls */ jpayne@69: ); jpayne@69: jpayne@69: extern Bool XkbApplyVirtualModChanges( jpayne@69: XkbDescPtr /* xkb */, jpayne@69: unsigned int /* changed */, jpayne@69: XkbChangesPtr /* changes */ jpayne@69: ); jpayne@69: jpayne@69: extern Bool XkbUpdateActionVirtualMods( jpayne@69: XkbDescPtr /* xkb */, jpayne@69: XkbAction * /* act */, jpayne@69: unsigned int /* changed */ jpayne@69: ); jpayne@69: jpayne@69: extern void XkbUpdateKeyTypeVirtualMods( jpayne@69: XkbDescPtr /* xkb */, jpayne@69: XkbKeyTypePtr /* type */, jpayne@69: unsigned int /* changed */, jpayne@69: XkbChangesPtr /* changes */ jpayne@69: ); jpayne@69: jpayne@69: _XFUNCPROTOEND jpayne@69: jpayne@69: #endif /* _X11_XKBLIB_H_ */