<% const doc = locals.doc; const type = locals.type; const layoutProperties = locals.layoutProperties; const paintProperties = locals.paintProperties; const enumProperties = locals.enumProperties; -%> // This file is generated. // Edit platform/darwin/scripts/generate-style-code.js, then run `make darwin-style-code`. #import "MGLFoundation.h" #import "MGLStyleValue.h" #import "MGL<%- (type === 'background' ? '' : (type === 'raster' ? 'Foreground' : 'Vector')) %>StyleLayer.h" NS_ASSUME_NONNULL_BEGIN <% for (const property of layoutProperties) { -%> <% if (property.type == "enum") { -%> /** <%- propertyDoc(property.name, property, type, 'enum').wrap(80, 1) %> Values of this type are used in the `MGL<%- camelize(type) %>StyleLayer.<%- camelizeWithLeadingLowercase(property.name) %>` property. */ typedef NS_ENUM(NSUInteger, MGL<%- camelize(property.name) %>) { <% for (const value in property.values) { -%> /** <%- propertyDoc(property.name, property.values[value], type, 'enum').wrap(80, 4+1) %> */ MGL<%- camelize(property.name) %><%- camelize(value) %>, <% } -%> }; <% } -%> <% } -%> <% for (const property of paintProperties) { -%> <% if (property.type == "enum") { -%> /** <%- propertyDoc(property.name, property, type, 'enum').wrap(80, 1) %> Values of this type are used in the `MGL<%- camelize(type) %>StyleLayer.<%- camelizeWithLeadingLowercase(property.name) %>` property. */ typedef NS_ENUM(NSUInteger, MGL<%- camelize(property.name) %>) { <% for (const value in property.values) { -%> /** <%- propertyDoc(property.name, property.values[value], type, 'enum').wrap(80, 4+1) %> */ MGL<%- camelize(property.name) %><%- camelize(value) %>, <% } -%> }; <% } -%> <% } -%> <% if (type == 'background') { -%> /** <%- doc.wrap(80, 1) %> */ <% } else { -%> /** <%- doc.wrap(80, 1) %> You can access an existing <%- type %> style layer using the `-[MGLStyle layerWithIdentifier:]` method if you know its identifier; otherwise, find it using the `MGLStyle.layers` property. You can also create a new <%- type %> style layer and add it to the style using a method such as `-[MGLStyle addLayer:]`. ### Example ```swift ``` */ <% } -%> MGL_EXPORT @interface MGL<%- camelize(type) %>StyleLayer : MGL<%- (type === 'background' ? '' : (type === 'raster' ? 'Foreground' : 'Vector')) %>StyleLayer <% if (type === 'background') { -%> /** Returns a <%- type %> style layer initialized with an identifier. After initializing and configuring the style layer, add it to a map view’s style using the `-[MGLStyle addLayer:]` or `-[MGLStyle insertLayer:belowLayer:]` method. @param identifier A string that uniquely identifies the source in the style to which it is added. */ - (instancetype)initWithIdentifier:(NSString *)identifier; <% } else { -%> /** Returns a <%- type %> style layer initialized with an identifier and source. After initializing and configuring the style layer, add it to a map view’s style using the `-[MGLStyle addLayer:]` or `-[MGLStyle insertLayer:belowLayer:]` method. @param identifier A string that uniquely identifies the source in the style to which it is added. @param source The source from which to obtain the data to style. If the source has not yet been added to the current style, the behavior is undefined. @return An initialized foreground style layer. */ - (instancetype)initWithIdentifier:(NSString *)identifier source:(MGLSource *)source; <% } -%> <% if (layoutProperties.length) { -%> #pragma mark - Accessing the Layout Attributes <% for (const property of layoutProperties) { -%> /** <%- propertyDoc(property.name, property, type, 'layout').wrap(80, 1) %> */ @property (nonatomic<% if (!property.required) { %>, null_resettable<% } if (property.getter) { %>, getter=<%- objCGetter(property) -%><% } %>) MGLStyleValue<<%- propertyType(property, true) %>> *<%- camelizeWithLeadingLowercase(property.name) %>; <% if (property.original) { %> @property (nonatomic<% if (!property.required) { %>, null_resettable<% } %>) MGLStyleValue<<%- propertyType(property, true) %>> *<%- camelizeWithLeadingLowercase(originalPropertyName(property)) %> __attribute__((unavailable("Use <%- camelizeWithLeadingLowercase(property.name) %> instead."))); <% } -%> <% } -%> <% } -%> <% if (paintProperties.length) { -%> #pragma mark - Accessing the Paint Attributes <% for (const property of paintProperties) { -%> /** <%- propertyDoc(property.name, property, type, 'paint').wrap(80, 1) %> */ @property (nonatomic<% if (!property.required) { %>, null_resettable<% } if (property.getter) { %>, getter=<%- objCGetter(property) -%><% } %>) MGLStyleValue<<%- propertyType(property, true) %>> *<%- camelizeWithLeadingLowercase(property.name) %>; <% if (property["transition"]) { -%> /** The transition affecting any changes to this layer’s `<%- camelizeWithLeadingLowercase(property.name) %>` property. This property corresponds to the `<%- originalPropertyName(property) %>-transition` property in the style JSON file format. */ @property (nonatomic) MGLTransition <%- camelizeWithLeadingLowercase(property.name) %>Transition; <% } -%> <% if (property.original) { -%> @property (nonatomic<% if (!property.required) { %>, null_resettable<% } %>) MGLStyleValue<<%- propertyType(property, true) %>> *<%- camelizeWithLeadingLowercase(originalPropertyName(property)) %> __attribute__((unavailable("Use <%- camelizeWithLeadingLowercase(property.name) %> instead."))); <% } -%> <% } -%> <% } -%> @end <% if (enumProperties) { -%> /** Methods for wrapping an enumeration value for a style layer attribute in an `MGL<%- camelize(type) %>StyleLayer` object and unwrapping its raw value. */ @interface NSValue (MGL<%- camelize(type) %>StyleLayerAdditions) #pragma mark Working with <%- camelize(unhyphenate(type)) %> Style Layer Attribute Values <% for (let property of enumProperties) { -%> /** Creates a new value object containing the given `MGL<%- camelize(property.name) %>` enumeration. @param <%- objCName(property) %> The value for the new object. @return A new value object that contains the enumeration value. */ + (instancetype)valueWithMGL<%- camelize(property.name) %>:(MGL<%- camelize(property.name) %>)<%- objCName(property) %>; /** The `MGL<%- camelize(property.name) %>` enumeration representation of the value. */ @property (readonly) MGL<%- camelize(property.name) %> MGL<%- camelize(property.name) %>Value; <% } -%> @end <% } -%> NS_ASSUME_NONNULL_END