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"
34namespace Json {
class Value; }
35namespace mce {
class Color; }
46 enum class PreviousButtonStateRequirement :
int {
54 enum class SliderChangeType :
int {
62 using FocusMoveEventHandlerCallback =
63 ::brstd::move_only_function<::ui::ViewRequest(::FocusMoveScreenEventData&)
const>;
65 using InputModeChangedEventHandlerCallback =
66 ::brstd::move_only_function<::ui::ViewRequest(::InputModeChangeScreenEventData&)
const>;
68 using PointerHeldEventHandlerCallback =
69 ::brstd::move_only_function<::ui::ViewRequest(::PointerHeldScreenEventData&)
const>;
71 using ButtonEventHandlerCallback = ::brstd::move_only_function<::ui::ViewRequest(::UIPropertyBag*)
const>;
73 using TextEventHandlerCallback =
74 ::brstd::move_only_function<::ui::ViewRequest(::TextEditScreenEventData&,
int)
const>;
76 using ToggleChangeEventHandlerCallback =
77 ::brstd::move_only_function<::ui::ViewRequest(::ToggleChangeEventData&)
const>;
79 using TextEditSelectedStateChangeEventHandlerCallback =
80 ::brstd::move_only_function<::ui::ViewRequest(::TextEditSelectedStateChangeEventData&)
const>;
82 using SliderChangeEventHandlerCallback = ::brstd::move_only_function<::ui::ViewRequest(
int,
float)
const>;
84 using AnimationEventHandlerCallback = ::brstd::move_only_function<::ui::ViewRequest() const>;
86 using RawInputEventHandlerCallback =
87 ::brstd::move_only_function<::ui::ViewRequest(::RawInputScreenEventData&) const>;
89 using ClippedCollectionEventHandlerCallback =
90 ::brstd::move_only_function<::ui::ViewRequest(
int,
int, ::UIPropertyBag&) const>;
92 using ClipStateChangeEventHandlerCallback =
93 ::brstd::move_only_function<::ui::ViewRequest(
bool, ::UIPropertyBag&) const>;
95 using CustomRendererEventHandlerCallback = ::brstd::move_only_function<::ui::ViewRequest() const>;
97 using BindPredicate = ::brstd::move_only_function<
bool() const>;
99 using BindStringCallback = ::brstd::move_only_function<::std::
string() const>;
101 using BindBoolCallback = ::brstd::move_only_function<
bool() const>;
103 using BindIntCallback = ::brstd::move_only_function<
int() const>;
105 using BindFloatCallback = ::brstd::move_only_function<
float() const>;
107 using BindGridSizeCallback = ::brstd::move_only_function<::glm::ivec2() const>;
109 using BindGlobalGridSizeCallback = ::brstd::move_only_function<
void(::std::
string const&, ::UIPropertyBag&) const>;
111 using BindColorCallback = ::brstd::move_only_function<::mce::Color() const>;
113 using BindColorWithBagCallback = ::brstd::move_only_function<::mce::Color(::UIPropertyBag&) const>;
115 using BindCollectionPredicate = ::brstd::move_only_function<
bool(
int) const>;
117 using BindStringForCollectionCallback = ::brstd::move_only_function<::std::
string(
int) const>;
119 using BindBoolForCollectionCallback = ::brstd::move_only_function<
bool(
int) const>;
121 using BindFloatForCollectionCallback = ::brstd::move_only_function<
float(
int) const>;
123 using BindIntForCollectionCallback = ::brstd::move_only_function<
int(
int) const>;
125 using BindColorForCollectionCallback = ::brstd::move_only_function<::mce::Color(
int) const>;
127 using BindAnyCollectionPredicate = ::brstd::move_only_function<
bool(::std::
string const&,
int) const>;
129 using BindItemDataForAnyCollectionCallback =
130 ::brstd::move_only_function<::ItemRendererData(::std::
string const&,
int) const>;
132 using BindStringForAnyCollectionCallback =
133 ::brstd::move_only_function<::std::
string(::std::
string const&,
int) const>;
135 using BindBoolForAnyCollectionCallback = ::brstd::move_only_function<
bool(::std::
string const&,
int) const>;
137 using BindIntForAnyCollectionCallback = ::brstd::move_only_function<
int(::std::
string const&,
int) const>;
139 using BindFloatForAnyCollectionCallback = ::brstd::move_only_function<
float(::std::
string const&,
int) const>;
141 using BindDoubleForAnyCollectionCallback = ::brstd::move_only_function<
double(::std::
string const&,
int) const>;
143 using BindForAnyCollectionCallback =
144 ::brstd::move_only_function<
void(
int, ::std::
string const&, ::UIPropertyBag&) const>;
146 using BindForCollectionCallback =
147 ::brstd::move_only_function<
void(::std::
string const&,
int, ::std::
string const&, ::UIPropertyBag&) const>;
149 using BindForGlobalCallback = ::brstd::move_only_function<
void(::std::
string const&, ::UIPropertyBag&) const>;
151 using ButtonEventCallbackKey = ::std::tuple<uint, ::ButtonState>;
153 using ButtonEventCallbackInfo = ::std::tuple<
154 ::ScreenController::PreviousButtonStateRequirement,
155 ::brstd::move_only_function<::ui::ViewRequest(::UIPropertyBag*) const>>;
157 using ButtonEventCallbackInfoVector = ::std::vector<::std::tuple<
158 ::ScreenController::PreviousButtonStateRequirement,
159 ::brstd::move_only_function<::ui::ViewRequest(::UIPropertyBag*) const>>>;
161 using ButtonEventCallbackMap = ::std::unordered_map<
162 ::std::tuple<uint, ::ButtonState>,
163 ::std::vector<::std::tuple<
164 ::ScreenController::PreviousButtonStateRequirement,
165 ::brstd::move_only_function<::ui::ViewRequest(::UIPropertyBag*) const>>>,
167 ::std::equal_to<::std::tuple<uint, ::ButtonState>>>;
169 using ButtonInteractedEventCallbackVector =
170 ::std::vector<::brstd::move_only_function<::ui::ViewRequest(::UIPropertyBag*) const>>;
172 using ButtonInteractedEventCallbackMap = ::std::
173 unordered_map<uint, ::std::vector<::brstd::move_only_function<::ui::ViewRequest(::UIPropertyBag*) const>>>;
175 using ToggleChangeEventCallbackVector =
176 ::std::vector<::brstd::move_only_function<::ui::ViewRequest(::ToggleChangeEventData&) const>>;
178 using ToggleChangeEventCallbackMap = ::std::unordered_map<
180 ::std::vector<::brstd::move_only_function<::ui::ViewRequest(::ToggleChangeEventData&) const>>>;
182 using TextEditSelectedStateChangeEventCallbackVector =
183 ::std::vector<::brstd::move_only_function<::ui::ViewRequest(::TextEditSelectedStateChangeEventData&) const>>;
185 using TextEditSelectedStateChangeEventCallbackMap = ::std::unordered_map<
187 ::std::vector<::brstd::move_only_function<::ui::ViewRequest(::TextEditSelectedStateChangeEventData&) const>>>;
189 using SliderChangeEventHandlerCallbackInfo = ::std::
190 tuple<::ScreenController::SliderChangeType, ::brstd::move_only_function<::ui::ViewRequest(
int,
float) const>>;
192 using SliderChangeEventCallbackVector = ::std::vector<::std::tuple<
193 ::ScreenController::SliderChangeType,
194 ::brstd::move_only_function<::ui::ViewRequest(
int,
float) const>>>;
196 using SliderChangeEventCallbackMap = ::std::unordered_map<
198 ::std::vector<::std::tuple<
199 ::ScreenController::SliderChangeType,
200 ::brstd::move_only_function<::ui::ViewRequest(
int,
float) const>>>>;
202 using TextEventHandlerCallbackInfo =
203 ::std::tuple<
bool, ::brstd::move_only_function<::ui::ViewRequest(::TextEditScreenEventData&,
int) const>>;
205 using TextEventHandlerCallbackVector = ::std::vector<
206 ::std::tuple<
bool, ::brstd::move_only_function<::ui::ViewRequest(::TextEditScreenEventData&,
int) const>>>;
208 using TextEventHandlerCallbackMap = ::std::unordered_map<
211 ::std::tuple<
bool, ::brstd::move_only_function<::ui::ViewRequest(::TextEditScreenEventData&,
int) const>>>>;
213 using AnimationEventHandlerCallbackVector = ::std::vector<::brstd::move_only_function<::ui::ViewRequest() const>>;
215 using AnimationEventHandlerCallbackMap =
216 ::std::unordered_map<uint, ::std::vector<::brstd::move_only_function<::ui::ViewRequest() const>>>;
218 using ClippedCollectionEventHandlerCallbackVector =
219 ::std::vector<::brstd::move_only_function<::ui::ViewRequest(
int,
int, ::UIPropertyBag&) const>>;
221 using ClippedCollectionEventHandlerCallbackMap = ::std::unordered_map<
223 ::std::vector<::brstd::move_only_function<::ui::ViewRequest(
int,
int, ::UIPropertyBag&) const>>>;
225 using ClipStateChangeHandlerCallbackVector =
226 ::std::vector<::brstd::move_only_function<::ui::ViewRequest(
bool, ::UIPropertyBag&) const>>;
228 using ClipStateChangeEventHandlerCallbackMap = ::std::unordered_map<
230 ::std::vector<::brstd::move_only_function<::ui::ViewRequest(
bool, ::UIPropertyBag&) const>>>;
232 using CustomRendererEventHandlerCallbackVector =
233 ::std::vector<::brstd::move_only_function<::ui::ViewRequest() const>>;
235 using CustomRendererEventHandlerCallbackMap =
236 ::std::unordered_map<uint, ::std::vector<::brstd::move_only_function<::ui::ViewRequest() const>>>;
241 ::ll::TypedStorage<8, 64, ::std::function<
void(::std::
string const&, ::UIPropertyBag const&)>>
242 mControlCreateCallback;
243 ::ll::TypedStorage<8, 64, ::std::function<
void(::std::
string const&, ::std::
string const&)>>
244 mControlDestroyCallback;
245 ::ll::TypedStorage<8, 64, ::std::function<
void(::std::
string const&)>> mControlDestroyAllCallback;
246 ::ll::TypedStorage<8, 64, ::std::function<
void(::std::
string const&)>> mScreenViewSendManualInputEventCallback;
247 ::ll::TypedStorage<8, 8, ::std::unique_ptr<::ScreenControllerProxy>> mProxy;
248 ::ll::TypedStorage<1, 1,
bool> mCreateInitialized;
249 ::ll::TypedStorage<1, 1,
bool> mInitialized;
250 ::ll::TypedStorage<1, 1,
bool> mUsesErrorInfo;
251 ::ll::TypedStorage<8, 1472, ::ScreenViewCommand> mScreenViewCommand;
252 ::ll::TypedStorage<1, 1,
bool> mIsScrollingLocked;
256 ::std::unordered_map<
257 ::std::tuple<uint, ::ButtonState>,
258 ::std::vector<::std::tuple<
259 ::ScreenController::PreviousButtonStateRequirement,
260 ::brstd::move_only_function<::ui::ViewRequest(::UIPropertyBag*) const>>>,
262 ::std::equal_to<::std::tuple<uint, ::ButtonState>>>>
263 mButtonEventCallbackMap;
268 unordered_map<uint, ::std::vector<::brstd::move_only_function<::ui::ViewRequest(::UIPropertyBag*) const>>>>
269 mButtonInteractedEventCallbackMap;
270 ::ll::TypedStorage<8, 64, ::brstd::move_only_function<::ui::ViewRequest(::RawInputScreenEventData&) const>>
271 mRawInputEventHandlerCallback;
275 ::std::vector<::brstd::move_only_function<::ui::ViewRequest(::FocusMoveScreenEventData&) const>>>
276 mFocusMoveEventCallbacks;
280 ::std::vector<::brstd::move_only_function<::ui::ViewRequest(::InputModeChangeScreenEventData&) const>>>
281 mInputModeChangedEventCallbacks;
285 ::std::vector<::brstd::move_only_function<::ui::ViewRequest(::PointerHeldScreenEventData&) const>>>
286 mPointerHeldEventCallbacks;
290 ::std::unordered_map<
292 ::std::vector<::std::tuple<
294 ::brstd::move_only_function<::ui::ViewRequest(::TextEditScreenEventData&,
int) const>>>>>
295 mTextEditEventCallbackMap;
299 ::std::unordered_map<
301 ::std::vector<::brstd::move_only_function<::ui::ViewRequest(::ToggleChangeEventData&) const>>>>
302 mToggleChangeEventCallbackMap;
306 ::std::unordered_map<
309 ::brstd::move_only_function<::ui::ViewRequest(::TextEditSelectedStateChangeEventData&) const>>>>
310 mTextEditSelectedStateChangeEventCallbackMap;
311 ::ll::TypedStorage<8, 24, ::std::vector<::std::shared_ptr<::ScreenController>>> mSubControllers;
315 ::std::unordered_map<
317 ::std::vector<::std::tuple<
318 ::ScreenController::SliderChangeType,
319 ::brstd::move_only_function<::ui::ViewRequest(
int,
float) const>>>>>
320 mSliderChangeEventCallbackMap;
324 ::std::unordered_map<uint, ::std::vector<::brstd::move_only_function<::ui::ViewRequest() const>>>>
325 mAnimationEventCallbackMap;
329 ::std::unordered_map<
331 ::std::vector<::brstd::move_only_function<::ui::ViewRequest(
int,
int, ::UIPropertyBag&) const>>>>
332 mClippedCollectionEventCallbackMap;
336 ::std::unordered_map<
338 ::std::vector<::brstd::move_only_function<::ui::ViewRequest(
bool, ::UIPropertyBag&) const>>>>
339 mClipStateChangeEventCallbackMap;
343 ::std::unordered_map<uint, ::std::vector<::brstd::move_only_function<::ui::ViewRequest() const>>>>
344 mCustomRendererEventHandlerCallbackMap;
348 ::std::unordered_map<uint, ::brstd::move_only_function<
void(::std::
string const&, ::UIPropertyBag&)>>>
353 ::std::unordered_map<uint, ::brstd::move_only_function<
void(
int, ::std::
string const&, ::UIPropertyBag&)>>>
354 mCollectionBindCallbacks;
358 ::std::unordered_map<
360 ::brstd::move_only_function<
void(::std::
string const&,
int, ::std::
string const&, ::UIPropertyBag&)>>>
361 mAnyCollectionBindCallbacks;
362 ::ll::TypedStorage<8, 8, ::std::unique_ptr<::TaskGroup>> mTaskGroup;
372 virtual ~ScreenController() ;
374 virtual ::ui::DirtyFlag tick() ;
376 virtual
void preFrameTick() ;
378 virtual ::ui::ViewRequest handleEvent(::ScreenEvent& screenEvent) ;
380 virtual ::std::optional<::std::
string> getRoute() const ;
382 virtual
void setScreenState(::std::vector<::std::pair<::std::string_view, ::std::string_view>> const&) ;
384 virtual
void onOpen();
386 virtual
void queueTitleNarration();
388 virtual
void onTerminate();
390 virtual
void onInit();
392 virtual
void onDelete();
394 virtual
bool canExit();
396 virtual ::ui::ViewRequest tryExit();
398 virtual
void onCreation();
400 virtual
void onReload();
402 virtual
void onLeave();
404 virtual
void leaveScreen(::std::
string const& expectedScreenName);
406 virtual ::ui::DirtyFlag handleGameEventNotification(::ui::GameEventNotification notification);
409 ::std::
string const& collectionName,
410 uint collectionNameHash,
412 ::std::
string const& bindingName,
413 uint bindingNameHash,
414 ::std::
string const& bindingNameOverride,
419 ::std::
string const& bindingName,
420 uint bindingNameHash,
421 ::std::
string const& bindingNameOverride,
425 virtual
void handleLicenseChanged();
427 virtual
void setAssociatedBlockPos(::BlockPos const& pos);
429 virtual
void setAssociatedEntityUniqueID(::ActorUniqueID const unqiueID);
431 virtual
void setSuspendInput(
bool suspendInput);
433 virtual
void setSuspendDirectionalInput(
bool suspendDirectionalInput);
435 virtual
void setViewCommand(::ScreenViewCommand const& callback);
437 virtual
void addStaticScreenVars(::Json::Value& globalVars);
439 virtual ::std::
string getAdditionalScreenInfo() const;
441 virtual ::std::
string getTelemetryOverride() const;
443 virtual
void addEventProperties(::std::unordered_map<::std::
string, ::std::
string>& eventProperties) const;
445 virtual ::ui::SceneType getSceneType() const;
447 virtual
int getScreenVersion() const;
449 virtual uint getSceneId() const;
451 virtual ::ScreenControllerProxy* getProxy();
453 virtual
void onEntered();
455 virtual
void onScreenPushedAbove();
457 virtual
void onEntering();
459 virtual
bool _doesScreenHaveExitBehavior() const;
461 virtual
bool _isContainerScreen() const;
467 MCAPI explicit ScreenController(
bool useTaskGroup);
469 MCFOLD uint _getNameId(::std::
string const& name) const;
471 MCAPI ::ui::ViewRequest _handleButtonEvent(::ScreenEvent& screenEvent);
473 MCAPI ::ui::ViewRequest _handleEvent(::ScreenEvent& screenEvent);
475 MCAPI ::ui::ViewRequest _handleSliderChangeEvent(::SliderChangeEventData& sliderChangeEvent);
477 MCAPI
void _registerSubController(::std::shared_ptr<::ScreenController> controller);
480 ::StringHash const& bindingName,
481 ::brstd::move_only_function<
bool() const> callback,
482 ::brstd::move_only_function<
bool() const> condition
485 MCAPI
void bindBoolForAnyCollection(
486 ::StringHash const& bindingName,
487 ::brstd::move_only_function<
bool(::std::
string const&,
int) const> callback,
488 ::brstd::move_only_function<
bool(::std::
string const&,
int) const> condition
491 MCAPI
void bindBoolForCollection(
492 ::StringHash const& collectionName,
493 ::StringHash const& bindingName,
494 ::brstd::move_only_function<
bool(
int) const> callback,
495 ::brstd::move_only_function<
bool(
int) const> condition
498 MCAPI
void bindColor(
499 ::StringHash const& bindingName,
500 ::brstd::move_only_function<::mce::Color() const> callback,
501 ::brstd::move_only_function<
bool() const> condition
504 MCAPI
void bindColorForCollection(
505 ::StringHash const& collectionName,
506 ::StringHash const& bindingName,
507 ::brstd::move_only_function<::mce::Color(
int) const> callback,
508 ::brstd::move_only_function<
bool(
int) const> condition
511 MCAPI
void bindColorWithPropertyBag(
512 ::StringHash const& bindingName,
513 ::brstd::move_only_function<::mce::Color(::UIPropertyBag&) const> callback,
514 ::brstd::move_only_function<
bool() const> condition
517 MCAPI
void bindDoubleForAnyCollection(
518 ::StringHash const& bindingName,
519 ::brstd::move_only_function<
double(::std::
string const&,
int) const> callback,
520 ::brstd::move_only_function<
bool(::std::
string const&,
int) const> condition
523 MCAPI
void bindFloat(
524 ::StringHash const& bindingName,
525 ::brstd::move_only_function<
float() const> callback,
526 ::brstd::move_only_function<
bool() const> condition
529 MCAPI
void bindFloatForAnyCollection(
530 ::StringHash const& bindingName,
531 ::brstd::move_only_function<
float(::std::
string const&,
int) const> callback,
532 ::brstd::move_only_function<
bool(::std::
string const&,
int) const> condition
535 MCAPI
void bindFloatForCollection(
536 ::StringHash const& collectionName,
537 ::StringHash const& bindingName,
538 ::brstd::move_only_function<
float(
int) const> callback,
539 ::brstd::move_only_function<
bool(
int) const> condition
542 MCAPI
void bindForAnyCollection(
543 ::StringHash const& bindingName,
544 ::brstd::move_only_function<
void(
int, ::std::
string const&, ::UIPropertyBag&) const> callback,
545 ::brstd::move_only_function<
bool(::std::
string const&,
int) const> condition
548 MCAPI
void bindForAnyCollection(
549 ::StringHash const& bindingName,
550 ::brstd::move_only_function<
void(::std::
string const&,
int, ::std::
string const&, ::UIPropertyBag&) const>
552 ::brstd::move_only_function<
bool(::std::
string const&,
int) const> condition
555 MCAPI
void bindForCollection(
556 ::StringHash const& collectionName,
557 ::StringHash const& bindingName,
558 ::brstd::move_only_function<
void(
int, ::std::
string const&, ::UIPropertyBag&) const> func
561 MCAPI
void bindForGlobal(
562 ::StringHash const& bindingName,
563 ::brstd::move_only_function<
void(::std::
string const&, ::UIPropertyBag&) const> func
566 MCAPI
void bindForGlobalGridSize(
567 ::StringHash const& bindingName,
568 ::brstd::move_only_function<
void(::std::
string const&, ::UIPropertyBag&) const> callback,
569 ::brstd::move_only_function<
bool() const> condition
572 MCAPI
void bindGridSize(
573 ::StringHash const& bindingName,
574 ::brstd::move_only_function<::glm::ivec2() const> callback,
575 ::brstd::move_only_function<
bool() const> condition
579 ::StringHash const& bindingName,
580 ::brstd::move_only_function<
int() const> callback,
581 ::brstd::move_only_function<
bool() const> condition
584 MCAPI
void bindIntForAnyCollection(
585 ::StringHash const& bindingName,
586 ::brstd::move_only_function<
int(::std::
string const&,
int) const> callback,
587 ::brstd::move_only_function<
bool(::std::
string const&,
int) const> condition
590 MCAPI
void bindIntForCollection(
591 ::StringHash const& collectionName,
592 ::StringHash const& bindingName,
593 ::brstd::move_only_function<
int(
int) const> callback,
594 ::brstd::move_only_function<
bool(
int) const> condition
597 MCAPI
void bindItemDataForAnyCollection(
598 ::StringHash const& bindingName,
599 ::brstd::move_only_function<::ItemRendererData(::std::
string const&,
int) const> callback,
600 ::brstd::move_only_function<
bool(::std::
string const&,
int) const> condition
603 MCAPI
void bindString(
604 ::StringHash const& bindingName,
605 ::brstd::move_only_function<::std::
string() const> callback,
606 ::brstd::move_only_function<
bool() const> condition
609 MCAPI
void bindStringForAnyCollection(
610 ::StringHash const& bindingName,
611 ::brstd::move_only_function<::std::
string(::std::
string const&,
int) const> callback,
612 ::brstd::move_only_function<
bool(::std::
string const&,
int) const> condition
615 MCAPI
void bindStringForCollection(
616 ::StringHash const& collectionName,
617 ::StringHash const& bindingName,
618 ::brstd::move_only_function<::std::
string(
int) const> callback,
619 ::brstd::move_only_function<
bool(
int) const> condition
622 MCAPI
void focusControl(::std::
string const& controlName,
bool delayed);
625 focusControl(::std::
string const& focusId, ::std::
string const& collectionIndexName,
int collectionIndex);
627 MCFOLD uint getNameId(::std::
string const& name) const;
629 MCAPI
bool hasFinishedAsyncTasks() const;
631 MCAPI
void prepareFocusForModalPopup();
633 MCAPI
void queueAsyncTask(::brstd::move_only_function<::TaskResult()>&& task, ::std::function<
void()>&& callback);
636 registerAnimationEventHandler(uint eventId, ::brstd::move_only_function<::ui::ViewRequest() const> callback);
638 MCAPI
void registerButtonEventHandler(
640 ::ButtonState currentState,
641 ::ButtonState previousState,
642 ::brstd::move_only_function<::ui::ViewRequest(::UIPropertyBag*) const> callback
645 MCAPI
void registerButtonEventHandler(
647 ::ButtonState currentState,
648 ::ScreenController::PreviousButtonStateRequirement previousStateRequirement,
649 ::brstd::move_only_function<::ui::ViewRequest(::UIPropertyBag*) const> callback
652 MCAPI
void registerButtonInteractedHandler(
654 ::brstd::move_only_function<::ui::ViewRequest(::UIPropertyBag*) const> callback
657 MCAPI
void registerButtonPressedHandler(
659 ::brstd::move_only_function<::ui::ViewRequest(::UIPropertyBag*) const> callback
662 MCAPI
void registerButtonReleasedHandler(
664 ::brstd::move_only_function<::ui::ViewRequest(::UIPropertyBag*) const> callback
667 MCAPI
void registerClipStateChangeEventHandler(
669 ::brstd::move_only_function<::ui::ViewRequest(
bool, ::UIPropertyBag&) const> callback
672 MCAPI
void registerClippedCollectionEventHandler(
673 ::StringHash const& collectionName,
674 ::brstd::move_only_function<::ui::ViewRequest(
int,
int, ::UIPropertyBag&) const> callback
678 registerCustomRendererEventHandler(uint eventId, ::brstd::move_only_function<::ui::ViewRequest() const> callback);
680 MCAPI
void registerFocusMovedEventHandler(
681 ::brstd::move_only_function<::ui::ViewRequest(::FocusMoveScreenEventData&) const> callback
684 MCAPI
void registerInputModechangedEventHandler(
685 ::brstd::move_only_function<::ui::ViewRequest(::InputModeChangeScreenEventData&) const> callback
688 MCAPI
void registerPointerHeldEventHandler(
689 ::brstd::move_only_function<::ui::ViewRequest(::PointerHeldScreenEventData&) const> callback
692 MCAPI
void registerRawInputEventHandler(
693 ::brstd::move_only_function<::ui::ViewRequest(::RawInputScreenEventData&) const> callback
696 MCAPI
void registerSliderChangedEventHandler(
698 ::brstd::move_only_function<::ui::ViewRequest(
int,
float) const> callback
701 MCAPI
void registerSliderFinishedEventHandler(
703 ::brstd::move_only_function<::ui::ViewRequest(
int,
float) const> callback
706 MCAPI
void registerSliderNotFinishedEventHandler(
708 ::brstd::move_only_function<::ui::ViewRequest(
int,
float) const> callback
711 MCAPI
void registerTextEditChangedEventHandler(
713 ::brstd::move_only_function<::ui::ViewRequest(::TextEditScreenEventData&,
int) const> callback
716 MCAPI
void registerTextEditFinishedEventHandler(
718 ::brstd::move_only_function<::ui::ViewRequest(::TextEditScreenEventData&,
int) const> callback
721 MCAPI
void registerTextEditSelectedStateChangeEventHandler(
723 ::brstd::move_only_function<::ui::ViewRequest(::TextEditSelectedStateChangeEventData&) const> callback
726 MCAPI
void registerTextEventHandler(
727 ::brstd::move_only_function<::ui::ViewRequest(::TextEditScreenEventData&,
int) const> callback
730 MCAPI
void registerToggleChangeEventHandler(
732 ::brstd::move_only_function<::ui::ViewRequest(::ToggleChangeEventData&) const> callback
739 MCAPI
void* $ctor(
bool useTaskGroup);
751 MCAPI ::ui::DirtyFlag $tick();
753 MCFOLD
void $preFrameTick();
755 MCAPI ::ui::ViewRequest $handleEvent(::ScreenEvent& screenEvent);
757 MCFOLD ::std::optional<::std::
string> $getRoute() const;
759 MCFOLD
void $setScreenState(::std::vector<::std::pair<::std::string_view, ::std::string_view>> const&);
761 MCAPI
void $onOpen();
763 MCAPI
void $queueTitleNarration();
765 MCAPI
void $onTerminate();
767 MCAPI
void $onInit();
769 MCFOLD
void $onDelete();
771 MCAPI
bool $canExit();
773 MCFOLD ::ui::ViewRequest $tryExit();
775 MCAPI
void $onCreation();
777 MCFOLD
void $onReload();
779 MCAPI
void $onLeave();
781 MCFOLD
void $leaveScreen(::std::
string const& expectedScreenName);
783 MCAPI ::ui::DirtyFlag $handleGameEventNotification(::ui::GameEventNotification notification);
786 ::std::
string const& collectionName,
787 uint collectionNameHash,
789 ::std::
string const& bindingName,
790 uint bindingNameHash,
791 ::std::
string const& bindingNameOverride,
796 ::std::
string const& bindingName,
797 uint bindingNameHash,
798 ::std::
string const& bindingNameOverride,
802 MCFOLD
void $handleLicenseChanged();
804 MCFOLD
void $setAssociatedBlockPos(::BlockPos const& pos);
806 MCFOLD
void $setAssociatedEntityUniqueID(::ActorUniqueID const unqiueID);
808 MCFOLD
void $setSuspendInput(
bool suspendInput);
810 MCFOLD
void $setSuspendDirectionalInput(
bool suspendDirectionalInput);
812 MCAPI
void $setViewCommand(::ScreenViewCommand const& callback);
814 MCAPI
void $addStaticScreenVars(::Json::Value& globalVars);
816 MCFOLD ::std::
string $getAdditionalScreenInfo() const;
818 MCFOLD ::std::
string $getTelemetryOverride() const;
820 MCFOLD
void $addEventProperties(::std::unordered_map<::std::
string, ::std::
string>& eventProperties) const;
822 MCFOLD ::ui::SceneType $getSceneType() const;
824 MCFOLD
int $getScreenVersion() const;
826 MCFOLD uint $getSceneId() const;
828 MCFOLD ::ScreenControllerProxy* $getProxy();
830 MCFOLD
void $onEntered();
832 MCFOLD
void $onScreenPushedAbove();
834 MCFOLD
void $onEntering();
836 MCFOLD
bool $_doesScreenHaveExitBehavior() const;
838 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:55
Definition TaskResult.h:5
Definition UIPropertyBag.h:5
Definition ActorUniqueID.h:10
Definition FocusMoveScreenEventData.h:5
Definition ItemRendererData.h:5
Definition PointerHeldScreenEventData.h:5
Definition ScreenEvent.h:5
Definition SliderChangeEventData.h:5
Definition TextEditScreenEventData.h:5
Definition TextEditSelectedStateChangeEventData.h:5
Definition ToggleChangeEventData.h:5