1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync/************************************************************
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsyncCopyright (c) 1993 by Silicon Graphics Computer Systems, Inc.
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync
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.
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync
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********************************************************/
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync#ifndef _XKB_H_
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync#define _XKB_H_
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync /*
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync * XKB request codes, used in:
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync * - xkbReqType field of all requests
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync * - requestMinor field of some events
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync */
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync#define X_kbUseExtension 0
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync#define X_kbSelectEvents 1
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync#define X_kbBell 3
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync#define X_kbGetState 4
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync#define X_kbLatchLockState 5
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync#define X_kbGetControls 6
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync#define X_kbSetControls 7
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync#define X_kbGetMap 8
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync#define X_kbSetMap 9
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync#define X_kbGetCompatMap 10
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync#define X_kbSetCompatMap 11
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync#define X_kbGetIndicatorState 12
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync#define X_kbGetIndicatorMap 13
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync#define X_kbSetIndicatorMap 14
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync#define X_kbGetNamedIndicator 15
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync#define X_kbSetNamedIndicator 16
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync#define X_kbGetNames 17
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync#define X_kbSetNames 18
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync#define X_kbGetGeometry 19
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync#define X_kbSetGeometry 20
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync#define X_kbPerClientFlags 21
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync#define X_kbListComponents 22
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync#define X_kbGetKbdByName 23
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync#define X_kbGetDeviceInfo 24
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync#define X_kbSetDeviceInfo 25
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync#define X_kbSetDebuggingFlags 101
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync /*
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync * In the X sense, XKB reports only one event.
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync * The type field of all XKB events is XkbEventCode
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync */
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync#define XkbEventCode 0
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync#define XkbNumberEvents (XkbEventCode+1)
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync /*
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 */
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync#define XkbNewKeyboardNotify 0
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync#define XkbMapNotify 1
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync#define XkbStateNotify 2
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync#define XkbControlsNotify 3
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync#define XkbIndicatorStateNotify 4
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync#define XkbIndicatorMapNotify 5
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync#define XkbNamesNotify 6
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync#define XkbCompatMapNotify 7
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync#define XkbBellNotify 8
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync#define XkbActionMessage 9
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync#define XkbAccessXNotify 10
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync#define XkbExtensionDeviceNotify 11
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync /*
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync * Event Mask:
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync * - XkbSelectEvents: Specifies event interest.
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync */
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync#define XkbNewKeyboardNotifyMask (1L << 0)
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync#define XkbMapNotifyMask (1L << 1)
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync#define XkbStateNotifyMask (1L << 2)
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync#define XkbControlsNotifyMask (1L << 3)
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync#define XkbIndicatorStateNotifyMask (1L << 4)
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync#define XkbIndicatorMapNotifyMask (1L << 5)
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync#define XkbNamesNotifyMask (1L << 6)
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync#define XkbCompatMapNotifyMask (1L << 7)
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync#define XkbBellNotifyMask (1L << 8)
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync#define XkbActionMessageMask (1L << 9)
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync#define XkbAccessXNotifyMask (1L << 10)
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync#define XkbExtensionDeviceNotifyMask (1L << 11)
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync#define XkbAllEventsMask (0xFFF)
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync /*
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync * NewKeyboardNotify event details:
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync */
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync#define XkbNKN_KeycodesMask (1L << 0)
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync#define XkbNKN_GeometryMask (1L << 1)
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync#define XkbNKN_DeviceIDMask (1L << 2)
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync#define XkbAllNewKeyboardEventsMask (0x7)
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync /*
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync * AccessXNotify event types:
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync * - The 'what' field of AccessXNotify events reports the
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync * reason that the event was generated.
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync */
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync#define XkbAXN_SKPress 0
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync#define XkbAXN_SKAccept 1
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync#define XkbAXN_SKReject 2
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync#define XkbAXN_SKRelease 3
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync#define XkbAXN_BKAccept 4
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync#define XkbAXN_BKReject 5
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync#define XkbAXN_AXKWarning 6
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync /*
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync * AccessXNotify details:
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync * - Used as an event detail mask to limit the conditions under which
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync * AccessXNotify events are reported
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync */
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync#define XkbAXN_SKPressMask (1L << 0)
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync#define XkbAXN_SKAcceptMask (1L << 1)
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync#define XkbAXN_SKRejectMask (1L << 2)
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync#define XkbAXN_SKReleaseMask (1L << 3)
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync#define XkbAXN_BKAcceptMask (1L << 4)
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync#define XkbAXN_BKRejectMask (1L << 5)
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync#define XkbAXN_AXKWarningMask (1L << 6)
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync#define XkbAllAccessXEventsMask (0x7f)
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync /*
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync * Miscellaneous event details:
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync * - event detail masks for assorted events that don't reall
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync * have any details.
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync */
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync#define XkbAllStateEventsMask XkbAllStateComponentsMask
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync#define XkbAllMapEventsMask XkbAllMapComponentsMask
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync#define XkbAllControlEventsMask XkbAllControlsMask
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync#define XkbAllIndicatorEventsMask XkbAllIndicatorsMask
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync#define XkbAllNameEventsMask XkbAllNamesMask
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync#define XkbAllCompatMapEventsMask XkbAllCompatMask
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync#define XkbAllBellEventsMask (1L << 0)
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync#define XkbAllActionMessagesMask (1L << 0)
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync /*
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 * found.
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync * The low byte of the resourceID for this error contains the device
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync * id, class specifier or feedback id that failed.
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync */
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync#define XkbKeyboard 0
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync#define XkbNumberErrors 1
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync#define XkbErr_BadDevice 0xff
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync#define XkbErr_BadClass 0xfe
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync#define XkbErr_BadId 0xfd
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync /*
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync * Keyboard Components Mask:
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync * - Specifies the components that follow a GetKeyboardByNameReply
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync */
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync#define XkbClientMapMask (1L << 0)
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync#define XkbServerMapMask (1L << 1)
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync#define XkbCompatMapMask (1L << 2)
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync#define XkbIndicatorMapMask (1L << 3)
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync#define XkbNamesMask (1L << 4)
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync#define XkbGeometryMask (1L << 5)
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync#define XkbControlsMask (1L << 6)
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync#define XkbAllComponentsMask (0x7f)
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync /*
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 */
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync#define XkbModifierStateMask (1L << 0)
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync#define XkbModifierBaseMask (1L << 1)
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync#define XkbModifierLatchMask (1L << 2)
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync#define XkbModifierLockMask (1L << 3)
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync#define XkbGroupStateMask (1L << 4)
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync#define XkbGroupBaseMask (1L << 5)
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync#define XkbGroupLatchMask (1L << 6)
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync#define XkbGroupLockMask (1L << 7)
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync#define XkbCompatStateMask (1L << 8)
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync#define XkbGrabModsMask (1L << 9)
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync#define XkbCompatGrabModsMask (1L << 10)
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync#define XkbLookupModsMask (1L << 11)
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync#define XkbCompatLookupModsMask (1L << 12)
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync#define XkbPointerButtonMask (1L << 13)
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync#define XkbAllStateComponentsMask (0x3fff)
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync /*
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 *
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 */
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync#define XkbRepeatKeysMask (1L << 0)
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync#define XkbSlowKeysMask (1L << 1)
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync#define XkbBounceKeysMask (1L << 2)
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync#define XkbStickyKeysMask (1L << 3)
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync#define XkbMouseKeysMask (1L << 4)
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync#define XkbMouseKeysAccelMask (1L << 5)
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync#define XkbAccessXKeysMask (1L << 6)
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync#define XkbAccessXTimeoutMask (1L << 7)
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync#define XkbAccessXFeedbackMask (1L << 8)
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync#define XkbAudibleBellMask (1L << 9)
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync#define XkbOverlay1Mask (1L << 10)
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync#define XkbOverlay2Mask (1L << 11)
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync#define XkbIgnoreGroupLockMask (1L << 12)
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync#define XkbGroupsWrapMask (1L << 27)
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync#define XkbInternalModsMask (1L << 28)
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync#define XkbIgnoreLockModsMask (1L << 29)
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync#define XkbPerKeyRepeatMask (1L << 30)
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync#define XkbControlsEnabledMask (1L << 31)
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync#define XkbAccessXOptionsMask (XkbStickyKeysMask|XkbAccessXFeedbackMask)
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync#define XkbAllBooleanCtrlsMask (0x00001FFF)
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync#define XkbAllControlsMask (0xF8001FFF)
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync#define XkbAllControlEventsMask XkbAllControlsMask
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync /*
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 */
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync#define XkbAX_SKPressFBMask (1L << 0)
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync#define XkbAX_SKAcceptFBMask (1L << 1)
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync#define XkbAX_FeatureFBMask (1L << 2)
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync#define XkbAX_SlowWarnFBMask (1L << 3)
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync#define XkbAX_IndicatorFBMask (1L << 4)
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync#define XkbAX_StickyKeysFBMask (1L << 5)
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync#define XkbAX_TwoKeysMask (1L << 6)
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync#define XkbAX_LatchToLockMask (1L << 7)
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync#define XkbAX_SKReleaseFBMask (1L << 8)
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync#define XkbAX_SKRejectFBMask (1L << 9)
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync#define XkbAX_BKRejectFBMask (1L << 10)
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync#define XkbAX_DumbBellFBMask (1L << 11)
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync#define XkbAX_FBOptionsMask (0xF3F)
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync#define XkbAX_SKOptionsMask (0x0C0)
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync#define XkbAX_AllOptionsMask (0xFFF)
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync /*
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 */
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync#define XkbUseCoreKbd 0x0100
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync#define XkbUseCorePtr 0x0200
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync#define XkbDfltXIClass 0x0300
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync#define XkbDfltXIId 0x0400
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync#define XkbAllXIClasses 0x0500
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync#define XkbAllXIIds 0x0600
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync#define XkbXINone 0xff00
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync#define XkbLegalXILedClass(c) (((c)==KbdFeedbackClass)||\
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync ((c)==LedFeedbackClass)||\
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync ((c)==XkbDfltXIClass)||\
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync ((c)==XkbAllXIClasses))
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync#define XkbLegalXIBellClass(c) (((c)==KbdFeedbackClass)||\
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync ((c)==BellFeedbackClass)||\
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync ((c)==XkbDfltXIClass)||\
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync ((c)==XkbAllXIClasses))
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync#define XkbExplicitXIDevice(c) (((c)&(~0xff))==0)
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync#define XkbExplicitXIClass(c) (((c)&(~0xff))==0)
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync#define XkbExplicitXIId(c) (((c)&(~0xff))==0)
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync#define XkbSingleXIClass(c) ((((c)&(~0xff))==0)||((c)==XkbDfltXIClass))
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync#define XkbSingleXIId(c) ((((c)&(~0xff))==0)||((c)==XkbDfltXIId))
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync#define XkbNoModifier 0xff
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync#define XkbNoShiftLevel 0xff
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync#define XkbNoShape 0xff
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync#define XkbNoIndicator 0xff
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync#define XkbNoModifierMask 0
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync#define XkbAllModifiersMask 0xff
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync#define XkbAllVirtualModsMask 0xffff
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync#define XkbNumKbdGroups 4
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync#define XkbMaxKbdGroup (XkbNumKbdGroups-1)
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync#define XkbMaxMouseKeysBtn 4
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync /*
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 */
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync#define XkbGroup1Index 0
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync#define XkbGroup2Index 1
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync#define XkbGroup3Index 2
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync#define XkbGroup4Index 3
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync#define XkbAnyGroup 254
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync#define XkbAllGroups 255
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync#define XkbGroup1Mask (1<<0)
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync#define XkbGroup2Mask (1<<1)
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync#define XkbGroup3Mask (1<<2)
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync#define XkbGroup4Mask (1<<3)
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync#define XkbAnyGroupMask (1<<7)
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync#define XkbAllGroupsMask (0xf)
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync /*
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 */
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync#define XkbBuildCoreState(m,g) ((((g)&0x3)<<13)|((m)&0xff))
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync#define XkbGroupForCoreState(s) (((s)>>13)&0x3)
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync#define XkbIsLegalGroup(g) (((g)>=0)&&((g)<XkbNumKbdGroups))
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync /*
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 */
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync#define XkbWrapIntoRange (0x00)
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync#define XkbClampIntoRange (0x40)
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync#define XkbRedirectIntoRange (0x80)
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync /*
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 *
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 */
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync#define XkbSA_ClearLocks (1L << 0)
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync#define XkbSA_LatchToLock (1L << 1)
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync#define XkbSA_LockNoLock (1L << 0)
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync#define XkbSA_LockNoUnlock (1L << 1)
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync#define XkbSA_UseModMapMods (1L << 2)
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync#define XkbSA_GroupAbsolute (1L << 2)
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync#define XkbSA_UseDfltButton 0
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync#define XkbSA_NoAcceleration (1L << 0)
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync#define XkbSA_MoveAbsoluteX (1L << 1)
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync#define XkbSA_MoveAbsoluteY (1L << 2)
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync#define XkbSA_ISODfltIsGroup (1L << 7)
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync#define XkbSA_ISONoAffectMods (1L << 6)
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync#define XkbSA_ISONoAffectGroup (1L << 5)
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync#define XkbSA_ISONoAffectPtr (1L << 4)
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync#define XkbSA_ISONoAffectCtrls (1L << 3)
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync#define XkbSA_ISOAffectMask (0x78)
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync#define XkbSA_MessageOnPress (1L << 0)
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync#define XkbSA_MessageOnRelease (1L << 1)
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync#define XkbSA_MessageGenKeyEvent (1L << 2)
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync#define XkbSA_AffectDfltBtn 1
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync#define XkbSA_DfltBtnAbsolute (1L << 2)
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync#define XkbSA_SwitchApplication (1L << 0)
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync#define XkbSA_SwitchAbsolute (1L << 2)
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync /*
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 */
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync#define XkbSA_IgnoreVal (0x00)
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync#define XkbSA_SetValMin (0x10)
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync#define XkbSA_SetValCenter (0x20)
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync#define XkbSA_SetValMax (0x30)
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync#define XkbSA_SetValRelative (0x40)
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync#define XkbSA_SetValAbsolute (0x50)
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync#define XkbSA_ValOpMask (0x70)
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync#define XkbSA_ValScaleMask (0x07)
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync#define XkbSA_ValOp(a) ((a)&XkbSA_ValOpMask)
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync#define XkbSA_ValScale(a) ((a)&XkbSA_ValScaleMask)
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync /*
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync * Action types: specifies the type of a key action. Reported in the
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync * type field of all key actions.
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync */
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync#define XkbSA_NoAction 0x00
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync#define XkbSA_SetMods 0x01
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync#define XkbSA_LatchMods 0x02
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync#define XkbSA_LockMods 0x03
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync#define XkbSA_SetGroup 0x04
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync#define XkbSA_LatchGroup 0x05
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync#define XkbSA_LockGroup 0x06
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync#define XkbSA_MovePtr 0x07
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync#define XkbSA_PtrBtn 0x08
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync#define XkbSA_LockPtrBtn 0x09
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync#define XkbSA_SetPtrDflt 0x0a
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync#define XkbSA_ISOLock 0x0b
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync#define XkbSA_Terminate 0x0c
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync#define XkbSA_SwitchScreen 0x0d
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync#define XkbSA_SetControls 0x0e
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync#define XkbSA_LockControls 0x0f
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync#define XkbSA_ActionMessage 0x10
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync#define XkbSA_RedirectKey 0x11
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync#define XkbSA_DeviceBtn 0x12
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync#define XkbSA_LockDeviceBtn 0x13
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync#define XkbSA_DeviceValuator 0x14
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync#define XkbSA_LastAction XkbSA_DeviceValuator
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync#define XkbSA_NumActions (XkbSA_LastAction+1)
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync#define XkbSA_XFree86Private 0x86
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync /*
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync * Specifies the key actions that clear latched groups or modifiers.
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync */
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync#define XkbSA_BreakLatch \
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync ((1<<XkbSA_NoAction)|(1<<XkbSA_PtrBtn)|(1<<XkbSA_LockPtrBtn)|\
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync (1<<XkbSA_Terminate)|(1<<XkbSA_SwitchScreen)|(1<<XkbSA_SetControls)|\
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync (1<<XkbSA_LockControls)|(1<<XkbSA_ActionMessage)|\
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync (1<<XkbSA_RedirectKey)|(1<<XkbSA_DeviceBtn)|(1<<XkbSA_LockDeviceBtn))
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync /*
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync * Macros to classify key actions
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync */
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
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync /*
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 */
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync#define XkbKB_Permanent 0x80
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync#define XkbKB_OpMask 0x7f
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync#define XkbKB_Default 0x00
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync#define XkbKB_Lock 0x01
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync#define XkbKB_RadioGroup 0x02
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync#define XkbKB_Overlay1 0x03
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync#define XkbKB_Overlay2 0x04
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync#define XkbKB_RGAllowNone 0x80
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync /*
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync * Various macros which describe the range of legal keycodes.
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync */
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync#define XkbMinLegalKeyCode 8
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync#define XkbMaxLegalKeyCode 255
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
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync /*
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync * Assorted constants and limits.
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync */
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync#define XkbNumModifiers 8
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync#define XkbNumVirtualMods 16
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync#define XkbNumIndicators 32
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync#define XkbAllIndicatorsMask (0xffffffff)
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync#define XkbMaxRadioGroups 32
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync#define XkbAllRadioGroupsMask (0xffffffff)
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync#define XkbMaxShiftLevel 63
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync#define XkbMaxSymsPerKey (XkbMaxShiftLevel*XkbNumKbdGroups)
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync#define XkbRGMaxMembers 12
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync#define XkbActionMessageLength 6
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync#define XkbKeyNameLength 4
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync#define XkbMaxRedirectCount 8
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync#define XkbGeomPtsPerMM 10
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync#define XkbGeomMaxColors 32
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync#define XkbGeomMaxLabelColors 3
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync#define XkbGeomMaxPriority 255
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync /*
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync * Key Type index and mask for the four standard key types.
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync */
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync#define XkbOneLevelIndex 0
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync#define XkbTwoLevelIndex 1
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync#define XkbAlphabeticIndex 2
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync#define XkbKeypadIndex 3
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync#define XkbLastRequiredType XkbKeypadIndex
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync#define XkbNumRequiredTypes (XkbLastRequiredType+1)
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync#define XkbMaxKeyTypes 255
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync#define XkbOneLevelMask (1<<0)
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync#define XkbTwoLevelMask (1<<1)
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync#define XkbAlphabeticMask (1<<2)
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync#define XkbKeypadMask (1<<3)
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync#define XkbAllRequiredTypes (0xf)
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync#define XkbShiftLevel(n) ((n)-1)
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync#define XkbShiftLevelMask(n) (1<<((n)-1))
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync /*
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync * Extension name and version information
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync */
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync#define XkbName "XKEYBOARD"
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync#define XkbMajorVersion 1
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync#define XkbMinorVersion 0
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync /*
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 */
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync#define XkbExplicitKeyTypesMask (0x0f)
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync#define XkbExplicitKeyType1Mask (1<<0)
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync#define XkbExplicitKeyType2Mask (1<<1)
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync#define XkbExplicitKeyType3Mask (1<<2)
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync#define XkbExplicitKeyType4Mask (1<<3)
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync#define XkbExplicitInterpretMask (1<<4)
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync#define XkbExplicitAutoRepeatMask (1<<5)
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync#define XkbExplicitBehaviorMask (1<<6)
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync#define XkbExplicitVModMapMask (1<<7)
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync#define XkbAllExplicitMask (0xff)
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync /*
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 */
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync#define XkbKeyTypesMask (1<<0)
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync#define XkbKeySymsMask (1<<1)
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync#define XkbModifierMapMask (1<<2)
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync#define XkbExplicitComponentsMask (1<<3)
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync#define XkbKeyActionsMask (1<<4)
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync#define XkbKeyBehaviorsMask (1<<5)
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync#define XkbVirtualModsMask (1<<6)
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync#define XkbVirtualModMapMask (1<<7)
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync#define XkbAllClientInfoMask (XkbKeyTypesMask|XkbKeySymsMask|XkbModifierMapMask)
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync#define XkbAllServerInfoMask (XkbExplicitComponentsMask|XkbKeyActionsMask|XkbKeyBehaviorsMask|XkbVirtualModsMask|XkbVirtualModMapMask)
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync#define XkbAllMapComponentsMask (XkbAllClientInfoMask|XkbAllServerInfoMask)
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync /*
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync * Symbol interpretations flags:
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync * - Used in the flags field of a symbol interpretation
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync */
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync#define XkbSI_AutoRepeat (1<<0)
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync#define XkbSI_LockingKey (1<<1)
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync /*
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 */
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync#define XkbSI_LevelOneOnly (0x80)
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync#define XkbSI_OpMask (0x7f)
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync#define XkbSI_NoneOf (0)
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync#define XkbSI_AnyOfOrNone (1)
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync#define XkbSI_AnyOf (2)
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync#define XkbSI_AllOf (3)
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync#define XkbSI_Exactly (4)
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync /*
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 */
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync#define XkbIM_NoExplicit (1L << 7)
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync#define XkbIM_NoAutomatic (1L << 6)
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync#define XkbIM_LEDDrivesKB (1L << 5)
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync /*
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 */
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync#define XkbIM_UseBase (1L << 0)
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync#define XkbIM_UseLatched (1L << 1)
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync#define XkbIM_UseLocked (1L << 2)
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync#define XkbIM_UseEffective (1L << 3)
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync#define XkbIM_UseCompat (1L << 4)
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync#define XkbIM_UseNone 0
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync#define XkbIM_UseAnyGroup (XkbIM_UseBase|XkbIM_UseLatched|XkbIM_UseLocked\
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync |XkbIM_UseEffective)
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync#define XkbIM_UseAnyMods (XkbIM_UseAnyGroup|XkbIM_UseCompat)
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync /*
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync * Compatibility Map Compontents:
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync * - Specifies the components to be allocated in XkbAllocCompatMap.
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync */
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync#define XkbSymInterpMask (1<<0)
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync#define XkbGroupCompatMask (1<<1)
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync#define XkbAllCompatMask (0x3)
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync /*
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 */
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync#define XkbKeycodesNameMask (1<<0)
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync#define XkbGeometryNameMask (1<<1)
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync#define XkbSymbolsNameMask (1<<2)
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync#define XkbPhysSymbolsNameMask (1<<3)
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync#define XkbTypesNameMask (1<<4)
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync#define XkbCompatNameMask (1<<5)
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync#define XkbKeyTypeNamesMask (1<<6)
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync#define XkbKTLevelNamesMask (1<<7)
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync#define XkbIndicatorNamesMask (1<<8)
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync#define XkbKeyNamesMask (1<<9)
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync#define XkbKeyAliasesMask (1<<10)
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync#define XkbVirtualModNamesMask (1<<11)
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync#define XkbGroupNamesMask (1<<12)
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync#define XkbRGNamesMask (1<<13)
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync#define XkbComponentNamesMask (0x3f)
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync#define XkbAllNamesMask (0x3fff)
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync /*
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync * GetByName components:
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync * - Specifies desired or necessary components to GetKbdByName request.
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync * - Reports the components that were found in a GetKbdByNameReply
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync */
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync#define XkbGBN_TypesMask (1L << 0)
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync#define XkbGBN_CompatMapMask (1L << 1)
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync#define XkbGBN_ClientSymbolsMask (1L << 2)
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync#define XkbGBN_ServerSymbolsMask (1L << 3)
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync#define XkbGBN_SymbolsMask (XkbGBN_ClientSymbolsMask|XkbGBN_ServerSymbolsMask)
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync#define XkbGBN_IndicatorMapMask (1L << 4)
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync#define XkbGBN_KeyNamesMask (1L << 5)
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync#define XkbGBN_GeometryMask (1L << 6)
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync#define XkbGBN_OtherNamesMask (1L << 7)
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync#define XkbGBN_AllComponentsMask (0xff)
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync /*
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync * ListComponents flags
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync */
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync#define XkbLC_Hidden (1L << 0)
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync#define XkbLC_Default (1L << 1)
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync#define XkbLC_Partial (1L << 2)
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync#define XkbLC_AlphanumericKeys (1L << 8)
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync#define XkbLC_ModifierKeys (1L << 9)
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync#define XkbLC_KeypadKeys (1L << 10)
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync#define XkbLC_FunctionKeys (1L << 11)
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync#define XkbLC_AlternateGroup (1L << 12)
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync /*
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 */
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync#define XkbXI_KeyboardsMask (1L << 0)
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync#define XkbXI_ButtonActionsMask (1L << 1)
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync#define XkbXI_IndicatorNamesMask (1L << 2)
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync#define XkbXI_IndicatorMapsMask (1L << 3)
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync#define XkbXI_IndicatorStateMask (1L << 4)
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync#define XkbXI_UnsupportedFeatureMask (1L << 15)
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync#define XkbXI_AllFeaturesMask (0x001f)
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync#define XkbXI_AllDeviceFeaturesMask (0x001e)
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync#define XkbXI_IndicatorsMask (0x001c)
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync#define XkbAllExtensionDeviceEventsMask (0x801f)
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync /*
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync * Per-Client Flags:
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync * - Specifies flags to be changed by the PerClientFlags request.
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync */
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync#define XkbPCF_DetectableAutoRepeatMask (1L << 0)
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync#define XkbPCF_GrabsUseXKBStateMask (1L << 1)
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync#define XkbPCF_AutoResetControlsMask (1L << 2)
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync#define XkbPCF_LookupStateWhenGrabbed (1L << 3)
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync#define XkbPCF_SendEventUsesXKBState (1L << 4)
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync#define XkbPCF_AllFlagsMask (0x1F)
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync /*
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync * Debugging flags and controls
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync */
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync#define XkbDF_DisableLocks (1<<0)
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync
1131579cf38ac46158dd0da1cfac260914b1ed0dvboxsync#endif /* _XKB_H_ */