Exemplo n.º 1
0
    def testFunctions(self):
        v = CoreText.CTLineGetTypeID()
        self.assertIsInstance(v, int)

        self.assertResultIsCFRetained(
            CoreText.CTLineCreateWithAttributedString)
        astr = CoreText.CFAttributedStringCreate(None, "-", None)
        self.assertTrue(astr is not None)
        token = CoreText.CTLineCreateWithAttributedString(astr)
        self.assertIsInstance(token, CoreText.CTLineRef)

        astr = CoreText.CFAttributedStringCreate(None, "hello world", None)
        self.assertTrue(astr is not None)
        line = CoreText.CTLineCreateWithAttributedString(astr)
        self.assertIsInstance(line, CoreText.CTLineRef)

        self.assertResultIsCFRetained(CoreText.CTLineCreateTruncatedLine)
        v = CoreText.CTLineCreateTruncatedLine(line, 20.0,
                                               CoreText.kCTLineTruncationStart,
                                               token)
        self.assertIsInstance(v, CoreText.CTLineRef)

        self.assertResultIsCFRetained(CoreText.CTLineCreateJustifiedLine)
        v = CoreText.CTLineCreateJustifiedLine(line, 2.0, 123.0)
        self.assertIsInstance(v, CoreText.CTLineRef)

        v = CoreText.CTLineGetGlyphCount(line)
        self.assertIsInstance(v, int)

        v = CoreText.CTLineGetGlyphRuns(line)
        self.assertIsInstance(v, CoreText.CFArrayRef)

        v = CoreText.CTLineGetStringRange(line)
        self.assertIsInstance(v, CoreText.CFRange)

        v = CoreText.CTLineGetPenOffsetForFlush(line, 0.5, 40.0)
        self.assertIsInstance(v, float)

        url = CoreText.CFURLCreateWithFileSystemPath(
            None, "/tmp/pyobjc.test.pdf", CoreText.kCFURLPOSIXPathStyle, False)
        self.assertIsInstance(url, CoreText.CFURLRef)
        ctx = CoreText.CGPDFContextCreateWithURL(
            url, Quartz.CGRect(Quartz.CGPoint(0, 0),
                               Quartz.CGSize(1000, 1000)), None)
        self.assertIsInstance(ctx, Quartz.CGContextRef)

        CoreText.CTLineDraw(line, ctx)

        v = CoreText.CTLineGetImageBounds(line, ctx)
        self.assertIsInstance(v, CoreText.CGRect)

        self.assertArgIsOut(CoreText.CTLineGetTypographicBounds, 1)
        self.assertArgIsOut(CoreText.CTLineGetTypographicBounds, 2)
        self.assertArgIsOut(CoreText.CTLineGetTypographicBounds, 3)

        v = CoreText.CTLineGetTypographicBounds(line, None, None, None)
        self.assertIsInstance(v, tuple)
        self.assertIsInstance(v[0], float)
        self.assertIsInstance(v[1], float)
        self.assertIsInstance(v[2], float)
        self.assertIsInstance(v[3], float)

        v = CoreText.CTLineGetTrailingWhitespaceWidth(line)
        self.assertIsInstance(v, float)

        v = CoreText.CTLineGetStringIndexForPosition(line,
                                                     CoreText.CGPoint(10, 10))
        self.assertIsInstance(v, int)

        self.assertArgIsOut(CoreText.CTLineGetOffsetForStringIndex, 2)
        v = CoreText.CTLineGetOffsetForStringIndex(line, 2, None)
        self.assertIsInstance(v, tuple)
        self.assertIsInstance(v[0], float)
        self.assertIsInstance(v[1], float)

        if os.path.exists("/tmp/pyobjc.test.pdf"):
            os.unlink("/tmp/pyobjc.test.pdf")
Exemplo n.º 2
0
    def testFunctions(self):
        self.assertIsInstance(CoreText.CTRunGetTypeID(), int)

        line = CoreText.CTLineCreateWithAttributedString(
            CoreText.CFAttributedStringCreate(None, "hello world", None))
        self.assertIsInstance(line, CoreText.CTLineRef)

        run = CoreText.CTLineGetGlyphRuns(line)[0]
        self.assertIsInstance(run, CoreText.CTRunRef)

        v = CoreText.CTRunGetGlyphCount(run)
        self.assertIsInstance(v, int)

        v = CoreText.CTRunGetAttributes(run)
        self.assertIsInstance(v, (dict, NSDictionary))

        v = CoreText.CTRunGetStatus(run)
        self.assertIsInstance(v, int)

        buf = CoreText.CTRunGetGlyphsPtr(run)
        self.assertIsInstance(buf, objc.varlist)
        self.assertIsInstance(buf[0], int)

        buf = CoreText.CTRunGetGlyphs(run, CoreText.CFRange(0, 5), None)
        self.assertIsInstance(buf, tuple)
        self.assertEqual(len(buf), 5)
        self.assertIsInstance(buf[0], int)

        buf = CoreText.CTRunGetPositionsPtr(run)
        self.assertIsInstance(buf, objc.varlist)
        self.assertIsInstance(buf[0], CGPoint)

        buf = CoreText.CTRunGetPositions(run, CoreText.CFRange(0, 5), None)
        self.assertIsInstance(buf, tuple)
        self.assertEqual(len(buf), 5)
        self.assertIsInstance(buf[0], CGPoint)

        buf = CoreText.CTRunGetStringIndicesPtr(run)
        self.assertIsInstance(buf, objc.varlist)
        self.assertIsInstance(buf[0], int)

        buf = CoreText.CTRunGetStringIndices(run, CoreText.CFRange(0, 5), None)
        self.assertIsInstance(buf, tuple)
        self.assertEqual(len(buf), 5)
        self.assertIsInstance(buf[0], int)

        v = CoreText.CTRunGetStringRange(run)
        self.assertIsInstance(v, CoreText.CFRange)

        v = CoreText.CTRunGetTypographicBounds(run, CoreText.CFRange(0, 5),
                                               None, None, None)
        self.assertIsInstance(v, tuple)
        self.assertEqual(len(v), 4)
        self.assertIsInstance(v[0], float)
        self.assertIsInstance(v[1], float)
        self.assertIsInstance(v[2], float)
        self.assertIsInstance(v[3], float)

        url = CoreText.CFURLCreateWithFileSystemPath(
            None, "/tmp/pyobjc.test.pdf", CoreText.kCFURLPOSIXPathStyle, False)
        self.assertIsInstance(url, CoreText.CFURLRef)

        ctx = CGPDFContextCreateWithURL(
            url, CGRect(CGPoint(0, 0), CGSize(1000, 1000)), None)
        v = CoreText.CTRunGetImageBounds(run, ctx, CoreText.CFRange(0, 5))
        self.assertIsInstance(v, CGRect)

        v = CoreText.CTRunGetTextMatrix(run)
        self.assertIsInstance(v, CoreText.CGAffineTransform)

        v = CoreText.CTRunDraw(run, ctx, CoreText.CFRange(0, 5))
        self.assertTrue(v is None)