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;
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& expectedScreenName);
405 virtual ::ui::DirtyFlag handleGameEventNotification(::ui::GameEventNotification notification);
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 suspendInput);
432 virtual
void setSuspendDirectionalInput(
bool suspendDirectionalInput);
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>& eventProperties) 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 ::ui::ViewRequest _handleEvent(::ScreenEvent& screenEvent);
470 MCAPI
void _registerSubController(::std::shared_ptr<::ScreenController> controller);
473 ::StringHash const& bindingName,
474 ::brstd::move_only_function<
bool() const> callback,
475 ::brstd::move_only_function<
bool() const> condition
478 MCAPI
void bindBoolForAnyCollection(
479 ::StringHash const& bindingName,
480 ::brstd::move_only_function<
bool(::std::
string const&,
int) const> callback,
481 ::brstd::move_only_function<
bool(::std::
string const&,
int) const> condition
484 MCAPI
void bindBoolForCollection(
485 ::StringHash const& collectionName,
486 ::StringHash const& bindingName,
487 ::brstd::move_only_function<
bool(
int) const> callback,
488 ::brstd::move_only_function<
bool(
int) const> condition
491 MCAPI
void bindColor(
492 ::StringHash const& bindingName,
493 ::brstd::move_only_function<::mce::Color() const> callback,
494 ::brstd::move_only_function<
bool() const> condition
497 MCAPI
void bindColorForCollection(
498 ::StringHash const& collectionName,
499 ::StringHash const& bindingName,
500 ::brstd::move_only_function<::mce::Color(
int) const> callback,
501 ::brstd::move_only_function<
bool(
int) const> condition
504 MCAPI
void bindColorWithPropertyBag(
505 ::StringHash const& bindingName,
506 ::brstd::move_only_function<::mce::Color(::UIPropertyBag&) const> callback,
507 ::brstd::move_only_function<
bool() const> condition
510 MCAPI
void bindDoubleForAnyCollection(
511 ::StringHash const& bindingName,
512 ::brstd::move_only_function<
double(::std::
string const&,
int) const> callback,
513 ::brstd::move_only_function<
bool(::std::
string const&,
int) const> condition
516 MCAPI
void bindFloat(
517 ::StringHash const& bindingName,
518 ::brstd::move_only_function<
float() const> callback,
519 ::brstd::move_only_function<
bool() const> condition
522 MCAPI
void bindFloatForAnyCollection(
523 ::StringHash const& bindingName,
524 ::brstd::move_only_function<
float(::std::
string const&,
int) const> callback,
525 ::brstd::move_only_function<
bool(::std::
string const&,
int) const> condition
528 MCAPI
void bindFloatForCollection(
529 ::StringHash const& collectionName,
530 ::StringHash const& bindingName,
531 ::brstd::move_only_function<
float(
int) const> callback,
532 ::brstd::move_only_function<
bool(
int) const> condition
535 MCAPI
void bindForAnyCollection(
536 ::StringHash const& bindingName,
537 ::brstd::move_only_function<
void(
int, ::std::
string const&, ::UIPropertyBag&) const> callback,
538 ::brstd::move_only_function<
bool(::std::
string const&,
int) const> condition
541 MCAPI
void bindForAnyCollection(
542 ::StringHash const& bindingName,
543 ::brstd::move_only_function<
void(::std::
string const&,
int, ::std::
string const&, ::UIPropertyBag&) const>
545 ::brstd::move_only_function<
bool(::std::
string const&,
int) const> condition
548 MCAPI
void bindForGlobalGridSize(
549 ::StringHash const& bindingName,
550 ::brstd::move_only_function<
void(::std::
string const&, ::UIPropertyBag&) const> callback,
551 ::brstd::move_only_function<
bool() const> condition
554 MCAPI
void bindGridSize(
555 ::StringHash const& bindingName,
556 ::brstd::move_only_function<::glm::ivec2() const> callback,
557 ::brstd::move_only_function<
bool() const> condition
561 ::StringHash const& bindingName,
562 ::brstd::move_only_function<
int() const> callback,
563 ::brstd::move_only_function<
bool() const> condition
566 MCAPI
void bindIntForAnyCollection(
567 ::StringHash const& bindingName,
568 ::brstd::move_only_function<
int(::std::
string const&,
int) const> callback,
569 ::brstd::move_only_function<
bool(::std::
string const&,
int) const> condition
572 MCAPI
void bindIntForCollection(
573 ::StringHash const& collectionName,
574 ::StringHash const& bindingName,
575 ::brstd::move_only_function<
int(
int) const> callback,
576 ::brstd::move_only_function<
bool(
int) const> condition
579 MCAPI
void bindItemDataForAnyCollection(
580 ::StringHash const& bindingName,
581 ::brstd::move_only_function<::ItemRendererData(::std::
string const&,
int) const> callback,
582 ::brstd::move_only_function<
bool(::std::
string const&,
int) const> condition
585 MCAPI
void bindString(
586 ::StringHash const& bindingName,
587 ::brstd::move_only_function<::std::
string() const> callback,
588 ::brstd::move_only_function<
bool() const> condition
591 MCAPI
void bindStringForAnyCollection(
592 ::StringHash const& bindingName,
593 ::brstd::move_only_function<::std::
string(::std::
string const&,
int) const> callback,
594 ::brstd::move_only_function<
bool(::std::
string const&,
int) const> condition
597 MCAPI
void bindStringForCollection(
598 ::StringHash const& collectionName,
599 ::StringHash const& bindingName,
600 ::brstd::move_only_function<::std::
string(
int) const> callback,
601 ::brstd::move_only_function<
bool(
int) const> condition
604 MCAPI
bool hasFinishedAsyncTasks() const;
606 MCAPI
void queueAsyncTask(::brstd::move_only_function<::TaskResult()>&& task, ::std::function<
void()>&& callback);
609 registerAnimationEventHandler(uint eventId, ::brstd::move_only_function<::ui::ViewRequest() const> callback);
611 MCAPI
void registerButtonEventHandler(
613 ::ButtonState currentState,
614 ::ScreenController::PreviousButtonStateRequirement previousStateRequirement,
615 ::brstd::move_only_function<::ui::ViewRequest(::UIPropertyBag*) const> callback
618 MCAPI
void registerButtonInteractedHandler(
620 ::brstd::move_only_function<::ui::ViewRequest(::UIPropertyBag*) const> callback
623 MCAPI
void registerClipStateChangeEventHandler(
625 ::brstd::move_only_function<::ui::ViewRequest(
bool, ::UIPropertyBag&) const> callback
628 MCAPI
void registerClippedCollectionEventHandler(
629 ::StringHash const& collectionName,
630 ::brstd::move_only_function<::ui::ViewRequest(
int,
int, ::UIPropertyBag&) const> callback
634 registerCustomRendererEventHandler(uint eventId, ::brstd::move_only_function<::ui::ViewRequest() const> callback);
636 MCAPI
void registerSliderChangedEventHandler(
638 ::brstd::move_only_function<::ui::ViewRequest(
int,
float) const> callback
641 MCAPI
void registerSliderFinishedEventHandler(
643 ::brstd::move_only_function<::ui::ViewRequest(
int,
float) const> callback
646 MCAPI
void registerSliderNotFinishedEventHandler(
648 ::brstd::move_only_function<::ui::ViewRequest(
int,
float) const> callback
651 MCAPI
void registerTextEditChangedEventHandler(
653 ::brstd::move_only_function<::ui::ViewRequest(::TextEditScreenEventData&,
int) const> callback
656 MCAPI
void registerTextEditFinishedEventHandler(
658 ::brstd::move_only_function<::ui::ViewRequest(::TextEditScreenEventData&,
int) const> callback
661 MCAPI
void registerTextEditSelectedStateChangeEventHandler(
663 ::brstd::move_only_function<::ui::ViewRequest(::TextEditSelectedStateChangeEventData&) const> callback
666 MCAPI
void registerTextEventHandler(
667 ::brstd::move_only_function<::ui::ViewRequest(::TextEditScreenEventData&,
int) const> callback
670 MCAPI
void registerToggleChangeEventHandler(
672 ::brstd::move_only_function<::ui::ViewRequest(::ToggleChangeEventData&) const> callback
679 MCAPI
void* $ctor(
bool useTaskGroup);
691 MCAPI ::ui::DirtyFlag $tick();
693 MCFOLD
void $preFrameTick();
695 MCAPI ::ui::ViewRequest $handleEvent(::ScreenEvent& screenEvent);
697 MCFOLD ::std::optional<::std::
string> $getRoute() const;
699 MCFOLD
void $setScreenState(::std::vector<::std::pair<::std::string_view, ::std::string_view>> const&);
701 MCAPI
void $onOpen();
703 MCAPI
void $queueTitleNarration();
705 MCFOLD
void $onTerminate();
707 MCAPI
void $onInit();
709 MCFOLD
void $onDelete();
711 MCAPI
bool $canExit();
713 MCFOLD ::ui::ViewRequest $tryExit();
715 MCAPI
void $onCreation();
717 MCFOLD
void $onReload();
719 MCAPI
void $onLeave();
721 MCFOLD
void $leaveScreen(::std::
string const& expectedScreenName);
723 MCFOLD ::ui::DirtyFlag $handleGameEventNotification(::ui::GameEventNotification notification);
726 ::std::
string const& collectionName,
727 uint collectionNameHash,
729 ::std::
string const& bindingName,
730 uint bindingNameHash,
731 ::std::
string const& bindingNameOverride,
736 ::std::
string const& bindingName,
737 uint bindingNameHash,
738 ::std::
string const& bindingNameOverride,
742 MCFOLD
void $handleLicenseChanged();
744 MCFOLD
void $setAssociatedBlockPos(::BlockPos const& pos);
746 MCFOLD
void $setAssociatedEntityUniqueID(::ActorUniqueID const unqiueID);
748 MCFOLD
void $setSuspendInput(
bool suspendInput);
750 MCFOLD
void $setSuspendDirectionalInput(
bool suspendDirectionalInput);
752 MCAPI
void $setViewCommand(::ScreenViewCommand const& callback);
754 MCFOLD
void $addStaticScreenVars(::Json::Value& globalVars);
756 MCFOLD ::std::
string $getAdditionalScreenInfo() const;
758 MCFOLD ::std::
string $getTelemetryOverride() const;
760 MCFOLD
void $addEventProperties(::std::unordered_map<::std::
string, ::std::
string>& eventProperties) const;
762 MCFOLD ::ui::SceneType $getSceneType() const;
764 MCFOLD
int $getScreenVersion() const;
766 MCFOLD uint $getSceneId() const;
768 MCFOLD ::ScreenControllerProxy* $getProxy();
770 MCFOLD
void $onEntered();
772 MCFOLD
void $onScreenPushedAbove();
774 MCFOLD
void $onEntering();
776 MCFOLD
bool $_doesScreenHaveExitBehavior() const;
778 MCFOLD
bool $_isContainerScreen() const;
Definition IScreenController.h:5
Definition ScreenControllerProxy.h:5
Definition ScreenController.h:5
Definition StringHash.h:5
Definition TaskGroup.h:61
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