mirror of
https://github.com/moonlight-stream/moonlight-ios.git
synced 2025-07-22 04:03:19 +00:00
80 lines
2.8 KiB
Objective-C
80 lines
2.8 KiB
Objective-C
//
|
|
// UIAppView.m
|
|
// Limelight
|
|
//
|
|
// Created by Diego Waxemberg on 10/22/14.
|
|
// Copyright (c) 2014 Limelight Stream. All rights reserved.
|
|
//
|
|
|
|
#import "UIAppView.h"
|
|
|
|
@implementation UIAppView {
|
|
App* _app;
|
|
UIButton* _appButton;
|
|
UILabel* _appLabel;
|
|
id<AppCallback> _callback;
|
|
}
|
|
static int LABEL_DY = 20;
|
|
|
|
- (id) initWithApp:(App*)app andCallback:(id<AppCallback>)callback {
|
|
self = [super init];
|
|
_app = app;
|
|
_callback = callback;
|
|
|
|
_appButton = [UIButton buttonWithType:UIButtonTypeCustom];
|
|
[_appButton setContentEdgeInsets:UIEdgeInsetsMake(0, 4, 0, 4)];
|
|
[_appButton setBackgroundImage:[UIImage imageNamed:@"NoAppImage"] forState:UIControlStateNormal];
|
|
[_appButton sizeToFit];
|
|
[_appButton addTarget:self action:@selector(appClicked) forControlEvents:UIControlEventTouchUpInside];
|
|
|
|
// Remove Shadow and label
|
|
/*
|
|
_appButton.layer.shadowColor = [[UIColor blackColor] CGColor];
|
|
_appButton.layer.shadowOffset = CGSizeMake(5,8);
|
|
_appButton.layer.shadowOpacity = 0.7;
|
|
|
|
_appLabel = [[UILabel alloc] init];
|
|
[_appLabel setText:_app.appName];
|
|
[_appLabel sizeToFit];
|
|
_appLabel.center = CGPointMake(_appButton.bounds.origin.x + (_appButton.bounds.size.width / 2), _appButton.bounds.origin.y + _appButton.bounds.size.height + LABEL_DY);
|
|
|
|
[self updateBounds];
|
|
[self addSubview:_appLabel];
|
|
*/
|
|
|
|
[self addSubview:_appButton];
|
|
[self sizeToFit];
|
|
|
|
return self;
|
|
}
|
|
|
|
- (void) updateBounds {
|
|
float x = _appButton.frame.origin.x < _appLabel.frame.origin.x ? _appButton.frame.origin.x : _appLabel.frame.origin.x;
|
|
float y = _appButton.frame.origin.y < _appLabel.frame.origin.y ? _appButton.frame.origin.y : _appLabel.frame.origin.y;
|
|
self.bounds = CGRectMake(x , y, _appButton.frame.size.width > _appLabel.frame.size.width ? _appButton.frame.size.width : _appLabel.frame.size.width, _appButton.frame.size.height + _appLabel.frame.size.height + LABEL_DY / 2);
|
|
self.frame = CGRectMake(x , y, _appButton.frame.size.width > _appLabel.frame.size.width ? _appButton.frame.size.width : _appLabel.frame.size.width, _appButton.frame.size.height + _appLabel.frame.size.height + LABEL_DY / 2);
|
|
}
|
|
|
|
- (void) appClicked {
|
|
[_callback appClicked:_app];
|
|
}
|
|
|
|
- (void) updateAppImage {
|
|
if (_app.appImage != nil) {
|
|
_appButton.frame = CGRectMake(0, 0, _app.appImage.size.width / 2, _app.appImage.size.height / 2);
|
|
self.frame = CGRectMake(0, 0, _app.appImage.size.width / 2, _app.appImage.size.height / 2);
|
|
[_appButton setBackgroundImage:_app.appImage forState:UIControlStateNormal];
|
|
[self setNeedsDisplay];
|
|
}
|
|
}
|
|
|
|
/*
|
|
// Only override drawRect: if you perform custom drawing.
|
|
// An empty implementation adversely affects performance during animation.
|
|
- (void)drawRect:(CGRect)rect {
|
|
// Drawing code
|
|
}
|
|
*/
|
|
|
|
@end
|