117ca54c3Smrg/************************************************************ 217ca54c3SmrgCopyright (c) 1993 by Silicon Graphics Computer Systems, Inc. 317ca54c3Smrg 417ca54c3SmrgPermission to use, copy, modify, and distribute this 517ca54c3Smrgsoftware and its documentation for any purpose and without 617ca54c3Smrgfee is hereby granted, provided that the above copyright 717ca54c3Smrgnotice appear in all copies and that both that copyright 817ca54c3Smrgnotice and this permission notice appear in supporting 9ea1d6981Smrgdocumentation, and that the name of Silicon Graphics not be 10ea1d6981Smrgused in advertising or publicity pertaining to distribution 1117ca54c3Smrgof the software without specific prior written permission. 12ea1d6981SmrgSilicon Graphics makes no representation about the suitability 1317ca54c3Smrgof this software for any purpose. It is provided "as is" 1417ca54c3Smrgwithout any express or implied warranty. 1517ca54c3Smrg 16ea1d6981SmrgSILICON GRAPHICS DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS 17ea1d6981SmrgSOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY 1817ca54c3SmrgAND FITNESS FOR A PARTICULAR PURPOSE. IN NO EVENT SHALL SILICON 19ea1d6981SmrgGRAPHICS BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL 20ea1d6981SmrgDAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, 21ea1d6981SmrgDATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE 2217ca54c3SmrgOR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH 2317ca54c3SmrgTHE USE OR PERFORMANCE OF THIS SOFTWARE. 2417ca54c3Smrg 2517ca54c3Smrg********************************************************/ 2617ca54c3Smrg 2717ca54c3Smrg#ifndef _XKB_H_ 2817ca54c3Smrg#define _XKB_H_ 2917ca54c3Smrg 3017ca54c3Smrg /* 3117ca54c3Smrg * XKB request codes, used in: 3217ca54c3Smrg * - xkbReqType field of all requests 3317ca54c3Smrg * - requestMinor field of some events 3417ca54c3Smrg */ 3517ca54c3Smrg#define X_kbUseExtension 0 3617ca54c3Smrg#define X_kbSelectEvents 1 3717ca54c3Smrg#define X_kbBell 3 3817ca54c3Smrg#define X_kbGetState 4 3917ca54c3Smrg#define X_kbLatchLockState 5 4017ca54c3Smrg#define X_kbGetControls 6 4117ca54c3Smrg#define X_kbSetControls 7 4217ca54c3Smrg#define X_kbGetMap 8 4317ca54c3Smrg#define X_kbSetMap 9 4417ca54c3Smrg#define X_kbGetCompatMap 10 4517ca54c3Smrg#define X_kbSetCompatMap 11 4617ca54c3Smrg#define X_kbGetIndicatorState 12 4717ca54c3Smrg#define X_kbGetIndicatorMap 13 4817ca54c3Smrg#define X_kbSetIndicatorMap 14 4917ca54c3Smrg#define X_kbGetNamedIndicator 15 5017ca54c3Smrg#define X_kbSetNamedIndicator 16 5117ca54c3Smrg#define X_kbGetNames 17 5217ca54c3Smrg#define X_kbSetNames 18 5317ca54c3Smrg#define X_kbGetGeometry 19 5417ca54c3Smrg#define X_kbSetGeometry 20 5517ca54c3Smrg#define X_kbPerClientFlags 21 5617ca54c3Smrg#define X_kbListComponents 22 5717ca54c3Smrg#define X_kbGetKbdByName 23 5817ca54c3Smrg#define X_kbGetDeviceInfo 24 5917ca54c3Smrg#define X_kbSetDeviceInfo 25 6017ca54c3Smrg#define X_kbSetDebuggingFlags 101 6117ca54c3Smrg 6217ca54c3Smrg /* 6317ca54c3Smrg * In the X sense, XKB reports only one event. 6417ca54c3Smrg * The type field of all XKB events is XkbEventCode 6517ca54c3Smrg */ 6617ca54c3Smrg#define XkbEventCode 0 6717ca54c3Smrg#define XkbNumberEvents (XkbEventCode+1) 6817ca54c3Smrg 6917ca54c3Smrg /* 70ea1d6981Smrg * XKB has a minor event code so it can use one X event code for 71ea1d6981Smrg * multiple purposes. 7217ca54c3Smrg * - reported in the xkbType field of all XKB events. 73ea1d6981Smrg * - XkbSelectEventDetails: Indicates the event for which event details 7417ca54c3Smrg * are being changed 7517ca54c3Smrg */ 7617ca54c3Smrg#define XkbNewKeyboardNotify 0 7717ca54c3Smrg#define XkbMapNotify 1 7817ca54c3Smrg#define XkbStateNotify 2 7917ca54c3Smrg#define XkbControlsNotify 3 8017ca54c3Smrg#define XkbIndicatorStateNotify 4 8117ca54c3Smrg#define XkbIndicatorMapNotify 5 8217ca54c3Smrg#define XkbNamesNotify 6 8317ca54c3Smrg#define XkbCompatMapNotify 7 8417ca54c3Smrg#define XkbBellNotify 8 8517ca54c3Smrg#define XkbActionMessage 9 8617ca54c3Smrg#define XkbAccessXNotify 10 8717ca54c3Smrg#define XkbExtensionDeviceNotify 11 8817ca54c3Smrg 8917ca54c3Smrg /* 9017ca54c3Smrg * Event Mask: 9117ca54c3Smrg * - XkbSelectEvents: Specifies event interest. 9217ca54c3Smrg */ 9317ca54c3Smrg#define XkbNewKeyboardNotifyMask (1L << 0) 9417ca54c3Smrg#define XkbMapNotifyMask (1L << 1) 9517ca54c3Smrg#define XkbStateNotifyMask (1L << 2) 9617ca54c3Smrg#define XkbControlsNotifyMask (1L << 3) 9717ca54c3Smrg#define XkbIndicatorStateNotifyMask (1L << 4) 9817ca54c3Smrg#define XkbIndicatorMapNotifyMask (1L << 5) 9917ca54c3Smrg#define XkbNamesNotifyMask (1L << 6) 10017ca54c3Smrg#define XkbCompatMapNotifyMask (1L << 7) 10117ca54c3Smrg#define XkbBellNotifyMask (1L << 8) 10217ca54c3Smrg#define XkbActionMessageMask (1L << 9) 10317ca54c3Smrg#define XkbAccessXNotifyMask (1L << 10) 10417ca54c3Smrg#define XkbExtensionDeviceNotifyMask (1L << 11) 10517ca54c3Smrg#define XkbAllEventsMask (0xFFF) 10617ca54c3Smrg 10717ca54c3Smrg /* 10817ca54c3Smrg * NewKeyboardNotify event details: 10917ca54c3Smrg */ 11017ca54c3Smrg#define XkbNKN_KeycodesMask (1L << 0) 11117ca54c3Smrg#define XkbNKN_GeometryMask (1L << 1) 11217ca54c3Smrg#define XkbNKN_DeviceIDMask (1L << 2) 11317ca54c3Smrg#define XkbAllNewKeyboardEventsMask (0x7) 11417ca54c3Smrg 11517ca54c3Smrg /* 11617ca54c3Smrg * AccessXNotify event types: 11717ca54c3Smrg * - The 'what' field of AccessXNotify events reports the 11817ca54c3Smrg * reason that the event was generated. 11917ca54c3Smrg */ 12017ca54c3Smrg#define XkbAXN_SKPress 0 12117ca54c3Smrg#define XkbAXN_SKAccept 1 12217ca54c3Smrg#define XkbAXN_SKReject 2 12317ca54c3Smrg#define XkbAXN_SKRelease 3 12417ca54c3Smrg#define XkbAXN_BKAccept 4 12517ca54c3Smrg#define XkbAXN_BKReject 5 12617ca54c3Smrg#define XkbAXN_AXKWarning 6 12717ca54c3Smrg 12817ca54c3Smrg /* 12917ca54c3Smrg * AccessXNotify details: 13017ca54c3Smrg * - Used as an event detail mask to limit the conditions under which 13117ca54c3Smrg * AccessXNotify events are reported 13217ca54c3Smrg */ 13317ca54c3Smrg#define XkbAXN_SKPressMask (1L << 0) 13417ca54c3Smrg#define XkbAXN_SKAcceptMask (1L << 1) 13517ca54c3Smrg#define XkbAXN_SKRejectMask (1L << 2) 13617ca54c3Smrg#define XkbAXN_SKReleaseMask (1L << 3) 13717ca54c3Smrg#define XkbAXN_BKAcceptMask (1L << 4) 13817ca54c3Smrg#define XkbAXN_BKRejectMask (1L << 5) 13917ca54c3Smrg#define XkbAXN_AXKWarningMask (1L << 6) 14017ca54c3Smrg#define XkbAllAccessXEventsMask (0x7f) 14117ca54c3Smrg 14217ca54c3Smrg /* 14317ca54c3Smrg * Miscellaneous event details: 144d63b911fSmrg * - event detail masks for assorted events that don't really 14517ca54c3Smrg * have any details. 14617ca54c3Smrg */ 14717ca54c3Smrg#define XkbAllStateEventsMask XkbAllStateComponentsMask 14817ca54c3Smrg#define XkbAllMapEventsMask XkbAllMapComponentsMask 14917ca54c3Smrg#define XkbAllControlEventsMask XkbAllControlsMask 15017ca54c3Smrg#define XkbAllIndicatorEventsMask XkbAllIndicatorsMask 15117ca54c3Smrg#define XkbAllNameEventsMask XkbAllNamesMask 15217ca54c3Smrg#define XkbAllCompatMapEventsMask XkbAllCompatMask 15317ca54c3Smrg#define XkbAllBellEventsMask (1L << 0) 15417ca54c3Smrg#define XkbAllActionMessagesMask (1L << 0) 15517ca54c3Smrg 15617ca54c3Smrg /* 15717ca54c3Smrg * XKB reports one error: BadKeyboard 15817ca54c3Smrg * A further reason for the error is encoded into to most significant 15917ca54c3Smrg * byte of the resourceID for the error: 16017ca54c3Smrg * XkbErr_BadDevice - the device in question was not found 161ea1d6981Smrg * XkbErr_BadClass - the device was found but it doesn't belong to 16217ca54c3Smrg * the appropriate class. 16317ca54c3Smrg * XkbErr_BadId - the device was found and belongs to the right 16417ca54c3Smrg * class, but not feedback with a matching id was 16517ca54c3Smrg * found. 16617ca54c3Smrg * The low byte of the resourceID for this error contains the device 16717ca54c3Smrg * id, class specifier or feedback id that failed. 16817ca54c3Smrg */ 16917ca54c3Smrg#define XkbKeyboard 0 17017ca54c3Smrg#define XkbNumberErrors 1 17117ca54c3Smrg 17217ca54c3Smrg#define XkbErr_BadDevice 0xff 17317ca54c3Smrg#define XkbErr_BadClass 0xfe 17417ca54c3Smrg#define XkbErr_BadId 0xfd 17517ca54c3Smrg 17617ca54c3Smrg /* 17717ca54c3Smrg * Keyboard Components Mask: 17817ca54c3Smrg * - Specifies the components that follow a GetKeyboardByNameReply 17917ca54c3Smrg */ 18017ca54c3Smrg#define XkbClientMapMask (1L << 0) 18117ca54c3Smrg#define XkbServerMapMask (1L << 1) 18217ca54c3Smrg#define XkbCompatMapMask (1L << 2) 18317ca54c3Smrg#define XkbIndicatorMapMask (1L << 3) 18417ca54c3Smrg#define XkbNamesMask (1L << 4) 18517ca54c3Smrg#define XkbGeometryMask (1L << 5) 18617ca54c3Smrg#define XkbControlsMask (1L << 6) 18717ca54c3Smrg#define XkbAllComponentsMask (0x7f) 18817ca54c3Smrg 18917ca54c3Smrg /* 19017ca54c3Smrg * State detail mask: 19117ca54c3Smrg * - The 'changed' field of StateNotify events reports which of 19217ca54c3Smrg * the keyboard state components have changed. 19317ca54c3Smrg * - Used as an event detail mask to limit the conditions under 19417ca54c3Smrg * which StateNotify events are reported. 19517ca54c3Smrg */ 19617ca54c3Smrg#define XkbModifierStateMask (1L << 0) 19717ca54c3Smrg#define XkbModifierBaseMask (1L << 1) 19817ca54c3Smrg#define XkbModifierLatchMask (1L << 2) 19917ca54c3Smrg#define XkbModifierLockMask (1L << 3) 20017ca54c3Smrg#define XkbGroupStateMask (1L << 4) 20117ca54c3Smrg#define XkbGroupBaseMask (1L << 5) 20217ca54c3Smrg#define XkbGroupLatchMask (1L << 6) 20317ca54c3Smrg#define XkbGroupLockMask (1L << 7) 20417ca54c3Smrg#define XkbCompatStateMask (1L << 8) 20517ca54c3Smrg#define XkbGrabModsMask (1L << 9) 20617ca54c3Smrg#define XkbCompatGrabModsMask (1L << 10) 20717ca54c3Smrg#define XkbLookupModsMask (1L << 11) 20817ca54c3Smrg#define XkbCompatLookupModsMask (1L << 12) 20917ca54c3Smrg#define XkbPointerButtonMask (1L << 13) 21017ca54c3Smrg#define XkbAllStateComponentsMask (0x3fff) 21117ca54c3Smrg 21217ca54c3Smrg /* 21317ca54c3Smrg * Controls detail masks: 21417ca54c3Smrg * The controls specified in XkbAllControlsMask: 215ea1d6981Smrg * - The 'changed' field of ControlsNotify events reports which of 21617ca54c3Smrg * the keyboard controls have changed. 21717ca54c3Smrg * - The 'changeControls' field of the SetControls request specifies 21817ca54c3Smrg * the controls for which values are to be changed. 219ea1d6981Smrg * - Used as an event detail mask to limit the conditions under 22017ca54c3Smrg * which ControlsNotify events are reported. 22117ca54c3Smrg * 22217ca54c3Smrg * The controls specified in the XkbAllBooleanCtrlsMask: 22317ca54c3Smrg * - The 'enabledControls' field of ControlsNotify events reports the 22417ca54c3Smrg * current status of the boolean controls. 22517ca54c3Smrg * - The 'enabledControlsChanges' field of ControlsNotify events reports 22617ca54c3Smrg * any boolean controls that have been turned on or off. 22717ca54c3Smrg * - The 'affectEnabledControls' and 'enabledControls' fields of the 22817ca54c3Smrg * kbSetControls request change the set of enabled controls. 22917ca54c3Smrg * - The 'accessXTimeoutMask' and 'accessXTimeoutValues' fields of 23017ca54c3Smrg * an XkbControlsRec specify the controls to be changed if the keyboard 23117ca54c3Smrg * times out and the values to which they should be changed. 232ea1d6981Smrg * - The 'autoCtrls' and 'autoCtrlsValues' fields of the PerClientFlags 23317ca54c3Smrg * request specifies the specify the controls to be reset when the 23417ca54c3Smrg * client exits and the values to which they should be reset. 23517ca54c3Smrg * - The 'ctrls' field of an indicator map specifies the controls 23617ca54c3Smrg * that drive the indicator. 23717ca54c3Smrg * - Specifies the boolean controls affected by the SetControls and 23817ca54c3Smrg * LockControls key actions. 23917ca54c3Smrg */ 24017ca54c3Smrg#define XkbRepeatKeysMask (1L << 0) 24117ca54c3Smrg#define XkbSlowKeysMask (1L << 1) 24217ca54c3Smrg#define XkbBounceKeysMask (1L << 2) 24317ca54c3Smrg#define XkbStickyKeysMask (1L << 3) 24417ca54c3Smrg#define XkbMouseKeysMask (1L << 4) 24517ca54c3Smrg#define XkbMouseKeysAccelMask (1L << 5) 24617ca54c3Smrg#define XkbAccessXKeysMask (1L << 6) 24717ca54c3Smrg#define XkbAccessXTimeoutMask (1L << 7) 24817ca54c3Smrg#define XkbAccessXFeedbackMask (1L << 8) 24917ca54c3Smrg#define XkbAudibleBellMask (1L << 9) 25017ca54c3Smrg#define XkbOverlay1Mask (1L << 10) 25117ca54c3Smrg#define XkbOverlay2Mask (1L << 11) 25217ca54c3Smrg#define XkbIgnoreGroupLockMask (1L << 12) 25317ca54c3Smrg#define XkbGroupsWrapMask (1L << 27) 25417ca54c3Smrg#define XkbInternalModsMask (1L << 28) 25517ca54c3Smrg#define XkbIgnoreLockModsMask (1L << 29) 25617ca54c3Smrg#define XkbPerKeyRepeatMask (1L << 30) 25717ca54c3Smrg#define XkbControlsEnabledMask (1L << 31) 25817ca54c3Smrg 25917ca54c3Smrg#define XkbAccessXOptionsMask (XkbStickyKeysMask|XkbAccessXFeedbackMask) 26017ca54c3Smrg 26117ca54c3Smrg#define XkbAllBooleanCtrlsMask (0x00001FFF) 26217ca54c3Smrg#define XkbAllControlsMask (0xF8001FFF) 26317ca54c3Smrg#define XkbAllControlEventsMask XkbAllControlsMask 26417ca54c3Smrg 26517ca54c3Smrg /* 26617ca54c3Smrg * AccessX Options Mask 26717ca54c3Smrg * - The 'accessXOptions' field of an XkbControlsRec specifies the 26817ca54c3Smrg * AccessX options that are currently in effect. 26917ca54c3Smrg * - The 'accessXTimeoutOptionsMask' and 'accessXTimeoutOptionsValues' 270ea1d6981Smrg * fields of an XkbControlsRec specify the Access X options to be 271ea1d6981Smrg * changed if the keyboard times out and the values to which they 27217ca54c3Smrg * should be changed. 27317ca54c3Smrg */ 27417ca54c3Smrg#define XkbAX_SKPressFBMask (1L << 0) 27517ca54c3Smrg#define XkbAX_SKAcceptFBMask (1L << 1) 27617ca54c3Smrg#define XkbAX_FeatureFBMask (1L << 2) 27717ca54c3Smrg#define XkbAX_SlowWarnFBMask (1L << 3) 27817ca54c3Smrg#define XkbAX_IndicatorFBMask (1L << 4) 27917ca54c3Smrg#define XkbAX_StickyKeysFBMask (1L << 5) 28017ca54c3Smrg#define XkbAX_TwoKeysMask (1L << 6) 28117ca54c3Smrg#define XkbAX_LatchToLockMask (1L << 7) 28217ca54c3Smrg#define XkbAX_SKReleaseFBMask (1L << 8) 28317ca54c3Smrg#define XkbAX_SKRejectFBMask (1L << 9) 28417ca54c3Smrg#define XkbAX_BKRejectFBMask (1L << 10) 28517ca54c3Smrg#define XkbAX_DumbBellFBMask (1L << 11) 28617ca54c3Smrg#define XkbAX_FBOptionsMask (0xF3F) 28717ca54c3Smrg#define XkbAX_SKOptionsMask (0x0C0) 28817ca54c3Smrg#define XkbAX_AllOptionsMask (0xFFF) 28917ca54c3Smrg 29017ca54c3Smrg /* 29117ca54c3Smrg * XkbUseCoreKbd is used to specify the core keyboard without having 29217ca54c3Smrg * to look up its X input extension identifier. 29317ca54c3Smrg * XkbUseCorePtr is used to specify the core pointer without having 29417ca54c3Smrg * to look up its X input extension identifier. 29517ca54c3Smrg * XkbDfltXIClass is used to specify "don't care" any place that the 296ea1d6981Smrg * XKB protocol is looking for an X Input Extension 29717ca54c3Smrg * device class. 29817ca54c3Smrg * XkbDfltXIId is used to specify "don't care" any place that the 29917ca54c3Smrg * XKB protocol is looking for an X Input Extension 30017ca54c3Smrg * feedback identifier. 30117ca54c3Smrg * XkbAllXIClasses is used to get information about all device indicators, 30217ca54c3Smrg * whether they're part of the indicator feedback class 30317ca54c3Smrg * or the keyboard feedback class. 30417ca54c3Smrg * XkbAllXIIds is used to get information about all device indicator 30517ca54c3Smrg * feedbacks without having to list them. 30617ca54c3Smrg * XkbXINone is used to indicate that no class or id has been specified. 30717ca54c3Smrg * XkbLegalXILedClass(c) True if 'c' specifies a legal class with LEDs 30817ca54c3Smrg * XkbLegalXIBellClass(c) True if 'c' specifies a legal class with bells 30917ca54c3Smrg * XkbExplicitXIDevice(d) True if 'd' explicitly specifies a device 31017ca54c3Smrg * XkbExplicitXIClass(c) True if 'c' explicitly specifies a device class 31117ca54c3Smrg * XkbExplicitXIId(c) True if 'i' explicitly specifies a device id 312ea1d6981Smrg * XkbSingleXIClass(c) True if 'c' specifies exactly one device class, 31317ca54c3Smrg * including the default. 314ea1d6981Smrg * XkbSingleXIId(i) True if 'i' specifies exactly one device 31517ca54c3Smrg * identifier, including the default. 31617ca54c3Smrg */ 31717ca54c3Smrg#define XkbUseCoreKbd 0x0100 31817ca54c3Smrg#define XkbUseCorePtr 0x0200 31917ca54c3Smrg#define XkbDfltXIClass 0x0300 32017ca54c3Smrg#define XkbDfltXIId 0x0400 32117ca54c3Smrg#define XkbAllXIClasses 0x0500 32217ca54c3Smrg#define XkbAllXIIds 0x0600 32317ca54c3Smrg#define XkbXINone 0xff00 32417ca54c3Smrg 32517ca54c3Smrg#define XkbLegalXILedClass(c) (((c)==KbdFeedbackClass)||\ 32617ca54c3Smrg ((c)==LedFeedbackClass)||\ 32717ca54c3Smrg ((c)==XkbDfltXIClass)||\ 32817ca54c3Smrg ((c)==XkbAllXIClasses)) 32917ca54c3Smrg#define XkbLegalXIBellClass(c) (((c)==KbdFeedbackClass)||\ 33017ca54c3Smrg ((c)==BellFeedbackClass)||\ 33117ca54c3Smrg ((c)==XkbDfltXIClass)||\ 33217ca54c3Smrg ((c)==XkbAllXIClasses)) 33317ca54c3Smrg#define XkbExplicitXIDevice(c) (((c)&(~0xff))==0) 33417ca54c3Smrg#define XkbExplicitXIClass(c) (((c)&(~0xff))==0) 33517ca54c3Smrg#define XkbExplicitXIId(c) (((c)&(~0xff))==0) 33617ca54c3Smrg#define XkbSingleXIClass(c) ((((c)&(~0xff))==0)||((c)==XkbDfltXIClass)) 33717ca54c3Smrg#define XkbSingleXIId(c) ((((c)&(~0xff))==0)||((c)==XkbDfltXIId)) 33817ca54c3Smrg 33917ca54c3Smrg#define XkbNoModifier 0xff 34017ca54c3Smrg#define XkbNoShiftLevel 0xff 34117ca54c3Smrg#define XkbNoShape 0xff 34217ca54c3Smrg#define XkbNoIndicator 0xff 34317ca54c3Smrg 34417ca54c3Smrg#define XkbNoModifierMask 0 34517ca54c3Smrg#define XkbAllModifiersMask 0xff 34617ca54c3Smrg#define XkbAllVirtualModsMask 0xffff 34717ca54c3Smrg 34817ca54c3Smrg#define XkbNumKbdGroups 4 34917ca54c3Smrg#define XkbMaxKbdGroup (XkbNumKbdGroups-1) 35017ca54c3Smrg 35117ca54c3Smrg#define XkbMaxMouseKeysBtn 4 35217ca54c3Smrg 35317ca54c3Smrg /* 35417ca54c3Smrg * Group Index and Mask: 35517ca54c3Smrg * - Indices into the kt_index array of a key type. 35617ca54c3Smrg * - Mask specifies types to be changed for XkbChangeTypesOfKey 35717ca54c3Smrg */ 35817ca54c3Smrg#define XkbGroup1Index 0 35917ca54c3Smrg#define XkbGroup2Index 1 36017ca54c3Smrg#define XkbGroup3Index 2 36117ca54c3Smrg#define XkbGroup4Index 3 36217ca54c3Smrg#define XkbAnyGroup 254 36317ca54c3Smrg#define XkbAllGroups 255 36417ca54c3Smrg 36517ca54c3Smrg#define XkbGroup1Mask (1<<0) 36617ca54c3Smrg#define XkbGroup2Mask (1<<1) 36717ca54c3Smrg#define XkbGroup3Mask (1<<2) 36817ca54c3Smrg#define XkbGroup4Mask (1<<3) 36917ca54c3Smrg#define XkbAnyGroupMask (1<<7) 37017ca54c3Smrg#define XkbAllGroupsMask (0xf) 37117ca54c3Smrg 37217ca54c3Smrg /* 37317ca54c3Smrg * BuildCoreState: Given a keyboard group and a modifier state, 37417ca54c3Smrg * construct the value to be reported an event. 37517ca54c3Smrg * GroupForCoreState: Given the state reported in an event, 37617ca54c3Smrg * determine the keyboard group. 37717ca54c3Smrg * IsLegalGroup: Returns TRUE if 'g' is a valid group index. 37817ca54c3Smrg */ 37917ca54c3Smrg#define XkbBuildCoreState(m,g) ((((g)&0x3)<<13)|((m)&0xff)) 38017ca54c3Smrg#define XkbGroupForCoreState(s) (((s)>>13)&0x3) 38117ca54c3Smrg#define XkbIsLegalGroup(g) (((g)>=0)&&((g)<XkbNumKbdGroups)) 38217ca54c3Smrg 38317ca54c3Smrg /* 38417ca54c3Smrg * GroupsWrap values: 38517ca54c3Smrg * - The 'groupsWrap' field of an XkbControlsRec specifies the 38617ca54c3Smrg * treatment of out of range groups. 38717ca54c3Smrg * - Bits 6 and 7 of the group info field of a key symbol map 38817ca54c3Smrg * specify the interpretation of out of range groups for the 38917ca54c3Smrg * corresponding key. 39017ca54c3Smrg */ 39117ca54c3Smrg#define XkbWrapIntoRange (0x00) 39217ca54c3Smrg#define XkbClampIntoRange (0x40) 39317ca54c3Smrg#define XkbRedirectIntoRange (0x80) 39417ca54c3Smrg 39517ca54c3Smrg /* 39617ca54c3Smrg * Action flags: Reported in the 'flags' field of most key actions. 39717ca54c3Smrg * Interpretation depends on the type of the action; not all actions 39817ca54c3Smrg * accept all flags. 39917ca54c3Smrg * 40017ca54c3Smrg * Option Used for Actions 40117ca54c3Smrg * ------ ---------------- 40217ca54c3Smrg * ClearLocks SetMods, LatchMods, SetGroup, LatchGroup 40317ca54c3Smrg * LatchToLock SetMods, LatchMods, SetGroup, LatchGroup 40417ca54c3Smrg * LockNoLock LockMods, ISOLock, LockPtrBtn, LockDeviceBtn 40517ca54c3Smrg * LockNoUnlock LockMods, ISOLock, LockPtrBtn, LockDeviceBtn 40617ca54c3Smrg * UseModMapMods SetMods, LatchMods, LockMods, ISOLock 40717ca54c3Smrg * GroupAbsolute SetGroup, LatchGroup, LockGroup, ISOLock 40817ca54c3Smrg * UseDfltButton PtrBtn, LockPtrBtn 40917ca54c3Smrg * NoAcceleration MovePtr 41017ca54c3Smrg * MoveAbsoluteX MovePtr 41117ca54c3Smrg * MoveAbsoluteY MovePtr 41217ca54c3Smrg * ISODfltIsGroup ISOLock 41317ca54c3Smrg * ISONoAffectMods ISOLock 41417ca54c3Smrg * ISONoAffectGroup ISOLock 41517ca54c3Smrg * ISONoAffectPtr ISOLock 41617ca54c3Smrg * ISONoAffectCtrls ISOLock 41717ca54c3Smrg * MessageOnPress ActionMessage 41817ca54c3Smrg * MessageOnRelease ActionMessage 41917ca54c3Smrg * MessageGenKeyEvent ActionMessage 42017ca54c3Smrg * AffectDfltBtn SetPtrDflt 42117ca54c3Smrg * DfltBtnAbsolute SetPtrDflt 42217ca54c3Smrg * SwitchApplication SwitchScreen 42317ca54c3Smrg * SwitchAbsolute SwitchScreen 42417ca54c3Smrg */ 42517ca54c3Smrg 42617ca54c3Smrg#define XkbSA_ClearLocks (1L << 0) 42717ca54c3Smrg#define XkbSA_LatchToLock (1L << 1) 42817ca54c3Smrg 42917ca54c3Smrg#define XkbSA_LockNoLock (1L << 0) 43017ca54c3Smrg#define XkbSA_LockNoUnlock (1L << 1) 43117ca54c3Smrg 43217ca54c3Smrg#define XkbSA_UseModMapMods (1L << 2) 43317ca54c3Smrg 43417ca54c3Smrg#define XkbSA_GroupAbsolute (1L << 2) 43517ca54c3Smrg#define XkbSA_UseDfltButton 0 43617ca54c3Smrg 43717ca54c3Smrg#define XkbSA_NoAcceleration (1L << 0) 43817ca54c3Smrg#define XkbSA_MoveAbsoluteX (1L << 1) 43917ca54c3Smrg#define XkbSA_MoveAbsoluteY (1L << 2) 44017ca54c3Smrg 44117ca54c3Smrg#define XkbSA_ISODfltIsGroup (1L << 7) 44217ca54c3Smrg#define XkbSA_ISONoAffectMods (1L << 6) 44317ca54c3Smrg#define XkbSA_ISONoAffectGroup (1L << 5) 44417ca54c3Smrg#define XkbSA_ISONoAffectPtr (1L << 4) 44517ca54c3Smrg#define XkbSA_ISONoAffectCtrls (1L << 3) 44617ca54c3Smrg#define XkbSA_ISOAffectMask (0x78) 44717ca54c3Smrg 44817ca54c3Smrg#define XkbSA_MessageOnPress (1L << 0) 44917ca54c3Smrg#define XkbSA_MessageOnRelease (1L << 1) 45017ca54c3Smrg#define XkbSA_MessageGenKeyEvent (1L << 2) 45117ca54c3Smrg 45217ca54c3Smrg#define XkbSA_AffectDfltBtn 1 45317ca54c3Smrg#define XkbSA_DfltBtnAbsolute (1L << 2) 45417ca54c3Smrg 45517ca54c3Smrg#define XkbSA_SwitchApplication (1L << 0) 45617ca54c3Smrg#define XkbSA_SwitchAbsolute (1L << 2) 45717ca54c3Smrg 45817ca54c3Smrg /* 459ea1d6981Smrg * The following values apply to the SA_DeviceValuator 460ea1d6981Smrg * action only. Valuator operations specify the action 461ea1d6981Smrg * to be taken. Values specified in the action are 46217ca54c3Smrg * multiplied by 2^scale before they are applied. 46317ca54c3Smrg */ 46417ca54c3Smrg#define XkbSA_IgnoreVal (0x00) 46517ca54c3Smrg#define XkbSA_SetValMin (0x10) 46617ca54c3Smrg#define XkbSA_SetValCenter (0x20) 46717ca54c3Smrg#define XkbSA_SetValMax (0x30) 46817ca54c3Smrg#define XkbSA_SetValRelative (0x40) 46917ca54c3Smrg#define XkbSA_SetValAbsolute (0x50) 47017ca54c3Smrg#define XkbSA_ValOpMask (0x70) 47117ca54c3Smrg#define XkbSA_ValScaleMask (0x07) 47217ca54c3Smrg#define XkbSA_ValOp(a) ((a)&XkbSA_ValOpMask) 47317ca54c3Smrg#define XkbSA_ValScale(a) ((a)&XkbSA_ValScaleMask) 47417ca54c3Smrg 47517ca54c3Smrg /* 47617ca54c3Smrg * Action types: specifies the type of a key action. Reported in the 47717ca54c3Smrg * type field of all key actions. 47817ca54c3Smrg */ 47917ca54c3Smrg#define XkbSA_NoAction 0x00 48017ca54c3Smrg#define XkbSA_SetMods 0x01 48117ca54c3Smrg#define XkbSA_LatchMods 0x02 48217ca54c3Smrg#define XkbSA_LockMods 0x03 48317ca54c3Smrg#define XkbSA_SetGroup 0x04 48417ca54c3Smrg#define XkbSA_LatchGroup 0x05 48517ca54c3Smrg#define XkbSA_LockGroup 0x06 48617ca54c3Smrg#define XkbSA_MovePtr 0x07 48717ca54c3Smrg#define XkbSA_PtrBtn 0x08 48817ca54c3Smrg#define XkbSA_LockPtrBtn 0x09 48917ca54c3Smrg#define XkbSA_SetPtrDflt 0x0a 49017ca54c3Smrg#define XkbSA_ISOLock 0x0b 49117ca54c3Smrg#define XkbSA_Terminate 0x0c 49217ca54c3Smrg#define XkbSA_SwitchScreen 0x0d 49317ca54c3Smrg#define XkbSA_SetControls 0x0e 49417ca54c3Smrg#define XkbSA_LockControls 0x0f 49517ca54c3Smrg#define XkbSA_ActionMessage 0x10 49617ca54c3Smrg#define XkbSA_RedirectKey 0x11 49717ca54c3Smrg#define XkbSA_DeviceBtn 0x12 49817ca54c3Smrg#define XkbSA_LockDeviceBtn 0x13 49917ca54c3Smrg#define XkbSA_DeviceValuator 0x14 50017ca54c3Smrg#define XkbSA_LastAction XkbSA_DeviceValuator 50117ca54c3Smrg#define XkbSA_NumActions (XkbSA_LastAction+1) 50217ca54c3Smrg 50317ca54c3Smrg#define XkbSA_XFree86Private 0x86 50417ca54c3Smrg 50517ca54c3Smrg /* 50617ca54c3Smrg * Specifies the key actions that clear latched groups or modifiers. 50717ca54c3Smrg */ 50817ca54c3Smrg#define XkbSA_BreakLatch \ 50917ca54c3Smrg ((1<<XkbSA_NoAction)|(1<<XkbSA_PtrBtn)|(1<<XkbSA_LockPtrBtn)|\ 51017ca54c3Smrg (1<<XkbSA_Terminate)|(1<<XkbSA_SwitchScreen)|(1<<XkbSA_SetControls)|\ 51117ca54c3Smrg (1<<XkbSA_LockControls)|(1<<XkbSA_ActionMessage)|\ 51217ca54c3Smrg (1<<XkbSA_RedirectKey)|(1<<XkbSA_DeviceBtn)|(1<<XkbSA_LockDeviceBtn)) 513ea1d6981Smrg 51417ca54c3Smrg /* 51517ca54c3Smrg * Macros to classify key actions 51617ca54c3Smrg */ 51717ca54c3Smrg#define XkbIsModAction(a) (((a)->type>=Xkb_SASetMods)&&((a)->type<=XkbSA_LockMods)) 51817ca54c3Smrg#define XkbIsGroupAction(a) (((a)->type>=XkbSA_SetGroup)&&((a)->type<=XkbSA_LockGroup)) 51917ca54c3Smrg#define XkbIsPtrAction(a) (((a)->type>=XkbSA_MovePtr)&&((a)->type<=XkbSA_SetPtrDflt)) 52017ca54c3Smrg 52117ca54c3Smrg 52217ca54c3Smrg /* 52317ca54c3Smrg * Key Behavior Qualifier: 52417ca54c3Smrg * KB_Permanent indicates that the behavior describes an unalterable 52517ca54c3Smrg * characteristic of the keyboard, not an XKB software-simulation of 52617ca54c3Smrg * the listed behavior. 527ea1d6981Smrg * Key Behavior Types: 52817ca54c3Smrg * Specifies the behavior of the underlying key. 52917ca54c3Smrg */ 53017ca54c3Smrg#define XkbKB_Permanent 0x80 53117ca54c3Smrg#define XkbKB_OpMask 0x7f 53217ca54c3Smrg 53317ca54c3Smrg#define XkbKB_Default 0x00 53417ca54c3Smrg#define XkbKB_Lock 0x01 53517ca54c3Smrg#define XkbKB_RadioGroup 0x02 53617ca54c3Smrg#define XkbKB_Overlay1 0x03 53717ca54c3Smrg#define XkbKB_Overlay2 0x04 53817ca54c3Smrg 53917ca54c3Smrg#define XkbKB_RGAllowNone 0x80 54017ca54c3Smrg 54117ca54c3Smrg /* 54217ca54c3Smrg * Various macros which describe the range of legal keycodes. 54317ca54c3Smrg */ 54417ca54c3Smrg#define XkbMinLegalKeyCode 8 54517ca54c3Smrg#define XkbMaxLegalKeyCode 255 54617ca54c3Smrg#define XkbMaxKeyCount (XkbMaxLegalKeyCode-XkbMinLegalKeyCode+1) 54717ca54c3Smrg#define XkbPerKeyBitArraySize ((XkbMaxLegalKeyCode+1)/8) 54817ca54c3Smrg/* Seems kinda silly to check that an unsigned char is <= 255... */ 54917ca54c3Smrg#define XkbIsLegalKeycode(k) ((k)>=XkbMinLegalKeyCode) 55017ca54c3Smrg 55117ca54c3Smrg /* 55217ca54c3Smrg * Assorted constants and limits. 55317ca54c3Smrg */ 55417ca54c3Smrg#define XkbNumModifiers 8 55517ca54c3Smrg#define XkbNumVirtualMods 16 55617ca54c3Smrg#define XkbNumIndicators 32 55717ca54c3Smrg#define XkbAllIndicatorsMask (0xffffffff) 55817ca54c3Smrg#define XkbMaxRadioGroups 32 55917ca54c3Smrg#define XkbAllRadioGroupsMask (0xffffffff) 56017ca54c3Smrg#define XkbMaxShiftLevel 63 56117ca54c3Smrg#define XkbMaxSymsPerKey (XkbMaxShiftLevel*XkbNumKbdGroups) 56217ca54c3Smrg#define XkbRGMaxMembers 12 56317ca54c3Smrg#define XkbActionMessageLength 6 56417ca54c3Smrg#define XkbKeyNameLength 4 56517ca54c3Smrg#define XkbMaxRedirectCount 8 56617ca54c3Smrg 56717ca54c3Smrg#define XkbGeomPtsPerMM 10 56817ca54c3Smrg#define XkbGeomMaxColors 32 56917ca54c3Smrg#define XkbGeomMaxLabelColors 3 57017ca54c3Smrg#define XkbGeomMaxPriority 255 57117ca54c3Smrg 57217ca54c3Smrg /* 57317ca54c3Smrg * Key Type index and mask for the four standard key types. 57417ca54c3Smrg */ 57517ca54c3Smrg#define XkbOneLevelIndex 0 57617ca54c3Smrg#define XkbTwoLevelIndex 1 57717ca54c3Smrg#define XkbAlphabeticIndex 2 57817ca54c3Smrg#define XkbKeypadIndex 3 57917ca54c3Smrg#define XkbLastRequiredType XkbKeypadIndex 58017ca54c3Smrg#define XkbNumRequiredTypes (XkbLastRequiredType+1) 58117ca54c3Smrg#define XkbMaxKeyTypes 255 58217ca54c3Smrg 58317ca54c3Smrg#define XkbOneLevelMask (1<<0) 58417ca54c3Smrg#define XkbTwoLevelMask (1<<1) 58517ca54c3Smrg#define XkbAlphabeticMask (1<<2) 58617ca54c3Smrg#define XkbKeypadMask (1<<3) 58717ca54c3Smrg#define XkbAllRequiredTypes (0xf) 58817ca54c3Smrg 58917ca54c3Smrg#define XkbShiftLevel(n) ((n)-1) 59017ca54c3Smrg#define XkbShiftLevelMask(n) (1<<((n)-1)) 59117ca54c3Smrg 59217ca54c3Smrg /* 59317ca54c3Smrg * Extension name and version information 59417ca54c3Smrg */ 59517ca54c3Smrg#define XkbName "XKEYBOARD" 59617ca54c3Smrg#define XkbMajorVersion 1 59717ca54c3Smrg#define XkbMinorVersion 0 59817ca54c3Smrg 59917ca54c3Smrg /* 60017ca54c3Smrg * Explicit map components: 60117ca54c3Smrg * - Used in the 'explicit' field of an XkbServerMap. Specifies 60217ca54c3Smrg * the keyboard components that should _not_ be updated automatically 60317ca54c3Smrg * in response to core protocol keyboard mapping requests. 60417ca54c3Smrg */ 60517ca54c3Smrg#define XkbExplicitKeyTypesMask (0x0f) 60617ca54c3Smrg#define XkbExplicitKeyType1Mask (1<<0) 60717ca54c3Smrg#define XkbExplicitKeyType2Mask (1<<1) 60817ca54c3Smrg#define XkbExplicitKeyType3Mask (1<<2) 60917ca54c3Smrg#define XkbExplicitKeyType4Mask (1<<3) 61017ca54c3Smrg#define XkbExplicitInterpretMask (1<<4) 61117ca54c3Smrg#define XkbExplicitAutoRepeatMask (1<<5) 61217ca54c3Smrg#define XkbExplicitBehaviorMask (1<<6) 61317ca54c3Smrg#define XkbExplicitVModMapMask (1<<7) 61417ca54c3Smrg#define XkbAllExplicitMask (0xff) 61517ca54c3Smrg 61617ca54c3Smrg /* 61717ca54c3Smrg * Map components masks: 61817ca54c3Smrg * Those in AllMapComponentsMask: 61917ca54c3Smrg * - Specifies the individual fields to be loaded or changed for the 62017ca54c3Smrg * GetMap and SetMap requests. 62117ca54c3Smrg * Those in ClientInfoMask: 62217ca54c3Smrg * - Specifies the components to be allocated by XkbAllocClientMap. 62317ca54c3Smrg * Those in ServerInfoMask: 62417ca54c3Smrg * - Specifies the components to be allocated by XkbAllocServerMap. 62517ca54c3Smrg */ 62617ca54c3Smrg#define XkbKeyTypesMask (1<<0) 62717ca54c3Smrg#define XkbKeySymsMask (1<<1) 62817ca54c3Smrg#define XkbModifierMapMask (1<<2) 62917ca54c3Smrg#define XkbExplicitComponentsMask (1<<3) 63017ca54c3Smrg#define XkbKeyActionsMask (1<<4) 63117ca54c3Smrg#define XkbKeyBehaviorsMask (1<<5) 63217ca54c3Smrg#define XkbVirtualModsMask (1<<6) 63317ca54c3Smrg#define XkbVirtualModMapMask (1<<7) 63417ca54c3Smrg 63517ca54c3Smrg#define XkbAllClientInfoMask (XkbKeyTypesMask|XkbKeySymsMask|XkbModifierMapMask) 63617ca54c3Smrg#define XkbAllServerInfoMask (XkbExplicitComponentsMask|XkbKeyActionsMask|XkbKeyBehaviorsMask|XkbVirtualModsMask|XkbVirtualModMapMask) 63717ca54c3Smrg#define XkbAllMapComponentsMask (XkbAllClientInfoMask|XkbAllServerInfoMask) 63817ca54c3Smrg 63917ca54c3Smrg /* 64017ca54c3Smrg * Symbol interpretations flags: 64117ca54c3Smrg * - Used in the flags field of a symbol interpretation 64217ca54c3Smrg */ 64317ca54c3Smrg#define XkbSI_AutoRepeat (1<<0) 64417ca54c3Smrg#define XkbSI_LockingKey (1<<1) 64517ca54c3Smrg 64617ca54c3Smrg /* 64717ca54c3Smrg * Symbol interpretations match specification: 648ea1d6981Smrg * - Used in the match field of a symbol interpretation to specify 64917ca54c3Smrg * the conditions under which an interpretation is used. 65017ca54c3Smrg */ 65117ca54c3Smrg#define XkbSI_LevelOneOnly (0x80) 65217ca54c3Smrg#define XkbSI_OpMask (0x7f) 65317ca54c3Smrg#define XkbSI_NoneOf (0) 65417ca54c3Smrg#define XkbSI_AnyOfOrNone (1) 65517ca54c3Smrg#define XkbSI_AnyOf (2) 65617ca54c3Smrg#define XkbSI_AllOf (3) 65717ca54c3Smrg#define XkbSI_Exactly (4) 65817ca54c3Smrg 65917ca54c3Smrg /* 66017ca54c3Smrg * Indicator map flags: 66117ca54c3Smrg * - Used in the flags field of an indicator map to indicate the 66217ca54c3Smrg * conditions under which and indicator can be changed and the 66317ca54c3Smrg * effects of changing the indicator. 66417ca54c3Smrg */ 66517ca54c3Smrg#define XkbIM_NoExplicit (1L << 7) 66617ca54c3Smrg#define XkbIM_NoAutomatic (1L << 6) 66717ca54c3Smrg#define XkbIM_LEDDrivesKB (1L << 5) 66817ca54c3Smrg 66917ca54c3Smrg /* 67017ca54c3Smrg * Indicator map component specifications: 67117ca54c3Smrg * - Used by the 'which_groups' and 'which_mods' fields of an indicator 67217ca54c3Smrg * map to specify which keyboard components should be used to drive 67317ca54c3Smrg * the indicator. 67417ca54c3Smrg */ 67517ca54c3Smrg#define XkbIM_UseBase (1L << 0) 67617ca54c3Smrg#define XkbIM_UseLatched (1L << 1) 67717ca54c3Smrg#define XkbIM_UseLocked (1L << 2) 67817ca54c3Smrg#define XkbIM_UseEffective (1L << 3) 67917ca54c3Smrg#define XkbIM_UseCompat (1L << 4) 68017ca54c3Smrg 68117ca54c3Smrg#define XkbIM_UseNone 0 68217ca54c3Smrg#define XkbIM_UseAnyGroup (XkbIM_UseBase|XkbIM_UseLatched|XkbIM_UseLocked\ 68317ca54c3Smrg |XkbIM_UseEffective) 68417ca54c3Smrg#define XkbIM_UseAnyMods (XkbIM_UseAnyGroup|XkbIM_UseCompat) 68517ca54c3Smrg 68617ca54c3Smrg /* 687ea1d6981Smrg * Compatibility Map Components: 68817ca54c3Smrg * - Specifies the components to be allocated in XkbAllocCompatMap. 68917ca54c3Smrg */ 69017ca54c3Smrg#define XkbSymInterpMask (1<<0) 69117ca54c3Smrg#define XkbGroupCompatMask (1<<1) 69217ca54c3Smrg#define XkbAllCompatMask (0x3) 69317ca54c3Smrg 69417ca54c3Smrg /* 69517ca54c3Smrg * Names component mask: 69617ca54c3Smrg * - Specifies the names to be loaded or changed for the GetNames and 69717ca54c3Smrg * SetNames requests. 69817ca54c3Smrg * - Specifies the names that have changed in a NamesNotify event. 69917ca54c3Smrg * - Specifies the names components to be allocated by XkbAllocNames. 70017ca54c3Smrg */ 70117ca54c3Smrg#define XkbKeycodesNameMask (1<<0) 70217ca54c3Smrg#define XkbGeometryNameMask (1<<1) 70317ca54c3Smrg#define XkbSymbolsNameMask (1<<2) 70417ca54c3Smrg#define XkbPhysSymbolsNameMask (1<<3) 70517ca54c3Smrg#define XkbTypesNameMask (1<<4) 70617ca54c3Smrg#define XkbCompatNameMask (1<<5) 70717ca54c3Smrg#define XkbKeyTypeNamesMask (1<<6) 70817ca54c3Smrg#define XkbKTLevelNamesMask (1<<7) 70917ca54c3Smrg#define XkbIndicatorNamesMask (1<<8) 71017ca54c3Smrg#define XkbKeyNamesMask (1<<9) 71117ca54c3Smrg#define XkbKeyAliasesMask (1<<10) 71217ca54c3Smrg#define XkbVirtualModNamesMask (1<<11) 71317ca54c3Smrg#define XkbGroupNamesMask (1<<12) 71417ca54c3Smrg#define XkbRGNamesMask (1<<13) 71517ca54c3Smrg#define XkbComponentNamesMask (0x3f) 71617ca54c3Smrg#define XkbAllNamesMask (0x3fff) 71717ca54c3Smrg 71817ca54c3Smrg /* 71917ca54c3Smrg * GetByName components: 72017ca54c3Smrg * - Specifies desired or necessary components to GetKbdByName request. 72117ca54c3Smrg * - Reports the components that were found in a GetKbdByNameReply 72217ca54c3Smrg */ 72317ca54c3Smrg#define XkbGBN_TypesMask (1L << 0) 72417ca54c3Smrg#define XkbGBN_CompatMapMask (1L << 1) 72517ca54c3Smrg#define XkbGBN_ClientSymbolsMask (1L << 2) 72617ca54c3Smrg#define XkbGBN_ServerSymbolsMask (1L << 3) 72717ca54c3Smrg#define XkbGBN_SymbolsMask (XkbGBN_ClientSymbolsMask|XkbGBN_ServerSymbolsMask) 72817ca54c3Smrg#define XkbGBN_IndicatorMapMask (1L << 4) 72917ca54c3Smrg#define XkbGBN_KeyNamesMask (1L << 5) 73017ca54c3Smrg#define XkbGBN_GeometryMask (1L << 6) 73117ca54c3Smrg#define XkbGBN_OtherNamesMask (1L << 7) 73217ca54c3Smrg#define XkbGBN_AllComponentsMask (0xff) 73317ca54c3Smrg 73417ca54c3Smrg /* 73517ca54c3Smrg * ListComponents flags 73617ca54c3Smrg */ 73717ca54c3Smrg#define XkbLC_Hidden (1L << 0) 73817ca54c3Smrg#define XkbLC_Default (1L << 1) 73917ca54c3Smrg#define XkbLC_Partial (1L << 2) 74017ca54c3Smrg 74117ca54c3Smrg#define XkbLC_AlphanumericKeys (1L << 8) 74217ca54c3Smrg#define XkbLC_ModifierKeys (1L << 9) 74317ca54c3Smrg#define XkbLC_KeypadKeys (1L << 10) 74417ca54c3Smrg#define XkbLC_FunctionKeys (1L << 11) 74517ca54c3Smrg#define XkbLC_AlternateGroup (1L << 12) 74617ca54c3Smrg 74717ca54c3Smrg /* 74817ca54c3Smrg * X Input Extension Interactions 74917ca54c3Smrg * - Specifies the possible interactions between XKB and the X input 75017ca54c3Smrg * extension 75117ca54c3Smrg * - Used to request (XkbGetDeviceInfo) or change (XKbSetDeviceInfo) 75217ca54c3Smrg * XKB information about an extension device. 75317ca54c3Smrg * - Reports the list of supported optional features in the reply to 75417ca54c3Smrg * XkbGetDeviceInfo or in an XkbExtensionDeviceNotify event. 75517ca54c3Smrg * XkbXI_UnsupportedFeature is reported in XkbExtensionDeviceNotify 75617ca54c3Smrg * events to indicate an attempt to use an unsupported feature. 75717ca54c3Smrg */ 75817ca54c3Smrg#define XkbXI_KeyboardsMask (1L << 0) 75917ca54c3Smrg#define XkbXI_ButtonActionsMask (1L << 1) 76017ca54c3Smrg#define XkbXI_IndicatorNamesMask (1L << 2) 76117ca54c3Smrg#define XkbXI_IndicatorMapsMask (1L << 3) 76217ca54c3Smrg#define XkbXI_IndicatorStateMask (1L << 4) 76317ca54c3Smrg#define XkbXI_UnsupportedFeatureMask (1L << 15) 76417ca54c3Smrg#define XkbXI_AllFeaturesMask (0x001f) 76517ca54c3Smrg#define XkbXI_AllDeviceFeaturesMask (0x001e) 76617ca54c3Smrg 76717ca54c3Smrg#define XkbXI_IndicatorsMask (0x001c) 76817ca54c3Smrg#define XkbAllExtensionDeviceEventsMask (0x801f) 76917ca54c3Smrg 77017ca54c3Smrg /* 77117ca54c3Smrg * Per-Client Flags: 77217ca54c3Smrg * - Specifies flags to be changed by the PerClientFlags request. 77317ca54c3Smrg */ 77417ca54c3Smrg#define XkbPCF_DetectableAutoRepeatMask (1L << 0) 77517ca54c3Smrg#define XkbPCF_GrabsUseXKBStateMask (1L << 1) 77617ca54c3Smrg#define XkbPCF_AutoResetControlsMask (1L << 2) 77717ca54c3Smrg#define XkbPCF_LookupStateWhenGrabbed (1L << 3) 77817ca54c3Smrg#define XkbPCF_SendEventUsesXKBState (1L << 4) 77917ca54c3Smrg#define XkbPCF_AllFlagsMask (0x1F) 78017ca54c3Smrg 78117ca54c3Smrg /* 78217ca54c3Smrg * Debugging flags and controls 78317ca54c3Smrg */ 78417ca54c3Smrg#define XkbDF_DisableLocks (1<<0) 78517ca54c3Smrg 78617ca54c3Smrg#endif /* _XKB_H_ */ 787