1
0
mirror of https://github.com/danog/Telegram.git synced 2024-12-02 09:27:55 +01:00
Telegram/Telegraph/TGTokenView.m
2015-10-01 19:19:52 +03:00

127 lines
3.3 KiB
Objective-C

#import "TGTokenView.h"
#import "TGFont.h"
static UIImage *tokenBackgroundImage()
{
static UIImage *image = nil;
if (image == nil)
{
UIImage *rawImage = [UIImage imageNamed:@"TokenBackground.png"];
image = [rawImage stretchableImageWithLeftCapWidth:(int)(rawImage.size.width / 2) topCapHeight:0];
}
return image;
}
static UIImage *tokenBackgroundHighlightedImage()
{
static UIImage *image = nil;
if (image == nil)
{
UIImage *rawImage = [UIImage imageNamed:@"TokenBackground_Highlighted.png"];
image = [rawImage stretchableImageWithLeftCapWidth:(int)(rawImage.size.width / 2) topCapHeight:0];
}
return image;
}
@implementation TGTokenView
- (id)initWithFrame:(CGRect)frame
{
self = [super initWithFrame:frame];
if (self != nil)
{
[self commonInit];
}
return self;
}
- (void)commonInit
{
[self setBackgroundImage:tokenBackgroundImage() forState:UIControlStateNormal];
[self setBackgroundImage:tokenBackgroundHighlightedImage() forState:UIControlStateHighlighted];
[self setBackgroundImage:tokenBackgroundHighlightedImage() forState:UIControlStateSelected];
[self setBackgroundImage:tokenBackgroundHighlightedImage() forState:UIControlStateHighlighted | UIControlStateSelected];
self.titleLabel.font = [UIFont systemFontOfSize:15];
[self setTitleEdgeInsets:UIEdgeInsetsMake(0, 5, 0, 5)];
[self setTitleColor:[UIColor blackColor] forState:UIControlStateNormal];
[self setTitleShadowColor:nil forState:UIControlStateNormal];
UIColor *highlightedTextColor = [UIColor whiteColor];
[self setTitleColor:highlightedTextColor forState:UIControlStateHighlighted];
[self setTitleColor:highlightedTextColor forState:UIControlStateSelected];
[self setTitleColor:highlightedTextColor forState:UIControlStateHighlighted | UIControlStateSelected];
[self addTarget:self action:@selector(buttonPressed) forControlEvents:UIControlEventTouchDown];
}
- (void)buttonPressed
{
[self becomeFirstResponder];
}
- (void)setLabel:(NSString *)label
{
_label = label;
[self setTitle:label forState:UIControlStateNormal];
_preferredWidth = [label sizeWithFont:self.titleLabel.font].width + 10;
}
- (CGFloat)preferredWidth
{
return MAX(_preferredWidth, 10);
}
#pragma mark -
- (BOOL)becomeFirstResponder
{
if ([super becomeFirstResponder])
{
if ([self.superview.superview respondsToSelector:@selector(highlightToken:)])
[self.superview.superview performSelector:@selector(highlightToken:) withObject:self];
return true;
}
return false;
}
- (BOOL)resignFirstResponder
{
if ([super resignFirstResponder])
{
if ([self.superview.superview respondsToSelector:@selector(unhighlightToken:)])
[self.superview.superview performSelector:@selector(unhighlightToken:) withObject:self];
return true;
}
return false;
}
- (void)deleteBackward
{
if ([self.superview.superview respondsToSelector:@selector(deleteToken:)])
[self.superview.superview performSelector:@selector(deleteToken:) withObject:self];
}
- (BOOL)hasText
{
return false;
}
- (void)insertText:(NSString *)__unused text
{
}
- (BOOL)canBecomeFirstResponder
{
return true;
}
@end