3#include "mc/_HeaderOutputPredefine.h"
6#include "mc/client/gui/DirtyFlag.h"
7#include "mc/client/gui/controls/ControlScreenAction.h"
8#include "mc/deps/json/Value.h"
23 ::ll::TypedStorage<8, 16, ::std::shared_ptr<::UIControl>> mRootControl;
24 ::ll::TypedStorage<8, 16, ::std::weak_ptr<::UIControl>> mInitialSelectedControl;
25 ::ll::TypedStorage<8, 32, ::std::string> mRootControlName;
26 ::ll::TypedStorage<4, 4, ::ui::DirtyFlag> mDirty;
27 ::ll::TypedStorage<1, 1, bool> mClearPersistantMeshes;
28 ::ll::TypedStorage<8, 8, ::UIMeasureStrategy*> mMeasureStrategy;
29 ::ll::TypedStorage<8, 24, ::std::vector<::std::pair<void*, ::std::weak_ptr<::UIControl>>>>
30 mNeedsToRemoveDeadDependencies;
31 ::ll::TypedStorage<8, 24, ::std::vector<::std::shared_ptr<::UIControl>>> mControlsToUpdate;
32 ::ll::TypedStorage<8, 24, ::std::vector<::std::shared_ptr<::UIControl>>> mControlsToUpdateBacklog;
33 ::ll::TypedStorage<8, 24, ::std::vector<::std::shared_ptr<::UIControl>>> mControlsToRemoveFromCollections;
34 ::ll::TypedStorage<8, 24, ::std::vector<::std::shared_ptr<::UIControl>>> mControlsToBind;
35 ::ll::TypedStorage<1, 1, bool> mUpdateCollectionsFromRoot;
36 ::ll::TypedStorage<1, 1, bool> mUpdateBindsFromRoot;
37 ::ll::TypedStorage<1, 1, bool> mTextEditFocusChanged;
38 ::ll::TypedStorage<1, 1, bool> mTextEditAlwaysListeningChanged;
39 ::ll::TypedStorage<1, 1, bool> mRootControlDestroyed;
40 ::ll::TypedStorage<1, 1, bool> mRootControlWasInitialized;
41 ::ll::TypedStorage<8, 16, ::Json::Value> mInitGlobalVars;
42 ::ll::TypedStorage<8, 8, ::std::unique_ptr<::VisualTreeProxy>> mProxy;
52 virtual ~VisualTree() ;
54 virtual ::std::shared_ptr<::UIControl> getControlWithName(::std::string
const& name) ;
56 virtual bool getDirty() ;
58 virtual bool getDirty(::ui::DirtyFlag flag) ;
60 virtual ::ui::DirtyFlag getDirtyValue() ;
62 virtual void addDirtyFlag(::ui::DirtyFlag flag) ;
64 virtual void measureControls(::UIControl& measureRoot) ;
66 virtual void markToRemoveDeadDependencies(::std::shared_ptr<::UIControl> control) ;
68 virtual void updateControlCollection(::std::shared_ptr<::UIControl> control) ;
70 virtual void updateControlCollectionFromRoot() ;
72 virtual void removeFromControlCollection(::std::shared_ptr<::UIControl> control) ;
74 virtual void updateControlBinds(::std::shared_ptr<::UIControl> control) ;
76 virtual void updateBindsFromRoot() ;
78 virtual void markTextEditFocusChanged() ;
80 virtual void markTextEditAlwaysListeningChanged() ;
86 MCAPI VisualTree(::std::string
const& rootControlName, ::Json::Value
const& initGlobalVars);
88 MCAPI
void clearBindUpdateFromRoot();
90 MCAPI
void clearControlCollectionUpdateFromRoot();
92 MCAPI
void clearControlsToBind();
94 MCAPI
void clearControlsToRemoveFromCollections();
96 MCAPI
void clearControlsUpdate(
bool clearBacklog);
98 MCAPI
void clearTextEditAlwaysListeningChanged();
100 MCAPI
void clearTextEditFocusChanged();
102 MCAPI
void destroyAsync(::TaskGroup& taskGroup);
104 MCFOLD
bool getClearPersistantMeshes();
106 MCAPI ::std::shared_ptr<::UIControl> getControlByName(::std::string
const& name,
bool visibleOnly);
108 MCAPI ::std::vector<::std::shared_ptr<::UIControl>>
109 getControls(::std::function<
bool(::UIControl
const&)> predicate);
111 MCFOLD ::std::vector<::std::shared_ptr<::UIControl>>&& getControlsToBind();
113 MCFOLD ::std::vector<::std::shared_ptr<::UIControl>>
const& getControlsToRemoveFromCollections();
115 MCAPI ::std::vector<::std::shared_ptr<::UIControl>>
const& getControlsToUpdate();
117 MCAPI ::std::shared_ptr<::UIControl> getFirstControl(::std::function<
bool(::UIControl
const&)>
const& predicate);
119 MCAPI ::std::shared_ptr<::UIControl>
120 getFirstControl(::UIControl& control, ::std::function<
bool(::UIControl
const&)>
const& predicate);
122 MCAPI ::std::shared_ptr<::UIControl>
123 getFirstVisibleControl(::std::function<
bool(::UIControl
const&)>
const& predicate);
125 MCFOLD ::Json::Value
const& getInitGlobalVars()
const;
127 MCAPI ::std::shared_ptr<::UIControl> getInitialSelectedControl()
const;
129 MCFOLD ::VisualTreeProxy* getProxy();
131 MCFOLD ::std::shared_ptr<::UIControl> getRootControl();
133 MCAPI ::std::vector<::std::shared_ptr<::UIControl>>
134 getVisibleControls(::std::function<
bool(::UIControl
const&)> predicate);
136 MCAPI
bool hasControlsToBind()
const;
138 MCAPI
bool hasControlsToUpdate();
140 MCAPI
void initRootControl(::std::shared_ptr<::UIControl> rootControl);
142 MCFOLD
bool needsControlBindsFromRoot()
const;
144 MCFOLD
bool needsControlCollectionUpdateFromRoot()
const;
146 MCAPI ::std::unique_ptr<::VisualTree> recreateControlTree(::UIControlFactory& controlFactory);
148 MCAPI
void removeDeadDependencies();
150 MCAPI
void removeDirtyFlag(::ui::DirtyFlag flag);
154 MCAPI
void setClearPersistantMeshes(
bool clearMeshes);
156 MCAPI
void setDirty(
bool dirty);
158 MCAPI
void setInitialSelectedControl(::std::shared_ptr<::UIControl> control);
160 MCAPI
void setMeasureStrategy(::UIMeasureStrategy* measureStrategy);
162 MCFOLD
void setRootControlName(::std::string
const& name);
164 MCAPI
void storeGlobalVars(::Json::Value
const& vars);
166 MCFOLD
bool textEditAlwaysListeningChanged()
const;
168 MCFOLD
bool textEditFocusChanged()
const;
170 MCAPI
void visitTree(::UIControl* fromControl, ::std::function<
bool(::UIControl&,
int,
bool)> visitor);
176 MCAPI
static void _destroyAsync(::TaskGroup& taskGroup, ::std::shared_ptr<::UIControl> control);
182 MCAPI
void* $ctor(::std::string
const& rootControlName, ::Json::Value
const& initGlobalVars);
194 MCAPI ::std::shared_ptr<::UIControl> $getControlWithName(::std::string
const& name);
196 MCAPI
bool $getDirty();
198 MCAPI
bool $getDirty(::ui::DirtyFlag flag);
200 MCFOLD ::ui::DirtyFlag $getDirtyValue();
202 MCAPI
void $addDirtyFlag(::ui::DirtyFlag flag);
204 MCAPI
void $measureControls(::UIControl& measureRoot);
206 MCAPI
void $markToRemoveDeadDependencies(::std::shared_ptr<::UIControl> control);
208 MCAPI
void $updateControlCollection(::std::shared_ptr<::UIControl> control);
210 MCAPI
void $updateControlCollectionFromRoot();
212 MCAPI
void $removeFromControlCollection(::std::shared_ptr<::UIControl> control);
214 MCAPI
void $updateControlBinds(::std::shared_ptr<::UIControl> control);
216 MCAPI
void $updateBindsFromRoot();
218 MCAPI
void $markTextEditFocusChanged();
220 MCAPI
void $markTextEditAlwaysListeningChanged();
Definition ControlScreenAction.h:5
Definition TaskGroup.h:55
Definition UIControlFactory.h:5
Definition UIMeasureStrategy.h:5
Definition VisualTreeProxy.h:5
Definition VisualTree.h:5
static MCAPI void ** $vftable()