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, 1728, ::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;
365 void registerButtonPressedHandler(
367 ::brstd::move_only_function<::ui::ViewRequest(::UIPropertyBag*) const> callback
370 registerButtonEventHandler(
373 PreviousButtonStateRequirement::NotDown,
378 [[nodiscard]] uint _getNameId(::std::string
const& name)
const {
379 uint hash = 0x811C9DC5u;
380 for (
char const c : name) {
381 hash = (hash ^ c) * 0x01000193u;
393 virtual ~ScreenController() ;
395 virtual ::ui::DirtyFlag tick() ;
397 virtual void preFrameTick() ;
399 virtual ::ui::ViewRequest handleEvent(::ScreenEvent& screenEvent) ;
401 virtual ::std::optional<::std::string> getRoute() const ;
403 virtual
void setScreenState(::std::vector<::std::pair<::std::string_view, ::std::string_view>> const&) ;
405 virtual
void onOpen();
407 virtual
void queueTitleNarration();
409 virtual
void onTerminate();
411 virtual
void onInit();
413 virtual
void onDelete();
415 virtual
bool canExit();
417 virtual ::ui::ViewRequest tryExit();
419 virtual
void onCreation();
421 virtual
void onReload();
423 virtual
void onLeave();
425 virtual
void leaveScreen(::std::
string const& expectedScreenName);
427 virtual ::ui::DirtyFlag handleGameEventNotification(::ui::GameEventNotification notification);
430 ::std::
string const& collectionName,
431 uint collectionNameHash,
433 ::std::
string const& bindingName,
434 uint bindingNameHash,
435 ::std::
string const& bindingNameOverride,
440 ::std::
string const& bindingName,
441 uint bindingNameHash,
442 ::std::
string const& bindingNameOverride,
446 virtual
void handleLicenseChanged();
448 virtual
void setAssociatedBlockPos(::BlockPos const& pos);
450 virtual
void setAssociatedEntityUniqueID(::ActorUniqueID const unqiueID);
452 virtual
void setSuspendInput(
bool suspendInput);
454 virtual
void setSuspendDirectionalInput(
bool suspendDirectionalInput);
456 virtual
void setViewCommand(::ScreenViewCommand const& callback);
458 virtual
void addStaticScreenVars(::Json::Value& globalVars);
460 virtual ::std::
string getAdditionalScreenInfo() const;
462 virtual ::std::
string getTelemetryOverride() const;
464 virtual
void addEventProperties(::std::unordered_map<::std::
string, ::std::
string>& eventProperties) const;
466 virtual ::ui::SceneType getSceneType() const;
468 virtual
int getScreenVersion() const;
470 virtual uint getSceneId() const;
472 virtual ::ScreenControllerProxy* getProxy();
474 virtual
void onEntered();
476 virtual
void onScreenPushedAbove();
478 virtual
void onEntering();
480 virtual
bool _doesScreenHaveExitBehavior() const;
482 virtual
bool _isContainerScreen() const;
488 MCAPI explicit ScreenController(
bool useTaskGroup);
490 MCAPI ::ui::ViewRequest _handleEvent(::ScreenEvent& screenEvent);
492 MCAPI
void _registerSubController(::std::shared_ptr<::ScreenController> controller);
495 ::StringHash const& bindingName,
496 ::brstd::move_only_function<
bool() const> callback,
497 ::brstd::move_only_function<
bool() const> condition
500 MCAPI
void bindBoolForAnyCollection(
501 ::StringHash const& bindingName,
502 ::brstd::move_only_function<
bool(::std::
string const&,
int) const> callback,
503 ::brstd::move_only_function<
bool(::std::
string const&,
int) const> condition
506 MCAPI
void bindBoolForCollection(
507 ::StringHash const& collectionName,
508 ::StringHash const& bindingName,
509 ::brstd::move_only_function<
bool(
int) const> callback,
510 ::brstd::move_only_function<
bool(
int) const> condition
513 MCAPI
void bindColor(
514 ::StringHash const& bindingName,
515 ::brstd::move_only_function<::mce::Color() const> callback,
516 ::brstd::move_only_function<
bool() const> condition
519 MCAPI
void bindColorForCollection(
520 ::StringHash const& collectionName,
521 ::StringHash const& bindingName,
522 ::brstd::move_only_function<::mce::Color(
int) const> callback,
523 ::brstd::move_only_function<
bool(
int) const> condition
526 MCAPI
void bindColorWithPropertyBag(
527 ::StringHash const& bindingName,
528 ::brstd::move_only_function<::mce::Color(::UIPropertyBag&) const> callback,
529 ::brstd::move_only_function<
bool() const> condition
532 MCAPI
void bindDoubleForAnyCollection(
533 ::StringHash const& bindingName,
534 ::brstd::move_only_function<
double(::std::
string const&,
int) const> callback,
535 ::brstd::move_only_function<
bool(::std::
string const&,
int) const> condition
538 MCAPI
void bindFloat(
539 ::StringHash const& bindingName,
540 ::brstd::move_only_function<
float() const> callback,
541 ::brstd::move_only_function<
bool() const> condition
544 MCAPI
void bindFloatForAnyCollection(
545 ::StringHash const& bindingName,
546 ::brstd::move_only_function<
float(::std::
string const&,
int) const> callback,
547 ::brstd::move_only_function<
bool(::std::
string const&,
int) const> condition
550 MCAPI
void bindFloatForCollection(
551 ::StringHash const& collectionName,
552 ::StringHash const& bindingName,
553 ::brstd::move_only_function<
float(
int) const> callback,
554 ::brstd::move_only_function<
bool(
int) const> condition
557 MCAPI
void bindForAnyCollection(
558 ::StringHash const& bindingName,
559 ::brstd::move_only_function<
void(
int, ::std::
string const&, ::UIPropertyBag&) const> callback,
560 ::brstd::move_only_function<
bool(::std::
string const&,
int) const> condition
563 MCAPI
void bindForAnyCollection(
564 ::StringHash const& bindingName,
565 ::brstd::move_only_function<
void(::std::
string const&,
int, ::std::
string const&, ::UIPropertyBag&) const>
567 ::brstd::move_only_function<
bool(::std::
string const&,
int) const> condition
570 MCAPI
void bindForGlobalGridSize(
571 ::StringHash const& bindingName,
572 ::brstd::move_only_function<
void(::std::
string const&, ::UIPropertyBag&) const> callback,
573 ::brstd::move_only_function<
bool() const> condition
576 MCAPI
void bindGridSize(
577 ::StringHash const& bindingName,
578 ::brstd::move_only_function<::glm::ivec2() const> callback,
579 ::brstd::move_only_function<
bool() const> condition
583 ::StringHash const& bindingName,
584 ::brstd::move_only_function<
int() const> callback,
585 ::brstd::move_only_function<
bool() const> condition
588 MCAPI
void bindIntForAnyCollection(
589 ::StringHash const& bindingName,
590 ::brstd::move_only_function<
int(::std::
string const&,
int) const> callback,
591 ::brstd::move_only_function<
bool(::std::
string const&,
int) const> condition
594 MCAPI
void bindIntForCollection(
595 ::StringHash const& collectionName,
596 ::StringHash const& bindingName,
597 ::brstd::move_only_function<
int(
int) const> callback,
598 ::brstd::move_only_function<
bool(
int) const> condition
601 MCAPI
void bindItemDataForAnyCollection(
602 ::StringHash const& bindingName,
603 ::brstd::move_only_function<::ItemRendererData(::std::
string const&,
int) const> callback,
604 ::brstd::move_only_function<
bool(::std::
string const&,
int) const> condition
607 MCAPI
void bindString(
608 ::StringHash const& bindingName,
609 ::brstd::move_only_function<::std::
string() const> callback,
610 ::brstd::move_only_function<
bool() const> condition
613 MCAPI
void bindStringForAnyCollection(
614 ::StringHash const& bindingName,
615 ::brstd::move_only_function<::std::
string(::std::
string const&,
int) const> callback,
616 ::brstd::move_only_function<
bool(::std::
string const&,
int) const> condition
619 MCAPI
void bindStringForCollection(
620 ::StringHash const& collectionName,
621 ::StringHash const& bindingName,
622 ::brstd::move_only_function<::std::
string(
int) const> callback,
623 ::brstd::move_only_function<
bool(
int) const> condition
626 MCAPI
bool hasFinishedAsyncTasks() const;
628 MCAPI
void queueAsyncTask(::brstd::move_only_function<::TaskResult()>&& task, ::std::function<
void()>&& callback);
631 registerAnimationEventHandler(uint eventId, ::brstd::move_only_function<::ui::ViewRequest() 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 registerClipStateChangeEventHandler(
647 ::brstd::move_only_function<::ui::ViewRequest(
bool, ::UIPropertyBag&) const> callback
650 MCAPI
void registerClippedCollectionEventHandler(
651 ::StringHash const& collectionName,
652 ::brstd::move_only_function<::ui::ViewRequest(
int,
int, ::UIPropertyBag&) const> callback
656 registerCustomRendererEventHandler(uint eventId, ::brstd::move_only_function<::ui::ViewRequest() const> callback);
658 MCAPI
void registerSliderChangedEventHandler(
660 ::brstd::move_only_function<::ui::ViewRequest(
int,
float) const> callback
663 MCAPI
void registerSliderFinishedEventHandler(
665 ::brstd::move_only_function<::ui::ViewRequest(
int,
float) const> callback
668 MCAPI
void registerSliderNotFinishedEventHandler(
670 ::brstd::move_only_function<::ui::ViewRequest(
int,
float) const> callback
673 MCAPI
void registerTextEditChangedEventHandler(
675 ::brstd::move_only_function<::ui::ViewRequest(::TextEditScreenEventData&,
int) const> callback
678 MCAPI
void registerTextEditFinishedEventHandler(
680 ::brstd::move_only_function<::ui::ViewRequest(::TextEditScreenEventData&,
int) const> callback
683 MCAPI
void registerTextEditSelectedStateChangeEventHandler(
685 ::brstd::move_only_function<::ui::ViewRequest(::TextEditSelectedStateChangeEventData&) const> callback
688 MCAPI
void registerTextEventHandler(
689 ::brstd::move_only_function<::ui::ViewRequest(::TextEditScreenEventData&,
int) const> callback
692 MCAPI
void registerToggleChangeEventHandler(
694 ::brstd::move_only_function<::ui::ViewRequest(::ToggleChangeEventData&) const> callback
701 MCAPI
void* $ctor(
bool useTaskGroup);
713 MCAPI ::ui::DirtyFlag $tick();
715 MCFOLD
void $preFrameTick();
717 MCAPI ::ui::ViewRequest $handleEvent(::ScreenEvent& screenEvent);
719 MCFOLD ::std::optional<::std::
string> $getRoute() const;
721 MCFOLD
void $setScreenState(::std::vector<::std::pair<::std::string_view, ::std::string_view>> const&);
723 MCAPI
void $onOpen();
725 MCAPI
void $queueTitleNarration();
727 MCFOLD
void $onTerminate();
729 MCAPI
void $onInit();
731 MCFOLD
void $onDelete();
733 MCAPI
bool $canExit();
735 MCFOLD ::ui::ViewRequest $tryExit();
737 MCAPI
void $onCreation();
739 MCFOLD
void $onReload();
741 MCAPI
void $onLeave();
743 MCFOLD
void $leaveScreen(::std::
string const& expectedScreenName);
745 MCFOLD ::ui::DirtyFlag $handleGameEventNotification(::ui::GameEventNotification notification);
748 ::std::
string const& collectionName,
749 uint collectionNameHash,
751 ::std::
string const& bindingName,
752 uint bindingNameHash,
753 ::std::
string const& bindingNameOverride,
758 ::std::
string const& bindingName,
759 uint bindingNameHash,
760 ::std::
string const& bindingNameOverride,
764 MCFOLD
void $handleLicenseChanged();
766 MCFOLD
void $setAssociatedBlockPos(::BlockPos const& pos);
768 MCFOLD
void $setAssociatedEntityUniqueID(::ActorUniqueID const unqiueID);
770 MCFOLD
void $setSuspendInput(
bool suspendInput);
772 MCFOLD
void $setSuspendDirectionalInput(
bool suspendDirectionalInput);
774 MCAPI
void $setViewCommand(::ScreenViewCommand const& callback);
776 MCFOLD
void $addStaticScreenVars(::Json::Value& globalVars);
778 MCFOLD ::std::
string $getAdditionalScreenInfo() const;
780 MCFOLD ::std::
string $getTelemetryOverride() const;
782 MCFOLD
void $addEventProperties(::std::unordered_map<::std::
string, ::std::
string>& eventProperties) const;
784 MCFOLD ::ui::SceneType $getSceneType() const;
786 MCFOLD
int $getScreenVersion() const;
788 MCFOLD uint $getSceneId() const;
790 MCFOLD ::ScreenControllerProxy* $getProxy();
792 MCFOLD
void $onEntered();
794 MCFOLD
void $onScreenPushedAbove();
796 MCFOLD
void $onEntering();
798 MCFOLD
bool $_doesScreenHaveExitBehavior() const;
800 MCFOLD
bool $_isContainerScreen() const;
Definition IScreenController.h:5
Definition ScreenControllerProxy.h:5
Definition ScreenController.h:5
Definition StringHash.h:5
Definition TaskGroup.h:86
Definition TaskResult.h:5
Definition UIPropertyBag.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