summaryrefslogtreecommitdiff
path: root/platform/macos/src/MGLCompassCell.m
diff options
context:
space:
mode:
authorMinh Nguyễn <mxn@1ec5.org>2016-06-13 14:47:13 -0700
committerKonstantin Käfer <mail@kkaefer.com>2016-06-14 10:02:06 +0200
commitb9702ef41a4cfdd0ab3107cfe5cec16ba3a4c230 (patch)
tree21a11f25139c129561d6830932a9eee4f2be895d /platform/macos/src/MGLCompassCell.m
parent1e41c151f6edfba69037c854a5cb7abc18bb55e7 (diff)
downloadqtlocation-mapboxgl-b9702ef41a4cfdd0ab3107cfe5cec16ba3a4c230.tar.gz
[macos] Renamed OS X SDK to macOS SDK
Also renamed as many references to OS X as possible to macOS in documentation.
Diffstat (limited to 'platform/macos/src/MGLCompassCell.m')
-rw-r--r--platform/macos/src/MGLCompassCell.m34
1 files changed, 34 insertions, 0 deletions
diff --git a/platform/macos/src/MGLCompassCell.m b/platform/macos/src/MGLCompassCell.m
new file mode 100644
index 0000000000..b3a4ad4544
--- /dev/null
+++ b/platform/macos/src/MGLCompassCell.m
@@ -0,0 +1,34 @@
+#import "MGLCompassCell.h"
+
+@implementation MGLCompassCell
+
+- (instancetype)init {
+ if (self = [super init]) {
+ self.sliderType = NSCircularSlider;
+ // A tick mark for each cardinal direction.
+ self.numberOfTickMarks = 4;
+ // This slider goes backwards!
+ self.minValue = -360;
+ self.maxValue = 0;
+ }
+ return self;
+}
+
+- (void)drawKnob:(NSRect)knobRect {
+ // Draw a red triangle pointing whichever way the slider is facing.
+ NSBezierPath *trianglePath = [NSBezierPath bezierPath];
+ [trianglePath moveToPoint:NSMakePoint(NSMinX(knobRect), NSMaxY(knobRect))];
+ [trianglePath lineToPoint:NSMakePoint(NSMaxX(knobRect), NSMaxY(knobRect))];
+ [trianglePath lineToPoint:NSMakePoint(NSMidX(knobRect), NSMinY(knobRect))];
+ [trianglePath closePath];
+ NSAffineTransform *transform = [NSAffineTransform transform];
+ [transform translateXBy:NSMidX(knobRect) yBy:NSMidY(knobRect)];
+ [transform scaleBy:0.8];
+ [transform rotateByDegrees:self.doubleValue];
+ [transform translateXBy:-NSMidX(knobRect) yBy:-NSMidY(knobRect)];
+ [trianglePath transformUsingAffineTransform:transform];
+ [[NSColor redColor] setFill];
+ [trianglePath fill];
+}
+
+@end