3#include "mc/_HeaderOutputPredefine.h"
6#include "mc/deps/core/utility/PropertyBag.h"
7#include "mc/deps/core/utility/buffer_span.h"
13namespace Json {
class Value; }
14namespace mce {
class Color; }
30 ::ll::TypedStorage<4, 4, int> count;
38 ::ll::TypedStorage<8, 32, ::std::string> targetPropertyName;
39 ::ll::TypedStorage<8, 16, ::std::weak_ptr<::UIControl>> targetControl;
44 ::std::weak_ptr<::UIControl>
const&,
47 ::UIPropertyBag::ContextObject
54 PropertyChangedNotificationInfo& operator=(PropertyChangedNotificationInfo
const&);
55 PropertyChangedNotificationInfo();
60 MCAPI PropertyChangedNotificationInfo(::UIPropertyBag::PropertyChangedNotificationInfo
const&);
62 MCAPI ~PropertyChangedNotificationInfo();
68 MCAPI
void* $ctor(::UIPropertyBag::PropertyChangedNotificationInfo
const&);
78 using PropertyChangedNotificationCallback = ::std::function<void(
79 ::std::weak_ptr<::UIControl>
const&,
82 ::UIPropertyBag::ContextObject
85 using PropertyChangedNotificationInfoVector = ::std::vector<::UIPropertyBag::PropertyChangedNotificationInfo>;
87 using PropertyInfoList =
88 ::std::map<::std::string, ::std::vector<::UIPropertyBag::PropertyChangedNotificationInfo>, ::std::less<void>>;
96 ::std::map<::std::string, ::std::vector<::UIPropertyBag::PropertyChangedNotificationInfo>, ::std::less<void>>>
97 mPropertyChangedNotificationInfoMap;
103 virtual ~UIPropertyBag();
109 MCAPI UIPropertyBag();
111 MCAPI
explicit UIPropertyBag(::Json::Value
const& jsonValue);
113 MCAPI
void _handlePropertyChangedNotifications(
114 ::std::string_view sourcePropertyName,
115 ::Json::Value
const& newValue,
116 ::UIPropertyBag::ContextObject context
119 MCAPI
void append(::UIPropertyBag
const& propertyBag);
121 MCAPI
void appendNoOverwrite(::UIPropertyBag
const& propertyBag);
123 MCAPI
void clearWeakRegistrations();
125 MCAPI
void registerForPropertyChangedNotification(
126 ::std::string
const& sourcePropertyName,
127 ::std::string
const& targetPropertyName,
128 ::std::weak_ptr<::UIControl> targetControl,
129 ::std::function<
void(
130 ::std::weak_ptr<::UIControl>
const&,
132 ::Json::Value
const&,
133 ::UIPropertyBag::ContextObject
137 MCAPI
void registerForPropertyChangedNotification(
138 ::UiExpression
const& sourcePropertyName,
139 ::std::string
const& targetPropertyName,
140 ::std::weak_ptr<::UIControl> targetControl,
141 ::std::function<
void(
142 ::std::weak_ptr<::UIControl>
const&,
144 ::Json::Value
const&,
145 ::UIPropertyBag::ContextObject
149 MCAPI
void set(::std::string_view key, ::mce::Color color);
151 MCAPI
void set(::std::string_view key, ::glm::ivec2 gridSize);
153 MCAPI
void set(::std::string_view key, ::glm::vec2 uv);
155 MCAPI
void set(::std::string_view key, ::buffer_span<::std::string> val);
157 MCAPI
void set(::std::string_view key, ::buffer_span<int> val);
159 MCAPI
void set(::std::string_view key, ::Json::Value
const& val, ::UIPropertyBag::ContextObject context);
167 MCAPI
void* $ctor(::Json::Value
const& jsonValue);
Definition PropertyBag.h:9
Definition UIPropertyBag.h:5
static MCAPI void ** $vftable()
Definition UiExpression.h:5
Definition UIPropertyBag.h:14
Definition UIPropertyBag.h:16