mirror of
https://github.com/Swiftgram/Telegram-iOS.git
synced 2025-06-16 05:55:20 +00:00
123 lines
3.5 KiB
Objective-C
123 lines
3.5 KiB
Objective-C
#import "TGDocumentAttributeSticker.h"
|
|
|
|
#import "LegacyComponentsInternal.h"
|
|
|
|
#import "PSKeyValueCoder.h"
|
|
|
|
@implementation TGStickerMaskDescription
|
|
|
|
- (instancetype)initWithN:(int32_t)n point:(CGPoint)point zoom:(CGFloat)zoom {
|
|
self = [super init];
|
|
if (self != nil) {
|
|
_n = n;
|
|
_point = point;
|
|
_zoom = zoom;
|
|
}
|
|
return self;
|
|
}
|
|
|
|
- (instancetype)initWithKeyValueCoder:(PSKeyValueCoder *)coder {
|
|
return [self initWithN:[coder decodeInt32ForCKey:"n"] point:CGPointMake([coder decodeDoubleForCKey:"x"], [coder decodeDoubleForCKey:"y"]) zoom:[coder decodeDoubleForCKey:"z"]];
|
|
}
|
|
|
|
- (void)encodeWithKeyValueCoder:(PSKeyValueCoder *)coder {
|
|
[coder encodeInt32:_n forCKey:"n"];
|
|
[coder encodeDouble:_point.x forCKey:"x"];
|
|
[coder encodeDouble:_point.y forCKey:"y"];
|
|
[coder encodeDouble:_zoom forCKey:"z"];
|
|
}
|
|
|
|
- (instancetype)initWithCoder:(NSCoder *)aDecoder {
|
|
return [self initWithN:[aDecoder decodeInt32ForKey:@"n"] point:CGPointMake([aDecoder decodeDoubleForKey:@"x"], [aDecoder decodeDoubleForKey:@"y"]) zoom:[aDecoder decodeDoubleForKey:@"z"]];
|
|
}
|
|
|
|
- (void)encodeWithCoder:(NSCoder *)aCoder {
|
|
[aCoder encodeInt32:_n forKey:@"n"];
|
|
[aCoder encodeDouble:_point.x forKey:@"x"];
|
|
[aCoder encodeDouble:_point.y forKey:@"y"];
|
|
[aCoder encodeDouble:_zoom forKey:@"z"];
|
|
}
|
|
|
|
- (BOOL)isEqual:(id)object {
|
|
if (![object isKindOfClass:[TGStickerMaskDescription class]]) {
|
|
return false;
|
|
}
|
|
TGStickerMaskDescription *other = object;
|
|
if (_n != other->_n) {
|
|
return false;
|
|
}
|
|
if (!CGPointEqualToPoint(_point, other->_point)) {
|
|
return false;
|
|
}
|
|
if (ABS(_zoom - other->_zoom) > FLT_EPSILON) {
|
|
return false;
|
|
}
|
|
return true;
|
|
}
|
|
|
|
@end
|
|
|
|
@implementation TGDocumentAttributeSticker
|
|
|
|
- (instancetype)initWithAlt:(NSString *)alt packReference:(id<TGStickerPackReference>)packReference mask:(TGStickerMaskDescription *)mask
|
|
{
|
|
self = [super init];
|
|
if (self != nil)
|
|
{
|
|
_alt = alt;
|
|
_packReference = packReference;
|
|
_mask = mask;
|
|
}
|
|
return self;
|
|
}
|
|
|
|
- (instancetype)initWithKeyValueCoder:(PSKeyValueCoder *)coder
|
|
{
|
|
return [self initWithAlt:[coder decodeStringForCKey:"alt"] packReference:(id<TGStickerPackReference>)[coder decodeObjectForCKey:"packReference"] mask:(TGStickerMaskDescription *)[coder decodeObjectForCKey:"mask"]];
|
|
}
|
|
|
|
- (void)encodeWithKeyValueCoder:(PSKeyValueCoder *)coder
|
|
{
|
|
[coder encodeString:_alt forCKey:"alt"];
|
|
[coder encodeObject:_packReference forCKey:"packReference"];
|
|
[coder encodeObject:_mask forCKey:"mask"];
|
|
}
|
|
|
|
- (instancetype)initWithCoder:(NSCoder *)aDecoder
|
|
{
|
|
return [self initWithAlt:[aDecoder decodeObjectForKey:@"alt"] packReference:[aDecoder decodeObjectForKey:@"packReference"] mask:[aDecoder decodeObjectForKey:@"mask"]];
|
|
}
|
|
|
|
- (void)encodeWithCoder:(NSCoder *)aCoder
|
|
{
|
|
if (_alt != nil)
|
|
[aCoder encodeObject:_alt forKey:@"alt"];
|
|
if (_packReference != nil)
|
|
[aCoder encodeObject:_packReference forKey:@"packReference"];
|
|
if (_mask != nil)
|
|
[aCoder encodeObject:_mask forKey:@"mask"];
|
|
}
|
|
|
|
- (BOOL)isEqual:(id)object
|
|
{
|
|
if (![object isKindOfClass:[TGDocumentAttributeSticker class]]) {
|
|
return false;
|
|
}
|
|
|
|
if (!TGObjectCompare(_packReference, ((TGDocumentAttributeSticker *)object)->_packReference)) {
|
|
return false;
|
|
}
|
|
|
|
if (!TGObjectCompare(_mask, ((TGDocumentAttributeSticker *)object)->_mask)) {
|
|
return false;
|
|
}
|
|
|
|
if (!TGStringCompare(_alt, ((TGDocumentAttributeSticker *)object)->_alt)) {
|
|
return false;
|
|
}
|
|
|
|
return true;
|
|
}
|
|
|
|
@end
|