-
Notifications
You must be signed in to change notification settings - Fork 1.2k
/
DTTextBlock.m
86 lines (69 loc) · 1.67 KB
/
DTTextBlock.m
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
//
// DTTextBlock.m
// DTCoreText
//
// Created by Oliver Drobnik on 04.03.12.
// Copyright (c) 2012 Drobnik.com. All rights reserved.
//
#import "DTTextBlock.h"
#import "DTCoreText.h"
#import "NSCoder+DTCompatibility.h"
@implementation DTTextBlock
{
DTEdgeInsets _padding;
DTColor *_backgroundColor;
}
- (instancetype)initWithCoder:(NSCoder *)aDecoder {
self = [super init];
if (self) {
_padding = [aDecoder decodeDTEdgeInsetsForKey:@"padding"];
_backgroundColor = [aDecoder decodeObjectForKey:@"backgroundColor"];
}
return self;
}
- (void)encodeWithCoder:(NSCoder *)aCoder {
[aCoder encodeDTEdgeInsets:_padding forKey:@"padding"];
[aCoder encodeObject:_backgroundColor forKey:@"backgroundColor"];
}
- (NSUInteger)hash
{
NSUInteger calcHash = 7;
calcHash = calcHash*31 + [_backgroundColor hash];
calcHash = calcHash*31 + (NSUInteger)_padding.left;
calcHash = calcHash*31 + (NSUInteger)_padding.top;
calcHash = calcHash*31 + (NSUInteger)_padding.right;
calcHash = calcHash*31 + (NSUInteger)_padding.bottom;
return calcHash;
}
- (BOOL)isEqual:(id)object
{
if (!object)
{
return NO;
}
if (object == self)
{
return YES;
}
if (![object isKindOfClass:[DTTextBlock class]])
{
return NO;
}
DTTextBlock *other = object;
if (_padding.left != other->_padding.left ||
_padding.top != other->_padding.top ||
_padding.right != other->_padding.right ||
_padding.bottom != other->_padding.bottom)
{
return NO;
}
if (other->_backgroundColor == _backgroundColor)
{
return YES;
}
return [other->_backgroundColor isEqual:_backgroundColor];
}
#pragma mark Properties
@synthesize padding = _padding;
@synthesize backgroundColor = _backgroundColor;
@end