def testFunctions(self): v = CTParagraphStyleGetTypeID() self.assertIsInstance(v, (int, long)) self.assertResultHasType(CTParagraphStyleGetValueForSpecifier, objc._C_BOOL) # Test below is not needed due to manaul wrapper: #self.assertResultIsCFRetained(CTParagraphStyleCreate) style = CTParagraphStyleCreate(None, 0) self.assertIsInstance(style, CTParagraphStyleRef) self.assertResultIsCFRetained(CTParagraphStyleCreateCopy) v = CTParagraphStyleCreateCopy(style) self.assertIsInstance(v, CTParagraphStyleRef) ok, v = CTParagraphStyleGetTabStops(style) self.assertTrue(ok) self.assertIsInstance(v, CFArrayRef) self.assertTrue(len(v)) self.assertIsInstance(v[0], CTTextTabRef) ok, v = CTParagraphStyleGetValueForSpecifier( style, kCTParagraphStyleSpecifierAlignment, sizeof_CTTextAlignment, None) self.assertTrue(ok) self.assertIsInstance(v, bytes) self.assertEqual(len(v), sizeof_CTTextAlignment) ok, v = CTParagraphStyleGetValueForSpecifier( style, kCTParagraphStyleSpecifierFirstLineHeadIndent, sizeof_CGFloat, None) self.assertTrue(ok) self.assertIsInstance(v, bytes) self.assertEqual(len(v), sizeof_CGFloat) ok, v = CTParagraphStyleGetValueForSpecifier( style, kCTParagraphStyleSpecifierLineBreakMode, sizeof_CTLineBreakMode, None) self.assertTrue(ok) self.assertIsInstance(v, bytes) self.assertEqual(len(v), sizeof_CTLineBreakMode) ok, v = CTParagraphStyleGetValueForSpecifier( style, kCTParagraphStyleSpecifierBaseWritingDirection, sizeof_CTWritingDirection, None) self.assertTrue(ok) self.assertIsInstance(v, bytes) self.assertEqual(len(v), sizeof_CTWritingDirection) # And now the hard part: create a CTParagraphStyle with custom options if sys.maxint > 2**32: float_pack = "d" else: float_pack = "f" options = [ CTParagraphStyleSetting( spec=kCTParagraphStyleSpecifierBaseWritingDirection, valueSize=sizeof_CTWritingDirection, value=chr(kCTParagraphStyleSpecifierTailIndent).encode( 'latin1')), CTParagraphStyleSetting( spec=kCTParagraphStyleSpecifierFirstLineHeadIndent, valueSize=sizeof_CGFloat, value=struct.pack(float_pack, 10.5)), CTParagraphStyleSetting( spec=kCTParagraphStyleSpecifierTabStops, valueSize=sizeof_id, value=NSArray.arrayWithArray_([ CTTextTabCreate(kCTLeftTextAlignment, 40.0, None), CTTextTabCreate(kCTLeftTextAlignment, 80.0, None), ])), ] options.append( CTParagraphStyleSetting( spec=kCTParagraphStyleSpecifierBaseWritingDirection, valueSize=sizeof_CTWritingDirection, value=chr(kCTWritingDirectionRightToLeft)), ) style = CTParagraphStyleCreate(options, len(options)) self.assertIsInstance(style, CTParagraphStyleRef) ok, v = CTParagraphStyleGetTabStops(style) self.assertTrue(ok) self.assertIsInstance(v, CFArrayRef) self.assertEqual(len(v), 2) ok, v = CTParagraphStyleGetValueForSpecifier( style, kCTParagraphStyleSpecifierBaseWritingDirection, sizeof_CTWritingDirection, None) self.assertTrue(ok) self.assertIsInstance(v, str) self.assertEqual(v, chr(kCTWritingDirectionRightToLeft)) ok, v = CTParagraphStyleGetValueForSpecifier( style, kCTParagraphStyleSpecifierFirstLineHeadIndent, sizeof_CGFloat, None) self.assertTrue(ok) self.assertIsInstance(v, str) self.assertEqual(v, struct.pack(float_pack, 10.5))
def testFunctions(self): v = CTParagraphStyleGetTypeID() self.assertIsInstance(v, (int, long)) self.assertResultHasType(CTParagraphStyleGetValueForSpecifier, objc._C_BOOL) # Test below is not needed due to manaul wrapper: #self.assertResultIsCFRetained(CTParagraphStyleCreate) style = CTParagraphStyleCreate(None, 0) self.assertIsInstance(style, CTParagraphStyleRef); self.assertResultIsCFRetained(CTParagraphStyleCreateCopy) v = CTParagraphStyleCreateCopy(style) self.assertIsInstance(v, CTParagraphStyleRef); ok, v = CTParagraphStyleGetTabStops(style) self.assertTrue(ok) self.assertIsInstance(v, NSArray) self.assertTrue(len(v)) self.assertIsInstance(v[0], CTTextTabRef) ok, v = CTParagraphStyleGetValueForSpecifier(style, kCTParagraphStyleSpecifierAlignment, sizeof_CTTextAlignment, None) self.assertTrue(ok) self.assertIsInstance(v, bytes) self.assertEqual(len(v), sizeof_CTTextAlignment) ok, v = CTParagraphStyleGetValueForSpecifier(style, kCTParagraphStyleSpecifierFirstLineHeadIndent, sizeof_CGFloat, None) self.assertTrue(ok) self.assertIsInstance(v, bytes) self.assertEqual(len(v), sizeof_CGFloat) ok, v = CTParagraphStyleGetValueForSpecifier(style, kCTParagraphStyleSpecifierLineBreakMode, sizeof_CTLineBreakMode, None) self.assertTrue(ok) self.assertIsInstance(v, bytes) self.assertEqual(len(v), sizeof_CTLineBreakMode) ok, v = CTParagraphStyleGetValueForSpecifier(style, kCTParagraphStyleSpecifierBaseWritingDirection, sizeof_CTWritingDirection, None) self.assertTrue(ok) self.assertIsInstance(v, bytes) self.assertEqual(len(v), sizeof_CTWritingDirection) # And now the hard part: create a CTParagraphStyle with custom options if sys.maxsize > 2**32: float_pack = "d" else: float_pack = "f" options = [ CTParagraphStyleSetting( spec=kCTParagraphStyleSpecifierBaseWritingDirection, valueSize=sizeof_CTWritingDirection, value=chr(kCTParagraphStyleSpecifierTailIndent).encode('latin1')), CTParagraphStyleSetting( spec=kCTParagraphStyleSpecifierFirstLineHeadIndent, valueSize=sizeof_CGFloat, value=struct.pack(float_pack, 10.5)), CTParagraphStyleSetting( spec=kCTParagraphStyleSpecifierTabStops, valueSize=sizeof_id, value=NSArray.arrayWithArray_([ CTTextTabCreate(kCTLeftTextAlignment, 40.0, None), CTTextTabCreate(kCTLeftTextAlignment, 80.0, None), ])), ] options.append( CTParagraphStyleSetting( spec=kCTParagraphStyleSpecifierBaseWritingDirection, valueSize=sizeof_CTWritingDirection, value=chr(kCTWritingDirectionRightToLeft).encode('latin1')), ) style = CTParagraphStyleCreate(options, len(options)) self.assertIsInstance(style, CTParagraphStyleRef); ok, v = CTParagraphStyleGetTabStops(style) self.assertTrue(ok) self.assertIsInstance(v, NSArray) self.assertEqual(len(v), 2) ok, v = CTParagraphStyleGetValueForSpecifier(style, kCTParagraphStyleSpecifierBaseWritingDirection, sizeof_CTWritingDirection, None) self.assertTrue(ok) self.assertIsInstance(v, bytes) self.assertEqual(v, chr(kCTWritingDirectionRightToLeft).encode('latin1')) ok, v = CTParagraphStyleGetValueForSpecifier(style, kCTParagraphStyleSpecifierFirstLineHeadIndent, sizeof_CGFloat, None) self.assertTrue(ok) self.assertIsInstance(v, bytes) self.assertEqual(v, struct.pack(float_pack, 10.5))