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 // member functions
52 // NOLINTBEGIN
53 MCAPI ~PropertyChangedNotificationInfo();
54 // NOLINTEND
55
56 public:
57 // destructor thunk
58 // NOLINTBEGIN
59 MCAPI void $dtor();
60 // NOLINTEND
61 };
62
63 using PropertyChangedNotificationCallback = ::std::function<void(
64 ::std::weak_ptr<::UIControl> const&,
65 ::std::string_view,
66 ::Json::Value const&,
67 ::UIPropertyBag::ContextObject
68 )>;
69
70 using PropertyChangedNotificationInfoVector = ::std::vector<::UIPropertyBag::PropertyChangedNotificationInfo>;
71
72 using PropertyInfoList =
73 ::std::map<::std::string, ::std::vector<::UIPropertyBag::PropertyChangedNotificationInfo>, ::std::less<void>>;
74
75public:
76 // member variables
77 // NOLINTBEGIN
78 ::ll::TypedStorage<
79 8,
80 16,
81 ::std::map<::std::string, ::std::vector<::UIPropertyBag::PropertyChangedNotificationInfo>, ::std::less<void>>>
82 mPropertyChangedNotificationInfoMap;
83 // NOLINTEND
84
85public:
86 // virtual functions
87 // NOLINTBEGIN
88 virtual ~UIPropertyBag();
89 // NOLINTEND
90
91public:
92 // member functions
93 // NOLINTBEGIN
94 MCAPI UIPropertyBag();
95
96 MCAPI void _handlePropertyChangedNotifications(
97 ::std::string_view sourcePropertyName,
98 ::Json::Value const& newValue,
99 ::UIPropertyBag::ContextObject context
100 );
101
102 MCAPI void appendNoOverwrite(::UIPropertyBag const& propertyBag);
103
104 MCAPI ::std::unique_ptr<::UIPropertyBag> clone() const;
105
106 MCAPI void registerForPropertyChangedNotification(
107 ::std::string const& sourcePropertyName,
108 ::std::string const& targetPropertyName,
109 ::std::weak_ptr<::UIControl> targetControl,
110 ::std::function<void(
111 ::std::weak_ptr<::UIControl> const&,
112 ::std::string_view,
113 ::Json::Value const&,
114 ::UIPropertyBag::ContextObject
115 )> callback
116 );
117
118 MCAPI void set(::std::string_view key, ::mce::Color color);
119
120 MCAPI void set(::std::string_view key, ::glm::ivec2 gridSize);
121
122 MCAPI void set(::std::string_view key, ::glm::vec2 uv);
123 // NOLINTEND
124
125public:
126 // constructor thunks
127 // NOLINTBEGIN
128 MCAPI void* $ctor();
129 // NOLINTEND
130
131public:
132 // destructor thunk
133 // NOLINTBEGIN
134 MCAPI void $dtor();
135 // NOLINTEND
136
137public:
138 // vftables
139 // NOLINTBEGIN
140 MCNAPI static void** $vftable();
141 // NOLINTEND
142};
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