RBThemeSchema Class Reference

Inherits from NSObject
Declared in RBThemeSchema.h

Overview

Describes the theming options that are available on an object or enumeration type.

  typeClass

The object type that the schema describes the available theming options for. nil if not an object.

@property (nonatomic, readonly, nullable) Class typeClass

Declared In

RBThemeSchema.h

  typeName

The string name of the type that the schema describes the available theming options for.

@property (nonatomic, readonly, nonnull) NSString *typeName

Declared In

RBThemeSchema.h

  typeIsEnum

Whether or not the type is an enumeration.

@property (nonatomic, readonly) BOOL typeIsEnum

Declared In

RBThemeSchema.h

  notes

An array of notes about the theming options available on this type.

@property (nonatomic, readonly, nullable) NSArray<NSString*> *notes

Declared In

RBThemeSchema.h

  states

An array of RBThemeSchemaState of the different states that can be optionally independantly themed.

@property (nonatomic, readonly, nullable) NSArray<RBThemeSchemaState*> *states

Declared In

RBThemeSchema.h

  fields

A dictionary containing the RBThemeSchema objects for each field key on this type.

@property (nonatomic, readonly, nullable) NSDictionary<NSString*RBThemeSchema*> *fields

Declared In

RBThemeSchema.h

– initWithTypeClass:withParentSchema:

Initializes a new theme schema for an object type.

- (nonnull instancetype)initWithTypeClass:(nonnull Class)typeClass withParentSchema:(nullable RBThemeSchema *)parentSchema

Parameters

typeClass

The Class of the object type.

parentSchema

The parent schema, or nil if this is a root schema. This is used to keep weak references to the parent for recursion protection.

Return Value

The initialized theme schema instance.

Declared In

RBThemeSchema.h

– initWithNativeType:withParentSchema:

Initializes a new theme schema for a named type.

- (nonnull instancetype)initWithNativeType:(RBThemeNativeType)nativeType withParentSchema:(nullable RBThemeSchema *)parentSchema

Parameters

nativeType

The native type of the property.

parentSchema

The parent schema, or nil if this is a root schema. This is used to keep weak references to the parent for recursion protection.

Return Value

The initialized theme schema instance.

Declared In

RBThemeSchema.h

– initWithTypeName:withParentSchema:

Initializes a new theme schema for a named type.

- (nonnull instancetype)initWithTypeName:(nonnull NSString *)typeName withParentSchema:(nullable RBThemeSchema *)parentSchema

Parameters

typeName

The name of the type.

parentSchema

The parent schema, or nil if this is a root schema. This is used to keep weak references to the parent for recursion protection.

Return Value

The initialized theme schema instance.

Declared In

RBThemeSchema.h

– initWithEnumTypeName:withParentSchema:

Initializes a new theme schema for an enumeration type.

- (nonnull instancetype)initWithEnumTypeName:(nonnull NSString *)enumTypeName withParentSchema:(nullable RBThemeSchema *)parentSchema

Parameters

enumTypeName

The name of the enumeration type.

parentSchema

The parent schema, or nil if this is a root schema. This is used to keep weak references to the parent for recursion protection.

Return Value

The initialized theme schema instance.

Declared In

RBThemeSchema.h

– importThemeSchema:

Imports the properties, states and notes from the given theme schema into the current schema.

- (void)importThemeSchema:(nonnull RBThemeSchema *)themeSchema

Parameters

themeSchema

The RBThemeSchema object to import.

Declared In

RBThemeSchema.h

– importProperties:fromThemeSchema:

Imports the specified properties from the given theme schema into the current schema.

- (void)importProperties:(nonnull NSArray<NSString*> *)properties fromThemeSchema:(nonnull RBThemeSchema *)themeSchema

Parameters

properties

The names of the properties to import.

themeSchema

The RBThemeSchema object to import properties from.

Declared In

RBThemeSchema.h

– addNote:

Add a note to the theme schema.

- (void)addNote:(nonnull NSString *)noteString

Parameters

noteString

The note string to add.

Declared In

RBThemeSchema.h

– addState:

Add a state that can be independantly themed.

