Swiftgram/submodules/LegacyComponents/Sources/TGMenuSheetTitleItemView.m
2022-12-06 16:03:53 +04:00

122 lines
4.1 KiB
Objective-C

#import "TGMenuSheetTitleItemView.h"
#import "LegacyComponentsInternal.h"
#import "TGFont.h"
#import "TGMenuSheetController.h"
@interface TGMenuSheetTitleItemView ()
{
UILabel *_titleLabel;
UILabel *_subtitleLabel;
bool _solidSubtitle;
}
@end
@implementation TGMenuSheetTitleItemView
- (instancetype)initWithTitle:(NSString *)title subtitle:(NSString *)subtitle
{
return [self initWithTitle:title subtitle:subtitle solidSubtitle:false];
}
- (instancetype)initWithTitle:(NSString *)title subtitle:(NSString *)subtitle solidSubtitle:(bool)solidSubtitle
{
self = [super initWithType:TGMenuSheetItemTypeDefault];
if (self != nil)
{
_solidSubtitle = solidSubtitle;
_titleLabel = [[UILabel alloc] init];
_titleLabel.backgroundColor = [UIColor whiteColor];
_titleLabel.font = TGMediumSystemFontOfSize(13);
_titleLabel.numberOfLines = 0;
_titleLabel.text = title;
_titleLabel.textColor = UIColorRGB(0x8f8f8f);
_titleLabel.textAlignment = NSTextAlignmentCenter;
[self addSubview:_titleLabel];
_subtitleLabel = [[UILabel alloc] init];
_subtitleLabel.backgroundColor = [UIColor whiteColor];
_subtitleLabel.font = TGSystemFontOfSize(13);
_subtitleLabel.numberOfLines = 0;
_subtitleLabel.text = subtitle;
_subtitleLabel.textColor = UIColorRGB(0x8f8f8f);
_subtitleLabel.textAlignment = NSTextAlignmentCenter;
[self addSubview:_subtitleLabel];
}
return self;
}
- (void)setDark
{
_titleLabel.backgroundColor = [UIColor clearColor];
_titleLabel.textColor = UIColorRGB(0x777777);
_subtitleLabel.backgroundColor = [UIColor clearColor];
_subtitleLabel.textColor = UIColorRGB(0x777777);
if (@available(iOS 11.0, *)) {
self.accessibilityIgnoresInvertColors = true;
}
}
- (void)setPallete:(TGMenuSheetPallete *)pallete
{
_titleLabel.backgroundColor = [UIColor clearColor];
_titleLabel.textColor = pallete.textColor;
_subtitleLabel.backgroundColor = [UIColor clearColor];
_subtitleLabel.textColor = _solidSubtitle ? pallete.textColor : pallete.secondaryTextColor;
}
- (CGFloat)preferredHeightForWidth:(CGFloat)width screenHeight:(CGFloat)__unused screenHeight
{
CGFloat height = 16.0f;
if (_titleLabel.text.length > 0)
{
NSAttributedString *string = [[NSAttributedString alloc] initWithString:_titleLabel.text attributes:@{ NSFontAttributeName: _titleLabel.font }];
CGSize textSize = [string boundingRectWithSize:CGSizeMake(width - 10.0f * 2.0f, screenHeight) options:NSStringDrawingUsesLineFragmentOrigin context:nil].size;
_titleLabel.frame = CGRectMake(_titleLabel.frame.origin.x, _titleLabel.frame.origin.y, ceil(textSize.width), ceil(textSize.height));
height += _titleLabel.frame.size.height;
}
if (_subtitleLabel.text.length > 0)
{
NSAttributedString *string = [[NSAttributedString alloc] initWithString:_subtitleLabel.text attributes:@{ NSFontAttributeName: _subtitleLabel.font }];
CGSize textSize = [string boundingRectWithSize:CGSizeMake(width - 10.0f * 2.0f, screenHeight) options:NSStringDrawingUsesLineFragmentOrigin context:nil].size;
_subtitleLabel.frame = CGRectMake(_subtitleLabel.frame.origin.x, _subtitleLabel.frame.origin.y, ceil(textSize.width), ceil(textSize.height));
height += _subtitleLabel.frame.size.height;
}
height += 8.0f;
return height;
}
- (bool)requiresDivider
{
return false;
}
- (void)layoutSubviews
{
CGFloat topOffset = 16.0f;
if (_titleLabel.text.length > 0)
{
_titleLabel.frame = CGRectMake(floor((self.frame.size.width - _titleLabel.frame.size.width) / 2.0f), topOffset, _titleLabel.frame.size.width, _titleLabel.frame.size.height);
topOffset += _titleLabel.frame.size.height;
}
if (_subtitleLabel.text.length > 0)
{
_subtitleLabel.frame = CGRectMake(floor((self.frame.size.width - _subtitleLabel.frame.size.width) / 2.0f), topOffset, _subtitleLabel.frame.size.width, _subtitleLabel.frame.size.height);
topOffset += _subtitleLabel.frame.size.height;
}
}
@end