summaryrefslogtreecommitdiff
path: root/platform/darwin/src/NSExpression+MGLAdditions.h
Commit message (Collapse)AuthorAgeFilesLines
* [ios] Create a branch that supports iOS 8 (#13036)Jordan Kiley2018-10-151-0/+2
| | | | | | | | | | | | | | | | | | | | * [ios] switched deployment * [ios, macos] started to restore iOS 8 support * [ios] Started to restore iOS 8 support * [ios, macos] Switching storage types * [ios] update iosapp * [ios, macos] fixed a test, documented length is unavailable * [ios] remove safe area from integration test * [ios] Update Changelog, Installation guide, and README * [ios] Addressed Fabian's feedback
* [darwin] Use FOUNDATION_EXTERN instead of plain externJason Wray2018-07-241-3/+3
| | | | FOUNDATION_EXTERN is an alias for extern in most cases, but also covers us in the event that a method could be mismangled by the compiler as C++ (when we want C-style mangling, for Obj-C compatibility).
* [ios, macos] Rename featureProperties to featureAttributes. (#11748)Fabian Guerra Soto2018-04-231-1/+3
| | | | | | | | | | * [ios, macos] Rename featureProperties to featureAttributes. * [ios, macos] Update style documentation. * [ios, macos] Remove featureProperties variable tests. * [ios, macos] Update the changelogs.
* [ios, macos] Revamp predicate and expression guide (#11741)Minh Nguyễn2018-04-191-15/+25
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * [ios, macos] Fact-checked expression guide Corrected various factual inaccuracies in the “Predicates and Expressions” guide. Moved some explanation from the predicates section to the expressions section. Added sections for all the other expression types we support. * [ios, macos] Reorganized custom function documentation Reorganized the custom function documentation as a series of sections with headers and definition lists instead of a monolithic table. Copyedited various sections for accuracy. Linked references to custom functions. Added format string examples for all custom functions. * [ios, macos] Made h3 more visible * [ios, macos] Added Objective-C example of placeholders * [ios, macos] Documented trig functions * [ios, macos] Also increase h3 code size * [ios, macos] Replaced Markdown with HTML in definition * [ios, macos] Replaced Markdown with HTML in custom function documentation * [ios, macos] Clarified stops * [ios, macos] Cross-referenced functions Each custom function definition cross-references the corresponding aftermarket function (or vice versa), the corresponding style specification expression operator, and any related NSExpression syntax. * [ios, macos] Fixed links in predicate guide * [ios, macos] Consolidated and documented NSExpression categories Consolidated the NSExpression categories into a single category, with marks to separate different tasks. Documented the MGLAdditions category so that it shows up in the jazzy documentation. * [ios, macos] Fixed NSExpression private category mixup
* [ios, macos] Add NSExpression convenience constructors and helper methods. ↵Fabian Guerra Soto2018-04-161-0/+124
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | (#11278) * [ios, macos] Refactor convinience expression initializers. # Conflicts: # platform/darwin/src/NSExpression+MGLAdditions.h # platform/darwin/src/NSExpression+MGLAdditions.mm # platform/ios/app/MBXViewController.m * [ios, macos] Add MGL_MATCH convenience method. # Conflicts: # platform/darwin/src/NSExpression+MGLAdditions.h # platform/darwin/src/NSExpression+MGLAdditions.mm # platform/darwin/test/MGLExpressionTests.mm * [ios, macos] Add Swift friendly convenience methods name syntax.. # Conflicts: # platform/darwin/src/NSExpression+MGLAdditions.h * [ios, macos] Update runtime styling examples. # Conflicts: # platform/ios/app/MBXViewController.m * [ios, macos] Add NSExpression variable expressions properties. * [ios, macos] Clarify convenience initializer names. * [ios, macos] Update Style Authors guides. * [ios, macos] Fix cherry-pick merge. * [ios, macos] Update convenience initializers documentation.
* Localize expressions more thoroughly (#11651)Minh Nguyễn2018-04-161-0/+16
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * [ios] Removed changelog entry for Terrarium The broader feature is new to v4.0.0 as well. * [ios, macos] Localize expressions more thoroughly Replaced the MGLStyle.localizesLabels property with a -localizeLabelsIntoLocale: method that allows the caller to specify the locale to localize into. Also exposed a per-expression localization method for developers who want to vary behavior from layer to layer. * [macos] Offer English labels if preferred language is unsupported * [ios, macos] Removed dead code * [ios] Use new localization method in iosapp * [ios, macos] Fixed local name labels * [ios, macos] Convert tokens to key path expressions in stop dictionaries * [ios, macos] Streamlined token upgrading Separated token upgrading into a separate process that only happens as part of the MGLSymbolStyleLayer.text and MGLSymbolStyleLayer.iconImageName properties’ getters, so that it’s easy to remove later when mbgl changes obviate this workaround. Removed the replacesTokens parameter to the expression localization methods. * [ios, macos] Preserve whitespace between tokens * [ios, macos] Moved token replacement to a consistent category Fixed a build warning. * [ios, macos] Replace tokens in all string-typed getters For consistency, replace tokens with key paths in all string-typed style paint and layout properties. * [ios, macos] Test token replacement Added tests for replacement of tokens with key paths in expressions. Fixed token replacement for raw strings in stop dictionaries. Avoid sticking a single string inside an mgl_join: call. * [ios, macos] Test token replacement, localization Added unit tests of token replacement and localization of expressions. Only NSExpression is responsible for resolving the preferred language now, since NSLocale tends to tack a region code onto the locale identifier and the NSExpression method can be called independently anyways. Added a private variation of +[MGLVectorTileSource preferredMapboxStreetsLanguage] that takes an array of preferred languages. Fixed localization of non-expressions in stop dictionaries. * [ios, macos] Dictionary keys aren’t necessarily zoom levels
* [ios, macos] Corrected link in expression documentationMinh Nguyễn2018-04-111-2/+4
|
* [ios, macos] Renamed expression initializer to be more SwiftianMinh Nguyễn2018-04-111-1/+1
|
* Reimplement style values atop NSExpression (#10726)Minh Nguyễn2018-01-241-7/+36
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * [ios, macos] Import headers, not implementation files * [core] Added accessors for various expression parameters Added missing parameter accessors to various expression operator classes, as well as a method on InterpolatorBase and Step that enumerates the stops and their values. * [ios, macos] Silenced warning in test of error condition * [ios, macos] Made MGLSphericalPosition boxable * [ios, macos] Implemented array enumeration during conversion * [ios, macos] Temporarily ignore heatmap layer type * [ios, macos] Migrated MGLSymbolStyleLayer.text to NSExpression MGLSymbolStyleLayer.text is now of type NSExpression instead of MGLStyleValue, as a first step toward migrating the entire layer API from style values to expressions. Implemented conversions from NSExpression to JSON arrays and vice versa. The most common NSExpression functions are now converted into style expressions, but not all of the most common style expression operators are supported yet. * [ios, macos] Implemented string coercion * [ios, macos] Color literals * [ios, macos] Null constant expressions * [ios, macos] Convert dictionary literals * [ios, macos] Interpolation expressions * [ios, macos] to-boolean, to-number, get from object * [ios, macos] Variable expressions Implemented custom expression functions for assigning and referring to variables within the context of an expression. Variables are assigned via a “context dictionary” and applied to an subexpression that is given as another argument to the same expression. Also implemented built-in variable expressions for zoom level and heatmap density. * [ios, macos] Convert colors, offsets, padding in expressions to JSON objects * [ios, macos] Expression-based style property getters Implemented a conversion from mbgl::style::PropertyValues to Objective-C JSON objects, which are then converted to NSExpressions. * [ios, macos] Consolidated property value–expression conversion in MGLStyleValueTransformer * [ios, macos] Predicate and expression guide Extracted documentation about predicates from a documentation comment in MGLVectorStyleLayer.h to a new jazzy guide. Added details about NSExpression support as well. Began updating the “For Style Authors” guide to reflect the transition from style values to expressions. * [ios, macos] Updated style authoring guide Updated the Information for Style Authors guide to discuss expressions instead of style functions. Included a table mapping style specification expression operators to NSExpression syntaxes. * [ios, macos] Migrated codegen templates to expressions * [ios, macos] Applied expression changes via codegen Ran make darwin-style-code. * [macos] Migrated macosapp to expressions * [ios, macos] Updated style function guide This guide needs to be thoroughly rewritten, but for now the example code has been migrated to expressions. * [ios, macos] Eviscerated style function tests * [ios, macos] Updated changelogs * [ios] Migrated iosapp to expressions * [ios, macos] Exposed JSON conversion methods publicly * [ios, macos] Removed MGLStyleValue, MGLStyleFunction
* [core] Introduce dedicated filter types for $type and $id special cases (#7971)John Firebaugh2017-02-091-0/+3
| | | | | | | | * [core] Introduce dedicated filter types for $type and $id special cases * [ios, macos] Special-case $id, $type in predicates Also support $id ≟ nil.
* [ios, macos] Cleaned up expression conversionMinh Nguyễn2017-01-041-3/+7
|
* [ios, macos] Teach features and shapes about GeoJSON and mbgl typesJesse Bounds2016-10-141-1/+1
| | | | | | MGLShape subclasses can now return NSDictionaries that represent the shapes' GeoJSON geometries. MGLFeature classes can now return NSDictionaries that represent the features as GeoJSON features. This makes it trivial to serialize iOS and macOS shapes and features into GeoJSON. MGLFeature instances can also return a representation of themselves as an mbgl::Feature. This capability is used in a refactoring of the implementations of MGLGeoJSONSource to more efficiently transform MGLFeatures into mbgl::Features so they can be fed directly into mbgl::GeoJSONSource without having to round trip through NSJSONSerialization. The MGLFeature identifier is converted into the mbgl::identifier type based on the type of the identifier. The MGLFeature attributes are recursively converted into an mbgl::PropertyMap and each value is converted into one of the types that the PropertyMap's Value variant supports.
* [ios] Added support for filters (NSPredicate)Fredrik Karlsson2016-09-021-0/+11
[ios, macos] cleaned up filters [ios] added a filter example [ios] utest filters [ios, macos] nested predicates [ios] refactored [ios] filter -> NSPredicate [ios] fixed mbgl::Any/AllFilter -> NSPredicate [ios] translate nested mbgl::NotIn filters [ios] cleanup and added more utests [ios] fixed a bug in the None filter conversion and improved utests [ios, macos] doc [macos] added missing category [ios, macos] additional utests [ios, macos] updated documentation