/// <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(); } }
/// <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); } }