23#ifndef INSPECTABLE_IMPL_H
24#define INSPECTABLE_IMPL_H
38 aProperty->
set<
T>( object, aValue );
44 return object !=
nullptr;
53 void*
object =
nullptr;
61 prop->
set<
T>( object, aValue );
68 return object !=
nullptr;
78 throw std::runtime_error(
"Could not cast INSPECTABLE to the requested type" );
80 return aProperty->
get<
T>( object );
96 ret = prop->
get<
T>( object );
wxAny Get(PROPERTY_BASE *aProperty) const
bool Set(PROPERTY_BASE *aProperty, wxAny &aValue, bool aNotify=true)
void set(void *aObject, T aValue)
virtual size_t OwnerHash() const =0
Return type-id of the Owner class.
T get(const void *aObject) const
Provide class metadata.Helper macro to map type hashes to names.
void PropertyChanged(INSPECTABLE *aObject, PROPERTY_BASE *aProperty)
Callback to alert the notification system that a property has changed.
static PROPERTY_MANAGER & Instance()
PROPERTY_BASE * GetProperty(TYPE_ID aType, const wxString &aProperty) const
Return a property for a specific type.
const void * TypeCast(const void *aSource, TYPE_ID aBase, TYPE_ID aTarget) const
Cast a type to another type.
size_t TYPE_ID
Unique type identifier.