public static void ReplaceTopScreen(ScreenBase screen) { Debug.Print("ReplaceToTopScreen"); if (ScreenManager._screenList.Count > 0) { ScreenManager.TopScreen.HandlePause(); ScreenManager.TopScreen.HandleDeactivate(); ScreenManager.TopScreen.HandleFinalize(); ScreenManager.OnPopScreenEvent onPopScreen = ScreenManager.OnPopScreen; if (onPopScreen != null) { onPopScreen(ScreenManager.TopScreen); } ScreenManager._screenList.Remove(ScreenManager.TopScreen); } ScreenManager._screenList.Add(screen); screen.HandleInitialize(); screen.HandleActivate(); screen.HandleResume(); ScreenManager.RefreshGlobalOrder(); ScreenManager.OnPushScreenEvent onPushScreen = ScreenManager.OnPushScreen; if (onPushScreen == null) { return; } onPushScreen(screen); }
public static void CleanAndPushScreen(ScreenBase screen) { Debug.Print(nameof(CleanAndPushScreen)); ScreenManager.DeactivateAndFinalizeAllScreens(); ScreenManager._screenList.Add(screen); screen.HandleInitialize(); screen.HandleActivate(); screen.HandleResume(); ScreenManager.RefreshGlobalOrder(); ScreenManager.OnPushScreenEvent onPushScreen = ScreenManager.OnPushScreen; if (onPushScreen == null) { return; } onPushScreen(screen); }
public static void SetAndActivateRootScreen(ScreenBase screen) { Debug.Print(nameof(SetAndActivateRootScreen)); if (ScreenManager.TopScreen != null) { throw new Exception("TopScreen is not null."); } ScreenManager._screenList.Add(screen); screen.HandleInitialize(); screen.HandleActivate(); screen.HandleResume(); ScreenManager.RefreshGlobalOrder(); ScreenManager.OnPushScreenEvent onPushScreen = ScreenManager.OnPushScreen; if (onPushScreen == null) { return; } onPushScreen(screen); }
public static void PushScreen(ScreenBase screen) { Debug.Print(nameof(PushScreen)); if (ScreenManager._screenList.Count > 0) { ScreenManager.TopScreen.HandlePause(); if (ScreenManager.TopScreen.IsActive) { ScreenManager.TopScreen.HandleDeactivate(); } } ScreenManager._screenList.Add(screen); screen.HandleInitialize(); screen.HandleActivate(); screen.HandleResume(); ScreenManager.RefreshGlobalOrder(); ScreenManager.OnPushScreenEvent onPushScreen = ScreenManager.OnPushScreen; if (onPushScreen == null) { return; } onPushScreen(screen); }