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