- (void)addState:(nonnull RBThemeSchemaState *)state

Parameters

state

The details of the state.

Declared In

RBThemeSchema.h

– setPropertyWithName:schema:

Set the RBThemeSchema object for a given property name.

- (nullable RBThemeSchema *)setPropertyWithName:(nonnull NSString *)propertyName schema:(nonnull RBThemeSchema *)themeSchema

Parameters

propertyName

The name of the property.

themeSchema

The RBThemeSchema object.

Return Value

The assigned RBThemeSchema object.

Declared In

RBThemeSchema.h

– setPropertyWithName:type:notes:

Set a theme property to an object type.

- (nullable RBThemeSchema *)setPropertyWithName:(nonnull NSString *)propertyName type:(nonnull Class)type notes:(nullable NSString *)notes

Parameters

propertyName

The name of the property.

type

The Class object type.

notes

An optional accompanying note for the property.

Return Value

The assigned RBThemeSchema object.

Declared In

RBThemeSchema.h

– setPropertyWithName:nativeType:notes:

Set a theme property to an object type.

- (nullable RBThemeSchema *)setPropertyWithName:(nonnull NSString *)propertyName nativeType:(RBThemeNativeType)nativeType notes:(nullable NSString *)notes

Parameters

propertyName

The name of the property.

nativeType

The native type of the property.

notes

An optional accompanying note for the property.

Return Value

The assigned RBThemeSchema object.

Declared In

RBThemeSchema.h

– setPropertyWithName:typeName:notes:

Set a theme property to a named type.

- (nullable RBThemeSchema *)setPropertyWithName:(nonnull NSString *)propertyName typeName:(nonnull NSString *)typeName notes:(nullable NSString *)notes

Parameters

propertyName

The name of the property.

typeName

The name of the type of the property.

notes

An optional accompanying note for the property.

Return Value

The assigned RBThemeSchema object.

Declared In

RBThemeSchema.h

– setEnumPropertyWithName:enumerationTypeName:notes:

Set a theme property to an enumeration type.

- (nullable RBThemeSchema *)setEnumPropertyWithName:(nonnull NSString *)propertyName enumerationTypeName:(nonnull NSString *)enumerationTypeName notes:(nullable NSString *)notes

Parameters

propertyName

The name of the property.

enumerationTypeName

The name of the enumeration type.

notes

An optional accompanying note for the property.

Return Value

The assigned RBThemeSchema object.

Declared In

RBThemeSchema.h

– removeStateWithName:

Removes the state with the given name.

- (void)removeStateWithName:(nonnull NSString *)stateName

Parameters

stateName

The name of the state to remove.

Declared In

RBThemeSchema.h

– removePropertyWithName:

Removes the property with the given name.

- (void)removePropertyWithName:(nonnull NSString *)propertyName

Parameters

propertyName

The name of the state to remove.

Declared In

RBThemeSchema.h

– removeAllNotes

Removes all notes.

- (void)removeAllNotes

Declared In

RBThemeSchema.h

– removeAllStates

Removes all states.

- (void)removeAllStates

Declared In

RBThemeSchema.h

– removeAllProperties

Removes all properties.

- (void)removeAllProperties

Declared In

RBThemeSchema.h

– dictionary

Serialises the theme schema to a property list.

- (nonnull NSDictionary<NSString*,id> *)dictionary

Return Value

The serialised theme schema.

Declared In

RBThemeSchema.h

+ allTypesWithSchemas

Searches for and returns an array of all the Class types that have theme schemas.

+ (nullable NSArray<Class> *)allTypesWithSchemas

Return Value

The NSArray of Class objects that have the selector ‘generateThemeSchemaWithParent’ objects.

Declared In

RBThemeSchema.h

+ treesForTypes:

Recursively generates theme schemas for the given types, returning the schemas in a serialised property list tree.

+ (nonnull NSArray<NSDictionary<NSString*,id> *> *)treesForTypes:(nonnull NSArray<Class> *)types

Parameters

types

The types to generate schemas for.

Return Value

An array of dictionaries containing the serialised theme schemas.

Declared In

RBThemeSchema.h