1
2from PyObjCTools.TestSupport import *
3from Quartz.CoreGraphics import *
4
5try:
6    long
7except NameError:
8    long = int
9
10class TestCGEventSource (TestCase):
11    def testTypes(self):
12        self.assertIsCFType(CGEventSourceRef)
13
14    def testFunctions(self):
15        self.assertIsInstance(CGEventSourceGetTypeID(), (int, long))
16
17        src = CGEventSourceCreate(0)
18        self.assertIsInstance(src, CGEventSourceRef)
19
20        v = CGEventSourceGetKeyboardType(src)
21        self.assertIsInstance(v, (int, long))
22
23        CGEventSourceSetKeyboardType(src, v)
24
25        CGEventSourceSetPixelsPerLine(src, 23)
26        v = CGEventSourceGetPixelsPerLine(src)
27        self.assertIsInstance(v, float)
28        self.assertEqual(v, 23)
29
30        v = CGEventSourceGetSourceStateID(src)
31        self.assertIsInstance(v, (int, long))
32
33        self.assertResultHasType(CGEventSourceButtonState, objc._C_BOOL)
34        v = CGEventSourceButtonState(0, 0)
35        self.assertIsInstance(v, bool)
36
37        self.assertResultHasType(CGEventSourceKeyState, objc._C_BOOL)
38        v = CGEventSourceKeyState(0, 64)
39        self.assertIsInstance(v, bool)
40
41        v = CGEventSourceFlagsState(0)
42        self.assertIsInstance(v, (int, long))
43
44        v = CGEventSourceSecondsSinceLastEventType(0, kCGEventLeftMouseDown)
45        self.assertIsInstance(v, float)
46
47        v = CGEventSourceCounterForEventType(0, kCGEventLeftMouseDown)
48        self.assertIsInstance(v, (int, long))
49
50        CGEventSourceSetUserData(src, 0xabbccdd00112233)
51        v = CGEventSourceGetUserData(src)
52        self.assertIsInstance(v, (int, long))
53        self.assertEqual(v, 0xabbccdd00112233)
54
55        CGEventSourceSetLocalEventsFilterDuringSuppressionState(src,
56                kCGEventFlagMaskControl|kCGEventFlagMaskCommand,
57                 kCGEventSuppressionStateRemoteMouseDrag )
58
59        m = CGEventSourceGetLocalEventsFilterDuringSuppressionState(src,
60                 kCGEventSuppressionStateRemoteMouseDrag )
61        self.assertIsInstance(m, (int, long))
62
63        CGEventSourceSetLocalEventsSuppressionInterval(src, 1.5)
64        v = CGEventSourceGetLocalEventsSuppressionInterval(src)
65        self.assertEqual(v, 1.5)
66
67if __name__ == "__main__":
68    main()
69