216#define MakeInlet(name, type, dest, data) (Inlet) { (name), (type), (dest), (ident) (data) }
221#define MakeInlets(...) \
224 MakeInlet(NULL, InitTypeEnd, NULL, NULL) \
230#define MakeOutlet(identifier, view) (Outlet) { (identifier), (View **) (view) }
235#define MakeOutlets(...) \
238 MakeOutlet(NULL, NULL) \
244#define BindInlet(inlet, obj) (inletBindings[(inlet)->type])(inlet, (ident) obj)
ObjectivelyMVC base types.
#define OBJECTIVELYMVC_EXPORT
InletType
Inlet type constants.
@ InletTypeApplicationDefined
void(* InletBinding)(const Inlet *inlet, ident obj)
A function pointer for Inlet binding.
OBJECTIVELYMVC_EXPORT const InletBinding inletBindings[]
The Array of InletBindings, indexed by InletType.
OBJECTIVELYMVC_EXPORT _Bool bindInlets(const Inlet *inlets, const Dictionary *dictionary)
Binds each Inlet specified in inlets to the data provided in dictionary.
Inlets enable inbound data binding of View attributes through JSON.
const char * name
The Inlet name, e.g. "alignment".
InletType type
The InletType, e.g. InletTypeEnum.
ident data
Type-specific data, e.g. an array of EnumNames.
ident dest
The Inlet destination.
Outlets enable outbound data binding of Views through JSON.
const char * identifier
The View identifier.
View ** view
The output storage for the resolved View.
Views are the fundamental building blocks of ObjectivelyMVC user interfaces.