//
//  ICRFunctionItemControl.m
//  Cruiser
//
//  Created by Lili Wang on 15/4/1.
//  Copyright (c) 2015年 Xummer. All rights reserved.
//

#define ICRFUNCTION_IMG_TOP_PADDING   (25)
#define ICRFUNCTION_IMG_WIDTH         (65)
#define ICRFUNCTION_LABEL_HEIGHT      (15)
#define ICRFUNCTION_INNER_GAP         (7)
#define RIGHT_LINE_WIDTH              (0.5)

#import "ICRFunctionItemControl.h"
#import "IBTUIKit.h"
#import "IBTConstants.h"

@interface ICRFunctionItemControl ()

@property(strong, nonatomic) UIImageView *m_rightLine;
@property(strong, nonatomic) UIImageView *m_bottomLine;

@end
@implementation ICRFunctionItemControl

#pragma mark - life Cycle
- (id)initWithFrame:(CGRect)frame {
    self = [super initWithFrame:frame];
    if (self) {
        // Initialization code
        [self _init];
    }
    
    return self;
}

- (void)layoutSubviews {
    _functionImage.frame = (CGRect){
        .origin.x = (CGRectGetWidth(self.frame) - ICRFUNCTION_IMG_WIDTH)/2,
        .origin.y = ICRFUNCTION_IMG_TOP_PADDING,
        .size.width = ICRFUNCTION_IMG_WIDTH,
        .size.height = ICRFUNCTION_IMG_WIDTH
    };
    
    CGSize labelSize = CGSizeMake(CGRectGetWidth(self.frame), ICRFUNCTION_LABEL_HEIGHT);
    labelSize = [_functinNameLabel sizeThatFits:labelSize];
    _functinNameLabel.frame = (CGRect){
        .origin.x = (CGRectGetWidth(self.frame) - labelSize.width)/2,
        .origin.y = CGRectGetMaxY(_functionImage.frame) + ICRFUNCTION_INNER_GAP,
        .size.width = labelSize.width,
        .size.height = ICRFUNCTION_LABEL_HEIGHT
    };
    
    _m_rightLine.frame = (CGRect){
        .origin.x = CGRectGetWidth(self.frame) - RIGHT_LINE_WIDTH,
        .origin.y = 0,
        .size.width = RIGHT_LINE_WIDTH,
        .size.height = CGRectGetHeight(self.frame)
    };
                     
     _m_bottomLine.frame = (CGRect){
         .origin.x = 0,
         .origin.y = CGRectGetHeight(self.frame) - RIGHT_LINE_WIDTH,
         .size.width = CGRectGetWidth(self.frame),
         .size.height = RIGHT_LINE_WIDTH
    };
}

- (void)setHighlighted:(BOOL)highlighted{
    [super setHighlighted:highlighted];
    
    if (_highLightWhenTapped) {
        self.alpha = highlighted ? IBT_BIN_HIGHLIGHT_ALPHA : 1.0f;
    }
}

#pragma mark - Public Method
+ (ICRFunctionItemControl *)highLightControl {
    ICRFunctionItemControl *control = [[ICRFunctionItemControl alloc] init];
    control.highLightWhenTapped = YES;
    return control;
}

#pragma mark - Private Method
- (void)_init {
    self.functionImage = [[UIImageView alloc] init];
    _functionImage.layer.masksToBounds = YES;
    _functionImage.layer.cornerRadius = 65 * 0.5;
    _functionImage.backgroundColor = [UIColor clearColor];
    [self addSubview:_functionImage];
    
    self.functinNameLabel = [[UILabel alloc] init];
    _functinNameLabel.textColor = [UIColor colorWithRed:0.596f green:0.596f blue:0.596f alpha:1.00f];
    _functinNameLabel.textAlignment = NSTextAlignmentCenter;
    _functinNameLabel.font = [UIFont systemFontOfSize:13];
    [self addSubview:_functinNameLabel];
    
    self.m_rightLine = [[UIImageView alloc] init];
    _m_rightLine.backgroundColor = [UIColor colorWithRed:0.596f green:0.596f blue:0.596f alpha:1.00f];
    [self addSubview:_m_rightLine];
    
    self.m_bottomLine = [[UIImageView alloc] init];
    _m_bottomLine.backgroundColor = [UIColor colorWithRed:0.596f green:0.596f blue:0.596f alpha:1.00f];
    [self addSubview:_m_bottomLine];
}

@end
