#import "MLNFoundation.h" NS_ASSUME_NONNULL_BEGIN /** Options for `MLNAttributedExpression.attributes`. */ typedef NSString * MLNAttributedExpressionKey NS_TYPED_ENUM; /** The font name string array expression used to format the text. */ FOUNDATION_EXTERN MLN_EXPORT MLNAttributedExpressionKey const MLNFontNamesAttribute; /** The font scale number expression relative to `MLNSymbolStyleLayer.textFontSize` used to format the text. */ FOUNDATION_EXTERN MLN_EXPORT MLNAttributedExpressionKey const MLNFontScaleAttribute; /** The font color expression used to format the text. */ FOUNDATION_EXTERN MLN_EXPORT MLNAttributedExpressionKey const MLNFontColorAttribute; /** An `MLNAttributedExpression` object associates text formatting attibutes (such as font size or font names) to an `NSExpression`. ### Example ```swift let redColor = UIColor.red let expression = NSExpression(forConstantValue: "Foo") let attributes: [MLNAttributedExpressionKey: NSExpression] = [.fontNamesAttribute : NSExpression(forConstantValue: ["DIN Offc Pro Italic", "Arial Unicode MS Regular"]), .fontScaleAttribute: NSExpression(forConstantValue: 1.2), .fontColorAttribute: NSExpression(forConstantValue: redColor)] let attributedExpression = MLNAttributedExpression(expression, attributes:attributes) ``` */ MLN_EXPORT @interface MLNAttributedExpression : NSObject /** The expression content of the receiver as `NSExpression`. */ @property (strong, nonatomic) NSExpression *expression; #if TARGET_OS_IPHONE /** The formatting attributes dictionary. Key | Value Type --- | --- `MLNFontNamesAttribute` | An `NSExpression` evaluating to an `NSString` array. `MLNFontScaleAttribute` | An `NSExpression` evaluating to an `NSNumber` value. `MLNFontColorAttribute` | An `NSExpression` evaluating to an `UIColor`. */ @property (strong, nonatomic, readonly) NSDictionary *attributes; #else /** The formatting attributes dictionary. Key | Value Type --- | --- `MLNFontNamesAttribute` | An `NSExpression` evaluating to an `NSString` array. `MLNFontScaleAttribute` | An `NSExpression` evaluating to an `NSNumber` value. `MLNFontColorAttribute` | An `NSExpression` evaluating to an `NSColor` on macos. */ @property (strong, nonatomic, readonly) NSDictionary *attributes; #endif /** Returns an `MLNAttributedExpression` object initialized with an expression and no attribute information. */ - (instancetype)initWithExpression:(NSExpression *)expression; /** Returns an `MLNAttributedExpression` object initialized with an expression and text format attributes. */ - (instancetype)initWithExpression:(NSExpression *)expression attributes:(nonnull NSDictionary *)attrs; /** Creates an `MLNAttributedExpression` object initialized with an expression and the format attributes for font names and font size. */ + (instancetype)attributedExpression:(NSExpression *)expression fontNames:(nullable NSArray *)fontNames fontScale:(nullable NSNumber *)fontScale; /** Creates an `MLNAttributedExpression` object initialized with an expression and the format attributes dictionary. */ + (instancetype)attributedExpression:(NSExpression *)expression attributes:(nonnull NSDictionary *)attrs; @end NS_ASSUME_NONNULL_END