LeviLamina
Loading...
Searching...
No Matches
UIPropertyBag.h
1#pragma once
2
3#include "mc/_HeaderOutputPredefine.h"
4
5// auto generated inclusion list
6#include "mc/deps/core/utility/PropertyBag.h"
7
8// auto generated forward declare list
9// clang-format off
10class UIControl;
11namespace Json { class Value; }
12namespace mce { class Color; }
13// clang-format on
14
15class UIPropertyBag : public ::PropertyBag {
16public:
17 // UIPropertyBag inner types declare
18 // clang-format off
19 struct ContextObject;
21 // clang-format on
22
23 // UIPropertyBag inner types define
24 struct ContextObject {
25 public:
26 // member variables
27 // NOLINTBEGIN
28 ::ll::TypedStorage<4, 4, int> count;
29 // NOLINTEND
30 };
31
33 public:
34 // member variables
35 // NOLINTBEGIN
36 ::ll::TypedStorage<8, 32, ::std::string> targetPropertyName;
37 ::ll::TypedStorage<8, 16, ::std::weak_ptr<::UIControl>> targetControl;
38 ::ll::TypedStorage<
39 8,
40 64,
41 ::std::function<void(
42 ::std::weak_ptr<::UIControl> const&,
43 ::std::string_view,
44 ::Json::Value const&,
45 ::UIPropertyBag::ContextObject
46 )>>
47 callback;
48 // NOLINTEND
49
50 public:
51 // prevent constructor by default
52 PropertyChangedNotificationInfo& operator=(PropertyChangedNotificationInfo const&);
53 PropertyChangedNotificationInfo();
54
55 public:
56 // member functions
57 // NOLINTBEGIN
58 MCAPI PropertyChangedNotificationInfo(::UIPropertyBag::PropertyChangedNotificationInfo const&);
59 // NOLINTEND
60
61 public:
62 // constructor thunks
63 // NOLINTBEGIN
64 MCAPI void* $ctor(::UIPropertyBag::PropertyChangedNotificationInfo const&);
65 // NOLINTEND
66 };
67
68 using PropertyChangedNotificationCallback = ::std::function<void(
69 ::std::weak_ptr<::UIControl> const&,
70 ::std::string_view,
71 ::Json::Value const&,
72 ::UIPropertyBag::ContextObject
73 )>;
74
75 using PropertyChangedNotificationInfoVector = ::std::vector<::UIPropertyBag::PropertyChangedNotificationInfo>;
76
77 using PropertyInfoList =
78 ::std::map<::std::string, ::std::vector<::UIPropertyBag::PropertyChangedNotificationInfo>, ::std::less<void>>;
79
80public:
81 // member variables
82 // NOLINTBEGIN
83 ::ll::TypedStorage<
84 8,
85 16,
86 ::std::map<::std::string, ::std::vector<::UIPropertyBag::PropertyChangedNotificationInfo>, ::std::less<void>>>
87 mPropertyChangedNotificationInfoMap;
88 // NOLINTEND
89
90public:
91 // virtual functions
92 // NOLINTBEGIN
93 virtual ~UIPropertyBag();
94 // NOLINTEND
95
96public:
97 // member functions
98 // NOLINTBEGIN
99 MCAPI UIPropertyBag();
100
101 MCAPI void _handlePropertyChangedNotifications(
102 ::std::string_view sourcePropertyName,
103 ::Json::Value const& newValue,
104 ::UIPropertyBag::ContextObject context
105 );
106
107 MCAPI void append(::UIPropertyBag const& propertyBag);
108
109 MCAPI void appendNoOverwrite(::UIPropertyBag const& propertyBag);
110
111 MCAPI void clearWeakRegistrations();
112
113 MCAPI void registerForPropertyChangedNotification(
114 ::std::string const& sourcePropertyName,
115 ::std::string const& targetPropertyName,
116 ::std::weak_ptr<::UIControl> targetControl,
117 ::std::function<void(
118 ::std::weak_ptr<::UIControl> const&,
119 ::std::string_view,
120 ::Json::Value const&,
121 ::UIPropertyBag::ContextObject
122 )> const callback
123 );
124
125 MCAPI void set(::std::string_view key, ::mce::Color color);
126
127 MCAPI void set(::std::string_view key, ::glm::ivec2 gridSize);
128
129 MCAPI void set(::std::string_view key, ::glm::vec2 uv);
130 // NOLINTEND
131
132public:
133 // constructor thunks
134 // NOLINTBEGIN
135 MCAPI void* $ctor();
136 // NOLINTEND
137
138public:
139 // destructor thunk
140 // NOLINTBEGIN
141 MCAPI void $dtor();
142 // NOLINTEND
143
144public:
145 // vftables
146 // NOLINTBEGIN
147 MCNAPI static void** $vftable();
148 // NOLINTEND
149};
Definition Value.h:16
Definition PropertyBag.h:8
Definition UIControl.h:5
Definition UIPropertyBag.h:5
static MCAPI void ** $vftable()
Definition Color.h:13
Definition UIPropertyBag.h:14