3#include "mc/_HeaderOutputPredefine.h"
8namespace OreUI::Detail {
class IProperty; }
9namespace cohtml {
class Binder; }
12namespace OreUI::Detail {
17 using NameType =
char const*;
19 using ListenerSignature = ::std::function<void()>;
24 virtual ~IPropertyObject() =
default;
26 virtual char const* objectName()
const = 0;
28 virtual char const* propertyName()
const = 0;
30 virtual void addChild(::OreUI::Detail::IPropertyObject* child) = 0;
32 virtual void addProperty(::OreUI::Detail::IProperty* property) = 0;
34 virtual void removeChild(::OreUI::Detail::IPropertyObject* child) = 0;
36 virtual void removeProperty(::OreUI::Detail::IProperty* property) = 0;
38 virtual bool hasParent()
const = 0;
40 virtual void bind(::cohtml::Binder* binder,
void*
object) = 0;
42 virtual ::Bedrock::PubSub::Subscription setObserver(::std::function<
void()>
const& observer) = 0;
44 virtual void updateParent(::OreUI::Detail::IPropertyObject* parent) = 0;
46 virtual void onChange() = 0;
48 virtual ::std::vector<::OreUI::Detail::IPropertyObject*> children() = 0;
50 virtual ::std::vector<::OreUI::Detail::IProperty*> properties() = 0;
Definition Subscription.h:10
Definition IPropertyObject.h:7