Files
ManagerDemo/Pods/DTCoreText/Core/Source/DTTextBlock.m
T
2014-08-08 13:27:54 +08:00

87 lines
1.7 KiB
Objective-C

//
// 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