LeviLamina
Loading...
Searching...
No Matches
SceneStack.h
1#pragma once
2
3#include "mc/_HeaderOutputPredefine.h"
4
5// auto generated inclusion list
6#include "mc/client/gui/GameEventNotification.h"
7#include "mc/client/gui/SceneType.h"
8#include "mc/client/gui/oreui/routing/RouteAction.h"
9#include "mc/client/gui/screens/interfaces/ISceneStack.h"
10#include "mc/deps/core/utility/NonOwnerPointer.h"
11#include "mc/deps/core/utility/pub_sub/Publisher.h"
12#include "mc/deps/core/utility/pub_sub/Subscription.h"
13#include "mc/platform/brstd/function_ref.h"
14
15// auto generated forward declare list
16// clang-format off
17class AbstractScene;
18class CachedScenes;
19class OptionRegistry;
20class SceneStackProxy;
21class TaskGroup;
23struct ScreenThreshold;
25namespace Bedrock::PubSub::ThreadModel { struct MultiThreaded; }
26// clang-format on
27
28class SceneStack : public ::ISceneStack {
29public:
30 // SceneStack inner types declare
31 // clang-format off
32 class SceneStackEvent;
33 class PushScreenEvent;
34 class PopScreenEvent;
36 class FlushScreenEvent;
38 class RouteActionEvent;
39 // clang-format on
40
41 // SceneStack inner types define
42 class SceneStackEvent {
43 public:
44 // SceneStackEvent inner types define
45 enum class EventType : int {
46 Push = 0,
47 Pop = 1,
48 PopRangeOfType = 2,
49 Flush = 3,
50 Reload = 4,
51 RouteAction = 5,
52 };
53
54 public:
55 // member variables
56 // NOLINTBEGIN
57 ::ll::TypedStorage<4, 4, ::SceneStack::SceneStackEvent::EventType> mType;
58 // NOLINTEND
59
60 public:
61 // virtual functions
62 // NOLINTBEGIN
63 virtual ~SceneStackEvent() = default;
64 // NOLINTEND
65 };
66
67 class PushScreenEvent : public ::SceneStack::SceneStackEvent {
68 public:
69 // member variables
70 // NOLINTBEGIN
71 ::ll::TypedStorage<8, 16, ::std::shared_ptr<::AbstractScene>> mScene;
72 ::ll::TypedStorage<8, 48, ::std::optional<::OreUI::RouteAction>> mRouteAction;
73 // NOLINTEND
74
75 public:
76 // virtual functions
77 // NOLINTBEGIN
78 virtual ~PushScreenEvent() /*override*/ = default;
79 // NOLINTEND
80 };
81
82 class PopScreenEvent : public ::SceneStack::SceneStackEvent {
83 public:
84 // member variables
85 // NOLINTBEGIN
86 ::ll::TypedStorage<4, 4, int> mPopCount;
87 ::ll::TypedStorage<8, 48, ::std::optional<::OreUI::RouteAction>> mRouteAction;
88 ::ll::TypedStorage<8, 24, ::std::vector<::std::string>> mExpectedScreenNames;
89 // NOLINTEND
90
91 public:
92 // virtual functions
93 // NOLINTBEGIN
94 virtual ~PopScreenEvent() /*override*/ = default;
95 // NOLINTEND
96 };
97
98 class PopRangeOfTypeScreenEvent : public ::SceneStack::SceneStackEvent {
99 public:
100 // member variables
101 // NOLINTBEGIN
102 ::ll::TypedStorage<4, 4, ::ui::SceneType> mSceneType;
103 ::ll::TypedStorage<4, 4, ::ui::SceneType> mSceneTypeExclusions;
104 ::ll::TypedStorage<4, 4, int> mPopCount;
105 // NOLINTEND
106
107 public:
108 // virtual functions
109 // NOLINTBEGIN
110 virtual ~PopRangeOfTypeScreenEvent() /*override*/ = default;
111 // NOLINTEND
112 };
113
114 class FlushScreenEvent : public ::SceneStack::SceneStackEvent {
115 public:
116 // member variables
117 // NOLINTBEGIN
118 ::ll::TypedStorage<1, 1, bool> mIgnoreNotFlushableFlag;
119 ::ll::TypedStorage<1, 1, bool> mIgnoreTransitions;
120 ::ll::TypedStorage<8, 64, ::std::function<void()>> mPostFlushCallback;
121 // NOLINTEND
122
123 public:
124 // virtual functions
125 // NOLINTBEGIN
126 virtual ~FlushScreenEvent() /*override*/ = default;
127 // NOLINTEND
128 };
129
130 class ReloadScreenEvent : public ::SceneStack::SceneStackEvent {
131 public:
132 // virtual functions
133 // NOLINTBEGIN
134 virtual ~ReloadScreenEvent() /*override*/ = default;
135 // NOLINTEND
136 };
137
138 class RouteActionEvent : public ::SceneStack::SceneStackEvent {
139 public:
140 // member variables
141 // NOLINTBEGIN
142 ::ll::TypedStorage<8, 40, ::OreUI::RouteAction> mRouteAction;
143 // NOLINTEND
144
145 public:
146 // virtual functions
147 // NOLINTBEGIN
148 virtual ~RouteActionEvent() /*override*/ = default;
149 // NOLINTEND
150 };
151
152public:
153 // member variables
154 // NOLINTBEGIN
155 ::ll::TypedStorage<8, 24, ::std::vector<::ISceneStack::SceneElement>> mScreenStack;
156 ::ll::TypedStorage<8, 8, ::CachedScenes&> mCachedScreens;
157 ::ll::TypedStorage<8, 24, ::std::vector<::std::unique_ptr<::SceneStack::SceneStackEvent>>> mStackEvents;
158 ::ll::TypedStorage<8, 24, ::std::vector<::std::unique_ptr<::SceneStack::SceneStackEvent>>> mQueuedStackEvents;
159 ::ll::TypedStorage<8, 24, ::std::vector<::ScreenThreshold>> mScreenThresholds;
160 ::ll::TypedStorage<8, 8, ::std::unique_ptr<::TaskGroup>> mDestroyScreenTaskGroup;
161 ::ll::TypedStorage<4, 4, int> mActiveStackSize;
162 ::ll::TypedStorage<4, 4, int> mScheduledScreenPushCount;
163 ::ll::TypedStorage<4, 4, int> mScheduledScreenPopCount;
164 ::ll::TypedStorage<1, 1, bool> mScreenNeedsEntrance;
165 ::ll::TypedStorage<8, 32, ::std::string> mLastPoppedScreenName;
166 ::ll::TypedStorage<1, 1, bool> mChangedThisFrame;
167 ::ll::TypedStorage<1, 1, bool> mScreenIsTicking;
168 ::ll::TypedStorage<1, 1, bool> mReloadScenesOnNextPop;
169 ::ll::TypedStorage<1, 1, bool> mDeferUpdatesUntilNextTick;
170 ::ll::TypedStorage<1, 1, bool> mBufferTextCharEvents;
171 ::ll::TypedStorage<8, 24, ::std::vector<::TextCharEventData>> mBufferedTextCharEventData;
172 ::ll::TypedStorage<8, 16, ::std::weak_ptr<::OptionRegistry>> mOptions;
173 ::ll::TypedStorage<8, 16, ::Bedrock::PubSub::Subscription> mAsyncLoadOptionSubscription;
174 ::ll::TypedStorage<8, 16, ::Bedrock::PubSub::Subscription> mScreenAnimationsSubscription;
175 ::ll::TypedStorage<8, 128, ::Bedrock::PubSub::Publisher<void(), ::Bedrock::PubSub::ThreadModel::MultiThreaded, 0>>
176 mSceneStackDestroyedPublisher;
177 ::ll::TypedStorage<8, 24, ::std::vector<::std::pair<void*, ::std::function<void(::AbstractScene&)>>>>
178 mSceneChangeCallbacks;
179 ::ll::TypedStorage<8, 24, ::std::vector<::std::pair<void*, ::std::function<void(::AbstractScene&)>>>>
180 mPrePushSceneCallbacks;
181 ::ll::TypedStorage<
182 8,
183 24,
184 ::std::vector<::std::pair<
185 void*,
186 ::std::function<void(::std::shared_ptr<::AbstractScene>, ::std::optional<::OreUI::RouteAction>)>>>>
187 mPushSceneCallbacks;
188 ::ll::TypedStorage<8, 24, ::std::vector<::std::pair<void*, ::std::function<void(::AbstractScene*)>>>>
189 mPrePopSceneCallbacks;
190 ::ll::TypedStorage<
191 8,
192 24,
193 ::std::vector<::std::pair<
194 void*,
195 ::std::function<void(::std::shared_ptr<::AbstractScene>, bool, ::std::optional<::OreUI::RouteAction>)>>>>
196 mPopSceneCallbacks;
197 ::ll::TypedStorage<
198 8,
199 24,
200 ::std::vector<
201 ::std::pair<void*, ::std::function<void(::std::vector<::std::shared_ptr<::AbstractScene>> const&)>>>>
202 mPopRangeSceneCallbacks;
203 ::ll::TypedStorage<8, 24, ::std::vector<::std::pair<void*, ::std::function<void(::OreUI::RouteAction const&)>>>>
204 mRouteActionCallbacks;
205 ::ll::TypedStorage<8, 8, ::std::unique_ptr<::SceneStackProxy>> mProxy;
206 ::ll::TypedStorage<8, 24, ::Bedrock::NotNullNonOwnerPtr<::UIEventCoordinator>> mUIEventCoordinator;
207 ::ll::TypedStorage<8, 64, ::std::function<bool()>> mGetSuspended;
208 // NOLINTEND
209
210public:
211 // prevent constructor by default
212 SceneStack& operator=(SceneStack const&);
213 SceneStack(SceneStack const&);
214 SceneStack();
215
216public:
217 // virtual functions
218 // NOLINTBEGIN
219 virtual ~SceneStack() /*override*/;
220
221 virtual void reload() /*override*/;
222
223 virtual void setOptions(::std::weak_ptr<::OptionRegistry> options) /*override*/;
224
225 virtual void
226 registerSceneChangeCallback(void* token, ::std::function<void(::AbstractScene&)> sceneChangeCallback) /*override*/;
227
228 virtual void unregisterSceneChangeCallback(void* token) /*override*/;
229
230 virtual void registerPrePushSceneCallback(
231 void* token,
232 ::std::function<void(::AbstractScene&)> prePushSceneCallback
233 ) /*override*/;
234
235 virtual void unregisterPrePushSceneCallback(void* token) /*override*/;
236
237 virtual void registerPushSceneCallback(
238 void* token,
239 ::std::function<void(::std::shared_ptr<::AbstractScene>, ::std::optional<::OreUI::RouteAction>)>
240 pushSceneCallback
241 ) /*override*/;
242
243 virtual void unregisterPushSceneCallback(void* token) /*override*/;
244
245 virtual void
246 registerPrePopSceneCallback(void* token, ::std::function<void(::AbstractScene*)> prePopSceneCallback) /*override*/;
247
248 virtual void unregisterPrePopSceneCallback(void* token) /*override*/;
249
250 virtual void registerPopSceneCallback(
251 void* token,
252 ::std::function<void(::std::shared_ptr<::AbstractScene>, bool, ::std::optional<::OreUI::RouteAction>)>
253 popSceneCallback
254 ) /*override*/;
255
256 virtual void unregisterPopSceneCallback(void* token) /*override*/;
257
258 virtual void registerPopRangeSceneCallback(
259 void* token,
260 ::std::function<void(::std::vector<::std::shared_ptr<::AbstractScene>> const&)> popRangeSceneCallback
261 ) /*override*/;
262
263 virtual void unregisterPopRangeSceneCallback(void* token) /*override*/;
264
265 virtual void registerRouteActionCallback(
266 void* token,
267 ::std::function<void(::OreUI::RouteAction const&)> routeActionCallback
268 ) /*override*/;
269
270 virtual void unregisterRouteActionCallback(void* token) /*override*/;
271
272 virtual void forEachVisibleScreen(
273 ::brstd::function_ref<void(::AbstractScene&)> callback,
274 bool tickedLastFrame,
275 bool splitscreenRenderBypassThisFrame
276 ) /*override*/;
277
278 virtual void forEachScreen(::brstd::function_ref<bool(::AbstractScene&)> callback, bool topDown) /*override*/;
279
280 virtual void forEachScreenConst(::brstd::function_ref<bool(::AbstractScene const&)> callback, bool topDown) const
281 /*override*/;
282
283 virtual void forEachAlwaysAcceptInputScreen(
284 ::brstd::function_ref<void(::AbstractScene&)> callback,
285 ::AbstractScene const* ignoreScreen
286 ) /*override*/;
287
288 virtual void
289 forEachAlwaysAcceptInputScreenWithTop(::brstd::function_ref<void(::AbstractScene&)> callback) /*override*/;
290
291 virtual void pushScreenWithRouteAction(
292 ::std::shared_ptr<::AbstractScene> newScreen,
293 ::OreUI::RouteAction const& routeAction
294 ) /*override*/;
295
296 virtual void popScreenWithRouteAction(::OreUI::RouteAction const& routeAction) /*override*/;
297
298 virtual void scheduleRouteAction(::OreUI::RouteAction const& routeAction) /*override*/;
299
300 virtual void pushScreen(::std::shared_ptr<::AbstractScene> newScreen, bool flush) /*override*/;
301
302 virtual void schedulePopScreen(int totalPopNumber) /*override*/;
303
304 virtual void
305 schedulePopScreenWithExpectedNames(::std::vector<::std::string> const& expectedScreenNames) /*override*/;
306
307 virtual void flushStack(::ISceneStack::FlushMode mode, ::std::function<void()> postFlushCallback) /*override*/;
308
309 virtual void deferUpdatesUntilNextTick() /*override*/;
310
311 virtual ::std::optional<uint64> getFirstSceneIndexOfSceneType(::ui::SceneType sceneType) const /*override*/;
312
313 virtual bool popScreensBackTo(::ui::SceneType const sceneType) /*override*/;
314
315 virtual bool popScreensBackToFirstInstanceOf(::ui::SceneType const sceneType) /*override*/;
316
317 virtual bool popTopScreensOfType(::ui::SceneType const sceneType) /*override*/;
318
319 virtual bool update() /*override*/;
320
321 virtual void resetScreenChangeDirtyFlag() /*override*/;
322
323 virtual bool hasChangedThisFrame() const /*override*/;
324
325 virtual bool isEmpty() const /*override*/;
326
327 virtual uint64 getSize() const /*override*/;
328
329 virtual void setScreenTickingFlag(bool screenIsTicking) /*override*/;
330
331 virtual bool getScreenTickingFlag() const /*override*/;
332
333 virtual ::ui::SceneType getNonTerminatingSceneType() const /*override*/;
334
335 virtual ::std::vector<::std::string> getScreenNames() const /*override*/;
336
337 virtual ::std::vector<::std::string> getScreenTelemetryNames() const /*override*/;
338
339 virtual ::std::string getScreenName() const /*override*/;
340
341 virtual ::std::string getScreenTelemetry() const /*override*/;
342
343 virtual ::std::string const& getLastPoppedScreenName() const /*override*/;
344
345 virtual void handleLicenseChanged() /*override*/;
346
347 virtual void onGameEventNotification(::ui::GameEventNotification notification) /*override*/;
348
349 virtual ::AbstractScene* getTopScene() /*override*/;
350
351 virtual ::AbstractScene const* getTopScene() const /*override*/;
352
353 virtual ::std::shared_ptr<::AbstractScene> getTopSceneShared() const /*override*/;
354
355 virtual ::AbstractScene* getActiveScene() /*override*/;
356
357 virtual ::AbstractScene const* getActiveScene() const /*override*/;
358
359 virtual ::std::shared_ptr<::AbstractScene> getSharedNonTerminatingActiveScene() /*override*/;
360
361 virtual ::std::shared_ptr<::AbstractScene const> const getSharedNonTerminatingActiveScene() const /*override*/;
362
363 virtual ::gsl::span<::ISceneStack::SceneElement const> getScreenStackView() const /*override*/;
364
365 virtual ::std::vector<::ISceneStack::PendingSceneStackChange> getPendingSceneStackChanges() const /*override*/;
366
367 virtual int getScheduledPopCount() const /*override*/;
368
369 virtual bool isScreenReplaceable() const /*override*/;
370
371 virtual void handleTextChar(::std::string const& inputUtf8) /*override*/;
372
373 virtual void setBufferTextCharEvents(bool pushTextCharEvents) /*override*/;
374
375 virtual bool isBufferingTextCharEvents() const /*override*/;
376
377 virtual bool isOnSceneStack(::ui::SceneType sceneType) const /*override*/;
378
379 virtual bool isOnSceneStack(::std::string const& screenName) const /*override*/;
380
381 virtual ::SceneStackProxy* getProxy() /*override*/;
382
383 virtual bool hasScheduledScreens() const /*override*/;
384
385 virtual bool hasScheduledEvents() const /*override*/;
386
387 virtual void setScreenThreshold(::ScreenThreshold const& screenThreshold) /*override*/;
388
389 virtual ::Bedrock::PubSub::Subscription
390 registerSceneStackDestroyedListener(::std::function<void()> callback) /*override*/;
391 // NOLINTEND
392
393public:
394 // member functions
395 // NOLINTBEGIN
396 MCAPI SceneStack(
397 ::CachedScenes& cachedScenes,
398 ::Bedrock::NotNullNonOwnerPtr<::UIEventCoordinator> const& uiEventCoordinator,
399 ::std::function<bool()> const& getSuspended,
400 ::std::function<::std::unique_ptr<::TaskGroup>(::std::string)> const& taskGroupProvider
401 );
402
403 MCAPI bool _animationsEnabled() const;
404
405 MCAPI bool _popScreens(
406 int& popCount,
407 bool ignoreTransitions,
408 ::std::optional<::OreUI::RouteAction> routeAction,
409 ::std::vector<::std::string> const& expectedScreenNames
410 );
411
412 MCAPI void _schedulePopScreen(
413 int totalPopNumber,
414 ::std::optional<::OreUI::RouteAction> routeAction,
415 ::std::vector<::std::string> const& expectedScreenNames
416 );
417
418 MCAPI void _schedulePushScreen(
419 ::std::shared_ptr<::AbstractScene> newScreen,
420 bool flush,
421 ::std::optional<::OreUI::RouteAction> routeAction
422 );
423 // NOLINTEND
424
425public:
426 // static functions
427 // NOLINTBEGIN
428 MCAPI static void _forEachVisibleScreen(
429 ::brstd::function_ref<void(::AbstractScene&)> callback,
430 ::std::function<::AbstractScene*(int)> getScreen,
431 bool,
432 bool splitscreenRenderBypassThisFrame,
433 uint64 topStackIndex,
434 uint64 startIndex,
435 uint64 endIndex,
436 bool renderDrawLastScreens
437 );
438
439 MCAPI static void forEachVisibleScreen(
440 ::brstd::function_ref<void(::AbstractScene&)> callback,
441 ::std::function<::AbstractScene*(int)> getScreen,
442 bool tickedLastFrame,
443 bool splitscreenRenderBypassThisFrame,
444 int size
445 );
446 // NOLINTEND
447
448public:
449 // constructor thunks
450 // NOLINTBEGIN
451 MCAPI void* $ctor(
452 ::CachedScenes& cachedScenes,
453 ::Bedrock::NotNullNonOwnerPtr<::UIEventCoordinator> const& uiEventCoordinator,
454 ::std::function<bool()> const& getSuspended,
455 ::std::function<::std::unique_ptr<::TaskGroup>(::std::string)> const& taskGroupProvider
456 );
457 // NOLINTEND
458
459public:
460 // destructor thunk
461 // NOLINTBEGIN
462 MCAPI void $dtor();
463 // NOLINTEND
464
465public:
466 // virtual function thunks
467 // NOLINTBEGIN
468 MCAPI void $reload();
469
470 MCAPI void $setOptions(::std::weak_ptr<::OptionRegistry> options);
471
472 MCAPI void $registerSceneChangeCallback(void* token, ::std::function<void(::AbstractScene&)> sceneChangeCallback);
473
474 MCAPI void $unregisterSceneChangeCallback(void* token);
475
476 MCAPI void $registerPrePushSceneCallback(void* token, ::std::function<void(::AbstractScene&)> prePushSceneCallback);
477
478 MCAPI void $unregisterPrePushSceneCallback(void* token);
479
480 MCAPI void $registerPushSceneCallback(
481 void* token,
482 ::std::function<void(::std::shared_ptr<::AbstractScene>, ::std::optional<::OreUI::RouteAction>)>
483 pushSceneCallback
484 );
485
486 MCAPI void $unregisterPushSceneCallback(void* token);
487
488 MCAPI void $registerPrePopSceneCallback(void* token, ::std::function<void(::AbstractScene*)> prePopSceneCallback);
489
490 MCAPI void $unregisterPrePopSceneCallback(void* token);
491
492 MCAPI void $registerPopSceneCallback(
493 void* token,
494 ::std::function<void(::std::shared_ptr<::AbstractScene>, bool, ::std::optional<::OreUI::RouteAction>)>
495 popSceneCallback
496 );
497
498 MCAPI void $unregisterPopSceneCallback(void* token);
499
500 MCAPI void $registerPopRangeSceneCallback(
501 void* token,
502 ::std::function<void(::std::vector<::std::shared_ptr<::AbstractScene>> const&)> popRangeSceneCallback
503 );
504
505 MCAPI void $unregisterPopRangeSceneCallback(void* token);
506
507 MCAPI void
508 $registerRouteActionCallback(void* token, ::std::function<void(::OreUI::RouteAction const&)> routeActionCallback);
509
510 MCAPI void $unregisterRouteActionCallback(void* token);
511
512 MCAPI void $forEachVisibleScreen(
513 ::brstd::function_ref<void(::AbstractScene&)> callback,
514 bool tickedLastFrame,
515 bool splitscreenRenderBypassThisFrame
516 );
517
518 MCAPI void $forEachScreen(::brstd::function_ref<bool(::AbstractScene&)> callback, bool topDown);
519
520 MCAPI void $forEachScreenConst(::brstd::function_ref<bool(::AbstractScene const&)> callback, bool topDown) const;
521
522 MCAPI void $forEachAlwaysAcceptInputScreen(
523 ::brstd::function_ref<void(::AbstractScene&)> callback,
524 ::AbstractScene const* ignoreScreen
525 );
526
527 MCAPI void $forEachAlwaysAcceptInputScreenWithTop(::brstd::function_ref<void(::AbstractScene&)> callback);
528
529 MCAPI void
530 $pushScreenWithRouteAction(::std::shared_ptr<::AbstractScene> newScreen, ::OreUI::RouteAction const& routeAction);
531
532 MCAPI void $popScreenWithRouteAction(::OreUI::RouteAction const& routeAction);
533
534 MCAPI void $scheduleRouteAction(::OreUI::RouteAction const& routeAction);
535
536 MCAPI void $pushScreen(::std::shared_ptr<::AbstractScene> newScreen, bool flush);
537
538 MCAPI void $schedulePopScreen(int totalPopNumber);
539
540 MCAPI void $schedulePopScreenWithExpectedNames(::std::vector<::std::string> const& expectedScreenNames);
541
542 MCAPI void $flushStack(::ISceneStack::FlushMode mode, ::std::function<void()> postFlushCallback);
543
544 MCAPI void $deferUpdatesUntilNextTick();
545
546 MCAPI ::std::optional<uint64> $getFirstSceneIndexOfSceneType(::ui::SceneType sceneType) const;
547
548 MCAPI bool $popScreensBackTo(::ui::SceneType const sceneType);
549
550 MCAPI bool $popScreensBackToFirstInstanceOf(::ui::SceneType const sceneType);
551
552 MCAPI bool $popTopScreensOfType(::ui::SceneType const sceneType);
553
554 MCAPI bool $update();
555
556 MCAPI void $resetScreenChangeDirtyFlag();
557
558 MCFOLD bool $hasChangedThisFrame() const;
559
560 MCAPI bool $isEmpty() const;
561
562 MCAPI uint64 $getSize() const;
563
564 MCAPI void $setScreenTickingFlag(bool screenIsTicking);
565
566 MCAPI bool $getScreenTickingFlag() const;
567
568 MCAPI ::ui::SceneType $getNonTerminatingSceneType() const;
569
570 MCAPI ::std::vector<::std::string> $getScreenNames() const;
571
572 MCAPI ::std::vector<::std::string> $getScreenTelemetryNames() const;
573
574 MCAPI ::std::string $getScreenName() const;
575
576 MCAPI ::std::string $getScreenTelemetry() const;
577
578 MCAPI ::std::string const& $getLastPoppedScreenName() const;
579
580 MCAPI void $handleLicenseChanged();
581
582 MCAPI void $onGameEventNotification(::ui::GameEventNotification notification);
583
584 MCAPI ::AbstractScene* $getTopScene();
585
586 MCAPI ::AbstractScene const* $getTopScene() const;
587
588 MCAPI ::std::shared_ptr<::AbstractScene> $getTopSceneShared() const;
589
590 MCAPI ::AbstractScene* $getActiveScene();
591
592 MCAPI ::AbstractScene const* $getActiveScene() const;
593
594 MCAPI ::std::shared_ptr<::AbstractScene> $getSharedNonTerminatingActiveScene();
595
596 MCAPI ::std::shared_ptr<::AbstractScene const> const $getSharedNonTerminatingActiveScene() const;
597
598 MCAPI ::gsl::span<::ISceneStack::SceneElement const> $getScreenStackView() const;
599
600 MCAPI ::std::vector<::ISceneStack::PendingSceneStackChange> $getPendingSceneStackChanges() const;
601
602 MCFOLD int $getScheduledPopCount() const;
603
604 MCAPI bool $isScreenReplaceable() const;
605
606 MCAPI void $handleTextChar(::std::string const& inputUtf8);
607
608 MCAPI void $setBufferTextCharEvents(bool pushTextCharEvents);
609
610 MCAPI bool $isBufferingTextCharEvents() const;
611
612 MCAPI bool $isOnSceneStack(::ui::SceneType sceneType) const;
613
614 MCAPI bool $isOnSceneStack(::std::string const& screenName) const;
615
616 MCAPI ::SceneStackProxy* $getProxy();
617
618 MCAPI bool $hasScheduledScreens() const;
619
620 MCAPI bool $hasScheduledEvents() const;
621
622 MCAPI void $setScreenThreshold(::ScreenThreshold const& screenThreshold);
623
624 MCAPI ::Bedrock::PubSub::Subscription $registerSceneStackDestroyedListener(::std::function<void()> callback);
625 // NOLINTEND
626};
Definition AbstractScene.h:5
Definition CachedScenes.h:5
Definition ISceneStack.h:5
Definition OptionRegistry.h:5
Definition SceneStackProxy.h:5
Definition SceneStack.h:31
Definition SceneStack.h:29
Definition SceneStack.h:27
Definition SceneStack.h:25
Definition SceneStack.h:33
Definition SceneStack.h:35
Definition SceneStack.h:19
Definition SceneStack.h:5
Definition TaskGroup.h:86
Definition UIEventCoordinator.h:5
Definition ISceneStack.h:18
Definition ISceneStack.h:16
Definition ScreenThreshold.h:5
Definition TextCharEventData.h:5