LeviLamina
Loading...
Searching...
No Matches
IPropertyObject.h
1#pragma once
2
3#include "mc/_HeaderOutputPredefine.h"
4
5// auto generated forward declare list
6// clang-format off
7namespace Bedrock::PubSub { class Subscription; }
8namespace OreUI::Detail { class IProperty; }
9namespace cohtml { class Binder; }
10// clang-format on
11
12namespace OreUI::Detail {
13
14class IPropertyObject {
15public:
16 // IPropertyObject inner types define
17 using NameType = char const*;
18
19 using ListenerSignature = ::std::function<void()>;
20
21public:
22 // virtual functions
23 // NOLINTBEGIN
24 virtual ~IPropertyObject() = default;
25
26 virtual char const* objectName() const = 0;
27
28 virtual char const* propertyName() const = 0;
29
30 virtual void addChild(::OreUI::Detail::IPropertyObject* child) = 0;
31
32 virtual void addProperty(::OreUI::Detail::IProperty* property) = 0;
33
34 virtual void removeChild(::OreUI::Detail::IPropertyObject* child) = 0;
35
36 virtual void removeProperty(::OreUI::Detail::IProperty* property) = 0;
37
38 virtual bool hasParent() const = 0;
39
40 virtual void bind(::cohtml::Binder* binder, void* object) = 0;
41
42 virtual ::Bedrock::PubSub::Subscription setObserver(::std::function<void()> const& observer) = 0;
43
44 virtual void updateParent(::OreUI::Detail::IPropertyObject* parent) = 0;
45
46 virtual void onChange() = 0;
47
48 virtual ::std::vector<::OreUI::Detail::IPropertyObject*> children() = 0;
49
50 virtual ::std::vector<::OreUI::Detail::IProperty*> properties() = 0;
51 // NOLINTEND
52
53public:
54 // virtual function thunks
55 // NOLINTBEGIN
56
57 // NOLINTEND
58};
59
60} // namespace OreUI::Detail
Definition Subscription.h:10
Definition IPropertyObject.h:7
Definition IProperty.h:7
Definition Binder.h:7