Path: blob/master/thirdparty/linuxbsd_headers/X11/extensions/XI2.h
9905 views
/*1* Copyright © 2009 Red Hat, Inc.2*3* Permission is hereby granted, free of charge, to any person obtaining a4* copy of this software and associated documentation files (the "Software"),5* to deal in the Software without restriction, including without limitation6* the rights to use, copy, modify, merge, publish, distribute, sublicense,7* and/or sell copies of the Software, and to permit persons to whom the8* Software is furnished to do so, subject to the following conditions:9*10* The above copyright notice and this permission notice (including the next11* paragraph) shall be included in all copies or substantial portions of the12* Software.13*14* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR15* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,16* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL17* THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER18* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING19* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER20* DEALINGS IN THE SOFTWARE.21*22*/2324#ifndef _XI2_H_25#define _XI2_H_2627#define XInput_2_0 728/* DO NOT ADD TO THIS LIST. These are libXi-specific defines.29See commit libXi-1.4.2-21-ge8531dd */3031#define XI_2_Major 232#define XI_2_Minor 43334/* Property event flags */35#define XIPropertyDeleted 036#define XIPropertyCreated 137#define XIPropertyModified 23839/* Property modes */40#define XIPropModeReplace 041#define XIPropModePrepend 142#define XIPropModeAppend 24344/* Special property type used for XIGetProperty */45#define XIAnyPropertyType 0L4647/* Enter/Leave and Focus In/Out modes */48#define XINotifyNormal 049#define XINotifyGrab 150#define XINotifyUngrab 251#define XINotifyWhileGrabbed 352#define XINotifyPassiveGrab 453#define XINotifyPassiveUngrab 55455/* Enter/Leave and focus In/out detail */56#define XINotifyAncestor 057#define XINotifyVirtual 158#define XINotifyInferior 259#define XINotifyNonlinear 360#define XINotifyNonlinearVirtual 461#define XINotifyPointer 562#define XINotifyPointerRoot 663#define XINotifyDetailNone 76465/* Grab modes */66#define XIGrabModeSync 067#define XIGrabModeAsync 168#define XIGrabModeTouch 26970/* Grab reply status codes */71#define XIGrabSuccess 072#define XIAlreadyGrabbed 173#define XIGrabInvalidTime 274#define XIGrabNotViewable 375#define XIGrabFrozen 47677/* Grab owner events values */78#define XIOwnerEvents True79#define XINoOwnerEvents False8081/* Passive grab types */82#define XIGrabtypeButton 083#define XIGrabtypeKeycode 184#define XIGrabtypeEnter 285#define XIGrabtypeFocusIn 386#define XIGrabtypeTouchBegin 487#define XIGrabtypeGesturePinchBegin 588#define XIGrabtypeGestureSwipeBegin 68990/* Passive grab modifier */91#define XIAnyModifier (1U << 31)92#define XIAnyButton 093#define XIAnyKeycode 09495/* XIAllowEvents event-modes */96#define XIAsyncDevice 097#define XISyncDevice 198#define XIReplayDevice 299#define XIAsyncPairedDevice 3100#define XIAsyncPair 4101#define XISyncPair 5102#define XIAcceptTouch 6103#define XIRejectTouch 7104105/* DeviceChangedEvent change reasons */106#define XISlaveSwitch 1107#define XIDeviceChange 2108109/* Hierarchy flags */110#define XIMasterAdded (1 << 0)111#define XIMasterRemoved (1 << 1)112#define XISlaveAdded (1 << 2)113#define XISlaveRemoved (1 << 3)114#define XISlaveAttached (1 << 4)115#define XISlaveDetached (1 << 5)116#define XIDeviceEnabled (1 << 6)117#define XIDeviceDisabled (1 << 7)118119/* ChangeHierarchy constants */120#define XIAddMaster 1121#define XIRemoveMaster 2122#define XIAttachSlave 3123#define XIDetachSlave 4124125#define XIAttachToMaster 1126#define XIFloating 2127128/* Valuator modes */129#define XIModeRelative 0130#define XIModeAbsolute 1131132/* Device types */133#define XIMasterPointer 1134#define XIMasterKeyboard 2135#define XISlavePointer 3136#define XISlaveKeyboard 4137#define XIFloatingSlave 5138139/* Device classes: classes that are not identical to Xi 1.x classes must be140* numbered starting from 8. */141#define XIKeyClass 0142#define XIButtonClass 1143#define XIValuatorClass 2144#define XIScrollClass 3145#define XITouchClass 8146#define XIGestureClass 9147148/* Scroll class types */149#define XIScrollTypeVertical 1150#define XIScrollTypeHorizontal 2151152/* Scroll class flags */153#define XIScrollFlagNoEmulation (1 << 0)154#define XIScrollFlagPreferred (1 << 1)155156/* Device event flags (common) */157/* Device event flags (key events only) */158#define XIKeyRepeat (1 << 16)159/* Device event flags (pointer events only) */160#define XIPointerEmulated (1 << 16)161/* Device event flags (touch events only) */162#define XITouchPendingEnd (1 << 16)163#define XITouchEmulatingPointer (1 << 17)164165/* Barrier event flags */166#define XIBarrierPointerReleased (1 << 0)167#define XIBarrierDeviceIsGrabbed (1 << 1)168169/* Gesture pinch event flags */170#define XIGesturePinchEventCancelled (1 << 0)171172/* Gesture swipe event flags */173#define XIGestureSwipeEventCancelled (1 << 0)174175/* Touch modes */176#define XIDirectTouch 1177#define XIDependentTouch 2178179/* XI2 event mask macros */180#define XISetMask(ptr, event) (((unsigned char*)(ptr))[(event)>>3] |= (1 << ((event) & 7)))181#define XIClearMask(ptr, event) (((unsigned char*)(ptr))[(event)>>3] &= ~(1 << ((event) & 7)))182#define XIMaskIsSet(ptr, event) (((unsigned char*)(ptr))[(event)>>3] & (1 << ((event) & 7)))183#define XIMaskLen(event) (((event) >> 3) + 1)184185/* Fake device ID's for event selection */186#define XIAllDevices 0187#define XIAllMasterDevices 1188189/* Event types */190#define XI_DeviceChanged 1191#define XI_KeyPress 2192#define XI_KeyRelease 3193#define XI_ButtonPress 4194#define XI_ButtonRelease 5195#define XI_Motion 6196#define XI_Enter 7197#define XI_Leave 8198#define XI_FocusIn 9199#define XI_FocusOut 10200#define XI_HierarchyChanged 11201#define XI_PropertyEvent 12202#define XI_RawKeyPress 13203#define XI_RawKeyRelease 14204#define XI_RawButtonPress 15205#define XI_RawButtonRelease 16206#define XI_RawMotion 17207#define XI_TouchBegin 18 /* XI 2.2 */208#define XI_TouchUpdate 19209#define XI_TouchEnd 20210#define XI_TouchOwnership 21211#define XI_RawTouchBegin 22212#define XI_RawTouchUpdate 23213#define XI_RawTouchEnd 24214#define XI_BarrierHit 25 /* XI 2.3 */215#define XI_BarrierLeave 26216#define XI_GesturePinchBegin 27 /* XI 2.4 */217#define XI_GesturePinchUpdate 28218#define XI_GesturePinchEnd 29219#define XI_GestureSwipeBegin 30220#define XI_GestureSwipeUpdate 31221#define XI_GestureSwipeEnd 32222#define XI_LASTEVENT XI_GestureSwipeEnd223/* NOTE: XI2LASTEVENT in xserver/include/inputstr.h must be the same value224* as XI_LASTEVENT if the server is supposed to handle masks etc. for this225* type of event. */226227/* Event masks.228* Note: the protocol spec defines a mask to be of (1 << type). Clients are229* free to create masks by bitshifting instead of using these defines.230*/231#define XI_DeviceChangedMask (1 << XI_DeviceChanged)232#define XI_KeyPressMask (1 << XI_KeyPress)233#define XI_KeyReleaseMask (1 << XI_KeyRelease)234#define XI_ButtonPressMask (1 << XI_ButtonPress)235#define XI_ButtonReleaseMask (1 << XI_ButtonRelease)236#define XI_MotionMask (1 << XI_Motion)237#define XI_EnterMask (1 << XI_Enter)238#define XI_LeaveMask (1 << XI_Leave)239#define XI_FocusInMask (1 << XI_FocusIn)240#define XI_FocusOutMask (1 << XI_FocusOut)241#define XI_HierarchyChangedMask (1 << XI_HierarchyChanged)242#define XI_PropertyEventMask (1 << XI_PropertyEvent)243#define XI_RawKeyPressMask (1 << XI_RawKeyPress)244#define XI_RawKeyReleaseMask (1 << XI_RawKeyRelease)245#define XI_RawButtonPressMask (1 << XI_RawButtonPress)246#define XI_RawButtonReleaseMask (1 << XI_RawButtonRelease)247#define XI_RawMotionMask (1 << XI_RawMotion)248#define XI_TouchBeginMask (1 << XI_TouchBegin)249#define XI_TouchEndMask (1 << XI_TouchEnd)250#define XI_TouchOwnershipChangedMask (1 << XI_TouchOwnership)251#define XI_TouchUpdateMask (1 << XI_TouchUpdate)252#define XI_RawTouchBeginMask (1 << XI_RawTouchBegin)253#define XI_RawTouchEndMask (1 << XI_RawTouchEnd)254#define XI_RawTouchUpdateMask (1 << XI_RawTouchUpdate)255#define XI_BarrierHitMask (1 << XI_BarrierHit)256#define XI_BarrierLeaveMask (1 << XI_BarrierLeave)257258#endif /* _XI2_H_ */259260261