mirror of
https://github.com/danog/Telegram.git
synced 2024-12-03 09:57:46 +01:00
103 lines
3.4 KiB
Objective-C
103 lines
3.4 KiB
Objective-C
#import "TGModernConversationUpgradeStateTitlePanel.h"
|
|
|
|
#import "TGImageUtils.h"
|
|
#import "TGFont.h"
|
|
|
|
#import "TGModernButton.h"
|
|
#import "TGBackdropView.h"
|
|
|
|
@interface TGModernConversationUpgradeStateTitlePanel ()
|
|
{
|
|
CALayer *_stripeLayer;
|
|
UIView *_backgroundView;
|
|
|
|
UILabel *_label;
|
|
TGModernButton *_actionButton;
|
|
}
|
|
|
|
@end
|
|
|
|
@implementation TGModernConversationUpgradeStateTitlePanel
|
|
|
|
- (id)initWithFrame:(CGRect)frame
|
|
{
|
|
self = [super initWithFrame:CGRectMake(frame.origin.x, frame.origin.y, frame.size.width, 35.0f)];
|
|
if (self)
|
|
{
|
|
if (!TGBackdropEnabled())
|
|
{
|
|
_backgroundView = [TGBackdropView viewWithLightNavigationBarStyle];
|
|
[self addSubview:_backgroundView];
|
|
}
|
|
else
|
|
{
|
|
UIToolbar *toolbar = [[UIToolbar alloc] init];
|
|
_backgroundView = toolbar;
|
|
[self addSubview:_backgroundView];
|
|
}
|
|
|
|
_stripeLayer = [[CALayer alloc] init];
|
|
_stripeLayer.backgroundColor = UIColorRGB(0xb2b2b2).CGColor;
|
|
[self.layer addSublayer:_stripeLayer];
|
|
|
|
_label = [[UILabel alloc] init];
|
|
_label.textColor = UIColorRGB(0x777777);
|
|
_label.font = TGSystemFontOfSize(15);
|
|
[self addSubview:_label];
|
|
|
|
_actionButton = [[TGModernButton alloc] init];
|
|
_actionButton.adjustsImageWhenDisabled = false;
|
|
_actionButton.adjustsImageWhenHighlighted = false;
|
|
[_actionButton setTitleColor:TGAccentColor()];
|
|
_actionButton.titleLabel.font = TGSystemFontOfSize(15);
|
|
[_actionButton addTarget:self action:@selector(actionButtonPressed) forControlEvents:UIControlEventTouchUpInside];
|
|
[_actionButton setTitle:@"Rekey" forState:UIControlStateNormal];
|
|
_actionButton.hidden = true;
|
|
[_actionButton sizeToFit];
|
|
_actionButton.frame = CGRectMake(0.0f, 0.0f, _actionButton.frame.size.width + 20.0f, 35.0f);
|
|
[self addSubview:_actionButton];
|
|
}
|
|
return self;
|
|
}
|
|
|
|
- (void)setCurrentLayer:(NSUInteger)currentLayer keyId:(int64_t)keyId rekeySessionId:(int64_t)rekeySessionId canRekey:(bool)canRekey
|
|
{
|
|
NSMutableString *string = [[NSMutableString alloc] init];
|
|
[string appendFormat:@"L:%d", (int)currentLayer];
|
|
[string appendFormat:@" K:%" PRIx64 "", keyId];
|
|
if (rekeySessionId != 0)
|
|
[string appendFormat:@" R:%" PRIx64 "", rekeySessionId];
|
|
_label.text = string;
|
|
[_label sizeToFit];
|
|
|
|
_actionButton.hidden = !canRekey;
|
|
|
|
[self setNeedsLayout];
|
|
}
|
|
|
|
- (void)layoutSubviews
|
|
{
|
|
[super layoutSubviews];
|
|
|
|
_backgroundView.frame = self.bounds;
|
|
_stripeLayer.frame = CGRectMake(0.0f, self.frame.size.height - TGRetinaPixel, self.frame.size.width, TGRetinaPixel);
|
|
|
|
if (_actionButton.hidden)
|
|
{
|
|
_label.frame = CGRectMake(CGFloor((self.frame.size.width - _label.frame.size.width) / 2.0f), CGFloor((self.frame.size.height - _label.frame.size.height) / 2.0f), _label.frame.size.width, _label.frame.size.height);
|
|
}
|
|
else
|
|
{
|
|
_label.frame = CGRectMake(CGFloor((self.frame.size.width - _label.frame.size.width - _actionButton.frame.size.width) / 2.0f), CGFloor((self.frame.size.height - _label.frame.size.height) / 2.0f), _label.frame.size.width, _label.frame.size.height);
|
|
_actionButton.frame = CGRectMake(CGRectGetMaxX(_label.frame), 0.0f, _actionButton.frame.size.width, self.frame.size.height);
|
|
}
|
|
}
|
|
|
|
- (void)actionButtonPressed
|
|
{
|
|
if (_rekey)
|
|
_rekey();
|
|
}
|
|
|
|
@end
|