Path: blob/master/thirdparty/linuxbsd_headers/X11/XKBlib.h
9898 views
/************************************************************1Copyright (c) 1993 by Silicon Graphics Computer Systems, Inc.23Permission to use, copy, modify, and distribute this4software and its documentation for any purpose and without5fee is hereby granted, provided that the above copyright6notice appear in all copies and that both that copyright7notice and this permission notice appear in supporting8documentation, and that the name of Silicon Graphics not be9used in advertising or publicity pertaining to distribution10of the software without specific prior written permission.11Silicon Graphics makes no representation about the suitability12of this software for any purpose. It is provided "as is"13without any express or implied warranty.1415SILICON GRAPHICS DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS16SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY17AND FITNESS FOR A PARTICULAR PURPOSE. IN NO EVENT SHALL SILICON18GRAPHICS BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL19DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,20DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE21OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH22THE USE OR PERFORMANCE OF THIS SOFTWARE.2324********************************************************/2526#ifndef _X11_XKBLIB_H_27#define _X11_XKBLIB_H_2829#include <X11/Xlib.h>30#include <X11/extensions/XKBstr.h>3132typedef struct _XkbAnyEvent {33int type; /* XkbAnyEvent */34unsigned long serial; /* # of last req processed by server */35Bool send_event; /* is this from a SendEvent request? */36Display * display; /* Display the event was read from */37Time time; /* milliseconds */38int xkb_type; /* XKB event minor code */39unsigned int device; /* device ID */40} XkbAnyEvent;4142typedef struct _XkbNewKeyboardNotify {43int type; /* XkbAnyEvent */44unsigned long serial; /* of last req processed by server */45Bool send_event; /* is this from a SendEvent request? */46Display * display; /* Display the event was read from */47Time time; /* milliseconds */48int xkb_type; /* XkbNewKeyboardNotify */49int device; /* device ID */50int old_device; /* device ID of previous keyboard */51int min_key_code; /* minimum key code */52int max_key_code; /* maximum key code */53int old_min_key_code;/* min key code of previous kbd */54int old_max_key_code;/* max key code of previous kbd */55unsigned int changed; /* changed aspects of the keyboard */56char req_major; /* major and minor opcode of req */57char req_minor; /* that caused change, if applicable */58} XkbNewKeyboardNotifyEvent;5960typedef struct _XkbMapNotifyEvent {61int type; /* XkbAnyEvent */62unsigned long serial; /* of last req processed by server */63Bool send_event; /* is this from a SendEvent request */64Display * display; /* Display the event was read from */65Time time; /* milliseconds */66int xkb_type; /* XkbMapNotify */67int device; /* device ID */68unsigned int changed; /* fields which have been changed */69unsigned int flags; /* reserved */70int first_type; /* first changed key type */71int num_types; /* number of changed key types */72KeyCode min_key_code;73KeyCode max_key_code;74KeyCode first_key_sym;75KeyCode first_key_act;76KeyCode first_key_behavior;77KeyCode first_key_explicit;78KeyCode first_modmap_key;79KeyCode first_vmodmap_key;80int num_key_syms;81int num_key_acts;82int num_key_behaviors;83int num_key_explicit;84int num_modmap_keys;85int num_vmodmap_keys;86unsigned int vmods; /* mask of changed virtual mods */87} XkbMapNotifyEvent;8889typedef struct _XkbStateNotifyEvent {90int type; /* XkbAnyEvent */91unsigned long serial; /* # of last req processed by server */92Bool send_event; /* is this from a SendEvent request? */93Display * display; /* Display the event was read from */94Time time; /* milliseconds */95int xkb_type; /* XkbStateNotify */96int device; /* device ID */97unsigned int changed; /* mask of changed state components */98int group; /* keyboard group */99int base_group; /* base keyboard group */100int latched_group; /* latched keyboard group */101int locked_group; /* locked keyboard group */102unsigned int mods; /* modifier state */103unsigned int base_mods; /* base modifier state */104unsigned int latched_mods; /* latched modifiers */105unsigned int locked_mods; /* locked modifiers */106int compat_state; /* compatibility state */107unsigned char grab_mods; /* mods used for grabs */108unsigned char compat_grab_mods;/* grab mods for non-XKB clients */109unsigned char lookup_mods; /* mods sent to clients */110unsigned char compat_lookup_mods; /* mods sent to non-XKB clients */111int ptr_buttons; /* pointer button state */112KeyCode keycode; /* keycode that caused the change */113char event_type; /* KeyPress or KeyRelease */114char req_major; /* Major opcode of request */115char req_minor; /* Minor opcode of request */116} XkbStateNotifyEvent;117118typedef struct _XkbControlsNotify {119int type; /* XkbAnyEvent */120unsigned long serial; /* of last req processed by server */121Bool send_event; /* is this from a SendEvent request? */122Display * display; /* Display the event was read from */123Time time; /* milliseconds */124int xkb_type; /* XkbControlsNotify */125int device; /* device ID */126unsigned int changed_ctrls; /* controls with changed sub-values */127unsigned int enabled_ctrls; /* controls currently enabled */128unsigned int enabled_ctrl_changes;/* controls just {en,dis}abled */129int num_groups; /* total groups on keyboard */130KeyCode keycode; /* key that caused change or 0 */131char event_type; /* type of event that caused change */132char req_major; /* if keycode==0, major and minor */133char req_minor; /* opcode of req that caused change */134} XkbControlsNotifyEvent;135136typedef struct _XkbIndicatorNotify {137int type; /* XkbAnyEvent */138unsigned long serial; /* of last req processed by server */139Bool send_event; /* is this from a SendEvent request? */140Display * display; /* Display the event was read from */141Time time; /* milliseconds */142int xkb_type; /* XkbIndicatorNotify */143int device; /* device ID */144unsigned int changed; /* indicators with new state or map */145unsigned int state; /* current state of all indicators */146} XkbIndicatorNotifyEvent;147148typedef struct _XkbNamesNotify {149int type; /* XkbAnyEvent */150unsigned long serial; /* of last req processed by server */151Bool send_event; /* is this from a SendEvent request? */152Display * display; /* Display the event was read from */153Time time; /* milliseconds */154int xkb_type; /* XkbNamesNotify */155int device; /* device ID */156unsigned int changed; /* names that have changed */157int first_type; /* first key type with new name */158int num_types; /* number of key types with new names */159int first_lvl; /* first key type new new level names */160int num_lvls; /* # of key types w/new level names */161int num_aliases; /* total number of key aliases*/162int num_radio_groups;/* total number of radio groups */163unsigned int changed_vmods; /* virtual modifiers with new names */164unsigned int changed_groups; /* groups with new names */165unsigned int changed_indicators;/* indicators with new names */166int first_key; /* first key with new name */167int num_keys; /* number of keys with new names */168} XkbNamesNotifyEvent;169170typedef struct _XkbCompatMapNotify {171int type; /* XkbAnyEvent */172unsigned long serial; /* of last req processed by server */173Bool send_event; /* is this from a SendEvent request? */174Display * display; /* Display the event was read from */175Time time; /* milliseconds */176int xkb_type; /* XkbCompatMapNotify */177int device; /* device ID */178unsigned int changed_groups; /* groups with new compat maps */179int first_si; /* first new symbol interp */180int num_si; /* number of new symbol interps */181int num_total_si; /* total # of symbol interps */182} XkbCompatMapNotifyEvent;183184typedef struct _XkbBellNotify {185int type; /* XkbAnyEvent */186unsigned long serial; /* of last req processed by server */187Bool send_event; /* is this from a SendEvent request? */188Display * display; /* Display the event was read from */189Time time; /* milliseconds */190int xkb_type; /* XkbBellNotify */191int device; /* device ID */192int percent; /* requested volume as a % of maximum */193int pitch; /* requested pitch in Hz */194int duration; /* requested duration in useconds */195int bell_class; /* (input extension) feedback class */196int bell_id; /* (input extension) ID of feedback */197Atom name; /* "name" of requested bell */198Window window; /* window associated with event */199Bool event_only; /* "event only" requested */200} XkbBellNotifyEvent;201202typedef struct _XkbActionMessage {203int type; /* XkbAnyEvent */204unsigned long serial; /* of last req processed by server */205Bool send_event; /* is this from a SendEvent request? */206Display * display; /* Display the event was read from */207Time time; /* milliseconds */208int xkb_type; /* XkbActionMessage */209int device; /* device ID */210KeyCode keycode; /* key that generated the event */211Bool press; /* true if act caused by key press */212Bool key_event_follows;/* true if key event also generated */213int group; /* effective group */214unsigned int mods; /* effective mods */215char message[XkbActionMessageLength+1];216/* message -- leave space for NUL */217} XkbActionMessageEvent;218219typedef struct _XkbAccessXNotify {220int type; /* XkbAnyEvent */221unsigned long serial; /* of last req processed by server */222Bool send_event; /* is this from a SendEvent request? */223Display * display; /* Display the event was read from */224Time time; /* milliseconds */225int xkb_type; /* XkbAccessXNotify */226int device; /* device ID */227int detail; /* XkbAXN_* */228int keycode; /* key of event */229int sk_delay; /* current slow keys delay */230int debounce_delay; /* current debounce delay */231} XkbAccessXNotifyEvent;232233typedef struct _XkbExtensionDeviceNotify {234int type; /* XkbAnyEvent */235unsigned long serial; /* of last req processed by server */236Bool send_event; /* is this from a SendEvent request? */237Display * display; /* Display the event was read from */238Time time; /* milliseconds */239int xkb_type; /* XkbExtensionDeviceNotify */240int device; /* device ID */241unsigned int reason; /* reason for the event */242unsigned int supported; /* mask of supported features */243unsigned int unsupported; /* mask of unsupported features */244/* that some app tried to use */245int first_btn; /* first button that changed */246int num_btns; /* range of buttons changed */247unsigned int leds_defined; /* indicators with names or maps */248unsigned int led_state; /* current state of the indicators */249int led_class; /* feedback class for led changes */250int led_id; /* feedback id for led changes */251} XkbExtensionDeviceNotifyEvent;252253typedef union _XkbEvent {254int type;255XkbAnyEvent any;256XkbNewKeyboardNotifyEvent new_kbd;257XkbMapNotifyEvent map;258XkbStateNotifyEvent state;259XkbControlsNotifyEvent ctrls;260XkbIndicatorNotifyEvent indicators;261XkbNamesNotifyEvent names;262XkbCompatMapNotifyEvent compat;263XkbBellNotifyEvent bell;264XkbActionMessageEvent message;265XkbAccessXNotifyEvent accessx;266XkbExtensionDeviceNotifyEvent device;267XEvent core;268} XkbEvent;269270typedef struct _XkbKbdDpyState XkbKbdDpyStateRec,*XkbKbdDpyStatePtr;271272/* XkbOpenDisplay error codes */273#define XkbOD_Success 0274#define XkbOD_BadLibraryVersion 1275#define XkbOD_ConnectionRefused 2276#define XkbOD_NonXkbServer 3277#define XkbOD_BadServerVersion 4278279/* Values for XlibFlags */280#define XkbLC_ForceLatin1Lookup (1<<0)281#define XkbLC_ConsumeLookupMods (1<<1)282#define XkbLC_AlwaysConsumeShiftAndLock (1<<2)283#define XkbLC_IgnoreNewKeyboards (1<<3)284#define XkbLC_ControlFallback (1<<4)285#define XkbLC_ConsumeKeysOnComposeFail (1<<29)286#define XkbLC_ComposeLED (1<<30)287#define XkbLC_BeepOnComposeFail (1<<31)288289#define XkbLC_AllComposeControls (0xc0000000)290#define XkbLC_AllControls (0xc000001f)291292_XFUNCPROTOBEGIN293294extern Bool XkbIgnoreExtension(295Bool /* ignore */296);297298extern Display *XkbOpenDisplay(299char * /* name */,300int * /* ev_rtrn */,301int * /* err_rtrn */,302int * /* major_rtrn */,303int * /* minor_rtrn */,304int * /* reason */305);306307extern Bool XkbQueryExtension(308Display * /* dpy */,309int * /* opcodeReturn */,310int * /* eventBaseReturn */,311int * /* errorBaseReturn */,312int * /* majorRtrn */,313int * /* minorRtrn */314);315316extern Bool XkbUseExtension(317Display * /* dpy */,318int * /* major_rtrn */,319int * /* minor_rtrn */320);321322extern Bool XkbLibraryVersion(323int * /* libMajorRtrn */,324int * /* libMinorRtrn */325);326327extern unsigned int XkbSetXlibControls(328Display* /* dpy */,329unsigned int /* affect */,330unsigned int /* values */331);332333extern unsigned int XkbGetXlibControls(334Display* /* dpy */335);336337extern unsigned int XkbXlibControlsImplemented(void);338339typedef Atom (*XkbInternAtomFunc)(340Display * /* dpy */,341_Xconst char * /* name */,342Bool /* only_if_exists */343);344345typedef char * (*XkbGetAtomNameFunc)(346Display * /* dpy */,347Atom /* atom */348);349350extern void XkbSetAtomFuncs(351XkbInternAtomFunc /* getAtom */,352XkbGetAtomNameFunc /* getName */353);354355extern KeySym XkbKeycodeToKeysym(356Display * /* dpy */,357#if NeedWidePrototypes358unsigned int /* kc */,359#else360KeyCode /* kc */,361#endif362int /* group */,363int /* level */364);365366extern unsigned int XkbKeysymToModifiers(367Display * /* dpy */,368KeySym /* ks */369);370371extern Bool XkbLookupKeySym(372Display * /* dpy */,373KeyCode /* keycode */,374unsigned int /* modifiers */,375unsigned int * /* modifiers_return */,376KeySym * /* keysym_return */377);378379extern int XkbLookupKeyBinding(380Display * /* dpy */,381KeySym /* sym_rtrn */,382unsigned int /* mods */,383char * /* buffer */,384int /* nbytes */,385int * /* extra_rtrn */386);387388extern Bool XkbTranslateKeyCode(389XkbDescPtr /* xkb */,390KeyCode /* keycode */,391unsigned int /* modifiers */,392unsigned int * /* modifiers_return */,393KeySym * /* keysym_return */394);395396extern int XkbTranslateKeySym(397Display * /* dpy */,398KeySym * /* sym_return */,399unsigned int /* modifiers */,400char * /* buffer */,401int /* nbytes */,402int * /* extra_rtrn */403);404405extern Bool XkbSetAutoRepeatRate(406Display * /* dpy */,407unsigned int /* deviceSpec */,408unsigned int /* delay */,409unsigned int /* interval */410);411412extern Bool XkbGetAutoRepeatRate(413Display * /* dpy */,414unsigned int /* deviceSpec */,415unsigned int * /* delayRtrn */,416unsigned int * /* intervalRtrn */417);418419extern Bool XkbChangeEnabledControls(420Display * /* dpy */,421unsigned int /* deviceSpec */,422unsigned int /* affect */,423unsigned int /* values */424);425426extern Bool XkbDeviceBell(427Display * /* dpy */,428Window /* win */,429int /* deviceSpec */,430int /* bellClass */,431int /* bellID */,432int /* percent */,433Atom /* name */434);435436extern Bool XkbForceDeviceBell(437Display * /* dpy */,438int /* deviceSpec */,439int /* bellClass */,440int /* bellID */,441int /* percent */442);443444extern Bool XkbDeviceBellEvent(445Display * /* dpy */,446Window /* win */,447int /* deviceSpec */,448int /* bellClass */,449int /* bellID */,450int /* percent */,451Atom /* name */452);453454extern Bool XkbBell(455Display * /* dpy */,456Window /* win */,457int /* percent */,458Atom /* name */459);460461extern Bool XkbForceBell(462Display * /* dpy */,463int /* percent */464);465466extern Bool XkbBellEvent(467Display * /* dpy */,468Window /* win */,469int /* percent */,470Atom /* name */471);472473extern Bool XkbSelectEvents(474Display * /* dpy */,475unsigned int /* deviceID */,476unsigned int /* affect */,477unsigned int /* values */478);479480extern Bool XkbSelectEventDetails(481Display * /* dpy */,482unsigned int /* deviceID */,483unsigned int /* eventType */,484unsigned long /* affect */,485unsigned long /* details */486);487488extern void XkbNoteMapChanges(489XkbMapChangesPtr /* old */,490XkbMapNotifyEvent * /* new */,491unsigned int /* wanted */492);493494extern void XkbNoteNameChanges(495XkbNameChangesPtr /* old */,496XkbNamesNotifyEvent * /* new */,497unsigned int /* wanted */498);499500extern Status XkbGetIndicatorState(501Display * /* dpy */,502unsigned int /* deviceSpec */,503unsigned int * /* pStateRtrn */504);505506extern Status XkbGetDeviceIndicatorState(507Display * /* dpy */,508unsigned int /* deviceSpec */,509unsigned int /* ledClass */,510unsigned int /* ledID */,511unsigned int * /* pStateRtrn */512);513514extern Status XkbGetIndicatorMap(515Display * /* dpy */,516unsigned long /* which */,517XkbDescPtr /* desc */518);519520extern Bool XkbSetIndicatorMap(521Display * /* dpy */,522unsigned long /* which */,523XkbDescPtr /* desc */524);525526#define XkbNoteIndicatorMapChanges(o,n,w) \527((o)->map_changes|=((n)->map_changes&(w)))528#define XkbNoteIndicatorStateChanges(o,n,w)\529((o)->state_changes|=((n)->state_changes&(w)))530#define XkbGetIndicatorMapChanges(d,x,c) \531(XkbGetIndicatorMap((d),(c)->map_changes,x))532#define XkbChangeIndicatorMaps(d,x,c) \533(XkbSetIndicatorMap((d),(c)->map_changes,x))534535extern Bool XkbGetNamedIndicator(536Display * /* dpy */,537Atom /* name */,538int * /* pNdxRtrn */,539Bool * /* pStateRtrn */,540XkbIndicatorMapPtr /* pMapRtrn */,541Bool * /* pRealRtrn */542);543544extern Bool XkbGetNamedDeviceIndicator(545Display * /* dpy */,546unsigned int /* deviceSpec */,547unsigned int /* ledClass */,548unsigned int /* ledID */,549Atom /* name */,550int * /* pNdxRtrn */,551Bool * /* pStateRtrn */,552XkbIndicatorMapPtr /* pMapRtrn */,553Bool * /* pRealRtrn */554);555556extern Bool XkbSetNamedIndicator(557Display * /* dpy */,558Atom /* name */,559Bool /* changeState */,560Bool /* state */,561Bool /* createNewMap */,562XkbIndicatorMapPtr /* pMap */563);564565extern Bool XkbSetNamedDeviceIndicator(566Display * /* dpy */,567unsigned int /* deviceSpec */,568unsigned int /* ledClass */,569unsigned int /* ledID */,570Atom /* name */,571Bool /* changeState */,572Bool /* state */,573Bool /* createNewMap */,574XkbIndicatorMapPtr /* pMap */575);576577extern Bool XkbLockModifiers(578Display * /* dpy */,579unsigned int /* deviceSpec */,580unsigned int /* affect */,581unsigned int /* values */582);583584extern Bool XkbLatchModifiers(585Display * /* dpy */,586unsigned int /* deviceSpec */,587unsigned int /* affect */,588unsigned int /* values */589);590591extern Bool XkbLockGroup(592Display * /* dpy */,593unsigned int /* deviceSpec */,594unsigned int /* group */595);596597extern Bool XkbLatchGroup(598Display * /* dpy */,599unsigned int /* deviceSpec */,600unsigned int /* group */601);602603extern Bool XkbSetServerInternalMods(604Display * /* dpy */,605unsigned int /* deviceSpec */,606unsigned int /* affectReal */,607unsigned int /* realValues */,608unsigned int /* affectVirtual */,609unsigned int /* virtualValues */610);611612extern Bool XkbSetIgnoreLockMods(613Display * /* dpy */,614unsigned int /* deviceSpec */,615unsigned int /* affectReal */,616unsigned int /* realValues */,617unsigned int /* affectVirtual */,618unsigned int /* virtualValues */619);620621622extern Bool XkbVirtualModsToReal(623XkbDescPtr /* xkb */,624unsigned int /* virtual_mask */,625unsigned int * /* mask_rtrn */626);627628extern Bool XkbComputeEffectiveMap(629XkbDescPtr /* xkb */,630XkbKeyTypePtr /* type */,631unsigned char * /* map_rtrn */632);633634extern Status XkbInitCanonicalKeyTypes(635XkbDescPtr /* xkb */,636unsigned int /* which */,637int /* keypadVMod */638);639640extern XkbDescPtr XkbAllocKeyboard(641void642);643644extern void XkbFreeKeyboard(645XkbDescPtr /* xkb */,646unsigned int /* which */,647Bool /* freeDesc */648);649650extern Status XkbAllocClientMap(651XkbDescPtr /* xkb */,652unsigned int /* which */,653unsigned int /* nTypes */654);655656extern Status XkbAllocServerMap(657XkbDescPtr /* xkb */,658unsigned int /* which */,659unsigned int /* nActions */660);661662extern void XkbFreeClientMap(663XkbDescPtr /* xkb */,664unsigned int /* what */,665Bool /* freeMap */666);667668extern void XkbFreeServerMap(669XkbDescPtr /* xkb */,670unsigned int /* what */,671Bool /* freeMap */672);673674extern XkbKeyTypePtr XkbAddKeyType(675XkbDescPtr /* xkb */,676Atom /* name */,677int /* map_count */,678Bool /* want_preserve */,679int /* num_lvls */680);681682extern Status XkbAllocIndicatorMaps(683XkbDescPtr /* xkb */684);685686extern void XkbFreeIndicatorMaps(687XkbDescPtr /* xkb */688);689690extern XkbDescPtr XkbGetMap(691Display * /* dpy */,692unsigned int /* which */,693unsigned int /* deviceSpec */694);695696extern Status XkbGetUpdatedMap(697Display * /* dpy */,698unsigned int /* which */,699XkbDescPtr /* desc */700);701702extern Status XkbGetMapChanges(703Display * /* dpy */,704XkbDescPtr /* xkb */,705XkbMapChangesPtr /* changes */706);707708709extern Status XkbRefreshKeyboardMapping(710XkbMapNotifyEvent * /* event */711);712713extern Status XkbGetKeyTypes(714Display * /* dpy */,715unsigned int /* first */,716unsigned int /* num */,717XkbDescPtr /* xkb */718);719720extern Status XkbGetKeySyms(721Display * /* dpy */,722unsigned int /* first */,723unsigned int /* num */,724XkbDescPtr /* xkb */725);726727extern Status XkbGetKeyActions(728Display * /* dpy */,729unsigned int /* first */,730unsigned int /* num */,731XkbDescPtr /* xkb */732);733734extern Status XkbGetKeyBehaviors(735Display * /* dpy */,736unsigned int /* firstKey */,737unsigned int /* nKeys */,738XkbDescPtr /* desc */739);740741extern Status XkbGetVirtualMods(742Display * /* dpy */,743unsigned int /* which */,744XkbDescPtr /* desc */745);746747extern Status XkbGetKeyExplicitComponents(748Display * /* dpy */,749unsigned int /* firstKey */,750unsigned int /* nKeys */,751XkbDescPtr /* desc */752);753754extern Status XkbGetKeyModifierMap(755Display * /* dpy */,756unsigned int /* firstKey */,757unsigned int /* nKeys */,758XkbDescPtr /* desc */759);760761extern Status XkbGetKeyVirtualModMap(762Display * /* dpy */,763unsigned int /* first */,764unsigned int /* num */,765XkbDescPtr /* xkb */766);767768extern Status XkbAllocControls(769XkbDescPtr /* xkb */,770unsigned int /* which*/771);772773extern void XkbFreeControls(774XkbDescPtr /* xkb */,775unsigned int /* which */,776Bool /* freeMap */777);778779extern Status XkbGetControls(780Display * /* dpy */,781unsigned long /* which */,782XkbDescPtr /* desc */783);784785extern Bool XkbSetControls(786Display * /* dpy */,787unsigned long /* which */,788XkbDescPtr /* desc */789);790791extern void XkbNoteControlsChanges(792XkbControlsChangesPtr /* old */,793XkbControlsNotifyEvent * /* new */,794unsigned int /* wanted */795);796797#define XkbGetControlsChanges(d,x,c) XkbGetControls(d,(c)->changed_ctrls,x)798#define XkbChangeControls(d,x,c) XkbSetControls(d,(c)->changed_ctrls,x)799800extern Status XkbAllocCompatMap(801XkbDescPtr /* xkb */,802unsigned int /* which */,803unsigned int /* nInterpret */804);805806extern void XkbFreeCompatMap(807XkbDescPtr /* xkb */,808unsigned int /* which */,809Bool /* freeMap */810);811812extern Status XkbGetCompatMap(813Display * /* dpy */,814unsigned int /* which */,815XkbDescPtr /* xkb */816);817818extern Bool XkbSetCompatMap(819Display * /* dpy */,820unsigned int /* which */,821XkbDescPtr /* xkb */,822Bool /* updateActions */823);824825extern XkbSymInterpretPtr XkbAddSymInterpret(826XkbDescPtr /* xkb */,827XkbSymInterpretPtr /* si */,828Bool /* updateMap */,829XkbChangesPtr /* changes */830);831832extern Status XkbAllocNames(833XkbDescPtr /* xkb */,834unsigned int /* which */,835int /* nTotalRG */,836int /* nTotalAliases */837);838839extern Status XkbGetNames(840Display * /* dpy */,841unsigned int /* which */,842XkbDescPtr /* desc */843);844845extern Bool XkbSetNames(846Display * /* dpy */,847unsigned int /* which */,848unsigned int /* firstType */,849unsigned int /* nTypes */,850XkbDescPtr /* desc */851);852853extern Bool XkbChangeNames(854Display * /* dpy */,855XkbDescPtr /* xkb */,856XkbNameChangesPtr /* changes */857);858859extern void XkbFreeNames(860XkbDescPtr /* xkb */,861unsigned int /* which */,862Bool /* freeMap */863);864865866extern Status XkbGetState(867Display * /* dpy */,868unsigned int /* deviceSpec */,869XkbStatePtr /* rtrnState */870);871872extern Bool XkbSetMap(873Display * /* dpy */,874unsigned int /* which */,875XkbDescPtr /* desc */876);877878extern Bool XkbChangeMap(879Display* /* dpy */,880XkbDescPtr /* desc */,881XkbMapChangesPtr /* changes */882);883884extern Bool XkbSetDetectableAutoRepeat(885Display * /* dpy */,886Bool /* detectable */,887Bool * /* supported */888);889890extern Bool XkbGetDetectableAutoRepeat(891Display * /* dpy */,892Bool * /* supported */893);894895extern Bool XkbSetAutoResetControls(896Display * /* dpy */,897unsigned int /* changes */,898unsigned int * /* auto_ctrls */,899unsigned int * /* auto_values */900);901902extern Bool XkbGetAutoResetControls(903Display * /* dpy */,904unsigned int * /* auto_ctrls */,905unsigned int * /* auto_ctrl_values */906);907908extern Bool XkbSetPerClientControls(909Display * /* dpy */,910unsigned int /* change */,911unsigned int * /* values */912);913914extern Bool XkbGetPerClientControls(915Display * /* dpy */,916unsigned int * /* ctrls */917);918919extern Status XkbCopyKeyType(920XkbKeyTypePtr /* from */,921XkbKeyTypePtr /* into */922);923924extern Status XkbCopyKeyTypes(925XkbKeyTypePtr /* from */,926XkbKeyTypePtr /* into */,927int /* num_types */928);929930extern Status XkbResizeKeyType(931XkbDescPtr /* xkb */,932int /* type_ndx */,933int /* map_count */,934Bool /* want_preserve */,935int /* new_num_lvls */936);937938extern KeySym *XkbResizeKeySyms(939XkbDescPtr /* desc */,940int /* forKey */,941int /* symsNeeded */942);943944extern XkbAction *XkbResizeKeyActions(945XkbDescPtr /* desc */,946int /* forKey */,947int /* actsNeeded */948);949950extern Status XkbChangeTypesOfKey(951XkbDescPtr /* xkb */,952int /* key */,953int /* num_groups */,954unsigned int /* groups */,955int * /* newTypes */,956XkbMapChangesPtr /* pChanges */957);958959extern Status XkbChangeKeycodeRange(960XkbDescPtr /* xkb */,961int /* minKC */,962int /* maxKC */,963XkbChangesPtr /* changes */964);965966/***====================================================================***/967968extern XkbComponentListPtr XkbListComponents(969Display * /* dpy */,970unsigned int /* deviceSpec */,971XkbComponentNamesPtr /* ptrns */,972int * /* max_inout */973);974975extern void XkbFreeComponentList(976XkbComponentListPtr /* list */977);978979extern XkbDescPtr XkbGetKeyboard(980Display * /* dpy */,981unsigned int /* which */,982unsigned int /* deviceSpec */983);984985extern XkbDescPtr XkbGetKeyboardByName(986Display * /* dpy */,987unsigned int /* deviceSpec */,988XkbComponentNamesPtr /* names */,989unsigned int /* want */,990unsigned int /* need */,991Bool /* load */992);993994/***====================================================================***/995996extern int XkbKeyTypesForCoreSymbols( /* returns # of groups */997XkbDescPtr /* xkb */, /* keyboard device */998int /* map_width */, /* width of core KeySym array */999KeySym * /* core_syms */, /* always mapWidth symbols */1000unsigned int /* protected */, /* explicit key types */1001int * /* types_inout */, /* always four type indices */1002KeySym * /* xkb_syms_rtrn */ /* must have enough space */1003);10041005extern Bool XkbApplyCompatMapToKey( /* False only on error */1006XkbDescPtr /* xkb */, /* keymap to be edited */1007KeyCode /* key */, /* key to be updated */1008XkbChangesPtr /* changes */ /* resulting changes to map */1009);10101011extern Bool XkbUpdateMapFromCore( /* False only on error */1012XkbDescPtr /* xkb */, /* XKB keyboard to be edited */1013KeyCode /* first_key */, /* first changed key */1014int /* num_keys */, /* number of changed keys */1015int /* map_width */, /* width of core keymap */1016KeySym * /* core_keysyms */, /* symbols from core keymap */1017XkbChangesPtr /* changes */ /* resulting changes */1018);10191020/***====================================================================***/10211022extern XkbDeviceLedInfoPtr XkbAddDeviceLedInfo(1023XkbDeviceInfoPtr /* devi */,1024unsigned int /* ledClass */,1025unsigned int /* ledId */1026);10271028extern Status XkbResizeDeviceButtonActions(1029XkbDeviceInfoPtr /* devi */,1030unsigned int /* newTotal */1031);10321033extern XkbDeviceInfoPtr XkbAllocDeviceInfo(1034unsigned int /* deviceSpec */,1035unsigned int /* nButtons */,1036unsigned int /* szLeds */1037);10381039extern void XkbFreeDeviceInfo(1040XkbDeviceInfoPtr /* devi */,1041unsigned int /* which */,1042Bool /* freeDevI */1043);10441045extern void XkbNoteDeviceChanges(1046XkbDeviceChangesPtr /* old */,1047XkbExtensionDeviceNotifyEvent * /* new */,1048unsigned int /* wanted */1049);10501051extern XkbDeviceInfoPtr XkbGetDeviceInfo(1052Display * /* dpy */,1053unsigned int /* which */,1054unsigned int /* deviceSpec */,1055unsigned int /* ledClass */,1056unsigned int /* ledID */1057);10581059extern Status XkbGetDeviceInfoChanges(1060Display * /* dpy */,1061XkbDeviceInfoPtr /* devi */,1062XkbDeviceChangesPtr /* changes */1063);10641065extern Status XkbGetDeviceButtonActions(1066Display * /* dpy */,1067XkbDeviceInfoPtr /* devi */,1068Bool /* all */,1069unsigned int /* first */,1070unsigned int /* nBtns */1071);10721073extern Status XkbGetDeviceLedInfo(1074Display * /* dpy */,1075XkbDeviceInfoPtr /* devi */,1076unsigned int /* ledClass (class, XIDflt, XIAll) */,1077unsigned int /* ledId (id, XIDflt, XIAll) */,1078unsigned int /* which (XkbXI_Indicator{Names,Map}Mask */1079);10801081extern Bool XkbSetDeviceInfo(1082Display * /* dpy */,1083unsigned int /* which */,1084XkbDeviceInfoPtr /* devi */1085);10861087extern Bool XkbChangeDeviceInfo(1088Display* /* dpy */,1089XkbDeviceInfoPtr /* desc */,1090XkbDeviceChangesPtr /* changes */1091);10921093extern Bool XkbSetDeviceLedInfo(1094Display * /* dpy */,1095XkbDeviceInfoPtr /* devi */,1096unsigned int /* ledClass */,1097unsigned int /* ledID */,1098unsigned int /* which */1099);11001101extern Bool XkbSetDeviceButtonActions(1102Display * /* dpy */,1103XkbDeviceInfoPtr /* devi */,1104unsigned int /* first */,1105unsigned int /* nBtns */1106);11071108/***====================================================================***/11091110extern char XkbToControl(1111char /* c */1112);11131114/***====================================================================***/11151116extern Bool XkbSetDebuggingFlags(1117Display * /* dpy */,1118unsigned int /* mask */,1119unsigned int /* flags */,1120char * /* msg */,1121unsigned int /* ctrls_mask */,1122unsigned int /* ctrls */,1123unsigned int * /* rtrn_flags */,1124unsigned int * /* rtrn_ctrls */1125);11261127extern Bool XkbApplyVirtualModChanges(1128XkbDescPtr /* xkb */,1129unsigned int /* changed */,1130XkbChangesPtr /* changes */1131);11321133extern Bool XkbUpdateActionVirtualMods(1134XkbDescPtr /* xkb */,1135XkbAction * /* act */,1136unsigned int /* changed */1137);11381139extern void XkbUpdateKeyTypeVirtualMods(1140XkbDescPtr /* xkb */,1141XkbKeyTypePtr /* type */,1142unsigned int /* changed */,1143XkbChangesPtr /* changes */1144);11451146_XFUNCPROTOEND11471148#endif /* _X11_XKBLIB_H_ */114911501151