public BaseWindow ShowWindow(Type windowType) { var window = GetWindowByType(windowType); if (window.IsShown) { DebugWrapper.LogError( $"This window is already shown: {windowType}\n{StackTraceUtility.ExtractStackTrace()}"); } _shownWindows.Add(window); OnSomeWindowVisible?.Invoke(window); window.OnShow(); UpdateZOrder(window); return(window); }
public void HideWindow(BaseWindow window) { bool isCannotHide = window == null || !window.IsShown || !window.IsCanHideWindow; if (isCannotHide) { return; } _shownWindows.Remove(window); window.OnHide(); UpdateZOrder(window); OnSomeWindowHide?.Invoke(window); if (IsHaveTopWindow) { OnSomeWindowVisible?.Invoke(TopWindow); } }