/ CoreText / include / CoreText / CTParagraphStyle.h
CTParagraphStyle.h
 1  #import <CoreFoundation/CFBase.h>
 2  
 3  #include <stdint.h>
 4  
 5  typedef const struct __CTParagraphStyle* CTParagraphStyleRef;
 6  
 7  typedef CF_ENUM(uint32_t, CTParagraphStyleSpecifier) {
 8  	kCTParagraphStyleSpecifierAlignment              =  0,
 9  	kCTParagraphStyleSpecifierFirstLineHeadIndent    =  1,
10  	kCTParagraphStyleSpecifierHeadIndent             =  2,
11  	kCTParagraphStyleSpecifierTailIndent             =  3,
12  	kCTParagraphStyleSpecifierTabStops               =  4,
13  	kCTParagraphStyleSpecifierDefaultTabInterval     =  5,
14  	kCTParagraphStyleSpecifierLineBreakMode          =  6,
15  	kCTParagraphStyleSpecifierLineHeightMultiple     =  7,
16  	kCTParagraphStyleSpecifierMaximumLineHeight      =  8,
17  	kCTParagraphStyleSpecifierMinimumLineHeight      =  9,
18  	kCTParagraphStyleSpecifierLineSpacing            = 10,
19  	kCTParagraphStyleSpecifierParagraphSpacing       = 11,
20  	kCTParagraphStyleSpecifierParagraphSpacingBefore = 12,
21  	kCTParagraphStyleSpecifierBaseWritingDirection   = 13,
22  	kCTParagraphStyleSpecifierMaximumLineSpacing     = 14,
23  	kCTParagraphStyleSpecifierMinimumLineSpacing     = 15,
24  	kCTParagraphStyleSpecifierLineSpacingAdjustment  = 16,
25  	kCTParagraphStyleSpecifierLineBoundsOptions      = 17,
26  
27  	kCTParagraphStyleSpecifierCount
28  };
29  
30  typedef CF_ENUM(uint8_t, CTTextAlignment) {
31  	kCTTextAlignmentLeft      = 0,
32  	kCTTextAlignmentRight     = 1,
33  	kCTTextAlignmentCenter    = 2,
34  	kCTTextAlignmentJustified = 3,
35  	kCTTextAlignmentNatural   = 4,
36  
37  	kCTLeftTextAlignment      = kCTTextAlignmentLeft,
38  	kCTRightTextAlignment     = kCTTextAlignmentRight,
39  	kCTCenterTextAlignment    = kCTTextAlignmentCenter,
40  	kCTJustifiedTextAlignment = kCTTextAlignmentJustified,
41  	kCTNaturalTextAlignment   = kCTTextAlignmentNatural,
42  };
43  
44  typedef CF_ENUM(uint8_t, CTLineBreakMode) {
45  	kCTLineBreakByWordWrapping     = 0,
46  	kCTLineBreakByCharWrapping     = 1,
47  	kCTLineBreakByClipping         = 2,
48  	kCTLineBreakByTruncatingHead   = 3,
49  	kCTLineBreakByTruncatingTail   = 4,
50  	kCTLineBreakByTruncatingMiddle = 5,
51  };
52  
53  typedef CF_ENUM(int8_t, CTWritingDirection) {
54  	kCTWritingDirectionNatural     = -1,
55  	kCTWritingDirectionLeftToRight = 0,
56  	kCTWritingDirectionRightToLeft = 1,
57  };
58  
59  typedef struct CTParagraphStyleSetting {
60  	CTParagraphStyleSpecifier spec;
61  	size_t valueSize;
62  	const void* value;
63  } CTParagraphStyleSetting;
64  
65  extern CTParagraphStyleRef CTParagraphStyleCreate(const CTParagraphStyleSetting *settings, size_t settingCount);
66  extern bool CTParagraphStyleGetValueForSpecifier(CTParagraphStyleRef paragraphStyle, CTParagraphStyleSpecifier spec, size_t valueBufferSize, void *valueBuffer);