New file |
| | |
| | | // |
| | | // YYTextDebugOption.h |
| | | // YYText <https://github.com/ibireme/YYText> |
| | | // |
| | | // Created by ibireme on 15/4/8. |
| | | // 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> |
| | | |
| | | @class YYTextDebugOption; |
| | | |
| | | NS_ASSUME_NONNULL_BEGIN |
| | | |
| | | /** |
| | | The YYTextDebugTarget protocol defines the method a debug target should implement. |
| | | A debug target can be add to the global container to receive the shared debug |
| | | option changed notification. |
| | | */ |
| | | @protocol YYTextDebugTarget <NSObject> |
| | | |
| | | @required |
| | | /** |
| | | When the shared debug option changed, this method would be called on main thread. |
| | | It should return as quickly as possible. The option's property should not be changed |
| | | in this method. |
| | | |
| | | @param option The shared debug option. |
| | | */ |
| | | - (void)setDebugOption:(nullable YYTextDebugOption *)option; |
| | | @end |
| | | |
| | | |
| | | |
| | | /** |
| | | The debug option for YYText. |
| | | */ |
| | | @interface YYTextDebugOption : NSObject <NSCopying> |
| | | @property (nullable, nonatomic, strong) UIColor *baselineColor; ///< baseline color |
| | | @property (nullable, nonatomic, strong) UIColor *CTFrameBorderColor; ///< CTFrame path border color |
| | | @property (nullable, nonatomic, strong) UIColor *CTFrameFillColor; ///< CTFrame path fill color |
| | | @property (nullable, nonatomic, strong) UIColor *CTLineBorderColor; ///< CTLine bounds border color |
| | | @property (nullable, nonatomic, strong) UIColor *CTLineFillColor; ///< CTLine bounds fill color |
| | | @property (nullable, nonatomic, strong) UIColor *CTLineNumberColor; ///< CTLine line number color |
| | | @property (nullable, nonatomic, strong) UIColor *CTRunBorderColor; ///< CTRun bounds border color |
| | | @property (nullable, nonatomic, strong) UIColor *CTRunFillColor; ///< CTRun bounds fill color |
| | | @property (nullable, nonatomic, strong) UIColor *CTRunNumberColor; ///< CTRun number color |
| | | @property (nullable, nonatomic, strong) UIColor *CGGlyphBorderColor; ///< CGGlyph bounds border color |
| | | @property (nullable, nonatomic, strong) UIColor *CGGlyphFillColor; ///< CGGlyph bounds fill color |
| | | |
| | | - (BOOL)needDrawDebug; ///< `YES`: at least one debug color is visible. `NO`: all debug color is invisible/nil. |
| | | - (void)clear; ///< Set all debug color to nil. |
| | | |
| | | /** |
| | | Add a debug target. |
| | | |
| | | @discussion When `setSharedDebugOption:` is called, all added debug target will |
| | | receive `setDebugOption:` in main thread. It maintains an unsafe_unretained |
| | | reference to this target. The target must to removed before dealloc. |
| | | |
| | | @param target A debug target. |
| | | */ |
| | | + (void)addDebugTarget:(id<YYTextDebugTarget>)target; |
| | | |
| | | /** |
| | | Remove a debug target which is added by `addDebugTarget:`. |
| | | |
| | | @param target A debug target. |
| | | */ |
| | | + (void)removeDebugTarget:(id<YYTextDebugTarget>)target; |
| | | |
| | | /** |
| | | Returns the shared debug option. |
| | | |
| | | @return The shared debug option, default is nil. |
| | | */ |
| | | + (nullable YYTextDebugOption *)sharedDebugOption; |
| | | |
| | | /** |
| | | Set a debug option as shared debug option. |
| | | This method must be called on main thread. |
| | | |
| | | @discussion When call this method, the new option will set to all debug target |
| | | which is added by `addDebugTarget:`. |
| | | |
| | | @param option A new debug option (nil is valid). |
| | | */ |
| | | + (void)setSharedDebugOption:(nullable YYTextDebugOption *)option; |
| | | |
| | | @end |
| | | |
| | | NS_ASSUME_NONNULL_END |