/ CoreText / include / CoreText / CTLine.h
CTLine.h
 1  #import <CoreText/CoreTextExport.h>
 2  #import <CoreGraphics/CoreGraphics.h>
 3  
 4  CF_IMPLICIT_BRIDGING_ENABLED
 5  
 6  typedef struct __CTLine* CTLineRef;
 7  
 8  typedef NS_ENUM(CFOptionFlags, CTLineBoundsOptions)
 9  {
10      kCTLineBoundsExcludeTypographicLeading  = 1 << 0,
11      kCTLineBoundsExcludeTypographicShifts   = 1 << 1,
12      kCTLineBoundsUseHangingPunctuation      = 1 << 2,
13      kCTLineBoundsUseGlyphPathBounds         = 1 << 3,
14      kCTLineBoundsUseOpticalBounds           = 1 << 4,
15      kCTLineBoundsIncludeLanguageExtents     = 1 << 5,
16  };
17  
18  typedef NS_ENUM(uint32_t, CTLineTruncationType)
19  {
20      kCTLineTruncationStart  = 0,
21      kCTLineTruncationEnd    = 1,
22      kCTLineTruncationMiddle = 2
23  };
24  
25  CORETEXT_EXPORT CFTypeID CTLineGetTypeID(void);
26  CORETEXT_EXPORT CTLineRef CTLineCreateWithAttributedString(CFAttributedStringRef attrString);
27  
28  CORETEXT_EXPORT CTLineRef CTLineCreateTruncatedLine(CTLineRef line, double width,
29                                                      CTLineTruncationType truncationType,
30                                                      CTLineRef truncationToken);
31  
32  CORETEXT_EXPORT CTLineRef _Nullable CTLineCreateJustifiedLine(CTLineRef line, CGFloat justificationFactor, double justificationWidth);
33  
34  CORETEXT_EXPORT CFIndex CTLineGetGlyphCount(CTLineRef line);
35  CORETEXT_EXPORT CFArrayRef CTLineGetGlyphRuns(CTLineRef line);
36  CORETEXT_EXPORT CFRange CTLineGetStringRange(CTLineRef line);
37  CORETEXT_EXPORT double CTLineGetPenOffsetForFlush(CTLineRef line, CGFloat flushFactor, double flushWidth);
38  
39  CORETEXT_EXPORT void CTLineDraw(CTLineRef line, CGContextRef context);
40  
41  CORETEXT_EXPORT double CTLineGetTypographicBounds(CTLineRef line, CGFloat * ascent, CGFloat * descent, CGFloat * leading);
42  
43  CORETEXT_EXPORT CGRect CTLineGetBoundsWithOptions(CTLineRef line, CTLineBoundsOptions options);
44  CORETEXT_EXPORT double CTLineGetTrailingWhitespaceWidth(CTLineRef line);
45  CORETEXT_EXPORT CGRect CTLineGetImageBounds(CTLineRef line, CGContextRef context);
46  
47  CORETEXT_EXPORT CFIndex CTLineGetStringIndexForPosition(CTLineRef line, CGPoint position);
48  CORETEXT_EXPORT CGFloat CTLineGetOffsetForStringIndex(CTLineRef line, CFIndex charIndex, CGFloat *secondaryOffset);
49  
50  CF_IMPLICIT_BRIDGING_DISABLED