//
//  KWMButton.m
//  iOrangeBusiness
//
//  Created by Yaotian on 7/3/15.
//  Copyright (c) 2015 kwm. All rights reserved.
//

#import "KWMButton.h"

@implementation KWMButton

- (instancetype)initWithCoder:(NSCoder *)aDecoder {
    self = [super initWithCoder:aDecoder];
    if (self) {
        [self setup];
    }
    return self;
}

- (instancetype)initWithFrame:(CGRect)frame {
    self = [super initWithFrame:frame];
    if (self) {
        [self setup];
    }
    return self;
}

- (void)setup {
    [self pressedColor];
    [self normalColor];
    
    [self addTarget:self action:@selector(wasPressed) forControlEvents:(UIControlEventTouchDown       |
                                                                        UIControlEventTouchDownRepeat |
                                                                        UIControlEventTouchDragInside |
                                                                        UIControlEventTouchDragEnter)];
    [self addTarget:self action:@selector(endedPress) forControlEvents:(UIControlEventTouchCancel      |
                                                                        UIControlEventTouchDragOutside |
                                                                        UIControlEventTouchDragExit    |
                                                                        UIControlEventTouchUpInside    |
                                                                        UIControlEventTouchUpOutside)];
    
}

- (void)wasPressed {
    self.backgroundColor = self.pressedColor;
}

- (void)endedPress {
    self.backgroundColor = self.normalColor;
}

- (UIColor *)pressedColor {
    if (!_pressedColor) {

        static CGFloat kHighlightDelta = 0.08;
        CGFloat red, grn, blu, white, alpha = 0.0;
        [self.backgroundColor getRed:&red green:&grn blue:&blu alpha:&alpha];
        [self.backgroundColor getWhite:&white alpha:&alpha];
        _pressedColor = [UIColor colorWithRed:red - kHighlightDelta
                                        green:grn - kHighlightDelta
                                         blue:blu - kHighlightDelta
                                        alpha:alpha];
    }
    return _pressedColor;
}

- (UIColor *)normalColor {
    if (!_normalColor) {
        _normalColor = self.backgroundColor;
    }
    return _normalColor;
}

@end