Example #1
0
        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();
        }
Example #2
0
        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();
        }
Example #3
0
        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();
        }