1
2from PyObjCTools.TestSupport import *
3from Quartz.CoreGraphics import *
4
5class TestCGEventTypes (TestCase):
6    def testTypes(self):
7        self.assertIsCFType(CGEventRef)
8        self.assertIsCFType(CGEventSourceRef)
9
10    def testConstants(self):
11        self.assertEqual(kCGMouseButtonLeft, 0)
12        self.assertEqual(kCGMouseButtonRight, 1)
13        self.assertEqual(kCGMouseButtonCenter, 2)
14        self.assertEqual(kCGScrollEventUnitPixel, 0)
15        self.assertEqual(kCGScrollEventUnitLine, 1)
16        self.assertEqual(kCGEventFlagMaskAlphaShift, 0x00010000)
17        self.assertEqual(kCGEventFlagMaskShift, 0x00020000)
18        self.assertEqual(kCGEventFlagMaskControl, 0x00040000)
19        self.assertEqual(kCGEventFlagMaskAlternate, 0x00080000)
20        self.assertEqual(kCGEventFlagMaskCommand, 0x00100000)
21        self.assertEqual(kCGEventFlagMaskHelp, 0x00400000)
22        self.assertEqual(kCGEventFlagMaskSecondaryFn, 0x00800000)
23        self.assertEqual(kCGEventFlagMaskNumericPad, 0x00200000)
24        self.assertEqual(kCGEventFlagMaskNonCoalesced, 0x00000100)
25        self.assertEqual(kCGEventNull, 0)
26        self.assertEqual(kCGEventLeftMouseDown, 1)
27        self.assertEqual(kCGEventLeftMouseUp, 2)
28        self.assertEqual(kCGEventRightMouseDown, 3)
29        self.assertEqual(kCGEventRightMouseUp, 4)
30        self.assertEqual(kCGEventMouseMoved, 5)
31        self.assertEqual(kCGEventLeftMouseDragged, 6)
32        self.assertEqual(kCGEventRightMouseDragged, 7)
33        self.assertEqual(kCGEventKeyDown, 10)
34        self.assertEqual(kCGEventKeyUp, 11)
35        self.assertEqual(kCGEventFlagsChanged, 12)
36        self.assertEqual(kCGEventScrollWheel, 22)
37        self.assertEqual(kCGEventTabletPointer, 23)
38        self.assertEqual(kCGEventTabletProximity, 24)
39        self.assertEqual(kCGEventOtherMouseDown, 25)
40        self.assertEqual(kCGEventOtherMouseUp, 26)
41        self.assertEqual(kCGEventOtherMouseDragged, 27)
42        self.assertEqual(kCGEventTapDisabledByTimeout, cast_int(0xFFFFFFFE))
43        self.assertEqual(kCGEventTapDisabledByUserInput, cast_int(0xFFFFFFFF))
44        self.assertEqual(kCGMouseEventNumber, 0)
45        self.assertEqual(kCGMouseEventClickState, 1)
46        self.assertEqual(kCGMouseEventPressure, 2)
47        self.assertEqual(kCGMouseEventButtonNumber, 3)
48        self.assertEqual(kCGMouseEventDeltaX, 4)
49        self.assertEqual(kCGMouseEventDeltaY, 5)
50        self.assertEqual(kCGMouseEventInstantMouser, 6)
51        self.assertEqual(kCGMouseEventSubtype, 7)
52        self.assertEqual(kCGKeyboardEventKeycode, 9)
53        self.assertEqual(kCGKeyboardEventKeyboardType, 10)
54        self.assertEqual(kCGScrollWheelEventDeltaAxis1, 11)
55        self.assertEqual(kCGScrollWheelEventDeltaAxis2, 12)
56        self.assertEqual(kCGScrollWheelEventDeltaAxis3, 13)
57        self.assertEqual(kCGScrollWheelEventFixedPtDeltaAxis1, 93)
58        self.assertEqual(kCGScrollWheelEventFixedPtDeltaAxis2, 94)
59        self.assertEqual(kCGScrollWheelEventFixedPtDeltaAxis3, 95)
60        self.assertEqual(kCGScrollWheelEventPointDeltaAxis1, 96)
61        self.assertEqual(kCGScrollWheelEventPointDeltaAxis2, 97)
62        self.assertEqual(kCGScrollWheelEventPointDeltaAxis3, 98)
63        self.assertEqual(kCGScrollWheelEventInstantMouser, 14)
64        self.assertEqual(kCGTabletEventPointX, 15)
65        self.assertEqual(kCGTabletEventPointY, 16)
66        self.assertEqual(kCGTabletEventPointZ, 17)
67        self.assertEqual(kCGTabletEventPointButtons, 18)
68        self.assertEqual(kCGTabletEventPointPressure, 19)
69        self.assertEqual(kCGTabletEventTiltX, 20)
70        self.assertEqual(kCGTabletEventTiltY, 21)
71        self.assertEqual(kCGTabletEventRotation, 22)
72        self.assertEqual(kCGTabletEventTangentialPressure, 23)
73        self.assertEqual(kCGTabletEventDeviceID, 24)
74        self.assertEqual(kCGTabletEventVendor1, 25)
75        self.assertEqual(kCGTabletEventVendor2, 26)
76        self.assertEqual(kCGTabletEventVendor3, 27)
77        self.assertEqual(kCGTabletProximityEventVendorID, 28)
78        self.assertEqual(kCGTabletProximityEventTabletID, 29)
79        self.assertEqual(kCGTabletProximityEventPointerID, 30)
80        self.assertEqual(kCGTabletProximityEventDeviceID, 31)
81        self.assertEqual(kCGTabletProximityEventSystemTabletID, 32)
82        self.assertEqual(kCGTabletProximityEventVendorPointerType, 33)
83        self.assertEqual(kCGTabletProximityEventVendorPointerSerialNumber, 34)
84        self.assertEqual(kCGTabletProximityEventVendorUniqueID, 35)
85        self.assertEqual(kCGTabletProximityEventCapabilityMask, 36)
86        self.assertEqual(kCGTabletProximityEventPointerType, 37)
87        self.assertEqual(kCGTabletProximityEventEnterProximity, 38)
88        self.assertEqual(kCGEventTargetProcessSerialNumber, 39)
89        self.assertEqual(kCGEventTargetUnixProcessID, 40)
90        self.assertEqual(kCGEventSourceUnixProcessID, 41)
91        self.assertEqual(kCGEventSourceUserData, 42)
92        self.assertEqual(kCGEventSourceUserID, 43)
93        self.assertEqual(kCGEventSourceGroupID, 44)
94        self.assertEqual(kCGEventSourceStateID, 45)
95        self.assertEqual(kCGScrollWheelEventIsContinuous, 88)
96        self.assertEqual(kCGEventMouseSubtypeDefault, 0)
97        self.assertEqual(kCGEventMouseSubtypeTabletPoint, 1)
98        self.assertEqual(kCGEventMouseSubtypeTabletProximity, 2)
99        self.assertEqual(kCGHIDEventTap, 0)
100        self.assertEqual(kCGSessionEventTap, 1)
101        self.assertEqual(kCGAnnotatedSessionEventTap, 2)
102        self.assertEqual(kCGHeadInsertEventTap, 0)
103        self.assertEqual(kCGTailAppendEventTap, 1)
104        self.assertEqual(kCGEventTapOptionDefault, 0x00000000)
105        self.assertEqual(kCGEventTapOptionListenOnly, 0x00000001)
106
107        self.assertEqual(kCGNotifyEventTapAdded, b"com.apple.coregraphics.eventTapAdded")
108        self.assertEqual(kCGNotifyEventTapRemoved, b"com.apple.coregraphics.eventTapRemoved")
109
110        self.assertEqual(kCGEventSourceStatePrivate, -1)
111        self.assertEqual(kCGEventSourceStateCombinedSessionState, 0)
112        self.assertEqual(kCGEventSourceStateHIDSystemState, 1)
113        self.assertEqual(kCGAnyInputEventType, 0xffffffff)
114
115    def testStructs(self):
116        v = CGEventTapInformation()
117        self.assertTrue(hasattr(v, 'eventTapID'))
118        self.assertTrue(hasattr(v, 'tapPoint'))
119        self.assertTrue(hasattr(v, 'options'))
120        self.assertTrue(hasattr(v, 'eventsOfInterest'))
121        self.assertTrue(hasattr(v, 'tappingProcess'))
122        self.assertTrue(hasattr(v, 'processBeingTapped'))
123        self.assertTrue(hasattr(v, 'enabled'))
124        self.assertTrue(hasattr(v, 'minUsecLatency'))
125        self.assertTrue(hasattr(v, 'avgUsecLatency'))
126        self.assertTrue(hasattr(v, 'maxUsecLatency'))
127
128    def testInline(self):
129        self.assertEqual(CGEventMaskBit(10), 1<<10)
130
131
132if __name__ == "__main__":
133    main()
134