LeviLamina
Loading...
Searching...
No Matches
VisualTree.h
1#pragma once
2
3#include "mc/_HeaderOutputPredefine.h"
4
5// auto generated inclusion list
6#include "mc/client/gui/DirtyFlag.h"
7#include "mc/client/gui/controls/ControlScreenAction.h"
8#include "mc/deps/json/Value.h"
9
10// auto generated forward declare list
11// clang-format off
12class TaskGroup;
13class UIControl;
16class VisualTreeProxy;
17// clang-format on
18
19class VisualTree : public ::ControlScreenAction {
20public:
21 // member variables
22 // NOLINTBEGIN
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;
43 // NOLINTEND
44
45public:
46 // prevent constructor by default
47 VisualTree();
48
49public:
50 // virtual functions
51 // NOLINTBEGIN
52 virtual ~VisualTree() /*override*/;
53
54 virtual ::std::shared_ptr<::UIControl> getControlWithName(::std::string const& name) /*override*/;
55
56 virtual bool getDirty() /*override*/;
57
58 virtual bool getDirty(::ui::DirtyFlag flag) /*override*/;
59
60 virtual ::ui::DirtyFlag getDirtyValue() /*override*/;
61
62 virtual void addDirtyFlag(::ui::DirtyFlag flag) /*override*/;
63
64 virtual void measureControls(::UIControl& measureRoot) /*override*/;
65
66 virtual void markToRemoveDeadDependencies(::std::shared_ptr<::UIControl> control) /*override*/;
67
68 virtual void updateControlCollection(::std::shared_ptr<::UIControl> control) /*override*/;
69
70 virtual void updateControlCollectionFromRoot() /*override*/;
71
72 virtual void removeFromControlCollection(::std::shared_ptr<::UIControl> control) /*override*/;
73
74 virtual void updateControlBinds(::std::shared_ptr<::UIControl> control) /*override*/;
75
76 virtual void updateBindsFromRoot() /*override*/;
77
78 virtual void markTextEditFocusChanged() /*override*/;
79
80 virtual void markTextEditAlwaysListeningChanged() /*override*/;
81 // NOLINTEND
82
83public:
84 // member functions
85 // NOLINTBEGIN
86 MCAPI VisualTree(::std::string const& rootControlName, ::Json::Value const& initGlobalVars);
87
88 MCAPI ::std::shared_ptr<::UIControl> getControlByName(::std::string const& name, bool visibleOnly);
89
90 MCAPI ::std::vector<::std::shared_ptr<::UIControl>>
91 getControls(::std::function<bool(::UIControl const&)> predicate);
92
93 MCAPI ::std::vector<::std::shared_ptr<::UIControl>>
94 getVisibleControls(::std::function<bool(::UIControl const&)> predicate);
95
96 MCAPI ::std::unique_ptr<::VisualTree> recreateControlTree(::UIControlFactory& controlFactory);
97
98 MCAPI void removeDeadDependencies();
99 // NOLINTEND
100
101public:
102 // static functions
103 // NOLINTBEGIN
104 MCAPI static void _destroyAsync(::TaskGroup& taskGroup, ::std::shared_ptr<::UIControl> control);
105 // NOLINTEND
106
107public:
108 // constructor thunks
109 // NOLINTBEGIN
110 MCAPI void* $ctor(::std::string const& rootControlName, ::Json::Value const& initGlobalVars);
111 // NOLINTEND
112
113public:
114 // destructor thunk
115 // NOLINTBEGIN
116 MCAPI void $dtor();
117 // NOLINTEND
118
119public:
120 // virtual function thunks
121 // NOLINTBEGIN
122 MCAPI ::std::shared_ptr<::UIControl> $getControlWithName(::std::string const& name);
123
124 MCAPI bool $getDirty();
125
126 MCAPI bool $getDirty(::ui::DirtyFlag flag);
127
128 MCFOLD ::ui::DirtyFlag $getDirtyValue();
129
130 MCAPI void $addDirtyFlag(::ui::DirtyFlag flag);
131
132 MCAPI void $measureControls(::UIControl& measureRoot);
133
134 MCAPI void $markToRemoveDeadDependencies(::std::shared_ptr<::UIControl> control);
135
136 MCAPI void $updateControlCollection(::std::shared_ptr<::UIControl> control);
137
138 MCAPI void $updateControlCollectionFromRoot();
139
140 MCAPI void $removeFromControlCollection(::std::shared_ptr<::UIControl> control);
141
142 MCAPI void $updateControlBinds(::std::shared_ptr<::UIControl> control);
143
144 MCAPI void $updateBindsFromRoot();
145
146 MCAPI void $markTextEditFocusChanged();
147
148 MCAPI void $markTextEditAlwaysListeningChanged();
149 // NOLINTEND
150};
Definition ControlScreenAction.h:5
Definition TaskGroup.h:61
Definition UIControlFactory.h:5
Definition UIControl.h:5
Definition UIMeasureStrategy.h:5
Definition VisualTreeProxy.h:5
Definition VisualTree.h:5