From 7b02207537d35bfa1714bf8beafc921f717d100a Mon Sep 17 00:00:00 2001 From: 单军华 Date: Wed, 11 Jul 2018 10:47:42 +0800 Subject: [PATCH] 首次上传 --- screendisplay/Pods/YYText/YYText/Component/YYTextInput.m | 152 ++++++++++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 152 insertions(+), 0 deletions(-) diff --git a/screendisplay/Pods/YYText/YYText/Component/YYTextInput.m b/screendisplay/Pods/YYText/YYText/Component/YYTextInput.m new file mode 100755 index 0000000..0c4cb52 --- /dev/null +++ b/screendisplay/Pods/YYText/YYText/Component/YYTextInput.m @@ -0,0 +1,152 @@ +// +// YYTextInput.m +// YYText <https://github.com/ibireme/YYText> +// +// Created by ibireme on 15/4/17. +// 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 "YYTextInput.h" +#import "YYTextUtilities.h" + + +@implementation YYTextPosition + ++ (instancetype)positionWithOffset:(NSInteger)offset { + return [self positionWithOffset:offset affinity:YYTextAffinityForward]; +} + ++ (instancetype)positionWithOffset:(NSInteger)offset affinity:(YYTextAffinity)affinity { + YYTextPosition *p = [self new]; + p->_offset = offset; + p->_affinity = affinity; + return p; +} + +- (instancetype)copyWithZone:(NSZone *)zone { + return [self.class positionWithOffset:_offset affinity:_affinity]; +} + +- (NSString *)description { + return [NSString stringWithFormat:@"<%@: %p> (%@%@)", self.class, self, @(_offset), _affinity == YYTextAffinityForward ? @"F":@"B"]; +} + +- (NSUInteger)hash { + return _offset * 2 + (_affinity == YYTextAffinityForward ? 1 : 0); +} + +- (BOOL)isEqual:(YYTextPosition *)object { + if (!object) return NO; + return _offset == object.offset && _affinity == object.affinity; +} + +- (NSComparisonResult)compare:(YYTextPosition *)otherPosition { + if (!otherPosition) return NSOrderedAscending; + if (_offset < otherPosition.offset) return NSOrderedAscending; + if (_offset > otherPosition.offset) return NSOrderedDescending; + if (_affinity == YYTextAffinityBackward && otherPosition.affinity == YYTextAffinityForward) return NSOrderedAscending; + if (_affinity == YYTextAffinityForward && otherPosition.affinity == YYTextAffinityBackward) return NSOrderedDescending; + return NSOrderedSame; +} + +@end + + + +@implementation YYTextRange { + YYTextPosition *_start; + YYTextPosition *_end; +} + +- (instancetype)init { + self = [super init]; + if (!self) return nil; + _start = [YYTextPosition positionWithOffset:0]; + _end = [YYTextPosition positionWithOffset:0]; + return self; +} + +- (YYTextPosition *)start { + return _start; +} + +- (YYTextPosition *)end { + return _end; +} + +- (BOOL)isEmpty { + return _start.offset == _end.offset; +} + +- (NSRange)asRange { + return NSMakeRange(_start.offset, _end.offset - _start.offset); +} + ++ (instancetype)rangeWithRange:(NSRange)range { + return [self rangeWithRange:range affinity:YYTextAffinityForward]; +} + ++ (instancetype)rangeWithRange:(NSRange)range affinity:(YYTextAffinity)affinity { + YYTextPosition *start = [YYTextPosition positionWithOffset:range.location affinity:affinity]; + YYTextPosition *end = [YYTextPosition positionWithOffset:range.location + range.length affinity:affinity]; + return [self rangeWithStart:start end:end]; +} + ++ (instancetype)rangeWithStart:(YYTextPosition *)start end:(YYTextPosition *)end { + if (!start || !end) return nil; + if ([start compare:end] == NSOrderedDescending) { + YYTEXT_SWAP(start, end); + } + YYTextRange *range = [YYTextRange new]; + range->_start = start; + range->_end = end; + return range; +} + ++ (instancetype)defaultRange { + return [self new]; +} + +- (instancetype)copyWithZone:(NSZone *)zone { + return [self.class rangeWithStart:_start end:_end]; +} + +- (NSString *)description { + return [NSString stringWithFormat:@"<%@: %p> (%@, %@)%@", self.class, self, @(_start.offset), @(_end.offset - _start.offset), _end.affinity == YYTextAffinityForward ? @"F":@"B"]; +} + +- (NSUInteger)hash { + return (sizeof(NSUInteger) == 8 ? OSSwapInt64(_start.hash) : OSSwapInt32(_start.hash)) + _end.hash; +} + +- (BOOL)isEqual:(YYTextRange *)object { + if (!object) return NO; + return [_start isEqual:object.start] && [_end isEqual:object.end]; +} + +@end + + + +@implementation YYTextSelectionRect + +@synthesize rect = _rect; +@synthesize writingDirection = _writingDirection; +@synthesize containsStart = _containsStart; +@synthesize containsEnd = _containsEnd; +@synthesize isVertical = _isVertical; + +- (id)copyWithZone:(NSZone *)zone { + YYTextSelectionRect *one = [self.class new]; + one.rect = _rect; + one.writingDirection = _writingDirection; + one.containsStart = _containsStart; + one.containsEnd = _containsEnd; + one.isVertical = _isVertical; + return one; +} + +@end -- Gitblit v1.8.0