public void PushScreen(NotNull <Screen> screen) { if (CurrentScreen != null) { IUserInterfaceScreen oldScreen = CurrentScreen; oldScreen.Deactivate(); } mScreens.Push(screen); IUserInterfaceScreen uiScreen = (IUserInterfaceScreen)screen.Value; uiScreen.Attach(this, mForm.Terminal); Repaint(); }
public void SetScreen(NotNull <Screen> screen) { // Remove the current screen (if any) if (_screens.Count > 0) { //if (_screens.Count == 0) throw new InvalidOperationException("Cannot pop when there are no screens on the stack."); // Unbind the screen IUserInterfaceScreen oldScreen = (IUserInterfaceScreen)_screens.Pop(); oldScreen.Detach(this); } _screens.Push(screen); IUserInterfaceScreen uiScreen = (IUserInterfaceScreen)screen.Value; uiScreen.Attach(this); Repaint(); }
public void PopScreen() { if (mScreens.Count == 0) { throw new InvalidOperationException("Cannot pop when there are no screens on the stack."); } // unbind the screen Screen screen = mScreens.Pop(); IUserInterfaceScreen uiScreen = (IUserInterfaceScreen)screen; uiScreen.Detach(this); if (CurrentScreen != null) { IUserInterfaceScreen newScreen = CurrentScreen; newScreen.Activate(); } Repaint(); }