3#include "mc/_HeaderOutputPredefine.h"
6#include "mc/client/gui/DirtyFlag.h"
7#include "mc/client/gui/GameEventNotification.h"
8#include "mc/client/gui/SceneType.h"
9#include "mc/client/gui/ViewRequest.h"
10#include "mc/client/gui/screens/ScreenViewCommand.h"
11#include "mc/client/gui/screens/interfaces/IScreenController.h"
12#include "mc/deps/input/enums/ButtonState.h"
13#include "mc/platform/brstd/move_only_function.h"
33namespace Json {
class Value; }
34namespace mce {
class Color; }
45 enum class PreviousButtonStateRequirement :
int {
53 enum class SliderChangeType :
int {
61 using FocusMoveEventHandlerCallback =
62 ::brstd::move_only_function<::ui::ViewRequest(::FocusMoveScreenEventData&)
const>;
64 using InputModeChangedEventHandlerCallback =
65 ::brstd::move_only_function<::ui::ViewRequest(::InputModeChangeScreenEventData&)
const>;
67 using PointerHeldEventHandlerCallback =
68 ::brstd::move_only_function<::ui::ViewRequest(::PointerHeldScreenEventData&)
const>;
70 using ButtonEventHandlerCallback = ::brstd::move_only_function<::ui::ViewRequest(::UIPropertyBag*)
const>;
72 using TextEventHandlerCallback =
73 ::brstd::move_only_function<::ui::ViewRequest(::TextEditScreenEventData&,
int)
const>;
75 using ToggleChangeEventHandlerCallback =
76 ::brstd::move_only_function<::ui::ViewRequest(::ToggleChangeEventData&)
const>;
78 using TextEditSelectedStateChangeEventHandlerCallback =
79 ::brstd::move_only_function<::ui::ViewRequest(::TextEditSelectedStateChangeEventData&)
const>;
81 using SliderChangeEventHandlerCallback = ::brstd::move_only_function<::ui::ViewRequest(
int,
float)
const>;
83 using AnimationEventHandlerCallback = ::brstd::move_only_function<::ui::ViewRequest() const>;
85 using RawInputEventHandlerCallback =
86 ::brstd::move_only_function<::ui::ViewRequest(::RawInputScreenEventData&) const>;
88 using ClippedCollectionEventHandlerCallback =
89 ::brstd::move_only_function<::ui::ViewRequest(
int,
int, ::UIPropertyBag&) const>;
91 using ClipStateChangeEventHandlerCallback =
92 ::brstd::move_only_function<::ui::ViewRequest(
bool, ::UIPropertyBag&) const>;
94 using CustomRendererEventHandlerCallback = ::brstd::move_only_function<::ui::ViewRequest() const>;
96 using BindPredicate = ::brstd::move_only_function<
bool() const>;
98 using BindStringCallback = ::brstd::move_only_function<::std::
string() const>;
100 using BindBoolCallback = ::brstd::move_only_function<
bool() const>;
102 using BindIntCallback = ::brstd::move_only_function<
int() const>;
104 using BindFloatCallback = ::brstd::move_only_function<
float() const>;
106 using BindGridSizeCallback = ::brstd::move_only_function<::glm::ivec2() const>;
108 using BindGlobalGridSizeCallback = ::brstd::move_only_function<
void(::std::
string const&, ::UIPropertyBag&) const>;
110 using BindColorCallback = ::brstd::move_only_function<::mce::Color() const>;
112 using BindColorWithBagCallback = ::brstd::move_only_function<::mce::Color(::UIPropertyBag&) const>;
114 using BindCollectionPredicate = ::brstd::move_only_function<
bool(
int) const>;
116 using BindStringForCollectionCallback = ::brstd::move_only_function<::std::
string(
int) const>;
118 using BindBoolForCollectionCallback = ::brstd::move_only_function<
bool(
int) const>;
120 using BindFloatForCollectionCallback = ::brstd::move_only_function<
float(
int) const>;
122 using BindIntForCollectionCallback = ::brstd::move_only_function<
int(
int) const>;
124 using BindColorForCollectionCallback = ::brstd::move_only_function<::mce::Color(
int) const>;
126 using BindAnyCollectionPredicate = ::brstd::move_only_function<
bool(::std::
string const&,
int) const>;
128 using BindItemDataForAnyCollectionCallback =
129 ::brstd::move_only_function<::ItemRendererData(::std::
string const&,
int) const>;
131 using BindStringForAnyCollectionCallback =
132 ::brstd::move_only_function<::std::
string(::std::
string const&,
int) const>;
134 using BindBoolForAnyCollectionCallback = ::brstd::move_only_function<
bool(::std::
string const&,
int) const>;
136 using BindIntForAnyCollectionCallback = ::brstd::move_only_function<
int(::std::
string const&,
int) const>;
138 using BindFloatForAnyCollectionCallback = ::brstd::move_only_function<
float(::std::
string const&,
int) const>;
140 using BindDoubleForAnyCollectionCallback = ::brstd::move_only_function<
double(::std::
string const&,
int) const>;
142 using BindForAnyCollectionCallback =
143 ::brstd::move_only_function<
void(
int, ::std::
string const&, ::UIPropertyBag&) const>;
145 using BindForCollectionCallback =
146 ::brstd::move_only_function<
void(::std::
string const&,
int, ::std::
string const&, ::UIPropertyBag&) const>;
148 using BindForGlobalCallback = ::brstd::move_only_function<
void(::std::
string const&, ::UIPropertyBag&) const>;
150 using ButtonEventCallbackKey = ::std::tuple<uint, ::ButtonState>;
152 using ButtonEventCallbackInfo = ::std::tuple<
153 ::ScreenController::PreviousButtonStateRequirement,
154 ::brstd::move_only_function<::ui::ViewRequest(::UIPropertyBag*) const>>;
156 using ButtonEventCallbackInfoVector = ::std::vector<::std::tuple<
157 ::ScreenController::PreviousButtonStateRequirement,
158 ::brstd::move_only_function<::ui::ViewRequest(::UIPropertyBag*) const>>>;
160 using ButtonEventCallbackMap = ::std::unordered_map<
161 ::std::tuple<uint, ::ButtonState>,
162 ::std::vector<::std::tuple<
163 ::ScreenController::PreviousButtonStateRequirement,
164 ::brstd::move_only_function<::ui::ViewRequest(::UIPropertyBag*) const>>>,
166 ::std::equal_to<::std::tuple<uint, ::ButtonState>>>;
168 using ButtonInteractedEventCallbackVector =
169 ::std::vector<::brstd::move_only_function<::ui::ViewRequest(::UIPropertyBag*) const>>;
171 using ButtonInteractedEventCallbackMap = ::std::
172 unordered_map<uint, ::std::vector<::brstd::move_only_function<::ui::ViewRequest(::UIPropertyBag*) const>>>;
174 using ToggleChangeEventCallbackVector =
175 ::std::vector<::brstd::move_only_function<::ui::ViewRequest(::ToggleChangeEventData&) const>>;
177 using ToggleChangeEventCallbackMap = ::std::unordered_map<
179 ::std::vector<::brstd::move_only_function<::ui::ViewRequest(::ToggleChangeEventData&) const>>>;
181 using TextEditSelectedStateChangeEventCallbackVector =
182 ::std::vector<::brstd::move_only_function<::ui::ViewRequest(::TextEditSelectedStateChangeEventData&) const>>;
184 using TextEditSelectedStateChangeEventCallbackMap = ::std::unordered_map<
186 ::std::vector<::brstd::move_only_function<::ui::ViewRequest(::TextEditSelectedStateChangeEventData&) const>>>;
188 using SliderChangeEventHandlerCallbackInfo = ::std::
189 tuple<::ScreenController::SliderChangeType, ::brstd::move_only_function<::ui::ViewRequest(
int,
float) const>>;
191 using SliderChangeEventCallbackVector = ::std::vector<::std::tuple<
192 ::ScreenController::SliderChangeType,
193 ::brstd::move_only_function<::ui::ViewRequest(
int,
float) const>>>;
195 using SliderChangeEventCallbackMap = ::std::unordered_map<
197 ::std::vector<::std::tuple<
198 ::ScreenController::SliderChangeType,
199 ::brstd::move_only_function<::ui::ViewRequest(
int,
float) const>>>>;
201 using TextEventHandlerCallbackInfo =
202 ::std::tuple<
bool, ::brstd::move_only_function<::ui::ViewRequest(::TextEditScreenEventData&,
int) const>>;
204 using TextEventHandlerCallbackVector = ::std::vector<
205 ::std::tuple<
bool, ::brstd::move_only_function<::ui::ViewRequest(::TextEditScreenEventData&,
int) const>>>;
207 using TextEventHandlerCallbackMap = ::std::unordered_map<
210 ::std::tuple<
bool, ::brstd::move_only_function<::ui::ViewRequest(::TextEditScreenEventData&,
int) const>>>>;
212 using AnimationEventHandlerCallbackVector = ::std::vector<::brstd::move_only_function<::ui::ViewRequest() const>>;
214 using AnimationEventHandlerCallbackMap =
215 ::std::unordered_map<uint, ::std::vector<::brstd::move_only_function<::ui::ViewRequest() const>>>;
217 using ClippedCollectionEventHandlerCallbackVector =
218 ::std::vector<::brstd::move_only_function<::ui::ViewRequest(
int,
int, ::UIPropertyBag&) const>>;
220 using ClippedCollectionEventHandlerCallbackMap = ::std::unordered_map<
222 ::std::vector<::brstd::move_only_function<::ui::ViewRequest(
int,
int, ::UIPropertyBag&) const>>>;
224 using ClipStateChangeHandlerCallbackVector =
225 ::std::vector<::brstd::move_only_function<::ui::ViewRequest(
bool, ::UIPropertyBag&) const>>;
227 using ClipStateChangeEventHandlerCallbackMap = ::std::unordered_map<
229 ::std::vector<::brstd::move_only_function<::ui::ViewRequest(
bool, ::UIPropertyBag&) const>>>;
231 using CustomRendererEventHandlerCallbackVector =
232 ::std::vector<::brstd::move_only_function<::ui::ViewRequest() const>>;
234 using CustomRendererEventHandlerCallbackMap =
235 ::std::unordered_map<uint, ::std::vector<::brstd::move_only_function<::ui::ViewRequest() const>>>;
240 ::ll::TypedStorage<8, 64, ::std::function<
void(::std::
string const&, ::UIPropertyBag const&)>>
241 mControlCreateCallback;
242 ::ll::TypedStorage<8, 64, ::std::function<
void(::std::
string const&, ::std::
string const&)>>
243 mControlDestroyCallback;
244 ::ll::TypedStorage<8, 64, ::std::function<
void(::std::
string const&)>> mControlDestroyAllCallback;
245 ::ll::TypedStorage<8, 64, ::std::function<
void(::std::
string const&)>> mScreenViewSendManualInputEventCallback;
246 ::ll::TypedStorage<8, 8, ::std::unique_ptr<::ScreenControllerProxy>> mProxy;
247 ::ll::TypedStorage<1, 1,
bool> mCreateInitialized;
248 ::ll::TypedStorage<1, 1,
bool> mInitialized;
249 ::ll::TypedStorage<1, 1,
bool> mUsesErrorInfo;
250 ::ll::TypedStorage<8, 1408, ::ScreenViewCommand> mScreenViewCommand;
251 ::ll::TypedStorage<1, 1,
bool> mIsScrollingLocked;
255 ::std::unordered_map<
256 ::std::tuple<uint, ::ButtonState>,
257 ::std::vector<::std::tuple<
258 ::ScreenController::PreviousButtonStateRequirement,
259 ::brstd::move_only_function<::ui::ViewRequest(::UIPropertyBag*) const>>>,
261 ::std::equal_to<::std::tuple<uint, ::ButtonState>>>>
262 mButtonEventCallbackMap;
267 unordered_map<uint, ::std::vector<::brstd::move_only_function<::ui::ViewRequest(::UIPropertyBag*) const>>>>
268 mButtonInteractedEventCallbackMap;
269 ::ll::TypedStorage<8, 64, ::brstd::move_only_function<::ui::ViewRequest(::RawInputScreenEventData&) const>>
270 mRawInputEventHandlerCallback;
274 ::std::vector<::brstd::move_only_function<::ui::ViewRequest(::FocusMoveScreenEventData&) const>>>
275 mFocusMoveEventCallbacks;
279 ::std::vector<::brstd::move_only_function<::ui::ViewRequest(::InputModeChangeScreenEventData&) const>>>
280 mInputModeChangedEventCallbacks;
284 ::std::vector<::brstd::move_only_function<::ui::ViewRequest(::PointerHeldScreenEventData&) const>>>
285 mPointerHeldEventCallbacks;
289 ::std::unordered_map<
291 ::std::vector<::std::tuple<
293 ::brstd::move_only_function<::ui::ViewRequest(::TextEditScreenEventData&,
int) const>>>>>
294 mTextEditEventCallbackMap;
298 ::std::unordered_map<
300 ::std::vector<::brstd::move_only_function<::ui::ViewRequest(::ToggleChangeEventData&) const>>>>
301 mToggleChangeEventCallbackMap;
305 ::std::unordered_map<
308 ::brstd::move_only_function<::ui::ViewRequest(::TextEditSelectedStateChangeEventData&) const>>>>
309 mTextEditSelectedStateChangeEventCallbackMap;
310 ::ll::TypedStorage<8, 24, ::std::vector<::std::shared_ptr<::ScreenController>>> mSubControllers;
314 ::std::unordered_map<
316 ::std::vector<::std::tuple<
317 ::ScreenController::SliderChangeType,
318 ::brstd::move_only_function<::ui::ViewRequest(
int,
float) const>>>>>
319 mSliderChangeEventCallbackMap;
323 ::std::unordered_map<uint, ::std::vector<::brstd::move_only_function<::ui::ViewRequest() const>>>>
324 mAnimationEventCallbackMap;
328 ::std::unordered_map<
330 ::std::vector<::brstd::move_only_function<::ui::ViewRequest(
int,
int, ::UIPropertyBag&) const>>>>
331 mClippedCollectionEventCallbackMap;
335 ::std::unordered_map<
337 ::std::vector<::brstd::move_only_function<::ui::ViewRequest(
bool, ::UIPropertyBag&) const>>>>
338 mClipStateChangeEventCallbackMap;
342 ::std::unordered_map<uint, ::std::vector<::brstd::move_only_function<::ui::ViewRequest() const>>>>
343 mCustomRendererEventHandlerCallbackMap;
347 ::std::unordered_map<uint, ::brstd::move_only_function<
void(::std::
string const&, ::UIPropertyBag&)>>>
352 ::std::unordered_map<uint, ::brstd::move_only_function<
void(
int, ::std::
string const&, ::UIPropertyBag&)>>>
353 mCollectionBindCallbacks;
357 ::std::unordered_map<
359 ::brstd::move_only_function<
void(::std::
string const&,
int, ::std::
string const&, ::UIPropertyBag&)>>>
360 mAnyCollectionBindCallbacks;
361 ::ll::TypedStorage<8, 8, ::std::unique_ptr<::TaskGroup>> mTaskGroup;
371 virtual ~ScreenController() ;
373 virtual ::ui::DirtyFlag tick() ;
375 virtual
void preFrameTick() ;
377 virtual ::ui::ViewRequest handleEvent(::ScreenEvent& screenEvent) ;
379 virtual ::std::optional<::std::
string> getRoute() const ;
381 virtual
void setScreenState(::std::vector<::std::pair<::std::string_view, ::std::string_view>> const&) ;
383 virtual
void onOpen();
385 virtual
void queueTitleNarration();
387 virtual
void onTerminate();
389 virtual
void onInit();
391 virtual
void onDelete();
393 virtual
bool canExit();
395 virtual ::ui::ViewRequest tryExit();
397 virtual
void onCreation();
399 virtual
void onReload();
401 virtual
void onLeave();
403 virtual
void leaveScreen(::std::
string const&);
405 virtual ::ui::DirtyFlag handleGameEventNotification(::ui::GameEventNotification);
408 ::std::
string const& collectionName,
409 uint collectionNameHash,
411 ::std::
string const& bindingName,
412 uint bindingNameHash,
413 ::std::
string const& bindingNameOverride,
418 ::std::
string const& bindingName,
419 uint bindingNameHash,
420 ::std::
string const& bindingNameOverride,
424 virtual
void handleLicenseChanged();
426 virtual
void setAssociatedBlockPos(::BlockPos const& pos);
428 virtual
void setAssociatedEntityUniqueID(::ActorUniqueID const unqiueID);
430 virtual
void setSuspendInput(
bool);
432 virtual
void setSuspendDirectionalInput(
bool);
434 virtual
void setViewCommand(::ScreenViewCommand const& callback);
436 virtual
void addStaticScreenVars(::Json::Value& globalVars);
438 virtual ::std::
string getAdditionalScreenInfo() const;
440 virtual ::std::
string getTelemetryOverride() const;
442 virtual
void addEventProperties(::std::unordered_map<::std::
string, ::std::
string>&) const;
444 virtual ::ui::SceneType getSceneType() const;
446 virtual
int getScreenVersion() const;
448 virtual uint getSceneId() const;
450 virtual ::ScreenControllerProxy* getProxy();
452 virtual
void onEntered();
454 virtual
void onScreenPushedAbove();
456 virtual
void onEntering();
458 virtual
bool _doesScreenHaveExitBehavior() const;
460 virtual
bool _isContainerScreen() const;
466 MCAPI explicit ScreenController(
bool useTaskGroup);
468 MCAPI uint _getNameId(::std::
string const& name) const;
470 MCAPI ::ui::ViewRequest _handleButtonEvent(::ScreenEvent& screenEvent);
472 MCAPI ::ui::ViewRequest _handleEvent(::ScreenEvent& screenEvent);
474 MCAPI
void _registerSubController(::std::shared_ptr<::ScreenController> controller);
477 ::StringHash const& bindingName,
478 ::brstd::move_only_function<
bool() const> callback,
479 ::brstd::move_only_function<
bool() const> condition
482 MCAPI
void bindBoolForAnyCollection(
483 ::StringHash const& bindingName,
484 ::brstd::move_only_function<
bool(::std::
string const&,
int) const> callback,
485 ::brstd::move_only_function<
bool(::std::
string const&,
int) const> condition
488 MCAPI
void bindBoolForCollection(
489 ::StringHash const& collectionName,
490 ::StringHash const& bindingName,
491 ::brstd::move_only_function<
bool(
int) const> callback,
492 ::brstd::move_only_function<
bool(
int) const> condition
495 MCAPI
void bindColor(
496 ::StringHash const& bindingName,
497 ::brstd::move_only_function<::mce::Color() const> callback,
498 ::brstd::move_only_function<
bool() const> condition
501 MCAPI
void bindColorForCollection(
502 ::StringHash const& collectionName,
503 ::StringHash const& bindingName,
504 ::brstd::move_only_function<::mce::Color(
int) const> callback,
505 ::brstd::move_only_function<
bool(
int) const> condition
508 MCAPI
void bindColorWithPropertyBag(
509 ::StringHash const& bindingName,
510 ::brstd::move_only_function<::mce::Color(::UIPropertyBag&) const> callback,
511 ::brstd::move_only_function<
bool() const> condition
514 MCAPI
void bindDoubleForAnyCollection(
515 ::StringHash const& bindingName,
516 ::brstd::move_only_function<
double(::std::
string const&,
int) const> callback,
517 ::brstd::move_only_function<
bool(::std::
string const&,
int) const> condition
520 MCAPI
void bindFloat(
521 ::StringHash const& bindingName,
522 ::brstd::move_only_function<
float() const> callback,
523 ::brstd::move_only_function<
bool() const> condition
526 MCAPI
void bindFloatForAnyCollection(
527 ::StringHash const& bindingName,
528 ::brstd::move_only_function<
float(::std::
string const&,
int) const> callback,
529 ::brstd::move_only_function<
bool(::std::
string const&,
int) const> condition
532 MCAPI
void bindFloatForCollection(
533 ::StringHash const& collectionName,
534 ::StringHash const& bindingName,
535 ::brstd::move_only_function<
float(
int) const> callback,
536 ::brstd::move_only_function<
bool(
int) const> condition
539 MCAPI
void bindForAnyCollection(
540 ::StringHash const& bindingName,
541 ::brstd::move_only_function<
void(
int, ::std::
string const&, ::UIPropertyBag&) const> callback,
542 ::brstd::move_only_function<
bool(::std::
string const&,
int) const> condition
545 MCAPI
void bindForAnyCollection(
546 ::StringHash const& bindingName,
547 ::brstd::move_only_function<
void(::std::
string const&,
int, ::std::
string const&, ::UIPropertyBag&) const>
549 ::brstd::move_only_function<
bool(::std::
string const&,
int) const> condition
552 MCAPI
void bindForCollection(
553 ::StringHash const& collectionName,
554 ::StringHash const& bindingName,
555 ::brstd::move_only_function<
void(
int, ::std::
string const&, ::UIPropertyBag&) const> func
558 MCAPI
void bindForGlobal(
559 ::StringHash const& bindingName,
560 ::brstd::move_only_function<
void(::std::
string const&, ::UIPropertyBag&) const> func
563 MCAPI
void bindForGlobalGridSize(
564 ::StringHash const& bindingName,
565 ::brstd::move_only_function<
void(::std::
string const&, ::UIPropertyBag&) const> callback,
566 ::brstd::move_only_function<
bool() const> condition
569 MCAPI
void bindGridSize(
570 ::StringHash const& bindingName,
571 ::brstd::move_only_function<::glm::ivec2() const> callback,
572 ::brstd::move_only_function<
bool() const> condition
576 ::StringHash const& bindingName,
577 ::brstd::move_only_function<
int() const> callback,
578 ::brstd::move_only_function<
bool() const> condition
581 MCAPI
void bindIntForAnyCollection(
582 ::StringHash const& bindingName,
583 ::brstd::move_only_function<
int(::std::
string const&,
int) const> callback,
584 ::brstd::move_only_function<
bool(::std::
string const&,
int) const> condition
587 MCAPI
void bindIntForCollection(
588 ::StringHash const& collectionName,
589 ::StringHash const& bindingName,
590 ::brstd::move_only_function<
int(
int) const> callback,
591 ::brstd::move_only_function<
bool(
int) const> condition
594 MCAPI
void bindItemDataForAnyCollection(
595 ::StringHash const& bindingName,
596 ::brstd::move_only_function<::ItemRendererData(::std::
string const&,
int) const> callback,
597 ::brstd::move_only_function<
bool(::std::
string const&,
int) const> condition
600 MCAPI
void bindString(
601 ::StringHash const& bindingName,
602 ::brstd::move_only_function<::std::
string() const> callback,
603 ::brstd::move_only_function<
bool() const> condition
606 MCAPI
void bindStringForAnyCollection(
607 ::StringHash const& bindingName,
608 ::brstd::move_only_function<::std::
string(::std::
string const&,
int) const> callback,
609 ::brstd::move_only_function<
bool(::std::
string const&,
int) const> condition
612 MCAPI
void bindStringForCollection(
613 ::StringHash const& collectionName,
614 ::StringHash const& bindingName,
615 ::brstd::move_only_function<::std::
string(
int) const> callback,
616 ::brstd::move_only_function<
bool(
int) const> condition
619 MCAPI
bool hasFinishedAsyncTasks() const;
621 MCAPI
void queueAsyncTask(::brstd::move_only_function<::TaskResult()>&& task, ::std::function<
void()>&& callback);
624 registerAnimationEventHandler(uint eventId, ::brstd::move_only_function<::ui::ViewRequest() const> callback);
626 MCAPI
void registerButtonEventHandler(
628 ::ButtonState currentState,
629 ::ButtonState previousState,
630 ::brstd::move_only_function<::ui::ViewRequest(::UIPropertyBag*) const> callback
633 MCAPI
void registerButtonEventHandler(
635 ::ButtonState currentState,
636 ::ScreenController::PreviousButtonStateRequirement previousStateRequirement,
637 ::brstd::move_only_function<::ui::ViewRequest(::UIPropertyBag*) const> callback
640 MCAPI
void registerButtonInteractedHandler(
642 ::brstd::move_only_function<::ui::ViewRequest(::UIPropertyBag*) const> callback
645 MCAPI
void registerButtonPressedHandler(
647 ::brstd::move_only_function<::ui::ViewRequest(::UIPropertyBag*) const> callback
650 MCAPI
void registerButtonReleasedHandler(
652 ::brstd::move_only_function<::ui::ViewRequest(::UIPropertyBag*) const> callback
655 MCAPI
void registerClipStateChangeEventHandler(
657 ::brstd::move_only_function<::ui::ViewRequest(
bool, ::UIPropertyBag&) const> callback
660 MCAPI
void registerClippedCollectionEventHandler(
661 ::StringHash const& collectionName,
662 ::brstd::move_only_function<::ui::ViewRequest(
int,
int, ::UIPropertyBag&) const> callback
666 registerCustomRendererEventHandler(uint eventId, ::brstd::move_only_function<::ui::ViewRequest() const> callback);
668 MCAPI
void registerFocusMovedEventHandler(
669 ::brstd::move_only_function<::ui::ViewRequest(::FocusMoveScreenEventData&) const> callback
672 MCAPI
void registerInputModechangedEventHandler(
673 ::brstd::move_only_function<::ui::ViewRequest(::InputModeChangeScreenEventData&) const> callback
676 MCAPI
void registerPointerHeldEventHandler(
677 ::brstd::move_only_function<::ui::ViewRequest(::PointerHeldScreenEventData&) const> callback
680 MCAPI
void registerSliderChangedEventHandler(
682 ::brstd::move_only_function<::ui::ViewRequest(
int,
float) const> callback
685 MCAPI
void registerSliderFinishedEventHandler(
687 ::brstd::move_only_function<::ui::ViewRequest(
int,
float) const> callback
690 MCAPI
void registerSliderNotFinishedEventHandler(
692 ::brstd::move_only_function<::ui::ViewRequest(
int,
float) const> callback
695 MCAPI
void registerTextEditChangedEventHandler(
697 ::brstd::move_only_function<::ui::ViewRequest(::TextEditScreenEventData&,
int) const> callback
700 MCAPI
void registerTextEditFinishedEventHandler(
702 ::brstd::move_only_function<::ui::ViewRequest(::TextEditScreenEventData&,
int) const> callback
705 MCAPI
void registerTextEditSelectedStateChangeEventHandler(
707 ::brstd::move_only_function<::ui::ViewRequest(::TextEditSelectedStateChangeEventData&) const> callback
710 MCAPI
void registerTextEventHandler(
711 ::brstd::move_only_function<::ui::ViewRequest(::TextEditScreenEventData&,
int) const> callback
714 MCAPI
void registerToggleChangeEventHandler(
716 ::brstd::move_only_function<::ui::ViewRequest(::ToggleChangeEventData&) const> callback
720 setControlFactoryCreateCallback(::std::function<
void(::std::
string const&, ::UIPropertyBag const&)> callback);
722 MCAPI
void setControlFactoryDestroyAllCallback(::std::function<
void(::std::
string const&)> callback);
725 setControlFactoryDestroyCallback(::std::function<
void(::std::
string const&, ::std::
string const&)> callback);
731 MCAPI
void* $ctor(
bool useTaskGroup);
743 MCAPI ::ui::DirtyFlag $tick();
745 MCFOLD
void $preFrameTick();
747 MCAPI ::ui::ViewRequest $handleEvent(::ScreenEvent& screenEvent);
749 MCFOLD ::std::optional<::std::
string> $getRoute() const;
751 MCFOLD
void $setScreenState(::std::vector<::std::pair<::std::string_view, ::std::string_view>> const&);
753 MCAPI
void $onOpen();
755 MCAPI
void $queueTitleNarration();
757 MCFOLD
void $onTerminate();
759 MCAPI
void $onInit();
761 MCFOLD
void $onDelete();
763 MCAPI
bool $canExit();
765 MCFOLD ::ui::ViewRequest $tryExit();
767 MCAPI
void $onCreation();
769 MCFOLD
void $onReload();
771 MCAPI
void $onLeave();
773 MCFOLD
void $leaveScreen(::std::
string const&);
776 ::std::
string const& collectionName,
777 uint collectionNameHash,
779 ::std::
string const& bindingName,
780 uint bindingNameHash,
781 ::std::
string const& bindingNameOverride,
786 ::std::
string const& bindingName,
787 uint bindingNameHash,
788 ::std::
string const& bindingNameOverride,
792 MCFOLD
void $handleLicenseChanged();
794 MCFOLD
void $setAssociatedBlockPos(::BlockPos const& pos);
796 MCFOLD
void $setAssociatedEntityUniqueID(::ActorUniqueID const unqiueID);
798 MCFOLD
void $setSuspendInput(
bool);
800 MCFOLD
void $setSuspendDirectionalInput(
bool);
802 MCAPI
void $setViewCommand(::ScreenViewCommand const& callback);
804 MCFOLD
void $addStaticScreenVars(::Json::Value& globalVars);
806 MCFOLD ::std::
string $getAdditionalScreenInfo() const;
808 MCFOLD ::std::
string $getTelemetryOverride() const;
810 MCFOLD
void $addEventProperties(::std::unordered_map<::std::
string, ::std::
string>&) const;
812 MCFOLD ::ui::SceneType $getSceneType() const;
814 MCFOLD
int $getScreenVersion() const;
816 MCFOLD uint $getSceneId() const;
818 MCFOLD ::ScreenControllerProxy* $getProxy();
820 MCFOLD
void $onEntered();
822 MCFOLD
void $onScreenPushedAbove();
824 MCFOLD
void $onEntering();
826 MCFOLD
bool $_doesScreenHaveExitBehavior() const;
828 MCFOLD
bool $_isContainerScreen() const;
Definition IScreenController.h:5
Definition ScreenControllerProxy.h:5
Definition ScreenController.h:5
static MCAPI void ** $vftable()
Definition StringHash.h:5
Definition TaskGroup.h:53
Definition TaskResult.h:5
Definition ActorUniqueID.h:5
Definition FocusMoveScreenEventData.h:5
Definition ItemRendererData.h:5
Definition PointerHeldScreenEventData.h:5
Definition ScreenEvent.h:5
Definition TextEditScreenEventData.h:5
Definition TextEditSelectedStateChangeEventData.h:5
Definition ToggleChangeEventData.h:5
Definition UIPropertyBag.h:5