Example #1
0
        /// <summary>
        /// Adds another console to active stack, setting it as the active (top most in the stack) console.
        /// </summary>
        /// <param name="console"></param>
        public void Push(Console console)
        {
            if (console != activeConsole && console != null)
            {
                if (consoles.Contains(console))
                {
                    consoles.Remove(console);
                }

                if (activeConsole != null)
                {
                    activeConsole.OnFocusLost();
                }

                consoles.Add(console);
                activeConsole = console;
                activeConsole.OnFocused();
            }
        }
Example #2
0
        /// <summary>
        /// Removes the console from the active stack. If the instance is the current active console, the active console is set to the last console in the previous console.
        /// </summary>
        /// <param name="console">The console to remove.</param>
        public void Pop(Console console)
        {
            if (console == activeConsole)
            {
                activeConsole.OnFocusLost();
                consoles.Remove(console);

                if (consoles.Count != 0)
                {
                    activeConsole = consoles.Last();
                    activeConsole.OnFocused();
                }
                else
                {
                    activeConsole = null;
                }
            }
            else
            {
                consoles.Remove(console);
            }
        }