From 21d3023a9b7b6aff68c1170e345951396b1c6cfd Mon Sep 17 00:00:00 2001
From: 单军华
Date: Tue, 31 Jul 2018 13:35:21 +0800
Subject: [PATCH] no message

---
 screendisplay/Pods/YYText/YYText/String/YYTextAttribute.h |  347 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 347 insertions(+), 0 deletions(-)

diff --git a/screendisplay/Pods/YYText/YYText/String/YYTextAttribute.h b/screendisplay/Pods/YYText/YYText/String/YYTextAttribute.h
new file mode 100755
index 0000000..c6bb774
--- /dev/null
+++ b/screendisplay/Pods/YYText/YYText/String/YYTextAttribute.h
@@ -0,0 +1,347 @@
+//
+//  YYTextAttribute.h
+//  YYText <https://github.com/ibireme/YYText>
+//
+//  Created by ibireme on 14/10/26.
+//  Copyright (c) 2015 ibireme.
+//
+//  This source code is licensed under the MIT-style license found in the
+//  LICENSE file in the root directory of this source tree.
+//
+
+#import <UIKit/UIKit.h>
+
+NS_ASSUME_NONNULL_BEGIN
+
+#pragma mark - Enum Define
+
+/// The attribute type
+typedef NS_OPTIONS(NSInteger, YYTextAttributeType) {
+    YYTextAttributeTypeNone     = 0,
+    YYTextAttributeTypeUIKit    = 1 << 0, ///< UIKit attributes, such as UILabel/UITextField/drawInRect.
+    YYTextAttributeTypeCoreText = 1 << 1, ///< CoreText attributes, used by CoreText.
+    YYTextAttributeTypeYYText   = 1 << 2, ///< YYText attributes, used by YYText.
+};
+
+/// Get the attribute type from an attribute name.
+extern YYTextAttributeType YYTextAttributeGetType(NSString *attributeName);
+
+/**
+ Line style in YYText (similar to NSUnderlineStyle).
+ */
+typedef NS_OPTIONS (NSInteger, YYTextLineStyle) {
+    // basic style (bitmask:0xFF)
+    YYTextLineStyleNone       = 0x00, ///< (        ) Do not draw a line (Default).
+    YYTextLineStyleSingle     = 0x01, ///< (������������������) Draw a single line.
+    YYTextLineStyleThick      = 0x02, ///< (���������������������) Draw a thick line.
+    YYTextLineStyleDouble     = 0x09, ///< (������������������) Draw a double line.
+    
+    // style pattern (bitmask:0xF00)
+    YYTextLineStylePatternSolid      = 0x000, ///< (������������������������) Draw a solid line (Default).
+    YYTextLineStylePatternDot        = 0x100, ///< (��� ��� ��� ��� ��� ���) Draw a line of dots.
+    YYTextLineStylePatternDash       = 0x200, ///< (��� ��� ��� ���) Draw a line of dashes.
+    YYTextLineStylePatternDashDot    = 0x300, ///< (��� ��� ��� ��� ��� ���) Draw a line of alternating dashes and dots.
+    YYTextLineStylePatternDashDotDot = 0x400, ///< (��� ��� ��� ��� ��� ���) Draw a line of alternating dashes and two dots.
+    YYTextLineStylePatternCircleDot  = 0x900, ///< (������������������������������������) Draw a line of small circle dots.
+};
+
+/**
+ Text vertical alignment.
+ */
+typedef NS_ENUM(NSInteger, YYTextVerticalAlignment) {
+    YYTextVerticalAlignmentTop =    0, ///< Top alignment.
+    YYTextVerticalAlignmentCenter = 1, ///< Center alignment.
+    YYTextVerticalAlignmentBottom = 2, ///< Bottom alignment.
+};
+
+/**
+ The direction define in YYText.
+ */
+typedef NS_OPTIONS(NSUInteger, YYTextDirection) {
+    YYTextDirectionNone   = 0,
+    YYTextDirectionTop    = 1 << 0,
+    YYTextDirectionRight  = 1 << 1,
+    YYTextDirectionBottom = 1 << 2,
+    YYTextDirectionLeft   = 1 << 3,
+};
+
+/**
+ The trunction type, tells the truncation engine which type of truncation is being requested.
+ */
+typedef NS_ENUM (NSUInteger, YYTextTruncationType) {
+    /// No truncate.
+    YYTextTruncationTypeNone   = 0,
+    
+    /// Truncate at the beginning of the line, leaving the end portion visible.
+    YYTextTruncationTypeStart  = 1,
+    
+    /// Truncate at the end of the line, leaving the start portion visible.
+    YYTextTruncationTypeEnd    = 2,
+    
+    /// Truncate in the middle of the line, leaving both the start and the end portions visible.
+    YYTextTruncationTypeMiddle = 3,
+};
+
+
+
+#pragma mark - Attribute Name Defined in YYText
+
+/// The value of this attribute is a `YYTextBackedString` object.
+/// Use this attribute to store the original plain text if it is replaced by something else (such as attachment).
+UIKIT_EXTERN NSString *const YYTextBackedStringAttributeName;
+
+/// The value of this attribute is a `YYTextBinding` object.
+/// Use this attribute to bind a range of text together, as if it was a single charactor.
+UIKIT_EXTERN NSString *const YYTextBindingAttributeName;
+
+/// The value of this attribute is a `YYTextShadow` object.
+/// Use this attribute to add shadow to a range of text.
+/// Shadow will be drawn below text glyphs. Use YYTextShadow.subShadow to add multi-shadow.
+UIKIT_EXTERN NSString *const YYTextShadowAttributeName;
+
+/// The value of this attribute is a `YYTextShadow` object.
+/// Use this attribute to add inner shadow to a range of text.
+/// Inner shadow will be drawn above text glyphs. Use YYTextShadow.subShadow to add multi-shadow.
+UIKIT_EXTERN NSString *const YYTextInnerShadowAttributeName;
+
+/// The value of this attribute is a `YYTextDecoration` object.
+/// Use this attribute to add underline to a range of text.
+/// The underline will be drawn below text glyphs.
+UIKIT_EXTERN NSString *const YYTextUnderlineAttributeName;
+
+/// The value of this attribute is a `YYTextDecoration` object.
+/// Use this attribute to add strikethrough (delete line) to a range of text.
+/// The strikethrough will be drawn above text glyphs.
+UIKIT_EXTERN NSString *const YYTextStrikethroughAttributeName;
+
+/// The value of this attribute is a `YYTextBorder` object.
+/// Use this attribute to add cover border or cover color to a range of text.
+/// The border will be drawn above the text glyphs.
+UIKIT_EXTERN NSString *const YYTextBorderAttributeName;
+
+/// The value of this attribute is a `YYTextBorder` object.
+/// Use this attribute to add background border or background color to a range of text.
+/// The border will be drawn below the text glyphs.
+UIKIT_EXTERN NSString *const YYTextBackgroundBorderAttributeName;
+
+/// The value of this attribute is a `YYTextBorder` object.
+/// Use this attribute to add a code block border to one or more line of text.
+/// The border will be drawn below the text glyphs.
+UIKIT_EXTERN NSString *const YYTextBlockBorderAttributeName;
+
+/// The value of this attribute is a `YYTextAttachment` object.
+/// Use this attribute to add attachment to text.
+/// It should be used in conjunction with a CTRunDelegate.
+UIKIT_EXTERN NSString *const YYTextAttachmentAttributeName;
+
+/// The value of this attribute is a `YYTextHighlight` object.
+/// Use this attribute to add a touchable highlight state to a range of text.
+UIKIT_EXTERN NSString *const YYTextHighlightAttributeName;
+
+/// The value of this attribute is a `NSValue` object stores CGAffineTransform.
+/// Use this attribute to add transform to each glyph in a range of text.
+UIKIT_EXTERN NSString *const YYTextGlyphTransformAttributeName;
+
+
+
+#pragma mark - String Token Define
+
+UIKIT_EXTERN NSString *const YYTextAttachmentToken; ///< Object replacement character (U+FFFC), used for text attachment.
+UIKIT_EXTERN NSString *const YYTextTruncationToken; ///< Horizontal ellipsis (U+2026), used for text truncation  "���".
+
+
+
+#pragma mark - Attribute Value Define
+
+/**
+ The tap/long press action callback defined in YYText.
+ 
+ @param containerView The text container view (such as YYLabel/YYTextView).
+ @param text          The whole text.
+ @param range         The text range in `text` (if no range, the range.location is NSNotFound).
+ @param rect          The text frame in `containerView` (if no data, the rect is CGRectNull).
+ */
+typedef void(^YYTextAction)(UIView *containerView, NSAttributedString *text, NSRange range, CGRect rect);
+
+
+/**
+ YYTextBackedString objects are used by the NSAttributedString class cluster
+ as the values for text backed string attributes (stored in the attributed 
+ string under the key named YYTextBackedStringAttributeName).
+ 
+ It may used for copy/paste plain text from attributed string.
+ Example: If :) is replace by a custom emoji (such as����), the backed string can be set to @":)".
+ */
+@interface YYTextBackedString : NSObject <NSCoding, NSCopying>
++ (instancetype)stringWithString:(nullable NSString *)string;
+@property (nullable, nonatomic, copy) NSString *string; ///< backed string
+@end
+
+
+/**
+ YYTextBinding objects are used by the NSAttributedString class cluster
+ as the values for shadow attributes (stored in the attributed string under
+ the key named YYTextBindingAttributeName).
+ 
+ Add this to a range of text will make the specified characters 'binding together'.
+ YYTextView will treat the range of text as a single character during text 
+ selection and edit.
+ */
+@interface YYTextBinding : NSObject <NSCoding, NSCopying>
++ (instancetype)bindingWithDeleteConfirm:(BOOL)deleteConfirm;
+@property (nonatomic) BOOL deleteConfirm; ///< confirm the range when delete in YYTextView
+@end
+
+
+/**
+ YYTextShadow objects are used by the NSAttributedString class cluster
+ as the values for shadow attributes (stored in the attributed string under
+ the key named YYTextShadowAttributeName or YYTextInnerShadowAttributeName).
+ 
+ It's similar to `NSShadow`, but offers more options.
+ */
+@interface YYTextShadow : NSObject <NSCoding, NSCopying>
++ (instancetype)shadowWithColor:(nullable UIColor *)color offset:(CGSize)offset radius:(CGFloat)radius;
+
+@property (nullable, nonatomic, strong) UIColor *color; ///< shadow color
+@property (nonatomic) CGSize offset;                    ///< shadow offset
+@property (nonatomic) CGFloat radius;                   ///< shadow blur radius
+@property (nonatomic) CGBlendMode blendMode;            ///< shadow blend mode
+@property (nullable, nonatomic, strong) YYTextShadow *subShadow;  ///< a sub shadow which will be added above the parent shadow
+
++ (instancetype)shadowWithNSShadow:(NSShadow *)nsShadow; ///< convert NSShadow to YYTextShadow
+- (NSShadow *)nsShadow; ///< convert YYTextShadow to NSShadow
+@end
+
+
+/**
+ YYTextDecorationLine objects are used by the NSAttributedString class cluster
+ as the values for decoration line attributes (stored in the attributed string under
+ the key named YYTextUnderlineAttributeName or YYTextStrikethroughAttributeName).
+ 
+ When it's used as underline, the line is drawn below text glyphs;
+ when it's used as strikethrough, the line is drawn above text glyphs.
+ */
+@interface YYTextDecoration : NSObject <NSCoding, NSCopying>
++ (instancetype)decorationWithStyle:(YYTextLineStyle)style;
++ (instancetype)decorationWithStyle:(YYTextLineStyle)style width:(nullable NSNumber *)width color:(nullable UIColor *)color;
+@property (nonatomic) YYTextLineStyle style;                   ///< line style
+@property (nullable, nonatomic, strong) NSNumber *width;       ///< line width (nil means automatic width)
+@property (nullable, nonatomic, strong) UIColor *color;        ///< line color (nil means automatic color)
+@property (nullable, nonatomic, strong) YYTextShadow *shadow;  ///< line shadow
+@end
+
+
+/**
+ YYTextBorder objects are used by the NSAttributedString class cluster
+ as the values for border attributes (stored in the attributed string under
+ the key named YYTextBorderAttributeName or YYTextBackgroundBorderAttributeName).
+ 
+ It can be used to draw a border around a range of text, or draw a background
+ to a range of text.
+ 
+ Example:
+    ������������������������
+    ��� Text ���
+    ������������������������
+ */
+@interface YYTextBorder : NSObject <NSCoding, NSCopying>
++ (instancetype)borderWithLineStyle:(YYTextLineStyle)lineStyle lineWidth:(CGFloat)width strokeColor:(nullable UIColor *)color;
++ (instancetype)borderWithFillColor:(nullable UIColor *)color cornerRadius:(CGFloat)cornerRadius;
+@property (nonatomic) YYTextLineStyle lineStyle;              ///< border line style
+@property (nonatomic) CGFloat strokeWidth;                    ///< border line width
+@property (nullable, nonatomic, strong) UIColor *strokeColor; ///< border line color
+@property (nonatomic) CGLineJoin lineJoin;                    ///< border line join
+@property (nonatomic) UIEdgeInsets insets;                    ///< border insets for text bounds
+@property (nonatomic) CGFloat cornerRadius;                   ///< border corder radius
+@property (nullable, nonatomic, strong) YYTextShadow *shadow; ///< border shadow
+@property (nullable, nonatomic, strong) UIColor *fillColor;   ///< inner fill color
+@end
+
+
+/**
+ YYTextAttachment objects are used by the NSAttributedString class cluster 
+ as the values for attachment attributes (stored in the attributed string under 
+ the key named YYTextAttachmentAttributeName).
+ 
+ When display an attributed string which contains `YYTextAttachment` object,
+ the content will be placed in text metric. If the content is `UIImage`, 
+ then it will be drawn to CGContext; if the content is `UIView` or `CALayer`, 
+ then it will be added to the text container's view or layer.
+ */
+@interface YYTextAttachment : NSObject<NSCoding, NSCopying>
++ (instancetype)attachmentWithContent:(nullable id)content;
+@property (nullable, nonatomic, strong) id content;             ///< Supported type: UIImage, UIView, CALayer
+@property (nonatomic) UIViewContentMode contentMode;            ///< Content display mode.
+@property (nonatomic) UIEdgeInsets contentInsets;               ///< The insets when drawing content.
+@property (nullable, nonatomic, strong) NSDictionary *userInfo; ///< The user information dictionary.
+@end
+
+
+/**
+ YYTextHighlight objects are used by the NSAttributedString class cluster
+ as the values for touchable highlight attributes (stored in the attributed string
+ under the key named YYTextHighlightAttributeName).
+ 
+ When display an attributed string in `YYLabel` or `YYTextView`, the range of 
+ highlight text can be toucheds down by users. If a range of text is turned into 
+ highlighted state, the `attributes` in `YYTextHighlight` will be used to modify 
+ (set or remove) the original attributes in the range for display.
+ */
+@interface YYTextHighlight : NSObject <NSCoding, NSCopying>
+
+/**
+ Attributes that you can apply to text in an attributed string when highlight.
+ Key:   Same as CoreText/YYText Attribute Name.
+ Value: Modify attribute value when highlight (NSNull for remove attribute).
+ */
+@property (nullable, nonatomic, copy) NSDictionary<NSString *, id> *attributes;
+
+/**
+ Creates a highlight object with specified attributes.
+ 
+ @param attributes The attributes which will replace original attributes when highlight,
+        If the value is NSNull, it will removed when highlight.
+ */
++ (instancetype)highlightWithAttributes:(nullable NSDictionary<NSString *, id> *)attributes;
+
+/**
+ Convenience methods to create a default highlight with the specifeid background color.
+ 
+ @param color The background border color.
+ */
++ (instancetype)highlightWithBackgroundColor:(nullable UIColor *)color;
+
+// Convenience methods below to set the `attributes`.
+- (void)setFont:(nullable UIFont *)font;
+- (void)setColor:(nullable UIColor *)color;
+- (void)setStrokeWidth:(nullable NSNumber *)width;
+- (void)setStrokeColor:(nullable UIColor *)color;
+- (void)setShadow:(nullable YYTextShadow *)shadow;
+- (void)setInnerShadow:(nullable YYTextShadow *)shadow;
+- (void)setUnderline:(nullable YYTextDecoration *)underline;
+- (void)setStrikethrough:(nullable YYTextDecoration *)strikethrough;
+- (void)setBackgroundBorder:(nullable YYTextBorder *)border;
+- (void)setBorder:(nullable YYTextBorder *)border;
+- (void)setAttachment:(nullable YYTextAttachment *)attachment;
+
+/**
+ The user information dictionary, default is nil.
+ */
+@property (nullable, nonatomic, copy) NSDictionary *userInfo;
+
+/**
+ Tap action when user tap the highlight, default is nil.
+ If the value is nil, YYTextView or YYLabel will ask it's delegate to handle the tap action.
+ */
+@property (nullable, nonatomic, copy) YYTextAction tapAction;
+
+/**
+ Long press action when user long press the highlight, default is nil.
+ If the value is nil, YYTextView or YYLabel will ask it's delegate to handle the long press action.
+ */
+@property (nullable, nonatomic, copy) YYTextAction longPressAction;
+
+@end
+
+NS_ASSUME_NONNULL_END

--
Gitblit v1.8.0