1
0
mirror of https://github.com/danog/Telegram.git synced 2024-11-26 20:14:43 +01:00
Telegram/Share/TGShareToolbarButton.m
2016-02-25 01:03:51 +01:00

82 lines
2.6 KiB
Objective-C

#import "TGShareToolbarButton.h"
#import "TGShareButton.h"
#import "TGColor.h"
#import "UIControl+HitTestEdgeInsets.h"
@interface TGShareToolbarButton ()
{
TGShareButton *_button;
UIImage *_activeIconImage;
}
@end
@implementation TGShareToolbarButton
- (instancetype)initWithFrame:(CGRect)frame
{
self = [super initWithFrame:frame];
if (self != nil)
{
self.hitTestEdgeInsets = UIEdgeInsetsMake(-16, -16, -16, -16);
_button = [[TGShareButton alloc] initWithFrame:self.bounds];
_button.hitTestEdgeInsets = self.hitTestEdgeInsets;
_button.tintColor = TGColorWithHex(0x007ee5);
[_button addTarget:self action:@selector(buttonPressed) forControlEvents:UIControlEventTouchUpInside];
[self addSubview:_button];
}
return self;
}
- (void)setIconImage:(UIImage *)image
{
_iconImage = [image imageWithRenderingMode:UIImageRenderingModeAlwaysTemplate];
_activeIconImage = nil;
[self setActive:_active];
// UIGraphicsBeginImageContextWithOptions(image.size, false, 0.0f);
// CGContextRef context = UIGraphicsGetCurrentContext();
// [image drawInRect:CGRectMake(0, 0, image.size.width, image.size.height)];
// CGContextSetBlendMode (context, kCGBlendModeSourceAtop);
// CGContextSetFillColorWithColor(context, [UIColor blueColor].CGColor);
// CGContextFillRect(context, CGRectMake(0, 0, image.size.width, image.size.height));
//
// UIImage *selectedImage = UIGraphicsGetImageFromCurrentImageContext();
// UIGraphicsEndImageContext();
//
// [_button setImage:selectedImage forState:UIControlStateSelected];
// [_button setImage:selectedImage forState:UIControlStateSelected | UIControlStateHighlighted];
}
- (void)setActive:(bool)active
{
[_button setImage:(active ? [self _activeIconImage] : _iconImage) forState:UIControlStateNormal];
}
- (UIImage *)_activeIconImage
{
if (_activeIconImage == nil)
{
UIGraphicsBeginImageContextWithOptions(_iconImage.size, false, 0.0f);
CGContextRef context = UIGraphicsGetCurrentContext();
[_iconImage drawInRect:CGRectMake(0, 0, _iconImage.size.width, _iconImage.size.height)];
CGContextSetBlendMode (context, kCGBlendModeSourceAtop);
CGContextSetFillColorWithColor(context, [UIColor redColor].CGColor);
CGContextFillRect(context, CGRectMake(0, 0, _iconImage.size.width, _iconImage.size.height));
_activeIconImage = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
}
return _activeIconImage;
}
- (void)buttonPressed
{
[self sendActionsForControlEvents:UIControlEventTouchUpInside];
}
@end