1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync/************************************************************
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsyncCopyright (c) 1993 by Silicon Graphics Computer Systems, Inc.
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsyncPermission to use, copy, modify, and distribute this
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsyncsoftware and its documentation for any purpose and without
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsyncfee is hereby granted, provided that the above copyright
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsyncnotice appear in all copies and that both that copyright
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsyncnotice and this permission notice appear in supporting
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsyncdocumentation, and that the name of Silicon Graphics not be
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsyncused in advertising or publicity pertaining to distribution
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsyncof the software without specific prior written permission.
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsyncSilicon Graphics makes no representation about the suitability
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsyncof this software for any purpose. It is provided "as is"
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsyncwithout any express or implied warranty.
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsyncSILICON GRAPHICS DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsyncSOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsyncAND FITNESS FOR A PARTICULAR PURPOSE. IN NO EVENT SHALL SILICON
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsyncGRAPHICS BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsyncDAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsyncDATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsyncOR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsyncTHE USE OR PERFORMANCE OF THIS SOFTWARE.
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync********************************************************/
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync * XKB request codes, used in:
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync * - xkbReqType field of all requests
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync * - requestMinor field of some events
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync * In the X sense, XKB reports only one event.
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync * The type field of all XKB events is XkbEventCode
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync * XKB has a minor event code so it can use one X event code for
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync * multiple purposes.
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync * - reported in the xkbType field of all XKB events.
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync * - XkbSelectEventDetails: Indicates the event for which event details
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync * are being changed
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync * Event Mask:
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync * - XkbSelectEvents: Specifies event interest.
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync * NewKeyboardNotify event details:
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync * AccessXNotify event types:
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync * - The 'what' field of AccessXNotify events reports the
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync * reason that the event was generated.
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync * AccessXNotify details:
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync * - Used as an event detail mask to limit the conditions under which
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync * AccessXNotify events are reported
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync * Miscellaneous event details:
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync * - event detail masks for assorted events that don't reall
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync * have any details.
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync#define XkbAllStateEventsMask XkbAllStateComponentsMask
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync#define XkbAllIndicatorEventsMask XkbAllIndicatorsMask
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync * XKB reports one error: BadKeyboard
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync * A further reason for the error is encoded into to most significant
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync * byte of the resourceID for the error:
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync * XkbErr_BadDevice - the device in question was not found
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync * XkbErr_BadClass - the device was found but it doesn't belong to
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync * the appropriate class.
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync * XkbErr_BadId - the device was found and belongs to the right
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync * class, but not feedback with a matching id was
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync * The low byte of the resourceID for this error contains the device
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync * id, class specifier or feedback id that failed.
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync * Keyboard Components Mask:
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync * - Specifies the components that follow a GetKeyboardByNameReply
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync * State detail mask:
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync * - The 'changed' field of StateNotify events reports which of
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync * the keyboard state components have changed.
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync * - Used as an event detail mask to limit the conditions under
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync * which StateNotify events are reported.
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync * Controls detail masks:
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync * The controls specified in XkbAllControlsMask:
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync * - The 'changed' field of ControlsNotify events reports which of
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync * the keyboard controls have changed.
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync * - The 'changeControls' field of the SetControls request specifies
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync * the controls for which values are to be changed.
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync * - Used as an event detail mask to limit the conditions under
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync * which ControlsNotify events are reported.
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync * The controls specified in the XkbAllBooleanCtrlsMask:
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync * - The 'enabledControls' field of ControlsNotify events reports the
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync * current status of the boolean controls.
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync * - The 'enabledControlsChanges' field of ControlsNotify events reports
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync * any boolean controls that have been turned on or off.
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync * - The 'affectEnabledControls' and 'enabledControls' fields of the
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync * kbSetControls request change the set of enabled controls.
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync * - The 'accessXTimeoutMask' and 'accessXTimeoutValues' fields of
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync * an XkbControlsRec specify the controls to be changed if the keyboard
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync * times out and the values to which they should be changed.
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync * - The 'autoCtrls' and 'autoCtrlsValues' fields of the PerClientFlags
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync * request specifies the specify the controls to be reset when the
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync * client exits and the values to which they should be reset.
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync * - The 'ctrls' field of an indicator map specifies the controls
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync * that drive the indicator.
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync * - Specifies the boolean controls affected by the SetControls and
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync * LockControls key actions.
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync#define XkbAccessXOptionsMask (XkbStickyKeysMask|XkbAccessXFeedbackMask)
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync * AccessX Options Mask
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync * - The 'accessXOptions' field of an XkbControlsRec specifies the
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync * AccessX options that are currently in effect.
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync * - The 'accessXTimeoutOptionsMask' and 'accessXTimeoutOptionsValues'
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync * fields of an XkbControlsRec specify the Access X options to be
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync * changed if the keyboard times out and the values to which they
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync * should be changed.
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync * XkbUseCoreKbd is used to specify the core keyboard without having
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync * to look up its X input extension identifier.
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync * XkbUseCorePtr is used to specify the core pointer without having
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync * to look up its X input extension identifier.
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync * XkbDfltXIClass is used to specify "don't care" any place that the
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync * XKB protocol is looking for an X Input Extension
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync * device class.
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync * XkbDfltXIId is used to specify "don't care" any place that the
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync * XKB protocol is looking for an X Input Extension
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync * feedback identifier.
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync * XkbAllXIClasses is used to get information about all device indicators,
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync * whether they're part of the indicator feedback class
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync * or the keyboard feedback class.
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync * XkbAllXIIds is used to get information about all device indicator
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync * feedbacks without having to list them.
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync * XkbXINone is used to indicate that no class or id has been specified.
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync * XkbLegalXILedClass(c) True if 'c' specifies a legal class with LEDs
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync * XkbLegalXIBellClass(c) True if 'c' specifies a legal class with bells
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync * XkbExplicitXIDevice(d) True if 'd' explicitly specifies a device
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync * XkbExplicitXIClass(c) True if 'c' explicitly specifies a device class
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync * XkbExplicitXIId(c) True if 'i' explicitly specifies a device id
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync * XkbSingleXIClass(c) True if 'c' specifies exactly one device class,
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync * including the default.
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync * XkbSingleXIId(i) True if 'i' specifies exactly one device
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync * identifier, including the default.
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync#define XkbLegalXILedClass(c) (((c)==KbdFeedbackClass)||\
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync#define XkbLegalXIBellClass(c) (((c)==KbdFeedbackClass)||\
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync#define XkbSingleXIClass(c) ((((c)&(~0xff))==0)||((c)==XkbDfltXIClass))
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync#define XkbSingleXIId(c) ((((c)&(~0xff))==0)||((c)==XkbDfltXIId))
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync * Group Index and Mask:
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync * - Indices into the kt_index array of a key type.
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync * - Mask specifies types to be changed for XkbChangeTypesOfKey
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync * BuildCoreState: Given a keyboard group and a modifier state,
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync * construct the value to be reported an event.
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync * GroupForCoreState: Given the state reported in an event,
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync * determine the keyboard group.
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync * IsLegalGroup: Returns TRUE if 'g' is a valid group index.
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync#define XkbBuildCoreState(m,g) ((((g)&0x3)<<13)|((m)&0xff))
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync#define XkbIsLegalGroup(g) (((g)>=0)&&((g)<XkbNumKbdGroups))
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync * GroupsWrap values:
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync * - The 'groupsWrap' field of an XkbControlsRec specifies the
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync * treatment of out of range groups.
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync * - Bits 6 and 7 of the group info field of a key symbol map
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync * specify the interpretation of out of range groups for the
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync * corresponding key.
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync * Action flags: Reported in the 'flags' field of most key actions.
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync * Interpretation depends on the type of the action; not all actions
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync * accept all flags.
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync * Option Used for Actions
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync * ------ ----------------
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync * ClearLocks SetMods, LatchMods, SetGroup, LatchGroup
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync * LatchToLock SetMods, LatchMods, SetGroup, LatchGroup
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync * LockNoLock LockMods, ISOLock, LockPtrBtn, LockDeviceBtn
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync * LockNoUnlock LockMods, ISOLock, LockPtrBtn, LockDeviceBtn
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync * UseModMapMods SetMods, LatchMods, LockMods, ISOLock
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync * GroupAbsolute SetGroup, LatchGroup, LockGroup, ISOLock
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync * UseDfltButton PtrBtn, LockPtrBtn
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync * NoAcceleration MovePtr
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync * MoveAbsoluteX MovePtr
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync * MoveAbsoluteY MovePtr
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync * ISODfltIsGroup ISOLock
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync * ISONoAffectMods ISOLock
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync * ISONoAffectGroup ISOLock
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync * ISONoAffectPtr ISOLock
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync * ISONoAffectCtrls ISOLock
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync * MessageOnPress ActionMessage
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync * MessageOnRelease ActionMessage
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync * MessageGenKeyEvent ActionMessage
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync * AffectDfltBtn SetPtrDflt
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync * DfltBtnAbsolute SetPtrDflt
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync * SwitchApplication SwitchScreen
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync * SwitchAbsolute SwitchScreen
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync * The following values apply to the SA_DeviceValuator
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync * action only. Valuator operations specify the action
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync * to be taken. Values specified in the action are
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync * multiplied by 2^scale before they are applied.
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync * Action types: specifies the type of a key action. Reported in the
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync * type field of all key actions.
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync * Specifies the key actions that clear latched groups or modifiers.
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync ((1<<XkbSA_NoAction)|(1<<XkbSA_PtrBtn)|(1<<XkbSA_LockPtrBtn)|\
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync (1<<XkbSA_Terminate)|(1<<XkbSA_SwitchScreen)|(1<<XkbSA_SetControls)|\
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync (1<<XkbSA_RedirectKey)|(1<<XkbSA_DeviceBtn)|(1<<XkbSA_LockDeviceBtn))
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync * Macros to classify key actions
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync#define XkbIsModAction(a) (((a)->type>=Xkb_SASetMods)&&((a)->type<=XkbSA_LockMods))
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync#define XkbIsGroupAction(a) (((a)->type>=XkbSA_SetGroup)&&((a)->type<=XkbSA_LockGroup))
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync#define XkbIsPtrAction(a) (((a)->type>=XkbSA_MovePtr)&&((a)->type<=XkbSA_SetPtrDflt))
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync * Key Behavior Qualifier:
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync * KB_Permanent indicates that the behavior describes an unalterable
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync * characteristic of the keyboard, not an XKB software-simulation of
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync * the listed behavior.
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync * Key Behavior Types:
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync * Specifies the behavior of the underlying key.
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync * Various macros which describe the range of legal keycodes.
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync#define XkbMaxKeyCount (XkbMaxLegalKeyCode-XkbMinLegalKeyCode+1)
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync#define XkbPerKeyBitArraySize ((XkbMaxLegalKeyCode+1)/8)
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync/* Seems kinda silly to check that an unsigned char is <= 255... */
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync#define XkbIsLegalKeycode(k) ((k)>=XkbMinLegalKeyCode)
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync * Assorted constants and limits.
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync#define XkbMaxSymsPerKey (XkbMaxShiftLevel*XkbNumKbdGroups)
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync * Key Type index and mask for the four standard key types.
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync * Extension name and version information
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync * Explicit map components:
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync * - Used in the 'explicit' field of an XkbServerMap. Specifies
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync * the keyboard components that should _not_ be updated automatically
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync * in response to core protocol keyboard mapping requests.
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync * Map components masks:
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync * Those in AllMapComponentsMask:
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync * - Specifies the individual fields to be loaded or changed for the
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync * GetMap and SetMap requests.
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync * Those in ClientInfoMask:
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync * - Specifies the components to be allocated by XkbAllocClientMap.
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync * Those in ServerInfoMask:
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync * - Specifies the components to be allocated by XkbAllocServerMap.
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync#define XkbAllClientInfoMask (XkbKeyTypesMask|XkbKeySymsMask|XkbModifierMapMask)
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync#define XkbAllServerInfoMask (XkbExplicitComponentsMask|XkbKeyActionsMask|XkbKeyBehaviorsMask|XkbVirtualModsMask|XkbVirtualModMapMask)
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync#define XkbAllMapComponentsMask (XkbAllClientInfoMask|XkbAllServerInfoMask)
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync * Symbol interpretations flags:
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync * - Used in the flags field of a symbol interpretation
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync * Symbol interpretations match specification:
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync * - Used in the match field of a symbol interpretation to specify
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync * the conditions under which an interpretation is used.
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync * Indicator map flags:
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync * - Used in the flags field of an indicator map to indicate the
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync * conditions under which and indicator can be changed and the
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync * effects of changing the indicator.
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync * Indicator map component specifications:
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync * - Used by the 'which_groups' and 'which_mods' fields of an indicator
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync * map to specify which keyboard components should be used to drive
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync * the indicator.
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync#define XkbIM_UseAnyGroup (XkbIM_UseBase|XkbIM_UseLatched|XkbIM_UseLocked\
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync#define XkbIM_UseAnyMods (XkbIM_UseAnyGroup|XkbIM_UseCompat)
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync * Compatibility Map Compontents:
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync * - Specifies the components to be allocated in XkbAllocCompatMap.
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync * Names component mask:
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync * - Specifies the names to be loaded or changed for the GetNames and
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync * SetNames requests.
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync * - Specifies the names that have changed in a NamesNotify event.
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync * - Specifies the names components to be allocated by XkbAllocNames.
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync * GetByName components:
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync * - Specifies desired or necessary components to GetKbdByName request.
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync * - Reports the components that were found in a GetKbdByNameReply
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync#define XkbGBN_SymbolsMask (XkbGBN_ClientSymbolsMask|XkbGBN_ServerSymbolsMask)
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync * ListComponents flags
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync * X Input Extension Interactions
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync * - Specifies the possible interactions between XKB and the X input
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync * extension
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync * - Used to request (XkbGetDeviceInfo) or change (XKbSetDeviceInfo)
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync * XKB information about an extension device.
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync * - Reports the list of supported optional features in the reply to
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync * XkbGetDeviceInfo or in an XkbExtensionDeviceNotify event.
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync * XkbXI_UnsupportedFeature is reported in XkbExtensionDeviceNotify
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync * events to indicate an attempt to use an unsupported feature.
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync * Per-Client Flags:
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync * - Specifies flags to be changed by the PerClientFlags request.
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync * Debugging flags and controls
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync#endif /* _XKB_H_ */