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