1
0
mirror of https://github.com/danog/Telegram.git synced 2024-12-03 09:57:46 +01:00
Telegram/Telegraph/TGAttachmentSheetCheckmarkVariantItemView.m
2016-02-25 01:03:51 +01:00

92 lines
3.3 KiB
Objective-C

#import "TGAttachmentSheetCheckmarkVariantItemView.h"
#import "TGFont.h"
#import "TGModernButton.h"
#import "TGImageUtils.h"
@interface TGAttachmentSheetCheckmarkVariantItemView () {
TGModernButton *_button;
UIImageView *_checkmarkView;
UILabel *_titleLabel;
UILabel *_variantLabel;
bool _checked;
}
@end
@implementation TGAttachmentSheetCheckmarkVariantItemView
- (instancetype)initWithTitle:(NSString *)title variant:(NSString *)variant checked:(bool)checked {
self = [super init];
if (self != nil) {
_button = [[TGModernButton alloc] init];
_button.exclusiveTouch = true;
_button.titleLabel.font = TGSystemFontOfSize(20.0f + TGRetinaPixel);
[_button addTarget:self action:@selector(_buttonPressed) forControlEvents:UIControlEventTouchUpInside];
_button.stretchHighlightImage = true;
_button.highlighted = false;
[self addSubview:_button];
_titleLabel = [[UILabel alloc] init];
_titleLabel.backgroundColor = [UIColor clearColor];
_titleLabel.textColor = [UIColor blackColor];
_titleLabel.font = TGSystemFontOfSize(20.0f);
_titleLabel.text = title;
_titleLabel.userInteractionEnabled = false;
[self addSubview:_titleLabel];
_variantLabel = [[UILabel alloc] init];
_variantLabel.backgroundColor = [UIColor clearColor];
_variantLabel.textColor = UIColorRGB(0x8e8e93);
_variantLabel.font = TGSystemFontOfSize(20.0f);
_variantLabel.text = variant;
_variantLabel.userInteractionEnabled = false;
[self addSubview:_variantLabel];
_checked = checked;
_checkmarkView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"ModernMenuCheck.png"]];
_checkmarkView.hidden = !_checked;
_checkmarkView.userInteractionEnabled = false;
[self addSubview:_checkmarkView];
}
return self;
}
- (void)setHighlightedImage:(UIImage *)highlightedImage {
[_button setHighlightImage:highlightedImage];
}
- (CGFloat)preferredHeight {
return 57.0f;
}
- (void)layoutSubviews {
[super layoutSubviews];
_button.frame = CGRectMake(0.0f, 0.0f, self.bounds.size.width, self.bounds.size.height);
_checkmarkView.frame = CGRectMake(22.0f, CGFloor((self.bounds.size.height - _checkmarkView.bounds.size.height) / 2.0f), _checkmarkView.bounds.size.width, _checkmarkView.bounds.size.height);
CGSize variantSize = [_variantLabel.text sizeWithFont:_variantLabel.font];
variantSize.width = CGCeil(variantSize.width);
variantSize.height = CGCeil(variantSize.height);
_variantLabel.frame = CGRectMake(self.bounds.size.width - variantSize.width - 10.0f, CGFloor((self.bounds.size.height - variantSize.height) / 2.0f), variantSize.width, variantSize.height);
CGSize titleSize = [_titleLabel.text sizeWithFont:_titleLabel.font];
titleSize.width = MIN(CGRectGetMinX(_variantLabel.frame) - 10.0f - 52.0f, CGCeil(titleSize.width));
titleSize.height = CGCeil(titleSize.height);
_titleLabel.frame = CGRectMake(52.0f, CGFloor((self.bounds.size.height - titleSize.height) / 2.0f), titleSize.width, titleSize.height);
}
- (void)_buttonPressed {
_checked = !_checked;
_checkmarkView.hidden = !_checked;
if (_onCheckedChanged) {
_onCheckedChanged(_checked);
}
}
@end