Adjust darwin build configuration to new project structure.
This commit is contained in:
81
platform-darwin/Source/Mac/MPGradientView.m
Normal file
81
platform-darwin/Source/Mac/MPGradientView.m
Normal file
@@ -0,0 +1,81 @@
|
||||
//
|
||||
// Created by Maarten Billemont on 2016-05-15.
|
||||
// Copyright (c) 2016 Lyndir. All rights reserved.
|
||||
//
|
||||
|
||||
#import "MPGradientView.h"
|
||||
|
||||
@implementation MPGradientView {
|
||||
NSGradient *gradient;
|
||||
}
|
||||
|
||||
- (id)initWithFrame:(NSRect)frame {
|
||||
|
||||
if (!(self = [super initWithFrame:frame]))
|
||||
return nil;
|
||||
|
||||
[self defaults];
|
||||
return self;
|
||||
}
|
||||
|
||||
- (instancetype)initWithCoder:(NSCoder *)coder {
|
||||
|
||||
if (!(self = [super initWithCoder:coder]))
|
||||
return nil;
|
||||
|
||||
[self defaults];
|
||||
return self;
|
||||
}
|
||||
|
||||
- (void)defaults {
|
||||
|
||||
self.startingColor = [NSColor colorWithCalibratedWhite:0.0 alpha:0.0];
|
||||
self.endingColor = [NSColor colorWithCalibratedWhite:0.0 alpha:1.0];
|
||||
self.angle = 270;
|
||||
self.ratio = 0.5f;
|
||||
}
|
||||
|
||||
- (void)setStartingColor:(NSColor *)startingColor {
|
||||
|
||||
_startingColor = startingColor;
|
||||
gradient = nil;
|
||||
[self setNeedsDisplay:YES];
|
||||
}
|
||||
|
||||
- (void)setEndingColor:(NSColor *)endingColor {
|
||||
|
||||
_endingColor = endingColor;
|
||||
gradient = nil;
|
||||
[self setNeedsDisplay:YES];
|
||||
}
|
||||
|
||||
- (void)setAngle:(NSInteger)angle {
|
||||
|
||||
_angle = angle;
|
||||
gradient = nil;
|
||||
[self setNeedsDisplay:YES];
|
||||
}
|
||||
|
||||
- (void)setRatio:(CGFloat)ratio {
|
||||
|
||||
_ratio = ratio;
|
||||
gradient = nil;
|
||||
[self setNeedsDisplay:YES];
|
||||
}
|
||||
|
||||
- (void)drawRect:(NSRect)dirtyRect {
|
||||
|
||||
if (!self.startingColor || !self.endingColor || [self.startingColor isEqual:self.endingColor]) {
|
||||
[(self.startingColor?: self.endingColor) set];
|
||||
NSRectFill( dirtyRect );
|
||||
return;
|
||||
}
|
||||
|
||||
[(gradient?: (gradient = [[NSGradient alloc] initWithColorsAndLocations:
|
||||
self.startingColor, (CGFloat)0.f,
|
||||
[self.startingColor blendedColorWithFraction:0.5f ofColor:self.endingColor], self.ratio,
|
||||
self.endingColor, (CGFloat)1.f, nil]))
|
||||
drawInRect:self.bounds angle:self.angle];
|
||||
}
|
||||
|
||||
@end
|
Reference in New Issue
Block a user