--- /dev/null
+! Copyright (C) 2010 Niklas Waern.
+! See http://factorcode.org/license.txt for BSD license.
+USING: math ;
+IN: x11.xinput2.constants
+
+! From XI2.h
+
+CONSTANT: XInput_2_0 7
+
+CONSTANT: XI_2_Major 2
+CONSTANT: XI_2_Minor 0
+
+! Property event flags
+CONSTANT: XIPropertyDeleted 0
+CONSTANT: XIPropertyCreated 1
+CONSTANT: XIPropertyModified 2
+
+! Enter/Leave and Focus In/Out modes
+CONSTANT: XINotifyNormal 0
+CONSTANT: XINotifyGrab 1
+CONSTANT: XINotifyUngrab 2
+CONSTANT: XINotifyWhileGrabbed 3
+CONSTANT: XINotifyPassiveGrab 4
+CONSTANT: XINotifyPassiveUngrab 5
+
+! Enter/Leave and Focus In/Out detail
+CONSTANT: XINotifyAncestor 0
+CONSTANT: XINotifyVirtual 1
+CONSTANT: XINotifyInferior 2
+CONSTANT: XINotifyNonlinear 3
+CONSTANT: XINotifyNonlinearVirtual 4
+CONSTANT: XINotifyPointer 5
+CONSTANT: XINotifyPointerRoot 6
+CONSTANT: XINotifyDetailNone 7
+
+! Passive grab types
+CONSTANT: XIGrabtypeButton 0
+CONSTANT: XIGrabtypeKeycode 1
+CONSTANT: XIGrabtypeEnter 2
+CONSTANT: XIGrabtypeFocusIn 3
+
+! Passive grab modifier
+: XIAnyModifier ( -- n ) 31 2^ ; inline
+: XIAnyButton ( -- n ) 0 ; inline
+: XIAnyKeycode ( -- n ) 0 ; inline
+
+! XIAllowEvents event-modes
+CONSTANT: XIAsyncDevice 0
+CONSTANT: XISyncDevice 1
+CONSTANT: XIReplayDevice 2
+CONSTANT: XIAsyncPairedDevice 3
+CONSTANT: XIAsyncPair 4
+CONSTANT: XISyncPair 5
+
+! DeviceChangedEvent change reasons
+CONSTANT: XISlaveSwitch 1
+CONSTANT: XIDeviceChange 2
+
+! Hierarchy flags
+: XIMasterAdded ( -- n ) 0 2^ ; inline
+: XIMasterRemoved ( -- n ) 1 2^ ; inline
+: XISlaveAdded ( -- n ) 2 2^ ; inline
+: XISlaveRemoved ( -- n ) 3 2^ ; inline
+: XISlaveAttached ( -- n ) 4 2^ ; inline
+: XISlaveDetached ( -- n ) 5 2^ ; inline
+: XIDeviceEnabled ( -- n ) 6 2^ ; inline
+: XIDeviceDisabled ( -- n ) 7 2^ ; inline
+
+! ChangeHierarchy constants
+CONSTANT: XIAddMaster 1
+CONSTANT: XIRemoveMaster 2
+CONSTANT: XIAttachSlave 3
+CONSTANT: XIDetachSlave 4
+
+CONSTANT: XIAttachToMaster 1
+CONSTANT: XIFloating 2
+
+! Valuator modes
+CONSTANT: XIModeRelative 0
+CONSTANT: XIModeAbsolute 1
+
+! Device types
+CONSTANT: XIMasterPointer 1
+CONSTANT: XIMasterKeyboard 2
+CONSTANT: XISlavePointer 3
+CONSTANT: XISlaveKeyboard 4
+CONSTANT: XIFloatingSlave 5
+
+! Device classes
+CONSTANT: XIKeyClass 0
+CONSTANT: XIButtonClass 1
+CONSTANT: XIValuatorClass 2
+
+! Device event flags (common)
+! Device event flags (key events only)
+: XIKeyRepeat ( -- n ) 16 2^ ; inline
+! Device event flags (pointer events only)
+
+! Fake device ID's for event selection
+CONSTANT: XIAllDevices 0
+CONSTANT: XIAllMasterDevices 1
+
+! Event types
+CONSTANT: XI_DeviceChanged 1
+CONSTANT: XI_KeyPress 2
+CONSTANT: XI_KeyRelease 3
+CONSTANT: XI_ButtonPress 4
+CONSTANT: XI_ButtonRelease 5
+CONSTANT: XI_Motion 6
+CONSTANT: XI_Enter 7
+CONSTANT: XI_Leave 8
+CONSTANT: XI_FocusIn 9
+CONSTANT: XI_FocusOut 10
+CONSTANT: XI_HierarchyChanged 11
+CONSTANT: XI_PropertyEvent 12
+CONSTANT: XI_RawKeyPress 13
+CONSTANT: XI_RawKeyRelease 14
+CONSTANT: XI_RawButtonPress 15
+CONSTANT: XI_RawButtonRelease 16
+CONSTANT: XI_RawMotion 17
+: XI_LASTEVENT ( -- n ) XI_RawMotion ; inline
+
+! Event masks
+: XI_DeviceChangedMask ( -- n ) XI_DeviceChanged 2^ ; inline
+: XI_KeyPressMask ( -- n ) XI_KeyPress 2^ ; inline
+: XI_KeyReleaseMask ( -- n ) XI_KeyRelease 2^ ; inline
+: XI_ButtonPressMask ( -- n ) XI_ButtonPress 2^ ; inline
+: XI_ButtonReleaseMask ( -- n ) XI_ButtonRelease 2^ ; inline
+: XI_MotionMask ( -- n ) XI_Motion 2^ ; inline
+: XI_EnterMask ( -- n ) XI_Enter 2^ ; inline
+: XI_LeaveMask ( -- n ) XI_Leave 2^ ; inline
+: XI_FocusInMask ( -- n ) XI_FocusIn 2^ ; inline
+: XI_FocusOutMask ( -- n ) XI_FocusOut 2^ ; inline
+: XI_HierarchyChangedMask ( -- n ) XI_HierarchyChanged 2^ ; inline
+: XI_PropertyEventMask ( -- n ) XI_PropertyEvent 2^ ; inline
+: XI_RawKeyPressMask ( -- n ) XI_RawKeyPress 2^ ; inline
+: XI_RawKeyReleaseMask ( -- n ) XI_RawKeyRelease 2^ ; inline
+: XI_RawButtonPressMask ( -- n ) XI_RawButtonPress 2^ ; inline
+: XI_RawButtonReleaseMask ( -- n ) XI_RawButtonRelease 2^ ; inline
+: XI_RawMotionMask ( -- n ) XI_RawMotion 2^ ; inline
+