3#include "mc/_HeaderOutputPredefine.h"
6#include "mc/certificates/identity/LastClickedSource.h"
7#include "mc/client/gui/DirtyFlag.h"
8#include "mc/client/gui/ViewRequest.h"
9#include "mc/client/gui/screens/ScreenController.h"
10#include "mc/client/gui/screens/controllers/ModalScreenButtonId.h"
11#include "mc/client/gui/screens/controllers/ModalScreenButtonMode.h"
12#include "mc/client/gui/screens/controllers/SafeZoneBuffer.h"
13#include "mc/client/gui/screens/controllers/ScreenExitBehavior.h"
14#include "mc/client/gui/screens/controllers/UpdateSliderProgressMode.h"
15#include "mc/client/social/UserPlatformConnectionResult.h"
16#include "mc/deps/core/utility/EnableNonOwnerReferences.h"
17#include "mc/deps/input/InputMode.h"
18#include "mc/identity/IdentitySignInTrigger.h"
19#include "mc/options/option_types/OptionID.h"
20#include "mc/world/level/FileArchiver.h"
29namespace Core {
class Path; }
35 public ::std::enable_shared_from_this<::MinecraftScreenController> {
47 ::ll::TypedStorage<1, 1, bool> mShouldLeave;
48 ::ll::TypedStorage<8, 32, ::std::string> mExpectedScreenName;
52 using BooleanOptionGetter = ::std::function<bool()>;
54 using IntegerOptionGetter = ::std::function<int()>;
56 using IntegerOptionSetter = ::std::function<void(
int)>;
58 using CollectionBooleanOptionGetter = ::std::function<bool(
int)>;
60 using CollectionIntegerOptionGetter = ::std::function<int(
int)>;
62 using CollectionIntegerOptionSetter = ::std::function<void(
int,
int)>;
64 using StepSliderOptionLabeller = ::std::function<::std::string(
int)>;
66 using IntValuesVectorGetter = ::std::function<::std::vector<int>()>;
68 using StringOptionGetter = ::std::function<::std::string()>;
70 using ProgressSliderOptionLabeller = ::std::function<::std::string(::std::string
const&,
float,
bool)>;
72 using FloatOptionGetter = ::std::function<float()>;
74 using FloatOptionSetter = ::std::function<void(
float)>;
79 ::ll::TypedStorage<8, 16, ::std::shared_ptr<::MinecraftScreenModel>> mMinecraftScreenModel;
80 ::ll::TypedStorage<4, 4, ::ScreenExitBehavior> mExitBehavior;
81 ::ll::TypedStorage<4, 4, ::InputMode> mInputMode;
82 ::ll::TypedStorage<4, 4, ::InputMode> mPreviousInputMode;
83 ::ll::TypedStorage<1, 1, bool> mPlayerDied;
84 ::ll::TypedStorage<8, 64, ::std::function<void(::ModalScreenButtonId)>> mModalDialogResultCallback;
85 ::ll::TypedStorage<8, 32, ::std::string> mTTSTitle;
86 ::ll::TypedStorage<8, 32, ::std::string> mTTSDialogMessage;
87 ::ll::TypedStorage<8, 40, ::MinecraftScreenController::LeaveScreenInfo> mLeaveScreen;
88 ::ll::TypedStorage<1, 1, bool> mRayTracingActive;
89 ::ll::TypedStorage<8, 64, ::std::unordered_map<::std::string, ::std::vector<bool>>> mDropDownActive;
90 ::ll::TypedStorage<8, 64, ::std::unordered_map<::std::string, int>> mStepSliderValues;
91 ::ll::TypedStorage<1, 1, bool> mIsShowErrorScreenInProgress;
96 MinecraftScreenController();
101 virtual ~MinecraftScreenController() ;
103 virtual ::ui::ViewRequest tryExit() ;
105 virtual ::ui::DirtyFlag tick() ;
107 virtual uint getSceneId() const ;
109 virtual
void setSuspendInput(
bool suspendInput) ;
111 virtual
void setSuspendDirectionalInput(
bool suspendDirectionalInput) ;
113 virtual
void leaveScreen(::std::
string const& expectedScreenName) ;
115 virtual
void onInit() ;
117 virtual
void onDelete() ;
119 virtual
void onOpen() ;
122 ::std::
string const& collectionName,
123 uint collectionNameHash,
125 ::std::
string const& bindingName,
126 uint bindingNameHash,
127 ::std::
string const& bindingNameOverride,
132 ::std::
string const& bindingName,
133 uint bindingNameHash,
134 ::std::
string const& bindingNameOverride,
138 virtual
bool _doesScreenHaveExitBehavior() const ;
140 virtual
bool _isStillValid() const;
142 virtual
bool _getGamepadHelperVisible() const;
144 virtual
bool _getMixedHelperVisible() const;
146 virtual
bool _getKeyboardHelperVisible() const;
148 virtual
bool _getGestureControlEnabled() const;
150 virtual ::std::
string _getButtonStartDescription();
152 virtual ::std::
string _getButtonADescription();
154 virtual ::std::
string _getButtonBDescription();
156 virtual ::std::
string _getButtonXDescription();
158 virtual ::std::
string _getButtonYDescription();
160 virtual ::std::
string _getButtonKeyboardDescription();
162 virtual ::std::
string _getScreenName() const;
164 virtual ::ui::ViewRequest
165 promptConnect(
bool signInOnSuccess, ::std::function<
void(::Social::UserPlatformConnectionResult)> signInCallback);
167 virtual
void _onInputModeChanged();
173 MCAPI MinecraftScreenController(
174 ::std::shared_ptr<::MinecraftScreenModel> model,
175 ::ScreenExitBehavior exitBehavior,
176 bool usesErrorPopupInfo
184 ::Social::IdentitySignInTrigger signInTrigger,
185 ::
std::
string const& signInSource,
186 ::
std::function<
void(::Social::MultiIdentitySigninResult)> callback
198 ::
std::
string const& factory,
199 ::
std::
string const& ttsTitle,
200 ::
std::
string const& ttsContent
204 ::
std::
string const& controlId,
205 ::
std::
string const& factory,
206 ::
std::
string const& name,
207 ::
std::
string const& ttsTitle,
208 ::
std::
string const& ttsContent
212 ::
std::
string const& messageString,
213 ::
std::
string const& closeButtonTitle,
214 bool showOpenAccountSettingButton
220 ::
std::
string const& title,
221 ::
std::
string const& message,
222 ::ModalScreenButtonMode buttonNumber,
223 ::
std::function<
void(
bool)> callback,
224 ::
std::
string const& telemetryOverride
233 ::Social::MultiIdentitySigninResult const& signInResult,
234 ::
std::function<
void(::Social::MultiIdentitySigninResult)> callback,
247 MCNAPI ::
std::
string const
263 ::
std::
string const& controlId,
264 ::
std::
string const& factory,
265 ::
std::
string const& name
277 ::Social::IdentitySignInTrigger signInTrigger,
278 ::
std::
string const& signInSource,
279 ::
std::function<
void(::Social::MultiIdentitySigninResult)> signInCallback
283 ::
std::
string const& collectionName,
284 int const& collectionSize,
285 ::
std::
string const& dropdownName,
286 ::
std::
string const& dropdownToggleLabelBindingName,
287 ::
std::unordered_map<::
std::
string,
int> const& nameValuePairs,
288 ::
std::unordered_map<
int, ::
std::
string> const& valueLabelPairs,
289 ::
std::
string const& enabledBindingName,
290 ::
std::function<
bool(
int)> isEnabled,
291 ::
std::function<
int(
int)> getValue,
292 ::
std::function<
void(
int,
int)> setValue
297 ::
std::
string const& dropdownName,
298 ::
std::unordered_map<::
std::
string,
int> const& nameValuePairs,
299 ::
std::unordered_map<
int, ::
std::
string> const& valueLabelPairs
303 ::
std::
string const& dropdownName,
304 ::
std::
string const& dropdownToggleLabelBindingName,
305 ::
std::unordered_map<::
std::
string,
int> const& nameValuePairs,
306 ::
std::unordered_map<
int, ::
std::
string> const& nameLabelPairs,
307 ::
std::function<
int()> getValue,
308 ::
std::function<
void(
int)> setValue
312 ::
std::
string const& dropdownName,
313 ::
std::
string const& dropdownToggleLabelBindingName,
314 ::
std::unordered_map<::
std::
string,
int> const& nameValuePairs,
315 ::
std::unordered_map<
int, ::
std::
string> const& valueLabelPairs,
316 ::
std::
string const& enabledBindingName,
317 ::
std::function<
bool()> isEnabled,
318 ::
std::function<
int()> getValue,
319 ::
std::function<
void(
int)> setValue
324 ::
std::
string const& sliderName,
325 ::
std::
string const& optionFormat,
326 ::
std::function<::
std::
string(::
std::
string const&,
float,
bool)> valueLabeller,
327 ::UpdateSliderProgressMode updateProgressMode
331 ::
std::
string const& sliderName,
332 ::
std::
string const& valueBindingName,
333 ::
std::
string const& enabledBindingName,
334 ::
std::
string const& labelBindingName,
335 ::
std::
string const& ttsBindingName,
336 ::
std::function<::
std::
string()> getOptionName,
337 ::
std::function<
bool()> isEnabled,
338 ::
std::function<
float()> getValue,
339 ::
std::function<
void(
float)> setValue,
340 ::
std::function<
float()> getMin,
341 ::
std::function<
float()> getMax,
342 ::
std::
string const& optionFormat,
343 ::
std::function<::
std::
string(::
std::
string const&,
float,
bool)> valueLabeller,
344 ::UpdateSliderProgressMode updateProgressMode
348 ::
std::
string const& nestedBaseButtonId,
349 ::
std::
string const& nestedControlEnabledBinding,
350 ::
std::
string firstControlName,
353 ::
std::vector<uint> ignoredControls
357 ::
std::
string const& gridCollectionPrefix,
358 ::
std::function<
int()> widthCallback,
359 ::
std::function<
int()> heightCallback,
360 ::
std::function<
int()> itemCountCallback
365 ::
std::
string const& sliderName,
366 ::
std::function<::
std::
string(
int)> valueLabeller,
367 bool continuousUpdate
371 ::
std::
string const& sliderName,
372 ::
std::
string const& valueBindingName,
373 ::
std::
string const& enabledBindingName,
374 ::
std::
string const& stepsBindingName,
375 ::
std::
string const& labelBindingName,
376 ::
std::
string const& ttsBindingName,
377 ::
std::function<::
std::
string()> getOptionName,
378 ::
std::function<
bool()> isEnabled,
379 ::
std::function<::
std::vector<
int>()> getValues,
380 ::
std::function<
int()> getValue,
381 ::
std::function<
void(
int)> setValue,
382 ::
std::function<::
std::
string(
int)> valueLabeller,
383 bool continuousUpdate,
384 ::OptionID sliderOptionID
403 MCNAPI static ::
std::function<::
std::
string(::
std::
string const&,
float,
bool)>&
415 $ctor(::
std::shared_ptr<::
MinecraftScreenModel> model, ::ScreenExitBehavior exitBehavior,
bool usesErrorPopupInfo);
446 ::
std::
string const& collectionName,
447 uint collectionNameHash,
449 ::
std::
string const& bindingName,
450 uint bindingNameHash,
451 ::
std::
string const& bindingNameOverride,
456 ::
std::
string const& bindingName,
457 uint bindingNameHash,
458 ::
std::
string const& bindingNameOverride,
488 MCNAPI ::ui::ViewRequest
489 $promptConnect(
bool signInOnSuccess, ::
std::function<
void(::Social::UserPlatformConnectionResult)> signInCallback);
Definition EnableNonOwnerReferences.h:7
Definition DropdownScreenController.h:5
Definition FileArchiver.h:35
Definition MinecraftScreenController.h:5
MCAPI void setUpCallbacksForNestedButtonInCollection(::std::string const &nestedBaseButtonId, ::std::string const &nestedControlEnabledBinding, ::std::string firstControlName, ::std::function< int(::UIPropertyBag &)> indexSelectionFunc, ::std::function< bool(::UIPropertyBag &, int)> visibilityFunction, ::std::vector< uint > ignoredControls)
MCAPI void $leaveScreen(::std::string const &expectedScreenName)
MCAPI void _displayJsonDefinedControlPopup(::UIPropertyBag const &popupBag, ::std::string const &factory, ::std::string const &ttsTitle, ::std::string const &ttsContent)
MCAPI void _showMobileDataBlockedModal()
static MCAPI ::std::string & mSliderOptionTitle()
MCAPI void _showLiveMultiplayerModal()
MCAPI bool $_getGestureControlEnabled() const
MCAPI::ui::ViewRequest _onModalEventReceived(::ModalScreenButtonId modalResult, bool buttonClosesModal)
static MCAPI ::ModalScreenData getProfanityModalData()
MCAPI int _getStepSliderValue(::std::function< int()> getValue, ::std::string const &valueBindingName, bool continuousUpdate)
MCAPI::std::string $_getButtonBDescription()
MCAPI::ui::ViewRequest showSignIn()
MCAPI::std::string const _retrieveBindingValueFromPropertyBag(::std::string const &bindingName, ::UIPropertyBag &propertyBag) const
MCAPI ::std::shared_ptr<::DropdownScreenController > setUpCallbacksForCollectionDropdownOption(::std::string const &collectionName, int const &collectionSize, ::std::string const &dropdownName, ::std::string const &dropdownToggleLabelBindingName, ::std::unordered_map<::std::string, int > const &nameValuePairs, ::std::unordered_map< int, ::std::string > const &valueLabelPairs, ::std::string const &enabledBindingName, ::std::function< bool(int)> isEnabled, ::std::function< int(int)> getValue, ::std::function< void(int, int)> setValue)
MCAPI::std::string $_getButtonStartDescription()
MCAPI void _closeModalDialog()
MCAPI void exportPDF(::PDFOptions options, ::std::string const &defaultOutName, ::std::function< void(bool)> onComplete)
MCAPI void showRemoteStorageErrorModal(::Core::Path const &storageDirectory)
MCAPI bool _attemptSignIn(::Social::IdentitySignInTrigger signInTrigger, ::std::string const &signInSource, ::std::function< void(::Social::MultiIdentitySigninResult)> callback)
MCAPI::ui::ViewRequest $tryExit()
MCAPI bool _isApprovedLink(::std::string const &hyperlink) const
MCAPI bool _resolveSafeZoneVisibility(::SafeZoneBuffer buffer) const
MCAPI::std::string $_getButtonYDescription()
static MCAPI ::std::string const & defaultOptionFormat()
MCAPI void _showNoWifiModal()
MCAPI bool $_isStillValid() const
MCAPI bool $bind(::std::string const &collectionName, uint collectionNameHash, int collectionIndex, ::std::string const &bindingName, uint bindingNameHash, ::std::string const &bindingNameOverride, ::UIPropertyBag &bag)
MCAPI void _handleSignInFailure(::Social::MultiIdentitySigninResult const &signInResult, ::std::function< void(::Social::MultiIdentitySigninResult)> callback, bool isAutoSignIn)
MCAPI void gateOnPlatformSignInForStoreAccess(::std::function< void()> callback)
MCAPI void exportWorld(::std::string const &levelId, ::std::string const &levelName, ::FileArchiver::ExportType type)
MCAPI void setUpCallbacksForDropdownOption(::OptionID optionID, ::std::string const &dropdownName, ::std::unordered_map<::std::string, int > const &nameValuePairs, ::std::unordered_map< int, ::std::string > const &valueLabelPairs)
MCAPI::std::string $_getButtonADescription()
static MCAPI ::std::function<::std::string(::std::string const &, float, bool)> & defaultProgressSliderOptionLabeller()
MCAPI::std::string $_getScreenName() const
MCAPI::ui::ViewRequest promptSignIn(::Social::IdentitySignInTrigger signInTrigger, ::std::string const &signInSource, ::std::function< void(::Social::MultiIdentitySigninResult)> signInCallback)
MCAPI void $setSuspendDirectionalInput(bool suspendDirectionalInput)
MCAPI void _showServerCapacityFullModal()
MCAPI void _promptEduSwitchAccounts(bool showModal, ::std::string const &buttonName, ::LastClickedSource lastClickedSource)
MCAPI::ui::DirtyFlag $tick()
MCAPI bool $_doesScreenHaveExitBehavior() const
MCAPI void setUpCallbacksForStackPanelGrid(::std::string const &gridCollectionPrefix, ::std::function< int()> widthCallback, ::std::function< int()> heightCallback, ::std::function< int()> itemCountCallback)
MCAPI void _attemptConnect(::std::function< void(::Social::UserPlatformConnectionResult)> callback)
MCAPI void setUpCallbacksForFloatOption(::OptionID optionID, ::std::string const &sliderName, ::std::string const &optionFormat, ::std::function<::std::string(::std::string const &, float, bool)> valueLabeller, ::UpdateSliderProgressMode updateProgressMode)
MCAPI void _gateRealmsWhenCrossPlatformIsDisabled(::std::function< void()> callback)
MCAPI::ui::ViewRequest $promptConnect(bool signInOnSuccess, ::std::function< void(::Social::UserPlatformConnectionResult)> signInCallback)
MCAPI::std::string $_getButtonKeyboardDescription()
MCAPI uint $getSceneId() const
MCAPI::std::string $_getButtonXDescription()
MCAPI bool $_getMixedHelperVisible() const
MCAPI bool _checkRealmCreatePermissions()
MCAPI bool $_getKeyboardHelperVisible() const
MCAPI void _displayPrivilegesBlockedModalPopup(::std::string const &messageString, ::std::string const &closeButtonTitle, bool showOpenAccountSettingButton)
MCAPI void _displaySignOutFailedModalPopup(::std::string const &error)
MCAPI bool _tryShowSuspendWarningModal(::std::function< void()> onConfirm)
MCAPI void _attemptAddFriends(::std::function< void()> callback)
MCAPI bool $_getGamepadHelperVisible() const
MCAPI void _displayCustomModalPopup(::ModalScreenData const &modalData, ::std::function< void(::ModalScreenButtonId)> callback)
MCAPI void $_onInputModeChanged()
MCAPI void displayJsonDefinedControlPopup(::std::string const &controlId, ::std::string const &factory, ::std::string const &name)
MCAPI void _displayStandardModalPopup(::std::string const &title, ::std::string const &message, ::ModalScreenButtonMode buttonNumber, ::std::function< void(bool)> callback, ::std::string const &telemetryOverride)
static MCAPI ::OptionID & mSliderOptionID()
MCAPI void $setSuspendInput(bool suspendInput)
MCAPI void setUpCallbacksForStepOption(::OptionID optionID, ::std::string const &sliderName, ::std::function<::std::string(int)> valueLabeller, bool continuousUpdate)
MCAPI bool _tryNavigateToXblUpsellScreen()
Definition MinecraftScreenModel.h:5
Definition ScreenController.h:5
Definition UIPropertyBag.h:5
Definition MinecraftScreenController.h:13
Definition ModalScreenData.h:5
Definition PDFOptions.h:5
Definition MultiIdentitySigninResult.h:7