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