diff options
Diffstat (limited to 'platform/ios/src')
-rw-r--r-- | platform/ios/src/MGLAnnotationView.mm | 2 | ||||
-rw-r--r-- | platform/ios/src/MGLMapView.h | 5 | ||||
-rw-r--r-- | platform/ios/src/MGLMapView.mm | 31 | ||||
-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.h | 19 | ||||
-rw-r--r-- | platform/ios/src/UIColor+MGLAdditions.hpp | 14 | ||||
-rw-r--r-- | platform/ios/src/UIColor+MGLAdditions.mm | 26 | ||||
-rw-r--r-- | platform/ios/src/UIColor+MGLStyleAttributeAdditions.h | 7 | ||||
-rw-r--r-- | platform/ios/src/UIColor+MGLStyleAttributeAdditions.mm | 14 |
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 |