LeviLamina
Loading...
Searching...
No Matches
LibraryScreenController.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/screens/controllers/MainMenuScreenController.h"
8
9// auto generated forward declare list
10// clang-format off
12class LibraryItem;
15class UIPropertyBag;
16namespace Json { class Value; }
17namespace librarySearch { struct TelemetryData; }
18// clang-format on
19
21public:
22 // LibraryScreenController inner types define
23 enum class ItemType : uchar {
24 Normal = 0,
25 Large = 1,
26 };
27
28 enum class OptionalFeature : uchar {
29 None = 0,
30 FilterBar = 2,
31 FindWorldsAndFeedbackButtons = 4,
32 WelcomeMessage = 8,
33 };
34
35 enum class ScreenType : uchar {
36 None = 0,
37 Library = 1,
38 };
39
40 enum class ErrorType : uchar {
41 None = 0,
42 LibraryConnection = 1,
43 NoLessonsFound = 2,
44 };
45
46public:
47 // member variables
48 // NOLINTBEGIN
49 ::ll::TypedStorage<8, 16, ::std::shared_ptr<::librarySearch::TelemetryData>> mSearchTelemetryData;
50 ::ll::TypedStorage<8, 16, ::std::shared_ptr<::LibraryCollection>> mLibraryCollection;
51 ::ll::TypedStorage<8, 16, ::std::shared_ptr<::LibrarySearchBarScreenController>> mSearchBarSubController;
52 ::ll::TypedStorage<8, 32, ::std::string> mLibraryTitle;
53 ::ll::TypedStorage<8, 32, ::std::string> mLibraryIcon;
54 ::ll::TypedStorage<8, 32, ::std::string> mLibraryPageDescription;
55 ::ll::TypedStorage<8, 32, ::std::string> mCategoryTitle;
56 ::ll::TypedStorage<1, 1, ::LibraryScreenController::ItemType> mItemType;
57 ::ll::TypedStorage<1, 1, ::LibraryScreenController::OptionalFeature> mOptionalFeatures;
58 ::ll::TypedStorage<1, 1, ::LibraryScreenController::ScreenType> mScreenType;
59 ::ll::TypedStorage<1, 1, ::LibraryScreenController::ErrorType> mCurrentError;
60 ::ll::TypedStorage<1, 1, bool> mFetchComplete;
61 ::ll::TypedStorage<1, 1, bool> mShowingWelcome;
62 // NOLINTEND
63
64public:
65 // prevent constructor by default
66 LibraryScreenController();
67
68public:
69 // virtual functions
70 // NOLINTBEGIN
71 virtual ~LibraryScreenController() /*override*/;
72
73 virtual void addStaticScreenVars(::Json::Value& globalVars) /*override*/;
74
75 virtual void onOpen() /*override*/;
76
77 virtual void onInit() /*override*/;
78
79 virtual ::ui::DirtyFlag tick() /*override*/;
80 // NOLINTEND
81
82public:
83 // member functions
84 // NOLINTBEGIN
85 MCAPI LibraryScreenController(
86 ::std::shared_ptr<::MainMenuScreenModel> model,
87 ::std::shared_ptr<::LibraryCollection> collection,
88 ::LibraryScreenController::OptionalFeature optionalFeatures
89 );
90
91 MCAPI LibraryScreenController(
92 ::std::shared_ptr<::MainMenuScreenModel> model,
93 ::std::shared_ptr<::LibraryCollection> collection,
94 ::std::string const& title,
95 ::std::string const& icon,
96 ::std::string const& pageDescription,
97 ::LibraryScreenController::OptionalFeature optionalFeatures
98 );
99
100 MCAPI LibraryScreenController(
101 ::std::shared_ptr<::MainMenuScreenModel> model,
102 ::std::shared_ptr<::LibraryCollection> collection,
103 ::std::string const& title,
104 ::std::string const& icon,
105 ::std::string const& pageDescription,
106 ::std::string const& categoryTitle,
107 ::LibraryScreenController::OptionalFeature optionalFeatures
108 );
109
110 MCAPI void _fireEventLibrarySearch();
111
112 MCAPI ::LibraryItem* _getItem(::UIPropertyBag& bag) const;
113
114 MCAPI void _handleFetchErrors();
115
116 MCAPI void _initialize();
117
118 MCAPI void _initializeLibraryCollection(::std::shared_ptr<::LibraryCollection> libraryCollection);
119
120 MCAPI void _registerBindings();
121
122 MCAPI void _registerEventHandlers();
123
124 MCAPI bool isSearchResultScreen() const;
125 // NOLINTEND
126
127public:
128 // constructor thunks
129 // NOLINTBEGIN
130 MCAPI void* $ctor(
131 ::std::shared_ptr<::MainMenuScreenModel> model,
132 ::std::shared_ptr<::LibraryCollection> collection,
133 ::LibraryScreenController::OptionalFeature optionalFeatures
134 );
135
136 MCAPI void* $ctor(
137 ::std::shared_ptr<::MainMenuScreenModel> model,
138 ::std::shared_ptr<::LibraryCollection> collection,
139 ::std::string const& title,
140 ::std::string const& icon,
141 ::std::string const& pageDescription,
142 ::LibraryScreenController::OptionalFeature optionalFeatures
143 );
144
145 MCAPI void* $ctor(
146 ::std::shared_ptr<::MainMenuScreenModel> model,
147 ::std::shared_ptr<::LibraryCollection> collection,
148 ::std::string const& title,
149 ::std::string const& icon,
150 ::std::string const& pageDescription,
151 ::std::string const& categoryTitle,
152 ::LibraryScreenController::OptionalFeature optionalFeatures
153 );
154 // NOLINTEND
155
156public:
157 // destructor thunk
158 // NOLINTBEGIN
159 MCAPI void $dtor();
160 // NOLINTEND
161
162public:
163 // virtual function thunks
164 // NOLINTBEGIN
165 MCAPI void $addStaticScreenVars(::Json::Value& globalVars);
166
167 MCAPI void $onOpen();
168
169 MCAPI void $onInit();
170
171 MCAPI ::ui::DirtyFlag $tick();
172 // NOLINTEND
173
174public:
175 // vftables
176 // NOLINTBEGIN
178
179 MCNAPI static void** $vftableForScreenController();
180 // NOLINTEND
181};
Definition Value.h:16
Definition LibraryCollection.h:5
Definition LibraryItem.h:5
Definition LibraryScreenController.h:5
static MCAPI void ** $vftableForEnableNonOwnerReferences()
static MCAPI void ** $vftableForScreenController()
Definition LibrarySearchBarScreenController.h:5
Definition MainMenuScreenController.h:5
Definition MainMenuScreenModel.h:5
Definition UIPropertyBag.h:5
Definition TelemetryData.h:7