summaryrefslogtreecommitdiff
path: root/platform/ios/src
diff options
context:
space:
mode:
Diffstat (limited to 'platform/ios/src')
-rw-r--r--platform/ios/src/MGLAnnotationView.mm2
-rw-r--r--platform/ios/src/MGLMapView.h5
-rw-r--r--platform/ios/src/MGLMapView.mm31
-rw-r--r--platform/ios/src/MGLMapView_Private.hpp (renamed from platform/ios/src/MGLMapView_Internal.h)4
-rw-r--r--platform/ios/src/Mapbox.h19
-rw-r--r--platform/ios/src/UIColor+MGLAdditions.hpp14
-rw-r--r--platform/ios/src/UIColor+MGLAdditions.mm26
-rw-r--r--platform/ios/src/UIColor+MGLStyleAttributeAdditions.h7
-rw-r--r--platform/ios/src/UIColor+MGLStyleAttributeAdditions.mm14
9 files changed, 107 insertions, 15 deletions
diff --git a/platform/ios/src/MGLAnnotationView.mm b/platform/ios/src/MGLAnnotationView.mm
index 7064ccbd76..3ee7bb06c1 100644
--- a/platform/ios/src/MGLAnnotationView.mm
+++ b/platform/ios/src/MGLAnnotationView.mm
@@ -1,7 +1,7 @@
#import "MGLAnnotationView.h"
#import "MGLAnnotationView_Private.h"
+#import "MGLMapView_Private.hpp"
#import "MGLAnnotation.h"
-#import "MGLMapView_Internal.h"
#import "NSBundle+MGLAdditions.h"
diff --git a/platform/ios/src/MGLMapView.h b/platform/ios/src/MGLMapView.h
index 56236c54d8..25967a9291 100644
--- a/platform/ios/src/MGLMapView.h
+++ b/platform/ios/src/MGLMapView.h
@@ -14,6 +14,7 @@ NS_ASSUME_NONNULL_BEGIN
@class MGLPolyline;
@class MGLPolygon;
@class MGLShape;
+@class MGLStyle;
@protocol MGLMapViewDelegate;
@protocol MGLAnnotation;
@@ -1087,6 +1088,10 @@ IB_DESIGNABLE
*/
- (void)removeOverlays:(NS_ARRAY_OF(id <MGLOverlay>) *)overlays;
+#pragma mark - Runtime styling API
+
+- (MGLStyle *)style;
+
#pragma mark Accessing the Underlying Map Data
/**
diff --git a/platform/ios/src/MGLMapView.mm b/platform/ios/src/MGLMapView.mm
index 09eb2319a2..fa885d020d 100644
--- a/platform/ios/src/MGLMapView.mm
+++ b/platform/ios/src/MGLMapView.mm
@@ -1,4 +1,4 @@
-#import "MGLMapView_Internal.h"
+#import "MGLMapView_Private.hpp"
#import <mbgl/platform/log.hpp>
#import <mbgl/gl/gl.hpp>
@@ -35,10 +35,13 @@
#import "NSString+MGLAdditions.h"
#import "NSProcessInfo+MGLAdditions.h"
#import "NSException+MGLAdditions.h"
+#import "UIColor+MGLAdditions.hpp"
#import "MGLUserLocationAnnotationView.h"
#import "MGLUserLocation_Private.h"
#import "MGLAnnotationImage_Private.h"
#import "MGLAnnotationView_Private.h"
+#import "MGLStyle_Private.hpp"
+#import "MGLStyleLayer_Private.hpp"
#import "MGLMapboxEvents.h"
#import "MGLCompactCalloutView.h"
#import "MGLAnnotationContainerView.h"
@@ -131,17 +134,6 @@ mbgl::util::UnitBezier MGLUnitBezierForMediaTimingFunction(CAMediaTimingFunction
return { p1[0], p1[1], p2[0], p2[1] };
}
-mbgl::Color MGLColorObjectFromUIColor(UIColor *color)
-{
- if (!color)
- {
- return { 0, 0, 0, 0 };
- }
- CGFloat r, g, b, a;
- [color getRed:&r green:&g blue:&b alpha:&a];
- return { (float)r, (float)g, (float)b, (float)a };
-}
-
@interface MGLAnnotationAccessibilityElement : UIAccessibilityElement
@property (nonatomic) MGLAnnotationTag tag;
@@ -611,6 +603,13 @@ mbgl::Duration MGLDurationInSeconds(NSTimeInterval duration)
return image;
}
+- (MGLStyle *)style
+{
+ MGLStyle *style = [[MGLStyle alloc] init];
+ style.mapView = self;
+ return style;
+}
+
- (void)reachabilityChanged:(NSNotification *)notification
{
MGLReachability *reachability = [notification object];
@@ -3046,7 +3045,7 @@ mbgl::Duration MGLDurationInSeconds(NSTimeInterval duration)
UIColor *color = (_delegateHasStrokeColorsForShapeAnnotations
? [self.delegate mapView:self strokeColorForShapeAnnotation:annotation]
: self.tintColor);
- return MGLColorObjectFromUIColor(color);
+ return color.mbgl_color;
}
- (mbgl::Color)fillColorForPolygonAnnotation:(MGLPolygon *)annotation
@@ -3054,7 +3053,7 @@ mbgl::Duration MGLDurationInSeconds(NSTimeInterval duration)
UIColor *color = (_delegateHasFillColorsForShapeAnnotations
? [self.delegate mapView:self fillColorForPolygonAnnotation:annotation]
: self.tintColor);
- return MGLColorObjectFromUIColor(color);
+ return color.mbgl_color;
}
- (CGFloat)lineWidthForPolylineAnnotation:(MGLPolyline *)annotation
@@ -5160,4 +5159,8 @@ void MGLFinishCustomStyleLayer(void *context)
_mbglMap->update(mbgl::Update::Repaint);
}
+- (mbgl::Map *)mbglMap {
+ return _mbglMap;
+}
+
@end
diff --git a/platform/ios/src/MGLMapView_Internal.h b/platform/ios/src/MGLMapView_Private.hpp
index 9133aca857..5c74ba6dc8 100644
--- a/platform/ios/src/MGLMapView_Internal.h
+++ b/platform/ios/src/MGLMapView_Private.hpp
@@ -1,5 +1,7 @@
#import <Mapbox/Mapbox.h>
+#include <mbgl/mbgl.hpp>
+
/// Minimum size of an annotation’s accessibility element.
extern const CGSize MGLAnnotationAccessibilityElementMinimumSize;
@@ -11,6 +13,8 @@ extern const CGSize MGLAnnotationAccessibilityElementMinimumSize;
/** Triggers another render pass even when it is not necessary. */
- (void)setNeedsGLDisplay;
+- (mbgl::Map *)mbglMap;
+
/** Returns whether the map view is currently loading or processing any assets required to render the map */
- (BOOL)isFullyLoaded;
diff --git a/platform/ios/src/Mapbox.h b/platform/ios/src/Mapbox.h
index bc22a5f955..d6c05503e9 100644
--- a/platform/ios/src/Mapbox.h
+++ b/platform/ios/src/Mapbox.h
@@ -32,7 +32,26 @@ FOUNDATION_EXPORT const unsigned char MapboxVersionString[];
#import "MGLShape.h"
#import "MGLShapeCollection.h"
#import "MGLStyle.h"
+#import "MGLStyleLayer.h"
+#import "MGLBaseStyleLayer.h"
+#import "MGLFillStyleLayer.h"
+#import "MGLLineStyleLayer.h"
+#import "MGLSymbolStyleLayer.h"
+#import "MGLRasterStyleLayer.h"
+#import "MGLCircleStyleLayer.h"
+#import "MGLBackgroundStyleLayer.h"
+#import "MGLSource.h"
+#import "MGLVectorSource.h"
+#import "MGLGeoJSONSource.h"
+#import "MGLRasterSource.h"
#import "MGLTilePyramidOfflineRegion.h"
#import "MGLTypes.h"
#import "MGLUserLocation.h"
#import "NSValue+MGLAdditions.h"
+#import "MGLStyleAttributeValue.h"
+#import "MGLStyleAttributeFunction.h"
+#import "UIColor+MGLStyleAttributeAdditions.h"
+#import "NSNumber+MGLStyleAttributeAdditions.h"
+#import "NSValue+MGLStyleAttributeAdditions.h"
+#import "NSString+MGLStyleAttributeAdditions.h"
+#import "NSArray+MGLStyleAttributeAdditions.h"
diff --git a/platform/ios/src/UIColor+MGLAdditions.hpp b/platform/ios/src/UIColor+MGLAdditions.hpp
new file mode 100644
index 0000000000..7cc291c657
--- /dev/null
+++ b/platform/ios/src/UIColor+MGLAdditions.hpp
@@ -0,0 +1,14 @@
+#import <UIKit/UIKit.h>
+
+#include <mbgl/util/color.hpp>
+#include <mbgl/style/property_value.hpp>
+
+@interface UIColor (MGLAdditions)
+
+- (mbgl::Color)mbgl_color;
+
+- (mbgl::style::PropertyValue<mbgl::Color>)mbgl_colorPropertyValue;
+
++ (UIColor *)mbgl_colorWithColor:(mbgl::Color)color;
+
+@end
diff --git a/platform/ios/src/UIColor+MGLAdditions.mm b/platform/ios/src/UIColor+MGLAdditions.mm
new file mode 100644
index 0000000000..23aea162f7
--- /dev/null
+++ b/platform/ios/src/UIColor+MGLAdditions.mm
@@ -0,0 +1,26 @@
+#import "UIColor+MGLAdditions.hpp"
+
+#import "MGLStyleAttributeValue.h"
+#import "MGLStyleAttributeValue_Private.hpp"
+
+@implementation UIColor (MGLAdditions)
+
+- (mbgl::Color)mbgl_color
+{
+ CGFloat r, g, b, a;
+ [self getRed:&r green:&g blue:&b alpha:&a];
+ return { (float)r, (float)g, (float)b, (float)a };
+}
+
+- (mbgl::style::PropertyValue<mbgl::Color>)mbgl_colorPropertyValue
+{
+ mbgl::Color color = self.mbgl_color;
+ return {{ color.r, color.g, color.b, color.a }};
+}
+
++ (UIColor *)mbgl_colorWithColor:(mbgl::Color)color
+{
+ return [UIColor colorWithRed:color.r green:color.g blue:color.b alpha:color.a];
+}
+
+@end
diff --git a/platform/ios/src/UIColor+MGLStyleAttributeAdditions.h b/platform/ios/src/UIColor+MGLStyleAttributeAdditions.h
new file mode 100644
index 0000000000..3637ceab6c
--- /dev/null
+++ b/platform/ios/src/UIColor+MGLStyleAttributeAdditions.h
@@ -0,0 +1,7 @@
+#import <UIKit/UIKit.h>
+
+#import "MGLStyleAttributeValue.h"
+
+@interface UIColor (MGLStyleAttributeAdditions) <MGLStyleAttributeValue>
+
+@end
diff --git a/platform/ios/src/UIColor+MGLStyleAttributeAdditions.mm b/platform/ios/src/UIColor+MGLStyleAttributeAdditions.mm
new file mode 100644
index 0000000000..f8c649c40b
--- /dev/null
+++ b/platform/ios/src/UIColor+MGLStyleAttributeAdditions.mm
@@ -0,0 +1,14 @@
+#import "UIColor+MGLStyleAttributeAdditions.h"
+
+#import "MGLStyleAttributeValue.h"
+#import "MGLStyleAttributeValue_Private.hpp"
+#import "UIColor+MGLAdditions.hpp"
+
+@implementation UIColor (MGLStyleAttributeAdditions)
+
+- (BOOL)isFunction
+{
+ return NO;
+}
+
+@end