XKB.h
资源名称:X264CODEC.rar [点击查看]
上传用户:lctgjx
上传日期:2022-06-04
资源大小:8887k
文件大小:28k
源码类别:
流媒体/Mpeg4/MP4
开发平台:
Visual C++
- /* $Xorg: XKB.h,v 1.3 2000/08/18 04:05:45 coskrey Exp $ */
- /************************************************************
- Copyright (c) 1993 by Silicon Graphics Computer Systems, Inc.
- Permission to use, copy, modify, and distribute this
- software and its documentation for any purpose and without
- fee is hereby granted, provided that the above copyright
- notice appear in all copies and that both that copyright
- notice and this permission notice appear in supporting
- documentation, and that the name of Silicon Graphics not be
- used in advertising or publicity pertaining to distribution
- of the software without specific prior written permission.
- Silicon Graphics makes no representation about the suitability
- of this software for any purpose. It is provided "as is"
- without any express or implied warranty.
- SILICON GRAPHICS DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS
- SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
- AND FITNESS FOR A PARTICULAR PURPOSE. IN NO EVENT SHALL SILICON
- GRAPHICS BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL
- DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
- DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE
- OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH
- THE USE OR PERFORMANCE OF THIS SOFTWARE.
- ********************************************************/
- /* $XFree86: xc/include/extensions/XKB.h,v 1.5tsi Exp $ */
- #ifndef _XKB_H_
- #define _XKB_H_
- /*
- * XKB request codes, used in:
- * - xkbReqType field of all requests
- * - requestMinor field of some events
- */
- #define X_kbUseExtension 0
- #define X_kbSelectEvents 1
- #define X_kbBell 3
- #define X_kbGetState 4
- #define X_kbLatchLockState 5
- #define X_kbGetControls 6
- #define X_kbSetControls 7
- #define X_kbGetMap 8
- #define X_kbSetMap 9
- #define X_kbGetCompatMap 10
- #define X_kbSetCompatMap 11
- #define X_kbGetIndicatorState 12
- #define X_kbGetIndicatorMap 13
- #define X_kbSetIndicatorMap 14
- #define X_kbGetNamedIndicator 15
- #define X_kbSetNamedIndicator 16
- #define X_kbGetNames 17
- #define X_kbSetNames 18
- #define X_kbGetGeometry 19
- #define X_kbSetGeometry 20
- #define X_kbPerClientFlags 21
- #define X_kbListComponents 22
- #define X_kbGetKbdByName 23
- #define X_kbGetDeviceInfo 24
- #define X_kbSetDeviceInfo 25
- #define X_kbSetDebuggingFlags 101
- /*
- * In the X sense, XKB reports only one event.
- * The type field of all XKB events is XkbEventCode
- */
- #define XkbEventCode 0
- #define XkbNumberEvents (XkbEventCode+1)
- /*
- * XKB has a minor event code so it can use one X event code for
- * multiple purposes.
- * - reported in the xkbType field of all XKB events.
- * - XkbSelectEventDetails: Indicates the event for which event details
- * are being changed
- */
- #define XkbNewKeyboardNotify 0
- #define XkbMapNotify 1
- #define XkbStateNotify 2
- #define XkbControlsNotify 3
- #define XkbIndicatorStateNotify 4
- #define XkbIndicatorMapNotify 5
- #define XkbNamesNotify 6
- #define XkbCompatMapNotify 7
- #define XkbBellNotify 8
- #define XkbActionMessage 9
- #define XkbAccessXNotify 10
- #define XkbExtensionDeviceNotify 11
- /*
- * Event Mask:
- * - XkbSelectEvents: Specifies event interest.
- */
- #define XkbNewKeyboardNotifyMask (1L << 0)
- #define XkbMapNotifyMask (1L << 1)
- #define XkbStateNotifyMask (1L << 2)
- #define XkbControlsNotifyMask (1L << 3)
- #define XkbIndicatorStateNotifyMask (1L << 4)
- #define XkbIndicatorMapNotifyMask (1L << 5)
- #define XkbNamesNotifyMask (1L << 6)
- #define XkbCompatMapNotifyMask (1L << 7)
- #define XkbBellNotifyMask (1L << 8)
- #define XkbActionMessageMask (1L << 9)
- #define XkbAccessXNotifyMask (1L << 10)
- #define XkbExtensionDeviceNotifyMask (1L << 11)
- #define XkbAllEventsMask (0xFFF)
- /*
- * NewKeyboardNotify event details:
- */
- #define XkbNKN_KeycodesMask (1L << 0)
- #define XkbNKN_GeometryMask (1L << 1)
- #define XkbNKN_DeviceIDMask (1L << 2)
- #define XkbAllNewKeyboardEventsMask (0x7)
- /*
- * AccessXNotify event types:
- * - The 'what' field of AccessXNotify events reports the
- * reason that the event was generated.
- */
- #define XkbAXN_SKPress 0
- #define XkbAXN_SKAccept 1
- #define XkbAXN_SKReject 2
- #define XkbAXN_SKRelease 3
- #define XkbAXN_BKAccept 4
- #define XkbAXN_BKReject 5
- #define XkbAXN_AXKWarning 6
- /*
- * AccessXNotify details:
- * - Used as an event detail mask to limit the conditions under which
- * AccessXNotify events are reported
- */
- #define XkbAXN_SKPressMask (1L << 0)
- #define XkbAXN_SKAcceptMask (1L << 1)
- #define XkbAXN_SKRejectMask (1L << 2)
- #define XkbAXN_SKReleaseMask (1L << 3)
- #define XkbAXN_BKAcceptMask (1L << 4)
- #define XkbAXN_BKRejectMask (1L << 5)
- #define XkbAXN_AXKWarningMask (1L << 6)
- #define XkbAllAccessXEventsMask (0xf)
- /*
- * Miscellaneous event details:
- * - event detail masks for assorted events that don't reall
- * have any details.
- */
- #define XkbAllStateEventsMask XkbAllStateComponentsMask
- #define XkbAllMapEventsMask XkbAllMapComponentsMask
- #define XkbAllControlEventsMask XkbAllControlsMask
- #define XkbAllIndicatorEventsMask XkbAllIndicatorsMask
- #define XkbAllNameEventsMask XkbAllNamesMask
- #define XkbAllCompatMapEventsMask XkbAllCompatMask
- #define XkbAllBellEventsMask (1L << 0)
- #define XkbAllActionMessagesMask (1L << 0)
- /*
- * XKB reports one error: BadKeyboard
- * A further reason for the error is encoded into to most significant
- * byte of the resourceID for the error:
- * XkbErr_BadDevice - the device in question was not found
- * XkbErr_BadClass - the device was found but it doesn't belong to
- * the appropriate class.
- * XkbErr_BadId - the device was found and belongs to the right
- * class, but not feedback with a matching id was
- * found.
- * The low byte of the resourceID for this error contains the device
- * id, class specifier or feedback id that failed.
- */
- #define XkbKeyboard 0
- #define XkbNumberErrors 1
- #define XkbErr_BadDevice 0xff
- #define XkbErr_BadClass 0xfe
- #define XkbErr_BadId 0xfd
- /*
- * Keyboard Components Mask:
- * - Specifies the components that follow a GetKeyboardByNameReply
- */
- #define XkbClientMapMask (1L << 0)
- #define XkbServerMapMask (1L << 1)
- #define XkbCompatMapMask (1L << 2)
- #define XkbIndicatorMapMask (1L << 3)
- #define XkbNamesMask (1L << 4)
- #define XkbGeometryMask (1L << 5)
- #define XkbControlsMask (1L << 6)
- #define XkbAllComponentsMask (0x7f)
- /*
- * State detail mask:
- * - The 'changed' field of StateNotify events reports which of
- * the keyboard state components have changed.
- * - Used as an event detail mask to limit the conditions under
- * which StateNotify events are reported.
- */
- #define XkbModifierStateMask (1L << 0)
- #define XkbModifierBaseMask (1L << 1)
- #define XkbModifierLatchMask (1L << 2)
- #define XkbModifierLockMask (1L << 3)
- #define XkbGroupStateMask (1L << 4)
- #define XkbGroupBaseMask (1L << 5)
- #define XkbGroupLatchMask (1L << 6)
- #define XkbGroupLockMask (1L << 7)
- #define XkbCompatStateMask (1L << 8)
- #define XkbGrabModsMask (1L << 9)
- #define XkbCompatGrabModsMask (1L << 10)
- #define XkbLookupModsMask (1L << 11)
- #define XkbCompatLookupModsMask (1L << 12)
- #define XkbPointerButtonMask (1L << 13)
- #define XkbAllStateComponentsMask (0x3fff)
- /*
- * Controls detail masks:
- * The controls specified in XkbAllControlsMask:
- * - The 'changed' field of ControlsNotify events reports which of
- * the keyboard controls have changed.
- * - The 'changeControls' field of the SetControls request specifies
- * the controls for which values are to be changed.
- * - Used as an event detail mask to limit the conditions under
- * which ControlsNotify events are reported.
- *
- * The controls specified in the XkbAllBooleanCtrlsMask:
- * - The 'enabledControls' field of ControlsNotify events reports the
- * current status of the boolean controls.
- * - The 'enabledControlsChanges' field of ControlsNotify events reports
- * any boolean controls that have been turned on or off.
- * - The 'affectEnabledControls' and 'enabledControls' fields of the
- * kbSetControls request change the set of enabled controls.
- * - The 'accessXTimeoutMask' and 'accessXTimeoutValues' fields of
- * an XkbControlsRec specify the controls to be changed if the keyboard
- * times out and the values to which they should be changed.
- * - The 'autoCtrls' and 'autoCtrlsValues' fields of the PerClientFlags
- * request specifies the specify the controls to be reset when the
- * client exits and the values to which they should be reset.
- * - The 'ctrls' field of an indicator map specifies the controls
- * that drive the indicator.
- * - Specifies the boolean controls affected by the SetControls and
- * LockControls key actions.
- */
- #define XkbRepeatKeysMask (1L << 0)
- #define XkbSlowKeysMask (1L << 1)
- #define XkbBounceKeysMask (1L << 2)
- #define XkbStickyKeysMask (1L << 3)
- #define XkbMouseKeysMask (1L << 4)
- #define XkbMouseKeysAccelMask (1L << 5)
- #define XkbAccessXKeysMask (1L << 6)
- #define XkbAccessXTimeoutMask (1L << 7)
- #define XkbAccessXFeedbackMask (1L << 8)
- #define XkbAudibleBellMask (1L << 9)
- #define XkbOverlay1Mask (1L << 10)
- #define XkbOverlay2Mask (1L << 11)
- #define XkbIgnoreGroupLockMask (1L << 12)
- #define XkbGroupsWrapMask (1L << 27)
- #define XkbInternalModsMask (1L << 28)
- #define XkbIgnoreLockModsMask (1L << 29)
- #define XkbPerKeyRepeatMask (1L << 30)
- #define XkbControlsEnabledMask (1L << 31)
- #define XkbAccessXOptionsMask (XkbStickyKeysMask|XkbAccessXFeedbackMask)
- #define XkbAllBooleanCtrlsMask (0x00001FFF)
- #define XkbAllControlsMask (0xF8001FFF)
- #define XkbAllControlEventsMask XkbAllControlsMask
- /*
- * AccessX Options Mask
- * - The 'accessXOptions' field of an XkbControlsRec specifies the
- * AccessX options that are currently in effect.
- * - The 'accessXTimeoutOptionsMask' and 'accessXTimeoutOptionsValues'
- * fields of an XkbControlsRec specify the Access X options to be
- * changed if the keyboard times out and the values to which they
- * should be changed.
- */
- #define XkbAX_SKPressFBMask (1L << 0)
- #define XkbAX_SKAcceptFBMask (1L << 1)
- #define XkbAX_FeatureFBMask (1L << 2)
- #define XkbAX_SlowWarnFBMask (1L << 3)
- #define XkbAX_IndicatorFBMask (1L << 4)
- #define XkbAX_StickyKeysFBMask (1L << 5)
- #define XkbAX_TwoKeysMask (1L << 6)
- #define XkbAX_LatchToLockMask (1L << 7)
- #define XkbAX_SKReleaseFBMask (1L << 8)
- #define XkbAX_SKRejectFBMask (1L << 9)
- #define XkbAX_BKRejectFBMask (1L << 10)
- #define XkbAX_DumbBellFBMask (1L << 11)
- #define XkbAX_FBOptionsMask (0xF3F)
- #define XkbAX_SKOptionsMask (0x0C0)
- #define XkbAX_AllOptionsMask (0xFFF)
- /*
- * XkbUseCoreKbd is used to specify the core keyboard without having
- * to look up its X input extension identifier.
- * XkbUseCorePtr is used to specify the core pointer without having
- * to look up its X input extension identifier.
- * XkbDfltXIClass is used to specify "don't care" any place that the
- * XKB protocol is looking for an X Input Extension
- * device class.
- * XkbDfltXIId is used to specify "don't care" any place that the
- * XKB protocol is looking for an X Input Extension
- * feedback identifier.
- * XkbAllXIClasses is used to get information about all device indicators,
- * whether they're part of the indicator feedback class
- * or the keyboard feedback class.
- * XkbAllXIIds is used to get information about all device indicator
- * feedbacks without having to list them.
- * XkbXINone is used to indicate that no class or id has been specified.
- * XkbLegalXILedClass(c) True if 'c' specifies a legal class with LEDs
- * XkbLegalXIBellClass(c) True if 'c' specifies a legal class with bells
- * XkbExplicitXIDevice(d) True if 'd' explicitly specifies a device
- * XkbExplicitXIClass(c) True if 'c' explicitly specifies a device class
- * XkbExplicitXIId(c) True if 'i' explicitly specifies a device id
- * XkbSingleXIClass(c) True if 'c' specifies exactly one device class,
- * including the default.
- * XkbSingleXIId(i) True if 'i' specifies exactly one device
- * identifier, including the default.
- */
- #define XkbUseCoreKbd 0x0100
- #define XkbUseCorePtr 0x0200
- #define XkbDfltXIClass 0x0300
- #define XkbDfltXIId 0x0400
- #define XkbAllXIClasses 0x0500
- #define XkbAllXIIds 0x0600
- #define XkbXINone 0xff00
- #define XkbLegalXILedClass(c) (((c)==KbdFeedbackClass)||
- ((c)==LedFeedbackClass)||
- ((c)==XkbDfltXIClass)||
- ((c)==XkbAllXIClasses))
- #define XkbLegalXIBellClass(c) (((c)==KbdFeedbackClass)||
- ((c)==BellFeedbackClass)||
- ((c)==XkbDfltXIClass)||
- ((c)==XkbAllXIClasses))
- #define XkbExplicitXIDevice(c) (((c)&(~0xff))==0)
- #define XkbExplicitXIClass(c) (((c)&(~0xff))==0)
- #define XkbExplicitXIId(c) (((c)&(~0xff))==0)
- #define XkbSingleXIClass(c) ((((c)&(~0xff))==0)||((c)==XkbDfltXIClass))
- #define XkbSingleXIId(c) ((((c)&(~0xff))==0)||((c)==XkbDfltXIId))
- #define XkbNoModifier 0xff
- #define XkbNoShiftLevel 0xff
- #define XkbNoShape 0xff
- #define XkbNoIndicator 0xff
- #define XkbNoModifierMask 0
- #define XkbAllModifiersMask 0xff
- #define XkbAllVirtualModsMask 0xffff
- #define XkbNumKbdGroups 4
- #define XkbMaxKbdGroup (XkbNumKbdGroups-1)
- #define XkbMaxMouseKeysBtn 4
- /*
- * Group Index and Mask:
- * - Indices into the kt_index array of a key type.
- * - Mask specifies types to be changed for XkbChangeTypesOfKey
- */
- #define XkbGroup1Index 0
- #define XkbGroup2Index 1
- #define XkbGroup3Index 2
- #define XkbGroup4Index 3
- #define XkbAnyGroup 254
- #define XkbAllGroups 255
- #define XkbGroup1Mask (1<<0)
- #define XkbGroup2Mask (1<<1)
- #define XkbGroup3Mask (1<<2)
- #define XkbGroup4Mask (1<<3)
- #define XkbAnyGroupMask (1<<7)
- #define XkbAllGroupsMask (0xf)
- /*
- * BuildCoreState: Given a keyboard group and a modifier state,
- * construct the value to be reported an event.
- * GroupForCoreState: Given the state reported in an event,
- * determine the keyboard group.
- * IsLegalGroup: Returns TRUE if 'g' is a valid group index.
- */
- #define XkbBuildCoreState(m,g) ((((g)&0x3)<<13)|((m)&0xff))
- #define XkbGroupForCoreState(s) (((s)>>13)&0x3)
- #define XkbIsLegalGroup(g) (((g)>=0)&&((g)<XkbNumKbdGroups))
- /*
- * GroupsWrap values:
- * - The 'groupsWrap' field of an XkbControlsRec specifies the
- * treatment of out of range groups.
- * - Bits 6 and 7 of the group info field of a key symbol map
- * specify the interpretation of out of range groups for the
- * corresponding key.
- */
- #define XkbWrapIntoRange (0x00)
- #define XkbClampIntoRange (0x40)
- #define XkbRedirectIntoRange (0x80)
- /*
- * Action flags: Reported in the 'flags' field of most key actions.
- * Interpretation depends on the type of the action; not all actions
- * accept all flags.
- *
- * Option Used for Actions
- * ------ ----------------
- * ClearLocks SetMods, LatchMods, SetGroup, LatchGroup
- * LatchToLock SetMods, LatchMods, SetGroup, LatchGroup
- * LockNoLock LockMods, ISOLock, LockPtrBtn, LockDeviceBtn
- * LockNoUnlock LockMods, ISOLock, LockPtrBtn, LockDeviceBtn
- * UseModMapMods SetMods, LatchMods, LockMods, ISOLock
- * GroupAbsolute SetGroup, LatchGroup, LockGroup, ISOLock
- * UseDfltButton PtrBtn, LockPtrBtn
- * NoAcceleration MovePtr
- * MoveAbsoluteX MovePtr
- * MoveAbsoluteY MovePtr
- * ISODfltIsGroup ISOLock
- * ISONoAffectMods ISOLock
- * ISONoAffectGroup ISOLock
- * ISONoAffectPtr ISOLock
- * ISONoAffectCtrls ISOLock
- * MessageOnPress ActionMessage
- * MessageOnRelease ActionMessage
- * MessageGenKeyEvent ActionMessage
- * AffectDfltBtn SetPtrDflt
- * DfltBtnAbsolute SetPtrDflt
- * SwitchApplication SwitchScreen
- * SwitchAbsolute SwitchScreen
- */
- #define XkbSA_ClearLocks (1L << 0)
- #define XkbSA_LatchToLock (1L << 1)
- #define XkbSA_LockNoLock (1L << 0)
- #define XkbSA_LockNoUnlock (1L << 1)
- #define XkbSA_UseModMapMods (1L << 2)
- #define XkbSA_GroupAbsolute (1L << 2)
- #define XkbSA_UseDfltButton 0
- #define XkbSA_NoAcceleration (1L << 0)
- #define XkbSA_MoveAbsoluteX (1L << 1)
- #define XkbSA_MoveAbsoluteY (1L << 2)
- #define XkbSA_ISODfltIsGroup (1L << 7)
- #define XkbSA_ISONoAffectMods (1L << 6)
- #define XkbSA_ISONoAffectGroup (1L << 5)
- #define XkbSA_ISONoAffectPtr (1L << 4)
- #define XkbSA_ISONoAffectCtrls (1L << 3)
- #define XkbSA_ISOAffectMask (0x78)
- #define XkbSA_MessageOnPress (1L << 0)
- #define XkbSA_MessageOnRelease (1L << 1)
- #define XkbSA_MessageGenKeyEvent (1L << 2)
- #define XkbSA_AffectDfltBtn 1
- #define XkbSA_DfltBtnAbsolute (1L << 2)
- #define XkbSA_SwitchApplication (1L << 0)
- #define XkbSA_SwitchAbsolute (1L << 2)
- /*
- * The following values apply to the SA_DeviceValuator
- * action only. Valuator operations specify the action
- * to be taken. Values specified in the action are
- * multiplied by 2^scale before they are applied.
- */
- #define XkbSA_IgnoreVal (0x00)
- #define XkbSA_SetValMin (0x10)
- #define XkbSA_SetValCenter (0x20)
- #define XkbSA_SetValMax (0x30)
- #define XkbSA_SetValRelative (0x40)
- #define XkbSA_SetValAbsolute (0x50)
- #define XkbSA_ValOpMask (0x70)
- #define XkbSA_ValScaleMask (0x07)
- #define XkbSA_ValOp(a) ((a)&XkbSA_ValOpMask)
- #define XkbSA_ValScale(a) ((a)&XkbSA_ValScaleMask)
- /*
- * Action types: specifies the type of a key action. Reported in the
- * type field of all key actions.
- */
- #define XkbSA_NoAction 0x00
- #define XkbSA_SetMods 0x01
- #define XkbSA_LatchMods 0x02
- #define XkbSA_LockMods 0x03
- #define XkbSA_SetGroup 0x04
- #define XkbSA_LatchGroup 0x05
- #define XkbSA_LockGroup 0x06
- #define XkbSA_MovePtr 0x07
- #define XkbSA_PtrBtn 0x08
- #define XkbSA_LockPtrBtn 0x09
- #define XkbSA_SetPtrDflt 0x0a
- #define XkbSA_ISOLock 0x0b
- #define XkbSA_Terminate 0x0c
- #define XkbSA_SwitchScreen 0x0d
- #define XkbSA_SetControls 0x0e
- #define XkbSA_LockControls 0x0f
- #define XkbSA_ActionMessage 0x10
- #define XkbSA_RedirectKey 0x11
- #define XkbSA_DeviceBtn 0x12
- #define XkbSA_LockDeviceBtn 0x13
- #define XkbSA_DeviceValuator 0x14
- #define XkbSA_LastAction XkbSA_DeviceValuator
- #define XkbSA_NumActions (XkbSA_LastAction+1)
- #define XkbSA_XFree86Private 0x86
- /*
- * Specifies the key actions that clear latched groups or modifiers.
- */
- #define XkbSA_BreakLatch
- ((1<<XkbSA_NoAction)|(1<<XkbSA_PtrBtn)|(1<<XkbSA_LockPtrBtn)|
- (1<<XkbSA_Terminate)|(1<<XkbSA_SwitchScreen)|(1<<XkbSA_SetControls)|
- (1<<XkbSA_LockControls)|(1<<XkbSA_ActionMessage)|
- (1<<XkbSA_RedirectKey)|(1<<XkbSA_DeviceBtn)|(1<<XkbSA_LockDeviceBtn))
- /*
- * Macros to classify key actions
- */
- #define XkbIsModAction(a) (((a)->type>=Xkb_SASetMods)&&((a)->type<=XkbSA_LockMods))
- #define XkbIsGroupAction(a) (((a)->type>=XkbSA_SetGroup)&&((a)->type<=XkbSA_LockGroup))
- #define XkbIsPtrAction(a) (((a)->type>=XkbSA_MovePtr)&&((a)->type<=XkbSA_SetPtrDflt))
- /*
- * Key Behavior Qualifier:
- * KB_Permanent indicates that the behavior describes an unalterable
- * characteristic of the keyboard, not an XKB software-simulation of
- * the listed behavior.
- * Key Behavior Types:
- * Specifies the behavior of the underlying key.
- */
- #define XkbKB_Permanent 0x80
- #define XkbKB_OpMask 0x7f
- #define XkbKB_Default 0x00
- #define XkbKB_Lock 0x01
- #define XkbKB_RadioGroup 0x02
- #define XkbKB_Overlay1 0x03
- #define XkbKB_Overlay2 0x04
- #define XkbKB_RGAllowNone 0x80
- /*
- * Various macros which describe the range of legal keycodes.
- */
- #define XkbMinLegalKeyCode 8
- #define XkbMaxLegalKeyCode 255
- #define XkbMaxKeyCount (XkbMaxLegalKeyCode-XkbMinLegalKeyCode+1)
- #define XkbPerKeyBitArraySize ((XkbMaxLegalKeyCode+1)/8)
- /* Seems kinda silly to check that an unsigned char is <= 255... */
- #define XkbIsLegalKeycode(k) ((k)>=XkbMinLegalKeyCode)
- /*
- * Assorted constants and limits.
- */
- #define XkbNumModifiers 8
- #define XkbNumVirtualMods 16
- #define XkbNumIndicators 32
- #define XkbAllIndicatorsMask (0xffffffff)
- #define XkbMaxRadioGroups 32
- #define XkbAllRadioGroupsMask (0xffffffff)
- #define XkbMaxShiftLevel 63
- #define XkbMaxSymsPerKey (XkbMaxShiftLevel*XkbNumKbdGroups)
- #define XkbRGMaxMembers 12
- #define XkbActionMessageLength 6
- #define XkbKeyNameLength 4
- #define XkbMaxRedirectCount 8
- #define XkbGeomPtsPerMM 10
- #define XkbGeomMaxColors 32
- #define XkbGeomMaxLabelColors 3
- #define XkbGeomMaxPriority 255
- /*
- * Key Type index and mask for the four standard key types.
- */
- #define XkbOneLevelIndex 0
- #define XkbTwoLevelIndex 1
- #define XkbAlphabeticIndex 2
- #define XkbKeypadIndex 3
- #define XkbLastRequiredType XkbKeypadIndex
- #define XkbNumRequiredTypes (XkbLastRequiredType+1)
- #define XkbMaxKeyTypes 255
- #define XkbOneLevelMask (1<<0)
- #define XkbTwoLevelMask (1<<1)
- #define XkbAlphabeticMask (1<<2)
- #define XkbKeypadMask (1<<3)
- #define XkbAllRequiredTypes (0xf)
- #define XkbShiftLevel(n) ((n)-1)
- #define XkbShiftLevelMask(n) (1<<((n)-1))
- /*
- * Extension name and version information
- */
- #define XkbName "XKEYBOARD"
- #define XkbMajorVersion 1
- #define XkbMinorVersion 0
- /*
- * Explicit map components:
- * - Used in the 'explicit' field of an XkbServerMap. Specifies
- * the keyboard components that should _not_ be updated automatically
- * in response to core protocol keyboard mapping requests.
- */
- #define XkbExplicitKeyTypesMask (0x0f)
- #define XkbExplicitKeyType1Mask (1<<0)
- #define XkbExplicitKeyType2Mask (1<<1)
- #define XkbExplicitKeyType3Mask (1<<2)
- #define XkbExplicitKeyType4Mask (1<<3)
- #define XkbExplicitInterpretMask (1<<4)
- #define XkbExplicitAutoRepeatMask (1<<5)
- #define XkbExplicitBehaviorMask (1<<6)
- #define XkbExplicitVModMapMask (1<<7)
- #define XkbAllExplicitMask (0xff)
- /*
- * Map components masks:
- * Those in AllMapComponentsMask:
- * - Specifies the individual fields to be loaded or changed for the
- * GetMap and SetMap requests.
- * Those in ClientInfoMask:
- * - Specifies the components to be allocated by XkbAllocClientMap.
- * Those in ServerInfoMask:
- * - Specifies the components to be allocated by XkbAllocServerMap.
- */
- #define XkbKeyTypesMask (1<<0)
- #define XkbKeySymsMask (1<<1)
- #define XkbModifierMapMask (1<<2)
- #define XkbExplicitComponentsMask (1<<3)
- #define XkbKeyActionsMask (1<<4)
- #define XkbKeyBehaviorsMask (1<<5)
- #define XkbVirtualModsMask (1<<6)
- #define XkbVirtualModMapMask (1<<7)
- #define XkbAllClientInfoMask (XkbKeyTypesMask|XkbKeySymsMask|XkbModifierMapMask)
- #define XkbAllServerInfoMask (XkbExplicitComponentsMask|XkbKeyActionsMask|XkbKeyBehaviorsMask|XkbVirtualModsMask|XkbVirtualModMapMask)
- #define XkbAllMapComponentsMask (XkbAllClientInfoMask|XkbAllServerInfoMask)
- /*
- * Symbol interpretations flags:
- * - Used in the flags field of a symbol interpretation
- */
- #define XkbSI_AutoRepeat (1<<0)
- #define XkbSI_LockingKey (1<<1)
- /*
- * Symbol interpretations match specification:
- * - Used in the match field of a symbol interpretation to specify
- * the conditions under which an interpretation is used.
- */
- #define XkbSI_LevelOneOnly (0x80)
- #define XkbSI_OpMask (0x7f)
- #define XkbSI_NoneOf (0)
- #define XkbSI_AnyOfOrNone (1)
- #define XkbSI_AnyOf (2)
- #define XkbSI_AllOf (3)
- #define XkbSI_Exactly (4)
- /*
- * Indicator map flags:
- * - Used in the flags field of an indicator map to indicate the
- * conditions under which and indicator can be changed and the
- * effects of changing the indicator.
- */
- #define XkbIM_NoExplicit (1L << 7)
- #define XkbIM_NoAutomatic (1L << 6)
- #define XkbIM_LEDDrivesKB (1L << 5)
- /*
- * Indicator map component specifications:
- * - Used by the 'which_groups' and 'which_mods' fields of an indicator
- * map to specify which keyboard components should be used to drive
- * the indicator.
- */
- #define XkbIM_UseBase (1L << 0)
- #define XkbIM_UseLatched (1L << 1)
- #define XkbIM_UseLocked (1L << 2)
- #define XkbIM_UseEffective (1L << 3)
- #define XkbIM_UseCompat (1L << 4)
- #define XkbIM_UseNone 0
- #define XkbIM_UseAnyGroup (XkbIM_UseBase|XkbIM_UseLatched|XkbIM_UseLocked
- |XkbIM_UseEffective)
- #define XkbIM_UseAnyMods (XkbIM_UseAnyGroup|XkbIM_UseCompat)
- /*
- * Compatibility Map Compontents:
- * - Specifies the components to be allocated in XkbAllocCompatMap.
- */
- #define XkbSymInterpMask (1<<0)
- #define XkbGroupCompatMask (1<<1)
- #define XkbAllCompatMask (0x3)
- /*
- * Names component mask:
- * - Specifies the names to be loaded or changed for the GetNames and
- * SetNames requests.
- * - Specifies the names that have changed in a NamesNotify event.
- * - Specifies the names components to be allocated by XkbAllocNames.
- */
- #define XkbKeycodesNameMask (1<<0)
- #define XkbGeometryNameMask (1<<1)
- #define XkbSymbolsNameMask (1<<2)
- #define XkbPhysSymbolsNameMask (1<<3)
- #define XkbTypesNameMask (1<<4)
- #define XkbCompatNameMask (1<<5)
- #define XkbKeyTypeNamesMask (1<<6)
- #define XkbKTLevelNamesMask (1<<7)
- #define XkbIndicatorNamesMask (1<<8)
- #define XkbKeyNamesMask (1<<9)
- #define XkbKeyAliasesMask (1<<10)
- #define XkbVirtualModNamesMask (1<<11)
- #define XkbGroupNamesMask (1<<12)
- #define XkbRGNamesMask (1<<13)
- #define XkbComponentNamesMask (0x3f)
- #define XkbAllNamesMask (0x3fff)
- /*
- * GetByName components:
- * - Specifies desired or necessary components to GetKbdByName request.
- * - Reports the components that were found in a GetKbdByNameReply
- */
- #define XkbGBN_TypesMask (1L << 0)
- #define XkbGBN_CompatMapMask (1L << 1)
- #define XkbGBN_ClientSymbolsMask (1L << 2)
- #define XkbGBN_ServerSymbolsMask (1L << 3)
- #define XkbGBN_SymbolsMask (XkbGBN_ClientSymbolsMask|XkbGBN_ServerSymbolsMask)
- #define XkbGBN_IndicatorMapMask (1L << 4)
- #define XkbGBN_KeyNamesMask (1L << 5)
- #define XkbGBN_GeometryMask (1L << 6)
- #define XkbGBN_OtherNamesMask (1L << 7)
- #define XkbGBN_AllComponentsMask (0xff)
- /*
- * ListComponents flags
- */
- #define XkbLC_Hidden (1L << 0)
- #define XkbLC_Default (1L << 1)
- #define XkbLC_Partial (1L << 2)
- #define XkbLC_AlphanumericKeys (1L << 8)
- #define XkbLC_ModifierKeys (1L << 9)
- #define XkbLC_KeypadKeys (1L << 10)
- #define XkbLC_FunctionKeys (1L << 11)
- #define XkbLC_AlternateGroup (1L << 12)
- /*
- * X Input Extension Interactions
- * - Specifies the possible interactions between XKB and the X input
- * extension
- * - Used to request (XkbGetDeviceInfo) or change (XKbSetDeviceInfo)
- * XKB information about an extension device.
- * - Reports the list of supported optional features in the reply to
- * XkbGetDeviceInfo or in an XkbExtensionDeviceNotify event.
- * XkbXI_UnsupportedFeature is reported in XkbExtensionDeviceNotify
- * events to indicate an attempt to use an unsupported feature.
- */
- #define XkbXI_KeyboardsMask (1L << 0)
- #define XkbXI_ButtonActionsMask (1L << 1)
- #define XkbXI_IndicatorNamesMask (1L << 2)
- #define XkbXI_IndicatorMapsMask (1L << 3)
- #define XkbXI_IndicatorStateMask (1L << 4)
- #define XkbXI_UnsupportedFeatureMask (1L << 15)
- #define XkbXI_AllFeaturesMask (0x001f)
- #define XkbXI_AllDeviceFeaturesMask (0x001e)
- #define XkbXI_IndicatorsMask (0x001c)
- #define XkbAllExtensionDeviceEventsMask (0x801f)
- /*
- * Per-Client Flags:
- * - Specifies flags to be changed by the PerClientFlags request.
- */
- #define XkbPCF_DetectableAutoRepeatMask (1L << 0)
- #define XkbPCF_GrabsUseXKBStateMask (1L << 1)
- #define XkbPCF_AutoResetControlsMask (1L << 2)
- #define XkbPCF_LookupStateWhenGrabbed (1L << 3)
- #define XkbPCF_SendEventUsesXKBState (1L << 4)
- #define XkbPCF_AllFlagsMask (0x1F)
- /*
- * Debugging flags and controls
- */
- #define XkbDF_DisableLocks (1<<0)
- #endif /* _XKB_H_ */