diff options
Diffstat (limited to 'platform/darwin/src/MGLStyleLayer.mm.ejs')
-rw-r--r-- | platform/darwin/src/MGLStyleLayer.mm.ejs | 70 |
1 files changed, 7 insertions, 63 deletions
diff --git a/platform/darwin/src/MGLStyleLayer.mm.ejs b/platform/darwin/src/MGLStyleLayer.mm.ejs index 1e5f3df160..74b67be74a 100644 --- a/platform/darwin/src/MGLStyleLayer.mm.ejs +++ b/platform/darwin/src/MGLStyleLayer.mm.ejs @@ -8,14 +8,14 @@ // Edit platform/darwin/scripts/generate-style-code.js, then run `make darwin-style-code`. #import "MGLSource.h" -#import "MGLMapView_Private.h" #import "NSPredicate+MGLAdditions.h" #import "NSDate+MGLAdditions.h" #import "MGLStyleLayer_Private.h" +#import "MGLForegroundStyleLayer_Private.h" #import "MGLStyleValue_Private.h" #import "MGL<%- camelize(type) %>StyleLayer.h" -#include <mbgl/map/map.hpp> +#include <mbgl/style/transition_options.hpp> #include <mbgl/style/layers/<%- type.replace('-', '_') %>_layer.hpp> <% if (enumProperties) { -%> @@ -50,35 +50,24 @@ namespace mbgl { @interface MGL<%- camelize(type) %>StyleLayer () -@property (nonatomic) mbgl::style::<%- camelize(type) %>Layer *rawLayer; +@property (nonatomic, readonly) mbgl::style::<%- camelize(type) %>Layer *rawLayer; @end @implementation MGL<%- camelize(type) %>StyleLayer -{ - std::unique_ptr<mbgl::style::<%- camelize(type) %>Layer> _pendingLayer; -} <% if (type == 'background') { -%> - (instancetype)initWithIdentifier:(NSString *)identifier { - if (self = [super initWithIdentifier:identifier]) { - auto layer = std::make_unique<mbgl::style::<%- camelize(type) %>Layer>(identifier.UTF8String); - _pendingLayer = std::move(layer); - self.rawLayer = _pendingLayer.get(); - } - return self; + auto layer = std::make_unique<mbgl::style::<%- camelize(type) %>Layer>(identifier.UTF8String); + return self = [super initWithPendingLayer:std::move(layer)]; } <% } else { -%> - (instancetype)initWithIdentifier:(NSString *)identifier source:(MGLSource *)source { - if (self = [super initWithIdentifier:identifier source:source]) { - auto layer = std::make_unique<mbgl::style::<%- camelize(type) %>Layer>(identifier.UTF8String, source.identifier.UTF8String); - _pendingLayer = std::move(layer); - self.rawLayer = _pendingLayer.get(); - } - return self; + auto layer = std::make_unique<mbgl::style::<%- camelize(type) %>Layer>(identifier.UTF8String, source.identifier.UTF8String); + return self = [super initWithPendingLayer:std::move(layer) source:source]; } <% } -%> @@ -87,11 +76,6 @@ namespace mbgl { return (mbgl::style::<%- camelize(type) %>Layer *)super.rawLayer; } -- (void)setRawLayer:(mbgl::style::<%- camelize(type) %>Layer *)rawLayer -{ - super.rawLayer = rawLayer; -} - <% if (type !== 'background') { -%> - (NSString *)sourceIdentifier { @@ -131,46 +115,6 @@ namespace mbgl { } <% }} -%> -#pragma mark - Adding to and removing from a map view - -- (void)addToMapView:(MGLMapView *)mapView belowLayer:(MGLStyleLayer *)otherLayer -{ - if (_pendingLayer == nullptr) { - [NSException raise:@"MGLRedundantLayerException" - format:@"This instance %@ was already added to %@. Adding the same layer instance " \ - "to the style more than once is invalid.", self, mapView.style]; - } - - if (otherLayer) { - const mbgl::optional<std::string> belowLayerId{otherLayer.identifier.UTF8String}; - mapView.mbglMap->addLayer(std::move(_pendingLayer), belowLayerId); - } else { - mapView.mbglMap->addLayer(std::move(_pendingLayer)); - } -} - -- (void)removeFromMapView:(MGLMapView *)mapView -{ - if (self.rawLayer != mapView.mbglMap->getLayer(self.identifier.UTF8String)) { - return; - } - - auto removedLayer = mapView.mbglMap->removeLayer(self.identifier.UTF8String); - if (!removedLayer) { - return; - } - - mbgl::style::<%- camelize(type) %>Layer *layer = dynamic_cast<mbgl::style::<%- camelize(type) %>Layer *>(removedLayer.get()); - if (!layer) { - return; - } - - removedLayer.release(); - - _pendingLayer = std::unique_ptr<mbgl::style::<%- camelize(type) %>Layer>(layer); - self.rawLayer = _pendingLayer.get(); -} - <% if (layoutProperties.length) { -%> #pragma mark - Accessing the Layout Attributes |