XKBlib.h revision 61b2299d
11ab64890Smrg/* $Xorg: XKBlib.h,v 1.6 2000/08/17 19:45:03 cpqbld Exp $ */ 21ab64890Smrg/************************************************************ 31ab64890SmrgCopyright (c) 1993 by Silicon Graphics Computer Systems, Inc. 41ab64890Smrg 51ab64890SmrgPermission to use, copy, modify, and distribute this 61ab64890Smrgsoftware and its documentation for any purpose and without 71ab64890Smrgfee is hereby granted, provided that the above copyright 81ab64890Smrgnotice appear in all copies and that both that copyright 91ab64890Smrgnotice and this permission notice appear in supporting 1061b2299dSmrgdocumentation, and that the name of Silicon Graphics not be 1161b2299dSmrgused in advertising or publicity pertaining to distribution 121ab64890Smrgof the software without specific prior written permission. 1361b2299dSmrgSilicon Graphics makes no representation about the suitability 141ab64890Smrgof this software for any purpose. It is provided "as is" 151ab64890Smrgwithout any express or implied warranty. 161ab64890Smrg 1761b2299dSmrgSILICON GRAPHICS DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS 1861b2299dSmrgSOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY 191ab64890SmrgAND FITNESS FOR A PARTICULAR PURPOSE. IN NO EVENT SHALL SILICON 2061b2299dSmrgGRAPHICS BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL 2161b2299dSmrgDAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, 2261b2299dSmrgDATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE 231ab64890SmrgOR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH 241ab64890SmrgTHE USE OR PERFORMANCE OF THIS SOFTWARE. 251ab64890Smrg 261ab64890Smrg********************************************************/ 271ab64890Smrg/* $XFree86: xc/lib/X11/XKBlib.h,v 3.5 2003/04/17 02:06:31 dawes Exp $ */ 281ab64890Smrg 291ab64890Smrg#ifndef _XKBLIB_H_ 301ab64890Smrg#define _XKBLIB_H_ 311ab64890Smrg 321ab64890Smrg#include <X11/Xlib.h> 331ab64890Smrg#include <X11/extensions/XKBstr.h> 341ab64890Smrg 351ab64890Smrgtypedef struct _XkbAnyEvent { 361ab64890Smrg int type; /* XkbAnyEvent */ 371ab64890Smrg unsigned long serial; /* # of last req processed by server */ 381ab64890Smrg Bool send_event; /* is this from a SendEvent request? */ 391ab64890Smrg Display * display; /* Display the event was read from */ 401ab64890Smrg Time time; /* milliseconds */ 411ab64890Smrg int xkb_type; /* XKB event minor code */ 421ab64890Smrg unsigned int device; /* device ID */ 431ab64890Smrg} XkbAnyEvent; 441ab64890Smrg 451ab64890Smrgtypedef struct _XkbNewKeyboardNotify { 461ab64890Smrg int type; /* XkbAnyEvent */ 471ab64890Smrg unsigned long serial; /* of last req processed by server */ 481ab64890Smrg Bool send_event; /* is this from a SendEvent request? */ 491ab64890Smrg Display * display; /* Display the event was read from */ 501ab64890Smrg Time time; /* milliseconds */ 511ab64890Smrg int xkb_type; /* XkbNewKeyboardNotify */ 521ab64890Smrg int device; /* device ID */ 531ab64890Smrg int old_device; /* device ID of previous keyboard */ 541ab64890Smrg int min_key_code; /* minimum key code */ 551ab64890Smrg int max_key_code; /* maximum key code */ 561ab64890Smrg int old_min_key_code;/* min key code of previous kbd */ 571ab64890Smrg int old_max_key_code;/* max key code of previous kbd */ 581ab64890Smrg unsigned int changed; /* changed aspects of the keyboard */ 591ab64890Smrg char req_major; /* major and minor opcode of req */ 601ab64890Smrg char req_minor; /* that caused change, if applicable */ 611ab64890Smrg} XkbNewKeyboardNotifyEvent; 621ab64890Smrg 631ab64890Smrgtypedef struct _XkbMapNotifyEvent { 641ab64890Smrg int type; /* XkbAnyEvent */ 651ab64890Smrg unsigned long serial; /* of last req processed by server */ 661ab64890Smrg Bool send_event; /* is this from a SendEvent request */ 671ab64890Smrg Display * display; /* Display the event was read from */ 681ab64890Smrg Time time; /* milliseconds */ 691ab64890Smrg int xkb_type; /* XkbMapNotify */ 701ab64890Smrg int device; /* device ID */ 711ab64890Smrg unsigned int changed; /* fields which have been changed */ 721ab64890Smrg unsigned int flags; /* reserved */ 731ab64890Smrg int first_type; /* first changed key type */ 741ab64890Smrg int num_types; /* number of changed key types */ 751ab64890Smrg KeyCode min_key_code; 761ab64890Smrg KeyCode max_key_code; 771ab64890Smrg KeyCode first_key_sym; 781ab64890Smrg KeyCode first_key_act; 791ab64890Smrg KeyCode first_key_behavior; 801ab64890Smrg KeyCode first_key_explicit; 8161b2299dSmrg KeyCode first_modmap_key; 821ab64890Smrg KeyCode first_vmodmap_key; 831ab64890Smrg int num_key_syms; 841ab64890Smrg int num_key_acts; 851ab64890Smrg int num_key_behaviors; 861ab64890Smrg int num_key_explicit; 871ab64890Smrg int num_modmap_keys; 881ab64890Smrg int num_vmodmap_keys; 891ab64890Smrg unsigned int vmods; /* mask of changed virtual mods */ 901ab64890Smrg} XkbMapNotifyEvent; 911ab64890Smrg 921ab64890Smrgtypedef struct _XkbStateNotifyEvent { 931ab64890Smrg int type; /* XkbAnyEvent */ 941ab64890Smrg unsigned long serial; /* # of last req processed by server */ 951ab64890Smrg Bool send_event; /* is this from a SendEvent request? */ 961ab64890Smrg Display * display; /* Display the event was read from */ 971ab64890Smrg Time time; /* milliseconds */ 981ab64890Smrg int xkb_type; /* XkbStateNotify */ 991ab64890Smrg int device; /* device ID */ 1001ab64890Smrg unsigned int changed; /* mask of changed state components */ 1011ab64890Smrg int group; /* keyboard group */ 1021ab64890Smrg int base_group; /* base keyboard group */ 1031ab64890Smrg int latched_group; /* latched keyboard group */ 1041ab64890Smrg int locked_group; /* locked keyboard group */ 1051ab64890Smrg unsigned int mods; /* modifier state */ 1061ab64890Smrg unsigned int base_mods; /* base modifier state */ 1071ab64890Smrg unsigned int latched_mods; /* latched modifiers */ 1081ab64890Smrg unsigned int locked_mods; /* locked modifiers */ 1091ab64890Smrg int compat_state; /* compatibility state */ 1101ab64890Smrg unsigned char grab_mods; /* mods used for grabs */ 1111ab64890Smrg unsigned char compat_grab_mods;/* grab mods for non-XKB clients */ 1121ab64890Smrg unsigned char lookup_mods; /* mods sent to clients */ 1131ab64890Smrg unsigned char compat_lookup_mods; /* mods sent to non-XKB clients */ 1141ab64890Smrg int ptr_buttons; /* pointer button state */ 1151ab64890Smrg KeyCode keycode; /* keycode that caused the change */ 1161ab64890Smrg char event_type; /* KeyPress or KeyRelease */ 1171ab64890Smrg char req_major; /* Major opcode of request */ 1181ab64890Smrg char req_minor; /* Minor opcode of request */ 1191ab64890Smrg} XkbStateNotifyEvent; 1201ab64890Smrg 1211ab64890Smrgtypedef struct _XkbControlsNotify { 1221ab64890Smrg int type; /* XkbAnyEvent */ 1231ab64890Smrg unsigned long serial; /* of last req processed by server */ 1241ab64890Smrg Bool send_event; /* is this from a SendEvent request? */ 1251ab64890Smrg Display * display; /* Display the event was read from */ 1261ab64890Smrg Time time; /* milliseconds */ 1271ab64890Smrg int xkb_type; /* XkbControlsNotify */ 1281ab64890Smrg int device; /* device ID */ 1291ab64890Smrg unsigned int changed_ctrls; /* controls with changed sub-values */ 1301ab64890Smrg unsigned int enabled_ctrls; /* controls currently enabled */ 1311ab64890Smrg unsigned int enabled_ctrl_changes;/* controls just {en,dis}abled */ 1321ab64890Smrg int num_groups; /* total groups on keyboard */ 1331ab64890Smrg KeyCode keycode; /* key that caused change or 0 */ 1341ab64890Smrg char event_type; /* type of event that caused change */ 1351ab64890Smrg char req_major; /* if keycode==0, major and minor */ 1361ab64890Smrg char req_minor; /* opcode of req that caused change */ 1371ab64890Smrg} XkbControlsNotifyEvent; 1381ab64890Smrg 1391ab64890Smrgtypedef struct _XkbIndicatorNotify { 1401ab64890Smrg int type; /* XkbAnyEvent */ 1411ab64890Smrg unsigned long serial; /* of last req processed by server */ 1421ab64890Smrg Bool send_event; /* is this from a SendEvent request? */ 1431ab64890Smrg Display * display; /* Display the event was read from */ 1441ab64890Smrg Time time; /* milliseconds */ 1451ab64890Smrg int xkb_type; /* XkbIndicatorNotify */ 1461ab64890Smrg int device; /* device ID */ 1471ab64890Smrg unsigned int changed; /* indicators with new state or map */ 1481ab64890Smrg unsigned int state; /* current state of all indicators */ 1491ab64890Smrg} XkbIndicatorNotifyEvent; 1501ab64890Smrg 1511ab64890Smrgtypedef struct _XkbNamesNotify { 1521ab64890Smrg int type; /* XkbAnyEvent */ 1531ab64890Smrg unsigned long serial; /* of last req processed by server */ 1541ab64890Smrg Bool send_event; /* is this from a SendEvent request? */ 1551ab64890Smrg Display * display; /* Display the event was read from */ 1561ab64890Smrg Time time; /* milliseconds */ 1571ab64890Smrg int xkb_type; /* XkbNamesNotify */ 1581ab64890Smrg int device; /* device ID */ 1591ab64890Smrg unsigned int changed; /* names that have changed */ 1601ab64890Smrg int first_type; /* first key type with new name */ 1611ab64890Smrg int num_types; /* number of key types with new names */ 1621ab64890Smrg int first_lvl; /* first key type new new level names */ 1631ab64890Smrg int num_lvls; /* # of key types w/new level names */ 1641ab64890Smrg int num_aliases; /* total number of key aliases*/ 1651ab64890Smrg int num_radio_groups;/* total number of radio groups */ 1661ab64890Smrg unsigned int changed_vmods; /* virtual modifiers with new names */ 1671ab64890Smrg unsigned int changed_groups; /* groups with new names */ 1681ab64890Smrg unsigned int changed_indicators;/* indicators with new names */ 1691ab64890Smrg int first_key; /* first key with new name */ 1701ab64890Smrg int num_keys; /* number of keys with new names */ 1711ab64890Smrg} XkbNamesNotifyEvent; 1721ab64890Smrg 1731ab64890Smrgtypedef struct _XkbCompatMapNotify { 1741ab64890Smrg int type; /* XkbAnyEvent */ 1751ab64890Smrg unsigned long serial; /* of last req processed by server */ 1761ab64890Smrg Bool send_event; /* is this from a SendEvent request? */ 1771ab64890Smrg Display * display; /* Display the event was read from */ 1781ab64890Smrg Time time; /* milliseconds */ 1791ab64890Smrg int xkb_type; /* XkbCompatMapNotify */ 1801ab64890Smrg int device; /* device ID */ 1811ab64890Smrg unsigned int changed_groups; /* groups with new compat maps */ 1821ab64890Smrg int first_si; /* first new symbol interp */ 1831ab64890Smrg int num_si; /* number of new symbol interps */ 1841ab64890Smrg int num_total_si; /* total # of symbol interps */ 1851ab64890Smrg} XkbCompatMapNotifyEvent; 1861ab64890Smrg 1871ab64890Smrgtypedef struct _XkbBellNotify { 1881ab64890Smrg int type; /* XkbAnyEvent */ 1891ab64890Smrg unsigned long serial; /* of last req processed by server */ 1901ab64890Smrg Bool send_event; /* is this from a SendEvent request? */ 1911ab64890Smrg Display * display; /* Display the event was read from */ 1921ab64890Smrg Time time; /* milliseconds */ 1931ab64890Smrg int xkb_type; /* XkbBellNotify */ 1941ab64890Smrg int device; /* device ID */ 1951ab64890Smrg int percent; /* requested volume as a % of maximum */ 1961ab64890Smrg int pitch; /* requested pitch in Hz */ 1971ab64890Smrg int duration; /* requested duration in useconds */ 1981ab64890Smrg int bell_class; /* (input extension) feedback class */ 1991ab64890Smrg int bell_id; /* (input extension) ID of feedback */ 2001ab64890Smrg Atom name; /* "name" of requested bell */ 2011ab64890Smrg Window window; /* window associated with event */ 2021ab64890Smrg Bool event_only; /* "event only" requested */ 2031ab64890Smrg} XkbBellNotifyEvent; 2041ab64890Smrg 2051ab64890Smrgtypedef struct _XkbActionMessage { 2061ab64890Smrg int type; /* XkbAnyEvent */ 2071ab64890Smrg unsigned long serial; /* of last req processed by server */ 2081ab64890Smrg Bool send_event; /* is this from a SendEvent request? */ 2091ab64890Smrg Display * display; /* Display the event was read from */ 2101ab64890Smrg Time time; /* milliseconds */ 2111ab64890Smrg int xkb_type; /* XkbActionMessage */ 2121ab64890Smrg int device; /* device ID */ 2131ab64890Smrg KeyCode keycode; /* key that generated the event */ 2141ab64890Smrg Bool press; /* true if act caused by key press */ 2151ab64890Smrg Bool key_event_follows;/* true if key event also generated */ 2161ab64890Smrg int group; /* effective group */ 2171ab64890Smrg unsigned int mods; /* effective mods */ 21861b2299dSmrg char message[XkbActionMessageLength+1]; 2191ab64890Smrg /* message -- leave space for NUL */ 2201ab64890Smrg} XkbActionMessageEvent; 2211ab64890Smrg 2221ab64890Smrgtypedef struct _XkbAccessXNotify { 2231ab64890Smrg int type; /* XkbAnyEvent */ 2241ab64890Smrg unsigned long serial; /* of last req processed by server */ 2251ab64890Smrg Bool send_event; /* is this from a SendEvent request? */ 2261ab64890Smrg Display * display; /* Display the event was read from */ 2271ab64890Smrg Time time; /* milliseconds */ 2281ab64890Smrg int xkb_type; /* XkbAccessXNotify */ 2291ab64890Smrg int device; /* device ID */ 2301ab64890Smrg int detail; /* XkbAXN_* */ 2311ab64890Smrg int keycode; /* key of event */ 2321ab64890Smrg int sk_delay; /* current slow keys delay */ 2331ab64890Smrg int debounce_delay; /* current debounce delay */ 2341ab64890Smrg} XkbAccessXNotifyEvent; 2351ab64890Smrg 2361ab64890Smrgtypedef struct _XkbExtensionDeviceNotify { 2371ab64890Smrg int type; /* XkbAnyEvent */ 2381ab64890Smrg unsigned long serial; /* of last req processed by server */ 2391ab64890Smrg Bool send_event; /* is this from a SendEvent request? */ 2401ab64890Smrg Display * display; /* Display the event was read from */ 2411ab64890Smrg Time time; /* milliseconds */ 2421ab64890Smrg int xkb_type; /* XkbExtensionDeviceNotify */ 2431ab64890Smrg int device; /* device ID */ 24461b2299dSmrg unsigned int reason; /* reason for the event */ 24561b2299dSmrg unsigned int supported; /* mask of supported features */ 2461ab64890Smrg unsigned int unsupported; /* mask of unsupported features */ 2471ab64890Smrg /* that some app tried to use */ 2481ab64890Smrg int first_btn; /* first button that changed */ 2491ab64890Smrg int num_btns; /* range of buttons changed */ 2501ab64890Smrg unsigned int leds_defined; /* indicators with names or maps */ 2511ab64890Smrg unsigned int led_state; /* current state of the indicators */ 2521ab64890Smrg int led_class; /* feedback class for led changes */ 2531ab64890Smrg int led_id; /* feedback id for led changes */ 2541ab64890Smrg} XkbExtensionDeviceNotifyEvent; 2551ab64890Smrg 2561ab64890Smrgtypedef union _XkbEvent { 2571ab64890Smrg int type; 2581ab64890Smrg XkbAnyEvent any; 2591ab64890Smrg XkbNewKeyboardNotifyEvent new_kbd; 2601ab64890Smrg XkbMapNotifyEvent map; 2611ab64890Smrg XkbStateNotifyEvent state; 2621ab64890Smrg XkbControlsNotifyEvent ctrls; 2631ab64890Smrg XkbIndicatorNotifyEvent indicators; 2641ab64890Smrg XkbNamesNotifyEvent names; 2651ab64890Smrg XkbCompatMapNotifyEvent compat; 2661ab64890Smrg XkbBellNotifyEvent bell; 2671ab64890Smrg XkbActionMessageEvent message; 2681ab64890Smrg XkbAccessXNotifyEvent accessx; 2691ab64890Smrg XkbExtensionDeviceNotifyEvent device; 2701ab64890Smrg XEvent core; 2711ab64890Smrg} XkbEvent; 2721ab64890Smrg 2731ab64890Smrgtypedef struct _XkbKbdDpyState XkbKbdDpyStateRec,*XkbKbdDpyStatePtr; 2741ab64890Smrg 2751ab64890Smrg /* XkbOpenDisplay error codes */ 2761ab64890Smrg#define XkbOD_Success 0 2771ab64890Smrg#define XkbOD_BadLibraryVersion 1 2781ab64890Smrg#define XkbOD_ConnectionRefused 2 2791ab64890Smrg#define XkbOD_NonXkbServer 3 2801ab64890Smrg#define XkbOD_BadServerVersion 4 2811ab64890Smrg 2821ab64890Smrg /* Values for XlibFlags */ 2831ab64890Smrg#define XkbLC_ForceLatin1Lookup (1<<0) 2841ab64890Smrg#define XkbLC_ConsumeLookupMods (1<<1) 2851ab64890Smrg#define XkbLC_AlwaysConsumeShiftAndLock (1<<2) 2861ab64890Smrg#define XkbLC_IgnoreNewKeyboards (1<<3) 2871ab64890Smrg#define XkbLC_ControlFallback (1<<4) 2881ab64890Smrg#define XkbLC_ConsumeKeysOnComposeFail (1<<29) 2891ab64890Smrg#define XkbLC_ComposeLED (1<<30) 2901ab64890Smrg#define XkbLC_BeepOnComposeFail (1<<31) 2911ab64890Smrg 2921ab64890Smrg#define XkbLC_AllComposeControls (0xc0000000) 2931ab64890Smrg#define XkbLC_AllControls (0xc000001f) 2941ab64890Smrg 2951ab64890Smrg_XFUNCPROTOBEGIN 2961ab64890Smrg 2971ab64890Smrgextern Bool XkbIgnoreExtension( 2981ab64890Smrg Bool /* ignore */ 2991ab64890Smrg); 3001ab64890Smrg 3011ab64890Smrgextern Display *XkbOpenDisplay( 3021ab64890Smrg char * /* name */, 3031ab64890Smrg int * /* ev_rtrn */, 3041ab64890Smrg int * /* err_rtrn */, 3051ab64890Smrg int * /* major_rtrn */, 3061ab64890Smrg int * /* minor_rtrn */, 3071ab64890Smrg int * /* reason */ 3081ab64890Smrg); 3091ab64890Smrg 3101ab64890Smrgextern Bool XkbQueryExtension( 3111ab64890Smrg Display * /* dpy */, 3121ab64890Smrg int * /* opcodeReturn */, 3131ab64890Smrg int * /* eventBaseReturn */, 3141ab64890Smrg int * /* errorBaseReturn */, 3151ab64890Smrg int * /* majorRtrn */, 3161ab64890Smrg int * /* minorRtrn */ 3171ab64890Smrg); 3181ab64890Smrg 3191ab64890Smrgextern Bool XkbUseExtension( 3201ab64890Smrg Display * /* dpy */, 3211ab64890Smrg int * /* major_rtrn */, 3221ab64890Smrg int * /* minor_rtrn */ 3231ab64890Smrg); 3241ab64890Smrg 3251ab64890Smrgextern Bool XkbLibraryVersion( 3261ab64890Smrg int * /* libMajorRtrn */, 3271ab64890Smrg int * /* libMinorRtrn */ 3281ab64890Smrg); 3291ab64890Smrg 3301ab64890Smrgextern unsigned int XkbSetXlibControls( 3311ab64890Smrg Display* /* dpy */, 3321ab64890Smrg unsigned int /* affect */, 3331ab64890Smrg unsigned int /* values */ 3341ab64890Smrg); 3351ab64890Smrg 3361ab64890Smrgextern unsigned int XkbGetXlibControls( 3371ab64890Smrg Display* /* dpy */ 3381ab64890Smrg); 3391ab64890Smrg 3401ab64890Smrgextern unsigned int XkbXlibControlsImplemented(void); 3411ab64890Smrg 3421ab64890Smrgtypedef Atom (*XkbInternAtomFunc)( 3431ab64890Smrg Display * /* dpy */, 3441ab64890Smrg _Xconst char * /* name */, 3451ab64890Smrg Bool /* only_if_exists */ 3461ab64890Smrg); 3471ab64890Smrg 3481ab64890Smrgtypedef char * (*XkbGetAtomNameFunc)( 3491ab64890Smrg Display * /* dpy */, 3501ab64890Smrg Atom /* atom */ 3511ab64890Smrg); 3521ab64890Smrg 3531ab64890Smrgextern void XkbSetAtomFuncs( 3541ab64890Smrg XkbInternAtomFunc /* getAtom */, 3551ab64890Smrg XkbGetAtomNameFunc /* getName */ 3561ab64890Smrg); 3571ab64890Smrg 3581ab64890Smrgextern KeySym XkbKeycodeToKeysym( 3591ab64890Smrg Display * /* dpy */, 3601ab64890Smrg#if NeedWidePrototypes 3611ab64890Smrg unsigned int /* kc */, 3621ab64890Smrg#else 3631ab64890Smrg KeyCode /* kc */, 3641ab64890Smrg#endif 3651ab64890Smrg int /* group */, 3661ab64890Smrg int /* level */ 3671ab64890Smrg); 3681ab64890Smrg 3691ab64890Smrgextern unsigned int XkbKeysymToModifiers( 3701ab64890Smrg Display * /* dpy */, 3711ab64890Smrg KeySym /* ks */ 3721ab64890Smrg); 3731ab64890Smrg 3741ab64890Smrgextern Bool XkbLookupKeySym( 3751ab64890Smrg Display * /* dpy */, 3761ab64890Smrg KeyCode /* keycode */, 3771ab64890Smrg unsigned int /* modifiers */, 3781ab64890Smrg unsigned int * /* modifiers_return */, 3791ab64890Smrg KeySym * /* keysym_return */ 3801ab64890Smrg); 3811ab64890Smrg 3821ab64890Smrgextern int XkbLookupKeyBinding( 3831ab64890Smrg Display * /* dpy */, 3841ab64890Smrg KeySym /* sym_rtrn */, 3851ab64890Smrg unsigned int /* mods */, 3861ab64890Smrg char * /* buffer */, 3871ab64890Smrg int /* nbytes */, 3881ab64890Smrg int * /* extra_rtrn */ 3891ab64890Smrg); 3901ab64890Smrg 3911ab64890Smrgextern Bool XkbTranslateKeyCode( 3921ab64890Smrg XkbDescPtr /* xkb */, 3931ab64890Smrg KeyCode /* keycode */, 3941ab64890Smrg unsigned int /* modifiers */, 3951ab64890Smrg unsigned int * /* modifiers_return */, 3961ab64890Smrg KeySym * /* keysym_return */ 3971ab64890Smrg); 3981ab64890Smrg 3991ab64890Smrgextern int XkbTranslateKeySym( 4001ab64890Smrg Display * /* dpy */, 4011ab64890Smrg register KeySym * /* sym_return */, 4021ab64890Smrg unsigned int /* modifiers */, 4031ab64890Smrg char * /* buffer */, 4041ab64890Smrg int /* nbytes */, 4051ab64890Smrg int * /* extra_rtrn */ 4061ab64890Smrg); 4071ab64890Smrg 4081ab64890Smrgextern Bool XkbSetAutoRepeatRate( 4091ab64890Smrg Display * /* dpy */, 4101ab64890Smrg unsigned int /* deviceSpec */, 4111ab64890Smrg unsigned int /* delay */, 4121ab64890Smrg unsigned int /* interval */ 4131ab64890Smrg); 4141ab64890Smrg 4151ab64890Smrgextern Bool XkbGetAutoRepeatRate( 4161ab64890Smrg Display * /* dpy */, 4171ab64890Smrg unsigned int /* deviceSpec */, 4181ab64890Smrg unsigned int * /* delayRtrn */, 4191ab64890Smrg unsigned int * /* intervalRtrn */ 4201ab64890Smrg); 4211ab64890Smrg 4221ab64890Smrgextern Bool XkbChangeEnabledControls( 4231ab64890Smrg Display * /* dpy */, 4241ab64890Smrg unsigned int /* deviceSpec */, 4251ab64890Smrg unsigned int /* affect */, 4261ab64890Smrg unsigned int /* values */ 4271ab64890Smrg); 4281ab64890Smrg 4291ab64890Smrgextern Bool XkbDeviceBell( 4301ab64890Smrg Display * /* dpy */, 4311ab64890Smrg Window /* win */, 4321ab64890Smrg int /* deviceSpec */, 4331ab64890Smrg int /* bellClass */, 4341ab64890Smrg int /* bellID */, 4351ab64890Smrg int /* percent */, 4361ab64890Smrg Atom /* name */ 4371ab64890Smrg); 4381ab64890Smrg 4391ab64890Smrgextern Bool XkbForceDeviceBell( 4401ab64890Smrg Display * /* dpy */, 4411ab64890Smrg int /* deviceSpec */, 4421ab64890Smrg int /* bellClass */, 4431ab64890Smrg int /* bellID */, 4441ab64890Smrg int /* percent */ 4451ab64890Smrg); 4461ab64890Smrg 4471ab64890Smrgextern Bool XkbDeviceBellEvent( 4481ab64890Smrg Display * /* dpy */, 4491ab64890Smrg Window /* win */, 4501ab64890Smrg int /* deviceSpec */, 4511ab64890Smrg int /* bellClass */, 4521ab64890Smrg int /* bellID */, 4531ab64890Smrg int /* percent */, 4541ab64890Smrg Atom /* name */ 4551ab64890Smrg); 4561ab64890Smrg 4571ab64890Smrgextern Bool XkbBell( 4581ab64890Smrg Display * /* dpy */, 4591ab64890Smrg Window /* win */, 4601ab64890Smrg int /* percent */, 4611ab64890Smrg Atom /* name */ 4621ab64890Smrg); 4631ab64890Smrg 4641ab64890Smrgextern Bool XkbForceBell( 4651ab64890Smrg Display * /* dpy */, 4661ab64890Smrg int /* percent */ 4671ab64890Smrg); 4681ab64890Smrg 4691ab64890Smrgextern Bool XkbBellEvent( 4701ab64890Smrg Display * /* dpy */, 4711ab64890Smrg Window /* win */, 4721ab64890Smrg int /* percent */, 4731ab64890Smrg Atom /* name */ 4741ab64890Smrg); 4751ab64890Smrg 4761ab64890Smrgextern Bool XkbSelectEvents( 4771ab64890Smrg Display * /* dpy */, 4781ab64890Smrg unsigned int /* deviceID */, 4791ab64890Smrg unsigned int /* affect */, 4801ab64890Smrg unsigned int /* values */ 4811ab64890Smrg); 4821ab64890Smrg 4831ab64890Smrgextern Bool XkbSelectEventDetails( 4841ab64890Smrg Display * /* dpy */, 4851ab64890Smrg unsigned int /* deviceID */, 4861ab64890Smrg unsigned int /* eventType */, 4871ab64890Smrg unsigned long /* affect */, 4881ab64890Smrg unsigned long /* details */ 4891ab64890Smrg); 4901ab64890Smrg 4911ab64890Smrgextern void XkbNoteMapChanges( 4921ab64890Smrg XkbMapChangesPtr /* old */, 4931ab64890Smrg XkbMapNotifyEvent * /* new */, 4941ab64890Smrg unsigned int /* wanted */ 4951ab64890Smrg); 4961ab64890Smrg 4971ab64890Smrgextern void XkbNoteNameChanges( 4981ab64890Smrg XkbNameChangesPtr /* old */, 4991ab64890Smrg XkbNamesNotifyEvent * /* new */, 5001ab64890Smrg unsigned int /* wanted */ 5011ab64890Smrg); 5021ab64890Smrg 5031ab64890Smrgextern Status XkbGetIndicatorState( 5041ab64890Smrg Display * /* dpy */, 5051ab64890Smrg unsigned int /* deviceSpec */, 5061ab64890Smrg unsigned int * /* pStateRtrn */ 5071ab64890Smrg); 5081ab64890Smrg 5091ab64890Smrgextern Status XkbGetDeviceIndicatorState( 5101ab64890Smrg Display * /* dpy */, 5111ab64890Smrg unsigned int /* deviceSpec */, 5121ab64890Smrg unsigned int /* ledClass */, 5131ab64890Smrg unsigned int /* ledID */, 5141ab64890Smrg unsigned int * /* pStateRtrn */ 5151ab64890Smrg); 5161ab64890Smrg 5171ab64890Smrgextern Status XkbGetIndicatorMap( 5181ab64890Smrg Display * /* dpy */, 5191ab64890Smrg unsigned long /* which */, 5201ab64890Smrg XkbDescPtr /* desc */ 5211ab64890Smrg); 5221ab64890Smrg 5231ab64890Smrgextern Bool XkbSetIndicatorMap( 5241ab64890Smrg Display * /* dpy */, 5251ab64890Smrg unsigned long /* which */, 5261ab64890Smrg XkbDescPtr /* desc */ 5271ab64890Smrg); 5281ab64890Smrg 5291ab64890Smrg#define XkbNoteIndicatorMapChanges(o,n,w) \ 5301ab64890Smrg ((o)->map_changes|=((n)->map_changes&(w))) 5311ab64890Smrg#define XkbNoteIndicatorStateChanges(o,n,w)\ 5321ab64890Smrg ((o)->state_changes|=((n)->state_changes&(w))) 5331ab64890Smrg#define XkbGetIndicatorMapChanges(d,x,c) \ 53461b2299dSmrg (XkbGetIndicatorMap((d),(c)->map_changes,x)) 5351ab64890Smrg#define XkbChangeIndicatorMaps(d,x,c) \ 5361ab64890Smrg (XkbSetIndicatorMap((d),(c)->map_changes,x)) 5371ab64890Smrg 5381ab64890Smrgextern Bool XkbGetNamedIndicator( 5391ab64890Smrg Display * /* dpy */, 5401ab64890Smrg Atom /* name */, 5411ab64890Smrg int * /* pNdxRtrn */, 5421ab64890Smrg Bool * /* pStateRtrn */, 5431ab64890Smrg XkbIndicatorMapPtr /* pMapRtrn */, 5441ab64890Smrg Bool * /* pRealRtrn */ 5451ab64890Smrg); 5461ab64890Smrg 5471ab64890Smrgextern Bool XkbGetNamedDeviceIndicator( 5481ab64890Smrg Display * /* dpy */, 5491ab64890Smrg unsigned int /* deviceSpec */, 5501ab64890Smrg unsigned int /* ledClass */, 5511ab64890Smrg unsigned int /* ledID */, 5521ab64890Smrg Atom /* name */, 5531ab64890Smrg int * /* pNdxRtrn */, 5541ab64890Smrg Bool * /* pStateRtrn */, 5551ab64890Smrg XkbIndicatorMapPtr /* pMapRtrn */, 5561ab64890Smrg Bool * /* pRealRtrn */ 5571ab64890Smrg); 5581ab64890Smrg 5591ab64890Smrgextern Bool XkbSetNamedIndicator( 5601ab64890Smrg Display * /* dpy */, 5611ab64890Smrg Atom /* name */, 5621ab64890Smrg Bool /* changeState */, 5631ab64890Smrg Bool /* state */, 5641ab64890Smrg Bool /* createNewMap */, 5651ab64890Smrg XkbIndicatorMapPtr /* pMap */ 5661ab64890Smrg); 5671ab64890Smrg 5681ab64890Smrgextern Bool XkbSetNamedDeviceIndicator( 5691ab64890Smrg Display * /* dpy */, 5701ab64890Smrg unsigned int /* deviceSpec */, 5711ab64890Smrg unsigned int /* ledClass */, 5721ab64890Smrg unsigned int /* ledID */, 5731ab64890Smrg Atom /* name */, 5741ab64890Smrg Bool /* changeState */, 5751ab64890Smrg Bool /* state */, 5761ab64890Smrg Bool /* createNewMap */, 5771ab64890Smrg XkbIndicatorMapPtr /* pMap */ 5781ab64890Smrg); 5791ab64890Smrg 5801ab64890Smrgextern Bool XkbLockModifiers( 5811ab64890Smrg Display * /* dpy */, 5821ab64890Smrg unsigned int /* deviceSpec */, 5831ab64890Smrg unsigned int /* affect */, 5841ab64890Smrg unsigned int /* values */ 5851ab64890Smrg); 5861ab64890Smrg 5871ab64890Smrgextern Bool XkbLatchModifiers( 5881ab64890Smrg Display * /* dpy */, 5891ab64890Smrg unsigned int /* deviceSpec */, 5901ab64890Smrg unsigned int /* affect */, 5911ab64890Smrg unsigned int /* values */ 5921ab64890Smrg); 5931ab64890Smrg 5941ab64890Smrgextern Bool XkbLockGroup( 5951ab64890Smrg Display * /* dpy */, 5961ab64890Smrg unsigned int /* deviceSpec */, 5971ab64890Smrg unsigned int /* group */ 5981ab64890Smrg); 5991ab64890Smrg 6001ab64890Smrgextern Bool XkbLatchGroup( 6011ab64890Smrg Display * /* dpy */, 6021ab64890Smrg unsigned int /* deviceSpec */, 6031ab64890Smrg unsigned int /* group */ 6041ab64890Smrg); 6051ab64890Smrg 6061ab64890Smrgextern Bool XkbSetServerInternalMods( 6071ab64890Smrg Display * /* dpy */, 6081ab64890Smrg unsigned int /* deviceSpec */, 6091ab64890Smrg unsigned int /* affectReal */, 6101ab64890Smrg unsigned int /* realValues */, 6111ab64890Smrg unsigned int /* affectVirtual */, 6121ab64890Smrg unsigned int /* virtualValues */ 6131ab64890Smrg); 6141ab64890Smrg 6151ab64890Smrgextern Bool XkbSetIgnoreLockMods( 6161ab64890Smrg Display * /* dpy */, 6171ab64890Smrg unsigned int /* deviceSpec */, 6181ab64890Smrg unsigned int /* affectReal */, 6191ab64890Smrg unsigned int /* realValues */, 6201ab64890Smrg unsigned int /* affectVirtual */, 6211ab64890Smrg unsigned int /* virtualValues */ 6221ab64890Smrg); 6231ab64890Smrg 6241ab64890Smrg 6251ab64890Smrgextern Bool XkbVirtualModsToReal( 6261ab64890Smrg XkbDescPtr /* xkb */, 6271ab64890Smrg unsigned int /* virtual_mask */, 6281ab64890Smrg unsigned int * /* mask_rtrn */ 6291ab64890Smrg); 6301ab64890Smrg 6311ab64890Smrgextern Bool XkbComputeEffectiveMap( 6321ab64890Smrg XkbDescPtr /* xkb */, 6331ab64890Smrg XkbKeyTypePtr /* type */, 6341ab64890Smrg unsigned char * /* map_rtrn */ 6351ab64890Smrg); 6361ab64890Smrg 6371ab64890Smrgextern Status XkbInitCanonicalKeyTypes( 6381ab64890Smrg XkbDescPtr /* xkb */, 6391ab64890Smrg unsigned int /* which */, 6401ab64890Smrg int /* keypadVMod */ 6411ab64890Smrg); 6421ab64890Smrg 6431ab64890Smrgextern XkbDescPtr XkbAllocKeyboard( 6441ab64890Smrg void 6451ab64890Smrg); 6461ab64890Smrg 6471ab64890Smrgextern void XkbFreeKeyboard( 6481ab64890Smrg XkbDescPtr /* xkb */, 6491ab64890Smrg unsigned int /* which */, 6501ab64890Smrg Bool /* freeDesc */ 6511ab64890Smrg); 6521ab64890Smrg 6531ab64890Smrgextern Status XkbAllocClientMap( 6541ab64890Smrg XkbDescPtr /* xkb */, 6551ab64890Smrg unsigned int /* which */, 6561ab64890Smrg unsigned int /* nTypes */ 6571ab64890Smrg); 6581ab64890Smrg 6591ab64890Smrgextern Status XkbAllocServerMap( 6601ab64890Smrg XkbDescPtr /* xkb */, 6611ab64890Smrg unsigned int /* which */, 6621ab64890Smrg unsigned int /* nActions */ 6631ab64890Smrg); 6641ab64890Smrg 6651ab64890Smrgextern void XkbFreeClientMap( 6661ab64890Smrg XkbDescPtr /* xkb */, 6671ab64890Smrg unsigned int /* what */, 6681ab64890Smrg Bool /* freeMap */ 6691ab64890Smrg); 6701ab64890Smrg 6711ab64890Smrgextern void XkbFreeServerMap( 6721ab64890Smrg XkbDescPtr /* xkb */, 6731ab64890Smrg unsigned int /* what */, 6741ab64890Smrg Bool /* freeMap */ 6751ab64890Smrg); 6761ab64890Smrg 6771ab64890Smrgextern XkbKeyTypePtr XkbAddKeyType( 6781ab64890Smrg XkbDescPtr /* xkb */, 6791ab64890Smrg Atom /* name */, 6801ab64890Smrg int /* map_count */, 6811ab64890Smrg Bool /* want_preserve */, 6821ab64890Smrg int /* num_lvls */ 6831ab64890Smrg); 6841ab64890Smrg 6851ab64890Smrgextern Status XkbAllocIndicatorMaps( 6861ab64890Smrg XkbDescPtr /* xkb */ 6871ab64890Smrg); 6881ab64890Smrg 6891ab64890Smrgextern void XkbFreeIndicatorMaps( 6901ab64890Smrg XkbDescPtr /* xkb */ 6911ab64890Smrg); 6921ab64890Smrg 6931ab64890Smrgextern XkbDescPtr XkbGetMap( 6941ab64890Smrg Display * /* dpy */, 6951ab64890Smrg unsigned int /* which */, 6961ab64890Smrg unsigned int /* deviceSpec */ 6971ab64890Smrg); 6981ab64890Smrg 6991ab64890Smrgextern Status XkbGetUpdatedMap( 7001ab64890Smrg Display * /* dpy */, 7011ab64890Smrg unsigned int /* which */, 7021ab64890Smrg XkbDescPtr /* desc */ 7031ab64890Smrg); 7041ab64890Smrg 7051ab64890Smrgextern Status XkbGetMapChanges( 7061ab64890Smrg Display * /* dpy */, 7071ab64890Smrg XkbDescPtr /* xkb */, 7081ab64890Smrg XkbMapChangesPtr /* changes */ 7091ab64890Smrg); 7101ab64890Smrg 7111ab64890Smrg 7121ab64890Smrgextern Status XkbRefreshKeyboardMapping( 7131ab64890Smrg XkbMapNotifyEvent * /* event */ 7141ab64890Smrg); 7151ab64890Smrg 7161ab64890Smrgextern Status XkbGetKeyTypes( 7171ab64890Smrg Display * /* dpy */, 7181ab64890Smrg unsigned int /* first */, 7191ab64890Smrg unsigned int /* num */, 7201ab64890Smrg XkbDescPtr /* xkb */ 7211ab64890Smrg); 7221ab64890Smrg 7231ab64890Smrgextern Status XkbGetKeySyms( 7241ab64890Smrg Display * /* dpy */, 7251ab64890Smrg unsigned int /* first */, 7261ab64890Smrg unsigned int /* num */, 7271ab64890Smrg XkbDescPtr /* xkb */ 7281ab64890Smrg); 7291ab64890Smrg 7301ab64890Smrgextern Status XkbGetKeyActions( 7311ab64890Smrg Display * /* dpy */, 7321ab64890Smrg unsigned int /* first */, 7331ab64890Smrg unsigned int /* num */, 7341ab64890Smrg XkbDescPtr /* xkb */ 7351ab64890Smrg); 7361ab64890Smrg 7371ab64890Smrgextern Status XkbGetKeyBehaviors( 7381ab64890Smrg Display * /* dpy */, 7391ab64890Smrg unsigned int /* firstKey */, 7401ab64890Smrg unsigned int /* nKeys */, 7411ab64890Smrg XkbDescPtr /* desc */ 7421ab64890Smrg); 7431ab64890Smrg 7441ab64890Smrgextern Status XkbGetVirtualMods( 7451ab64890Smrg Display * /* dpy */, 7461ab64890Smrg unsigned int /* which */, 7471ab64890Smrg XkbDescPtr /* desc */ 7481ab64890Smrg); 7491ab64890Smrg 7501ab64890Smrgextern Status XkbGetKeyExplicitComponents( 7511ab64890Smrg Display * /* dpy */, 7521ab64890Smrg unsigned int /* firstKey */, 7531ab64890Smrg unsigned int /* nKeys */, 7541ab64890Smrg XkbDescPtr /* desc */ 7551ab64890Smrg); 7561ab64890Smrg 7571ab64890Smrgextern Status XkbGetKeyModifierMap( 7581ab64890Smrg Display * /* dpy */, 7591ab64890Smrg unsigned int /* firstKey */, 7601ab64890Smrg unsigned int /* nKeys */, 7611ab64890Smrg XkbDescPtr /* desc */ 7621ab64890Smrg); 7631ab64890Smrg 7641ab64890Smrgextern Status XkbGetKeyVirtualModMap( 7651ab64890Smrg Display * /* dpy */, 7661ab64890Smrg unsigned int /* first */, 7671ab64890Smrg unsigned int /* num */, 7681ab64890Smrg XkbDescPtr /* xkb */ 7691ab64890Smrg); 7701ab64890Smrg 7711ab64890Smrgextern Status XkbAllocControls( 7721ab64890Smrg XkbDescPtr /* xkb */, 7731ab64890Smrg unsigned int /* which*/ 7741ab64890Smrg); 7751ab64890Smrg 7761ab64890Smrgextern void XkbFreeControls( 7771ab64890Smrg XkbDescPtr /* xkb */, 7781ab64890Smrg unsigned int /* which */, 7791ab64890Smrg Bool /* freeMap */ 7801ab64890Smrg); 7811ab64890Smrg 7821ab64890Smrgextern Status XkbGetControls( 7831ab64890Smrg Display * /* dpy */, 7841ab64890Smrg unsigned long /* which */, 7851ab64890Smrg XkbDescPtr /* desc */ 7861ab64890Smrg); 7871ab64890Smrg 7881ab64890Smrgextern Bool XkbSetControls( 7891ab64890Smrg Display * /* dpy */, 7901ab64890Smrg unsigned long /* which */, 7911ab64890Smrg XkbDescPtr /* desc */ 7921ab64890Smrg); 7931ab64890Smrg 7941ab64890Smrgextern void XkbNoteControlsChanges( 7951ab64890Smrg XkbControlsChangesPtr /* old */, 7961ab64890Smrg XkbControlsNotifyEvent * /* new */, 7971ab64890Smrg unsigned int /* wanted */ 7981ab64890Smrg); 7991ab64890Smrg 8001ab64890Smrg#define XkbGetControlsChanges(d,x,c) XkbGetControls(d,(c)->changed_ctrls,x) 8011ab64890Smrg#define XkbChangeControls(d,x,c) XkbSetControls(d,(c)->changed_ctrls,x) 8021ab64890Smrg 8031ab64890Smrgextern Status XkbAllocCompatMap( 8041ab64890Smrg XkbDescPtr /* xkb */, 8051ab64890Smrg unsigned int /* which */, 8061ab64890Smrg unsigned int /* nInterpret */ 8071ab64890Smrg); 8081ab64890Smrg 8091ab64890Smrgextern void XkbFreeCompatMap( 8101ab64890Smrg XkbDescPtr /* xkb */, 8111ab64890Smrg unsigned int /* which */, 8121ab64890Smrg Bool /* freeMap */ 8131ab64890Smrg); 8141ab64890Smrg 8151ab64890Smrgextern Status XkbGetCompatMap( 8161ab64890Smrg Display * /* dpy */, 8171ab64890Smrg unsigned int /* which */, 8181ab64890Smrg XkbDescPtr /* xkb */ 8191ab64890Smrg); 8201ab64890Smrg 8211ab64890Smrgextern Bool XkbSetCompatMap( 8221ab64890Smrg Display * /* dpy */, 8231ab64890Smrg unsigned int /* which */, 8241ab64890Smrg XkbDescPtr /* xkb */, 8251ab64890Smrg Bool /* updateActions */ 8261ab64890Smrg); 8271ab64890Smrg 8281ab64890Smrgextern XkbSymInterpretPtr XkbAddSymInterpret( 8291ab64890Smrg XkbDescPtr /* xkb */, 8301ab64890Smrg XkbSymInterpretPtr /* si */, 8311ab64890Smrg Bool /* updateMap */, 8321ab64890Smrg XkbChangesPtr /* changes */ 8331ab64890Smrg); 8341ab64890Smrg 8351ab64890Smrgextern Status XkbAllocNames( 8361ab64890Smrg XkbDescPtr /* xkb */, 8371ab64890Smrg unsigned int /* which */, 8381ab64890Smrg int /* nTotalRG */, 8391ab64890Smrg int /* nTotalAliases */ 8401ab64890Smrg); 8411ab64890Smrg 8421ab64890Smrgextern Status XkbGetNames( 8431ab64890Smrg Display * /* dpy */, 8441ab64890Smrg unsigned int /* which */, 8451ab64890Smrg XkbDescPtr /* desc */ 8461ab64890Smrg); 8471ab64890Smrg 8481ab64890Smrgextern Bool XkbSetNames( 8491ab64890Smrg Display * /* dpy */, 8501ab64890Smrg unsigned int /* which */, 8511ab64890Smrg unsigned int /* firstType */, 8521ab64890Smrg unsigned int /* nTypes */, 8531ab64890Smrg XkbDescPtr /* desc */ 8541ab64890Smrg); 8551ab64890Smrg 8561ab64890Smrgextern Bool XkbChangeNames( 8571ab64890Smrg Display * /* dpy */, 8581ab64890Smrg XkbDescPtr /* xkb */, 8591ab64890Smrg XkbNameChangesPtr /* changes */ 8601ab64890Smrg); 8611ab64890Smrg 8621ab64890Smrgextern void XkbFreeNames( 8631ab64890Smrg XkbDescPtr /* xkb */, 8641ab64890Smrg unsigned int /* which */, 8651ab64890Smrg Bool /* freeMap */ 8661ab64890Smrg); 8671ab64890Smrg 8681ab64890Smrg 8691ab64890Smrgextern Status XkbGetState( 8701ab64890Smrg Display * /* dpy */, 8711ab64890Smrg unsigned int /* deviceSpec */, 8721ab64890Smrg XkbStatePtr /* rtrnState */ 8731ab64890Smrg); 8741ab64890Smrg 8751ab64890Smrgextern Bool XkbSetMap( 8761ab64890Smrg Display * /* dpy */, 8771ab64890Smrg unsigned int /* which */, 8781ab64890Smrg XkbDescPtr /* desc */ 8791ab64890Smrg); 8801ab64890Smrg 8811ab64890Smrgextern Bool XkbChangeMap( 8821ab64890Smrg Display* /* dpy */, 8831ab64890Smrg XkbDescPtr /* desc */, 8841ab64890Smrg XkbMapChangesPtr /* changes */ 8851ab64890Smrg); 8861ab64890Smrg 8871ab64890Smrgextern Bool XkbSetDetectableAutoRepeat( 8881ab64890Smrg Display * /* dpy */, 8891ab64890Smrg Bool /* detectable */, 8901ab64890Smrg Bool * /* supported */ 8911ab64890Smrg); 8921ab64890Smrg 8931ab64890Smrgextern Bool XkbGetDetectableAutoRepeat( 8941ab64890Smrg Display * /* dpy */, 8951ab64890Smrg Bool * /* supported */ 8961ab64890Smrg); 8971ab64890Smrg 8981ab64890Smrgextern Bool XkbSetAutoResetControls( 8991ab64890Smrg Display * /* dpy */, 9001ab64890Smrg unsigned int /* changes */, 9011ab64890Smrg unsigned int * /* auto_ctrls */, 9021ab64890Smrg unsigned int * /* auto_values */ 9031ab64890Smrg); 9041ab64890Smrg 9051ab64890Smrgextern Bool XkbGetAutoResetControls( 9061ab64890Smrg Display * /* dpy */, 9071ab64890Smrg unsigned int * /* auto_ctrls */, 9081ab64890Smrg unsigned int * /* auto_ctrl_values */ 9091ab64890Smrg); 9101ab64890Smrg 9111ab64890Smrgextern Bool XkbSetPerClientControls( 9121ab64890Smrg Display * /* dpy */, 9131ab64890Smrg unsigned int /* change */, 9141ab64890Smrg unsigned int * /* values */ 9151ab64890Smrg); 9161ab64890Smrg 9171ab64890Smrgextern Bool XkbGetPerClientControls( 9181ab64890Smrg Display * /* dpy */, 9191ab64890Smrg unsigned int * /* ctrls */ 9201ab64890Smrg); 9211ab64890Smrg 9221ab64890Smrgextern Status XkbCopyKeyType( 9231ab64890Smrg XkbKeyTypePtr /* from */, 9241ab64890Smrg XkbKeyTypePtr /* into */ 9251ab64890Smrg); 9261ab64890Smrg 9271ab64890Smrgextern Status XkbCopyKeyTypes( 9281ab64890Smrg XkbKeyTypePtr /* from */, 9291ab64890Smrg XkbKeyTypePtr /* into */, 9301ab64890Smrg int /* num_types */ 9311ab64890Smrg); 9321ab64890Smrg 9331ab64890Smrgextern Status XkbResizeKeyType( 9341ab64890Smrg XkbDescPtr /* xkb */, 9351ab64890Smrg int /* type_ndx */, 9361ab64890Smrg int /* map_count */, 9371ab64890Smrg Bool /* want_preserve */, 9381ab64890Smrg int /* new_num_lvls */ 9391ab64890Smrg); 9401ab64890Smrg 9411ab64890Smrgextern KeySym *XkbResizeKeySyms( 9421ab64890Smrg XkbDescPtr /* desc */, 9431ab64890Smrg int /* forKey */, 9441ab64890Smrg int /* symsNeeded */ 9451ab64890Smrg); 9461ab64890Smrg 9471ab64890Smrgextern XkbAction *XkbResizeKeyActions( 9481ab64890Smrg XkbDescPtr /* desc */, 9491ab64890Smrg int /* forKey */, 9501ab64890Smrg int /* actsNeeded */ 9511ab64890Smrg); 9521ab64890Smrg 9531ab64890Smrgextern Status XkbChangeTypesOfKey( 9541ab64890Smrg XkbDescPtr /* xkb */, 9551ab64890Smrg int /* key */, 9561ab64890Smrg int /* num_groups */, 9571ab64890Smrg unsigned int /* groups */, 9581ab64890Smrg int * /* newTypes */, 9591ab64890Smrg XkbMapChangesPtr /* pChanges */ 9601ab64890Smrg); 9611ab64890Smrg 9621ab64890Smrgextern Status XkbChangeKeycodeRange( 9631ab64890Smrg XkbDescPtr /* xkb */, 9641ab64890Smrg int /* minKC */, 9651ab64890Smrg int /* maxKC */, 9661ab64890Smrg XkbChangesPtr /* changes */ 9671ab64890Smrg); 9681ab64890Smrg 9691ab64890Smrg/***====================================================================***/ 9701ab64890Smrg 9711ab64890Smrgextern XkbComponentListPtr XkbListComponents( 9721ab64890Smrg Display * /* dpy */, 9731ab64890Smrg unsigned int /* deviceSpec */, 9741ab64890Smrg XkbComponentNamesPtr /* ptrns */, 9751ab64890Smrg int * /* max_inout */ 9761ab64890Smrg); 9771ab64890Smrg 9781ab64890Smrgextern void XkbFreeComponentList( 9791ab64890Smrg XkbComponentListPtr /* list */ 9801ab64890Smrg); 9811ab64890Smrg 9821ab64890Smrgextern XkbDescPtr XkbGetKeyboard( 9831ab64890Smrg Display * /* dpy */, 9841ab64890Smrg unsigned int /* which */, 9851ab64890Smrg unsigned int /* deviceSpec */ 9861ab64890Smrg); 9871ab64890Smrg 9881ab64890Smrgextern XkbDescPtr XkbGetKeyboardByName( 9891ab64890Smrg Display * /* dpy */, 9901ab64890Smrg unsigned int /* deviceSpec */, 9911ab64890Smrg XkbComponentNamesPtr /* names */, 9921ab64890Smrg unsigned int /* want */, 9931ab64890Smrg unsigned int /* need */, 9941ab64890Smrg Bool /* load */ 9951ab64890Smrg); 9961ab64890Smrg 9971ab64890Smrg/***====================================================================***/ 9981ab64890Smrg 9991ab64890Smrgextern int XkbKeyTypesForCoreSymbols( /* returns # of groups */ 10001ab64890Smrg XkbDescPtr /* xkb */, /* keyboard device */ 10011ab64890Smrg int /* map_width */, /* width of core KeySym array */ 10021ab64890Smrg KeySym * /* core_syms */, /* always mapWidth symbols */ 10031ab64890Smrg unsigned int /* protected */, /* explicit key types */ 10041ab64890Smrg int * /* types_inout */, /* always four type indices */ 10051ab64890Smrg KeySym * /* xkb_syms_rtrn */ /* must have enough space */ 10061ab64890Smrg); 10071ab64890Smrg 10081ab64890Smrgextern Bool XkbApplyCompatMapToKey( /* False only on error */ 10091ab64890Smrg XkbDescPtr /* xkb */, /* keymap to be edited */ 10101ab64890Smrg KeyCode /* key */, /* key to be updated */ 10111ab64890Smrg XkbChangesPtr /* changes */ /* resulting changes to map */ 10121ab64890Smrg); 10131ab64890Smrg 10141ab64890Smrgextern Bool XkbUpdateMapFromCore( /* False only on error */ 10151ab64890Smrg XkbDescPtr /* xkb */, /* XKB keyboard to be edited */ 10161ab64890Smrg KeyCode /* first_key */, /* first changed key */ 10171ab64890Smrg int /* num_keys */, /* number of changed keys */ 10181ab64890Smrg int /* map_width */, /* width of core keymap */ 10191ab64890Smrg KeySym * /* core_keysyms */, /* symbols from core keymap */ 10201ab64890Smrg XkbChangesPtr /* changes */ /* resulting changes */ 10211ab64890Smrg); 10221ab64890Smrg 10231ab64890Smrg/***====================================================================***/ 10241ab64890Smrg 10251ab64890Smrgextern XkbDeviceLedInfoPtr XkbAddDeviceLedInfo( 10261ab64890Smrg XkbDeviceInfoPtr /* devi */, 10271ab64890Smrg unsigned int /* ledClass */, 10281ab64890Smrg unsigned int /* ledId */ 10291ab64890Smrg); 10301ab64890Smrg 10311ab64890Smrgextern Status XkbResizeDeviceButtonActions( 10321ab64890Smrg XkbDeviceInfoPtr /* devi */, 10331ab64890Smrg unsigned int /* newTotal */ 10341ab64890Smrg); 10351ab64890Smrg 10361ab64890Smrgextern XkbDeviceInfoPtr XkbAllocDeviceInfo( 10371ab64890Smrg unsigned int /* deviceSpec */, 10381ab64890Smrg unsigned int /* nButtons */, 10391ab64890Smrg unsigned int /* szLeds */ 10401ab64890Smrg); 10411ab64890Smrg 10421ab64890Smrgextern void XkbFreeDeviceInfo( 10431ab64890Smrg XkbDeviceInfoPtr /* devi */, 10441ab64890Smrg unsigned int /* which */, 10451ab64890Smrg Bool /* freeDevI */ 10461ab64890Smrg); 10471ab64890Smrg 10481ab64890Smrgextern void XkbNoteDeviceChanges( 10491ab64890Smrg XkbDeviceChangesPtr /* old */, 10501ab64890Smrg XkbExtensionDeviceNotifyEvent * /* new */, 10511ab64890Smrg unsigned int /* wanted */ 10521ab64890Smrg); 10531ab64890Smrg 10541ab64890Smrgextern XkbDeviceInfoPtr XkbGetDeviceInfo( 10551ab64890Smrg Display * /* dpy */, 10561ab64890Smrg unsigned int /* which */, 10571ab64890Smrg unsigned int /* deviceSpec */, 10581ab64890Smrg unsigned int /* ledClass */, 10591ab64890Smrg unsigned int /* ledID */ 10601ab64890Smrg); 10611ab64890Smrg 10621ab64890Smrgextern Status XkbGetDeviceInfoChanges( 10631ab64890Smrg Display * /* dpy */, 10641ab64890Smrg XkbDeviceInfoPtr /* devi */, 10651ab64890Smrg XkbDeviceChangesPtr /* changes */ 10661ab64890Smrg); 10671ab64890Smrg 10681ab64890Smrgextern Status XkbGetDeviceButtonActions( 10691ab64890Smrg Display * /* dpy */, 10701ab64890Smrg XkbDeviceInfoPtr /* devi */, 10711ab64890Smrg Bool /* all */, 10721ab64890Smrg unsigned int /* first */, 10731ab64890Smrg unsigned int /* nBtns */ 10741ab64890Smrg); 10751ab64890Smrg 10761ab64890Smrgextern Status XkbGetDeviceLedInfo( 10771ab64890Smrg Display * /* dpy */, 10781ab64890Smrg XkbDeviceInfoPtr /* devi */, 10791ab64890Smrg unsigned int /* ledClass (class, XIDflt, XIAll) */, 10801ab64890Smrg unsigned int /* ledId (id, XIDflt, XIAll) */, 10811ab64890Smrg unsigned int /* which (XkbXI_Indicator{Names,Map}Mask */ 10821ab64890Smrg); 10831ab64890Smrg 10841ab64890Smrgextern Bool XkbSetDeviceInfo( 10851ab64890Smrg Display * /* dpy */, 10861ab64890Smrg unsigned int /* which */, 10871ab64890Smrg XkbDeviceInfoPtr /* devi */ 10881ab64890Smrg); 10891ab64890Smrg 10901ab64890Smrgextern Bool XkbChangeDeviceInfo( 10911ab64890Smrg Display* /* dpy */, 10921ab64890Smrg XkbDeviceInfoPtr /* desc */, 10931ab64890Smrg XkbDeviceChangesPtr /* changes */ 10941ab64890Smrg); 10951ab64890Smrg 10961ab64890Smrgextern Bool XkbSetDeviceLedInfo( 10971ab64890Smrg Display * /* dpy */, 10981ab64890Smrg XkbDeviceInfoPtr /* devi */, 10991ab64890Smrg unsigned int /* ledClass */, 11001ab64890Smrg unsigned int /* ledID */, 11011ab64890Smrg unsigned int /* which */ 11021ab64890Smrg); 11031ab64890Smrg 11041ab64890Smrgextern Bool XkbSetDeviceButtonActions( 11051ab64890Smrg Display * /* dpy */, 11061ab64890Smrg XkbDeviceInfoPtr /* devi */, 11071ab64890Smrg unsigned int /* first */, 11081ab64890Smrg unsigned int /* nBtns */ 11091ab64890Smrg); 11101ab64890Smrg 11111ab64890Smrg/***====================================================================***/ 11121ab64890Smrg 11131ab64890Smrgextern char XkbToControl( 11141ab64890Smrg char /* c */ 11151ab64890Smrg); 11161ab64890Smrg 11171ab64890Smrg/***====================================================================***/ 11181ab64890Smrg 11191ab64890Smrgextern Bool XkbSetDebuggingFlags( 11201ab64890Smrg Display * /* dpy */, 11211ab64890Smrg unsigned int /* mask */, 11221ab64890Smrg unsigned int /* flags */, 11231ab64890Smrg char * /* msg */, 11241ab64890Smrg unsigned int /* ctrls_mask */, 11251ab64890Smrg unsigned int /* ctrls */, 11261ab64890Smrg unsigned int * /* rtrn_flags */, 11271ab64890Smrg unsigned int * /* rtrn_ctrls */ 11281ab64890Smrg); 11291ab64890Smrg 11301ab64890Smrgextern Bool XkbApplyVirtualModChanges( 11311ab64890Smrg XkbDescPtr /* xkb */, 11321ab64890Smrg unsigned int /* changed */, 11331ab64890Smrg XkbChangesPtr /* changes */ 11341ab64890Smrg); 11351ab64890Smrg 11361ab64890Smrgextern Bool XkbUpdateActionVirtualMods( 11371ab64890Smrg XkbDescPtr /* xkb */, 11381ab64890Smrg XkbAction * /* act */, 11391ab64890Smrg unsigned int /* changed */ 11401ab64890Smrg); 11411ab64890Smrg 11421ab64890Smrgextern void XkbUpdateKeyTypeVirtualMods( 11431ab64890Smrg XkbDescPtr /* xkb */, 11441ab64890Smrg XkbKeyTypePtr /* type */, 11451ab64890Smrg unsigned int /* changed */, 11461ab64890Smrg XkbChangesPtr /* changes */ 11471ab64890Smrg); 11481ab64890Smrg 11491ab64890Smrg_XFUNCPROTOEND 11501ab64890Smrg 11511ab64890Smrg#endif /* _XKBLIB_H_ */ 1152