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

99 lines
3.1 KiB
Objective-C

#import "TGHashtagPanelCell.h"
#import "TGFont.h"
#import "TGImageUtils.h"
NSString *const TGHashtagPanelCellKind = @"TGHashtagPanelCell";
@interface TGHashtagPanelCell ()
{
TGModernConversationAssociatedInputPanelStyle _style;
UILabel *_label;
UIView *_separatorView;
}
@end
@implementation TGHashtagPanelCell
- (instancetype)initWithStyle:(TGModernConversationAssociatedInputPanelStyle)style
{
self = [super initWithStyle:UITableViewCellStyleDefault reuseIdentifier:TGHashtagPanelCellKind];
if (self != nil)
{
_style = style;
UIColor *backgroundColor = [UIColor whiteColor];
UIColor *textColor = [UIColor blackColor];
UIColor *selectionColor = TGSelectionColor();
if (style == TGModernConversationAssociatedInputPanelDarkStyle)
{
backgroundColor = UIColorRGB(0x171717);
textColor = [UIColor whiteColor];
selectionColor = UIColorRGB(0x292929);
}
else if (style == TGModernConversationAssociatedInputPanelDarkBlurredStyle)
{
backgroundColor = [UIColor clearColor];
textColor = [UIColor whiteColor];
selectionColor = UIColorRGB(0x3d3d3d);
}
self.backgroundColor = backgroundColor;
self.backgroundView = [[UIView alloc] init];
self.backgroundView.backgroundColor = backgroundColor;
self.backgroundView.opaque = false;
self.selectedBackgroundView = [[UIView alloc] init];
self.selectedBackgroundView.backgroundColor = selectionColor;
_label = [[UILabel alloc] init];
_label.backgroundColor = [UIColor clearColor];
_label.textColor = textColor;
_label.font = TGSystemFontOfSize(14.0f);
[self.contentView addSubview:_label];
}
return self;
}
- (void)setDisplaySeparator:(bool)displaySeparator
{
if (displaySeparator && _separatorView == nil)
{
UIColor *separatorColor = TGSeparatorColor();
if (_style == TGModernConversationAssociatedInputPanelDarkStyle)
separatorColor = UIColorRGB(0x292929);
_separatorView = [[UIView alloc] init];
_separatorView.backgroundColor = TGSeparatorColor();
[self insertSubview:_separatorView belowSubview:self.contentView];
[self setNeedsLayout];
}
}
- (void)setHashtag:(NSString *)hashtag
{
_label.text = [[NSString alloc] initWithFormat:@"#%@", hashtag];
[self setNeedsLayout];
}
- (void)layoutSubviews
{
[super layoutSubviews];
CGFloat inset = 15.0f;
CGSize labelSize = [_label.text sizeWithFont:_label.font];
labelSize.width = CGCeil(MIN(labelSize.width, self.frame.size.width - inset * 2.0f));
labelSize.height = CGCeil(labelSize.height);
_label.frame = CGRectMake(inset, CGFloor((self.frame.size.height - labelSize.height) / 2.0f), labelSize.width, labelSize.height);
if (_separatorView != nil)
{
CGFloat separatorHeight = TGIsRetina() ? 0.5f : 1.0f;
_separatorView.frame = CGRectMake(inset, self.frame.size.height - separatorHeight, self.frame.size.width - inset, separatorHeight);
}
}
@end