LeviLamina
Loading...
Searching...
No Matches
DataBindingComponent.h
1#pragma once
2
3#include "mc/_HeaderOutputPredefine.h"
4
5// auto generated inclusion list
6#include "mc/client/gui/UiExpression.h"
7#include "mc/client/gui/controls/BindingCondition.h"
8#include "mc/client/gui/controls/BindingType.h"
9#include "mc/client/gui/controls/UIComponent.h"
10
11// auto generated forward declare list
12// clang-format off
14class UIControl;
15// clang-format on
16
18public:
19 // DataBindingComponent inner types declare
20 // clang-format off
21 struct DataBinding;
22 // clang-format on
23
24 // DataBindingComponent inner types define
25 struct DataBinding {
26 public:
27 // member variables
28 // NOLINTBEGIN
29 ::ll::TypedStorage<4, 4, ::BindingType> bindingType;
30 ::ll::TypedStorage<4, 4, ::BindingCondition> bindingCondition;
31 ::ll::TypedStorage<8, 32, ::std::string> bindingName;
32 ::ll::TypedStorage<8, 32, ::UiExpression> bindingExpression;
33 ::ll::TypedStorage<8, 32, ::std::string> bindingNameOverride;
34 ::ll::TypedStorage<8, 32, ::std::string> collectionName;
35 ::ll::TypedStorage<8, 32, ::std::string> collectionPrefix;
36 ::ll::TypedStorage<8, 32, ::UiExpression> viewBindingSourcePropertyName;
37 ::ll::TypedStorage<8, 32, ::std::string> viewBindingTargetPropertyName;
38 ::ll::TypedStorage<8, 16, ::std::weak_ptr<::UIControl>> viewBindingSourceControl;
39 ::ll::TypedStorage<4, 4, uint> collectionNameHash;
40 ::ll::TypedStorage<4, 4, uint> bindingNameHash;
41 ::ll::TypedStorage<4, 4, int> collectionIndex;
42 ::ll::TypedStorage<1, 1, bool> alreadyBoundOnce;
43 ::ll::TypedStorage<1, 1, bool> visible;
44 // NOLINTEND
45
46 public:
47 // prevent constructor by default
48 DataBinding& operator=(DataBinding const&);
49 DataBinding();
50
51 public:
52 // member functions
53 // NOLINTBEGIN
54 MCAPI DataBinding(::DataBindingComponent::DataBinding const&);
55
56 MCAPI ~DataBinding();
57 // NOLINTEND
58
59 public:
60 // constructor thunks
61 // NOLINTBEGIN
62 MCAPI void* $ctor(::DataBindingComponent::DataBinding const&);
63 // NOLINTEND
64
65 public:
66 // destructor thunk
67 // NOLINTBEGIN
68 MCAPI void $dtor();
69 // NOLINTEND
70 };
71
72public:
73 // member variables
74 // NOLINTBEGIN
75 ::ll::TypedStorage<8, 24, ::std::vector<::DataBindingComponent::DataBinding>> mBindings;
76 ::ll::TypedStorage<8, 24, ::std::vector<::DataBindingComponent::DataBinding>> mPriorityBindings;
77 ::ll::TypedStorage<8, 24, ::std::vector<::DataBindingComponent::DataBinding>> mAlwaysBindings;
78 ::ll::TypedStorage<1, 1, bool> mDirty;
79 // NOLINTEND
80
81public:
82 // prevent constructor by default
83 DataBindingComponent();
84
85public:
86 // virtual functions
87 // NOLINTBEGIN
88 virtual ::std::unique_ptr<::UIComponent> clone(::UIControl& cloneOwner) const /*override*/;
89
90 virtual void reset() /*override*/;
91 // NOLINTEND
92
93public:
94 // member functions
95 // NOLINTBEGIN
96 MCAPI explicit DataBindingComponent(::UIControl& owner);
97
98 MCAPI void _addBindings(
99 ::BindingType bindingType,
100 ::std::string const& collectionName,
101 ::UiExpression& bindingExpression,
102 ::std::string const& bindingNameOverride,
103 ::BindingCondition bindingCondition
104 );
105
106 MCAPI void
107 _bind(::ScreenController& controller, bool visible, ::std::vector<::DataBindingComponent::DataBinding>& bindings);
108
109 MCAPI bool _isCollectionSizeBinding(::DataBindingComponent::DataBinding const& binding) const;
110
111 MCAPI void _updateCollectionBindingIndicies();
112
113 MCAPI void
114 _updateCustomComponentsPostBinding(::std::string_view propertyName, ::UIControl& owner, ::UiExpression expression);
115
116 MCAPI void addCollectionBinding(
117 ::std::string const& collectionName,
118 ::UiExpression bindingExpression,
119 ::std::string const& bindingNameOverride,
120 ::BindingCondition bindingCondition
121 );
122
123 MCAPI void addCollectionDetailsBinding(
124 ::std::string const& collectionName,
125 ::std::string const& collectionPrefix,
126 ::BindingCondition bindingCondition
127 );
128
129 MCAPI void addGlobalBinding(
130 ::UiExpression bindingExpression,
131 ::std::string const& bindingNameOverride,
132 ::BindingCondition bindingCondition
133 );
134
135 MCAPI void addViewBinding(
136 ::std::shared_ptr<::UIControl>& sourceControl,
137 ::UiExpression sourcePropertyName,
138 ::std::string const& targetPropertyName
139 );
140
141 MCAPI void bindAlwaysBinds(::ScreenController& controller, bool visible);
142
143 MCAPI void bindHighPriorityBinds(::ScreenController& controller, bool visible);
144
145 MCAPI void bindLowPriorityBinds(::ScreenController& controller, bool visible);
146
147 MCFOLD bool getDirty() const;
148
149 MCAPI bool hasAlwaysBinds() const;
150
151 MCFOLD void setDirty(bool dirty);
152 // NOLINTEND
153
154public:
155 // constructor thunks
156 // NOLINTBEGIN
157 MCAPI void* $ctor(::UIControl& owner);
158 // NOLINTEND
159
160public:
161 // virtual function thunks
162 // NOLINTBEGIN
163 MCAPI ::std::unique_ptr<::UIComponent> $clone(::UIControl& cloneOwner) const;
164
165 MCAPI void $reset();
166 // NOLINTEND
167
168public:
169 // vftables
170 // NOLINTBEGIN
171 MCNAPI static void** $vftable();
172 // NOLINTEND
173};
Definition DataBindingComponent.h:5
static MCAPI void ** $vftable()
Definition ScreenController.h:5
Definition UIComponent.h:5
Definition UIControl.h:5
Definition DataBindingComponent.h:13