LeviLamina
Loading...
Searching...
No Matches
IProperty.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 IPropertyObject; }
9namespace cohtml { class Binder; }
10// clang-format on
11
12namespace OreUI::Detail {
13
14class IProperty {
15public:
16 // IProperty inner types define
17 using NameType = char const* const;
18
19 using ListenerSignature = ::std::function<void()>;
20
21public:
22 // virtual functions
23 // NOLINTBEGIN
24 virtual ~IProperty() = default;
25
26 virtual char const* const name() const = 0;
27
28 virtual void bind(::cohtml::Binder* binder, void* object) = 0;
29
30 virtual ::Bedrock::PubSub::Subscription setObserver(::std::function<void()> const& observer) = 0;
31
32 virtual void updateParent(::OreUI::Detail::IPropertyObject* parent) = 0;
33 // NOLINTEND
34
35public:
36 // virtual function thunks
37 // NOLINTBEGIN
38
39 // NOLINTEND
40};
41
42} // namespace OreUI::Detail
Definition Subscription.h:10
Definition IPropertyObject.h:7
Definition IProperty.h:7
Definition Binder.h:7