1 2from PyObjCTools.TestSupport import * 3from Quartz.CoreGraphics import * 4from Quartz import CoreGraphics 5 6class TestCGDirectDisplay (TestCase): 7 8 def testConstants(self): 9 self.failUnlessEqual(kCGNullDirectDisplay, 0) 10 11 self.failUnlessEqual(kCGDisplayWidth, "Width") 12 self.failUnlessEqual(kCGDisplayHeight, "Height") 13 self.failUnlessEqual(kCGDisplayMode, "Mode") 14 self.failUnlessEqual(kCGDisplayBitsPerPixel, "BitsPerPixel") 15 self.failUnlessEqual(kCGDisplayBitsPerSample, "BitsPerSample") 16 self.failUnlessEqual(kCGDisplaySamplesPerPixel, "SamplesPerPixel") 17 self.failUnlessEqual(kCGDisplayRefreshRate, "RefreshRate") 18 self.failUnlessEqual(kCGDisplayModeUsableForDesktopGUI, "UsableForDesktopGUI") 19 self.failUnlessEqual(kCGDisplayIOFlags, "IOFlags") 20 self.failUnlessEqual(kCGDisplayBytesPerRow, "kCGDisplayBytesPerRow") 21 self.failUnlessEqual(kCGIODisplayModeID, "IODisplayModeID") 22 23 self.failUnlessEqual(kCGDisplayModeIsSafeForHardware, "kCGDisplayModeIsSafeForHardware") 24 self.failUnlessEqual(kCGDisplayModeIsInterlaced, "kCGDisplayModeIsInterlaced") 25 self.failUnlessEqual(kCGDisplayModeIsStretched, "kCGDisplayModeIsStretched") 26 self.failUnlessEqual(kCGDisplayModeIsTelevisionOutput, "kCGDisplayModeIsTelevisionOutput" ) 27 28 self.failUnlessEqual(kCGCaptureNoOptions, 0) 29 self.failUnlessEqual(kCGCaptureNoFill, 1) 30 31 32 33 34 self.failIf(hasattr(CoreGraphics, 'kCGDirectMainDisplay')) 35 36 def testFunctions(self): 37 self.failUnlessIsInstance(CGMainDisplayID(), (int, long)) 38 39 self.failUnlessArgIsOut(CGGetDisplaysWithPoint, 2) 40 self.failUnlessArgIsOut(CGGetDisplaysWithPoint, 3) 41 v, ids, cnt = CGGetDisplaysWithPoint((0, 0), 10, None, None) 42 self.failUnlessIsInstance(v, (int, long)) 43 self.failUnlessIsInstance(cnt, (int, long)) 44 self.failUnless(cnt) 45 self.failUnlessEqual(len(ids), cnt) 46 self.failUnlessIsInstance(ids[0], (int, long)) 47 48 self.failUnlessArgIsOut(CGGetDisplaysWithRect, 2) 49 self.failUnlessArgIsOut(CGGetDisplaysWithRect, 3) 50 v, ids, cnt = CGGetDisplaysWithRect(((0, 0), (400, 500)), 51 10, None, None) 52 self.failUnlessIsInstance(v, (int, long)) 53 self.failUnlessIsInstance(cnt, (int, long)) 54 self.failUnless(cnt) 55 self.failUnlessEqual(len(ids), cnt) 56 self.failUnlessIsInstance(ids[0], (int, long)) 57 58 59 self.failUnlessArgIsOut(CGGetDisplaysWithOpenGLDisplayMask, 2) 60 self.failUnlessArgIsOut(CGGetDisplaysWithOpenGLDisplayMask, 3) 61 v, ids, cnt = CGGetDisplaysWithOpenGLDisplayMask(0xff, 62 10, None, None) 63 self.failUnlessIsInstance(v, (int, long)) 64 self.failUnlessIsInstance(cnt, (int, long)) 65 self.failUnless(cnt) 66 self.failUnlessEqual(len(ids), cnt) 67 self.failUnlessIsInstance(ids[0], (int, long)) 68 69 self.failUnlessArgIsOut(CGGetActiveDisplayList, 1) 70 self.failUnlessArgIsOut(CGGetActiveDisplayList, 2) 71 v, ids, cnt = CGGetActiveDisplayList(10, None, None) 72 self.failUnlessIsInstance(v, (int, long)) 73 self.failUnlessIsInstance(cnt, (int, long)) 74 self.failUnless(cnt) 75 self.failUnlessEqual(len(ids), cnt) 76 self.failUnlessIsInstance(ids[0], (int, long)) 77 78 self.failUnlessArgIsOut(CGGetOnlineDisplayList, 1) 79 self.failUnlessArgIsOut(CGGetOnlineDisplayList, 2) 80 v, ids, cnt = CGGetOnlineDisplayList(10, None, None) 81 self.failUnlessIsInstance(v, (int, long)) 82 self.failUnlessIsInstance(cnt, (int, long)) 83 self.failUnless(cnt) 84 self.failUnlessEqual(len(ids), cnt) 85 self.failUnlessIsInstance(ids[0], (int, long)) 86 87 v = CGDisplayIDToOpenGLDisplayMask(CGMainDisplayID()) 88 self.failUnlessIsInstance(v, (int, long)) 89 self.failIfEqual(v, 0) 90 91 id = CGOpenGLDisplayMaskToDisplayID(v) 92 self.failUnlessIsInstance(id, (int, long)) 93 self.failUnlessEqual(id, CGMainDisplayID()) 94 95 box = CGDisplayBounds(CGMainDisplayID()) 96 self.failUnlessIsInstance(box, CGRect) 97 98 v = CGDisplayPixelsWide(CGMainDisplayID()) 99 self.failUnlessIsInstance(v, (int, long)) 100 v = CGDisplayPixelsHigh(CGMainDisplayID()) 101 self.failUnlessIsInstance(v, (int, long)) 102 103 modes = CGDisplayAvailableModes(CGMainDisplayID()) 104 self.failUnlessIsInstance(modes, CFArrayRef) 105 self.failUnless(len(modes) > 0) 106 self.failUnlessIsInstance(modes[0], CFDictionaryRef) 107 108 v, exact = CGDisplayBestModeForParameters(CGMainDisplayID(), 109 32, 800, 600, None) 110 self.failUnlessIsInstance(v, CFDictionaryRef) 111 self.failUnlessIsInstance(exact, (int, long)) 112 113 v, exact = CGDisplayBestModeForParametersAndRefreshRate( 114 CGMainDisplayID(), 32, 800, 600, 70, None) 115 self.failUnlessIsInstance(v, CFDictionaryRef) 116 self.failUnlessIsInstance(exact, (int, long)) 117 118 v, exact = CGDisplayBestModeForParametersAndRefreshRateWithProperty( 119 CGMainDisplayID(), 32, 800, 600, 70, 120 kCGDisplayModeIsSafeForHardware, None) 121 self.failUnlessIsInstance(v, CFDictionaryRef) 122 self.failUnlessIsInstance(exact, (int, long)) 123 124 cur = CGDisplayCurrentMode(CGMainDisplayID()) 125 self.failUnlessIsInstance(cur, CFDictionaryRef) 126 127 v = CGDisplaySwitchToMode(CGMainDisplayID(), v) 128 self.failUnlessEqual(v, 0) 129 v = CGDisplaySwitchToMode(CGMainDisplayID(), cur) 130 self.failUnlessEqual(v, 0) 131 132 v = CGDisplayBitsPerPixel(CGMainDisplayID()) 133 self.failUnlessIsInstance(v, (int, long)) 134 135 v = CGDisplayBitsPerSample(CGMainDisplayID()) 136 self.failUnlessIsInstance(v, (int, long)) 137 138 v = CGDisplaySamplesPerPixel(CGMainDisplayID()) 139 self.failUnlessIsInstance(v, (int, long)) 140 141 v = CGDisplayBytesPerRow(CGMainDisplayID()) 142 self.failUnlessIsInstance(v, (int, long)) 143 144 self.failUnlessArgIsOut(CGGetDisplayTransferByFormula, 1) 145 self.failUnlessArgIsOut(CGGetDisplayTransferByFormula, 2) 146 self.failUnlessArgIsOut(CGGetDisplayTransferByFormula, 3) 147 self.failUnlessArgIsOut(CGGetDisplayTransferByFormula, 4) 148 self.failUnlessArgIsOut(CGGetDisplayTransferByFormula, 5) 149 self.failUnlessArgIsOut(CGGetDisplayTransferByFormula, 6) 150 self.failUnlessArgIsOut(CGGetDisplayTransferByFormula, 7) 151 self.failUnlessArgIsOut(CGGetDisplayTransferByFormula, 8) 152 self.failUnlessArgIsOut(CGGetDisplayTransferByFormula, 9) 153 v = CGGetDisplayTransferByFormula(CGMainDisplayID(), 154 None, None, None, None, None, None, None, None, None) 155 self.failUnlessIsInstance(v[0], (int, long)) 156 for i in range(9): 157 self.failUnlessIsInstance(v[i+1], float) 158 159 v = CGSetDisplayTransferByFormula(CGMainDisplayID(), *v[1:]) 160 self.failUnlessEqual(v, 0) 161 162 tablen = CGDisplayGammaTableCapacity(CGMainDisplayID()) 163 self.failUnlessIsInstance(tablen, (int, long)) 164 165 err, red, green, blue, count = CGGetDisplayTransferByTable( 166 CGMainDisplayID(), tablen, None, None, None, None) 167 self.failUnlessIsInstance(err, (int, long)) 168 self.failUnlessIsInstance(count, (int, long)) 169 self.failUnlessEqual(err, 0) 170 self.failIfEqual(count, 0) 171 172 err = CGSetDisplayTransferByTable(CGMainDisplayID(), count, 173 red, green, blue) 174 self.failUnlessEqual(err, 0) 175 176 err, red, green, blue, count = CGGetDisplayTransferByTable( 177 CGMainDisplayID(), tablen, None, None, None, None) 178 self.failUnlessIsInstance(err, (int, long)) 179 self.failUnlessIsInstance(count, (int, long)) 180 self.failUnlessEqual(err, 0) 181 self.failIfEqual(count, 0) 182 183 err = CGSetDisplayTransferByTable(CGMainDisplayID(), count, 184 red, green, blue) 185 self.failUnlessEqual(err, 0) 186 187 CGDisplayRestoreColorSyncSettings() 188 189 v = CGDisplayIsCaptured(CGMainDisplayID()) 190 self.failUnlessIsInstance(v, int) 191 self.failIf(v) 192 193 err = CGDisplayCapture(CGMainDisplayID()) 194 self.failUnlessEqual(err, 0) 195 196 v = CGDisplayIsCaptured(CGMainDisplayID()) 197 self.failUnless(v) 198 199 err = CGDisplayRelease(CGMainDisplayID()) 200 self.failUnlessEqual(err, 0) 201 202 v = CGDisplayIsCaptured(CGMainDisplayID()) 203 self.failIf(v) 204 205 err = CGDisplayCaptureWithOptions(CGMainDisplayID(), 0) 206 self.failUnlessEqual(err, 0) 207 208 err = CGDisplayRelease(CGMainDisplayID()) 209 self.failUnlessEqual(err, 0) 210 211 err = CGCaptureAllDisplays() 212 self.failUnlessEqual(err, 0) 213 214 ctx = CGDisplayGetDrawingContext(CGMainDisplayID()) 215 self.failUnlessIsInstance(ctx, CGContextRef) 216 217 err = CGReleaseAllDisplays() 218 self.failUnlessEqual(err, 0) 219 220 err = CGCaptureAllDisplaysWithOptions(0) 221 self.failUnlessEqual(err, 0) 222 223 err = CGReleaseAllDisplays() 224 self.failUnlessEqual(err, 0) 225 226 v = CGShieldingWindowID(CGMainDisplayID()) 227 self.failUnlessIsInstance(v, (int, long)) 228 229 v = CGShieldingWindowLevel() 230 self.failUnlessIsInstance(v, (int, long)) 231 232 v = CGDisplayBaseAddress(CGMainDisplayID()) 233 self.failUnlessIsInstance(v, objc.varlist) 234 self.failUnlessIsInstance(v[0], str) 235 236 v = CGDisplayAddressForPosition(CGMainDisplayID(), 100, 100) 237 self.failUnlessIsInstance(v, objc.varlist) 238 self.failUnlessIsInstance(v[0], str) 239 240 err = CGDisplayHideCursor(CGMainDisplayID()) 241 self.failUnlessEqual(err, 0) 242 243 err = CGDisplayShowCursor(CGMainDisplayID()) 244 self.failUnlessEqual(err, 0) 245 246 err = CGDisplayMoveCursorToPoint(CGMainDisplayID(), (100, 100)) 247 248 dX, dY = CGGetLastMouseDelta(None, None) 249 self.failUnlessIsInstance(dX, (int, long)) 250 self.failUnlessIsInstance(dY, (int, long)) 251 252 v = CGDisplayCanSetPalette(CGMainDisplayID()) 253 self.failUnlessIsInstance(v, (int, long)) 254 255 err = CGDisplayWaitForBeamPositionOutsideLines(CGMainDisplayID(), 200, 400) 256 self.failUnlessEqual(err, 0) 257 258 v = CGDisplayBeamPosition(CGMainDisplayID()) 259 self.failUnlessIsInstance(v, (int, long)) 260 261 palette = CGPaletteCreateDefaultColorPalette() 262 self.failUnlessIsInstance(palette, CGDirectPaletteRef) 263 264 err = CGDisplaySetPalette(CGMainDisplayID(), palette) 265 self.failUnlessIsInstance(err, (int, long)) 266 267if __name__ == "__main__": 268 main() 269