private void DoApplyWindow(IWindow window, bool isUnique, bool overlap) { _isUnique = isUnique; window.CloseWindowEvent += OnCloseWindow; window.DestroyWindowEvent += OnDestroyWindow; window.Canvas.sortingOrder = StartCanvasSortingOrder + _openedWindows.Count; var overlappedWindow = _openedWindows.LastOrDefault(); _openedWindows.Add(window); if (window.IsActive()) { Debug.LogError("Window must be inactive in initial time."); } else if (!window.IsActiveOrActivated()) { window.Activate(); } if (overlap && overlappedWindow != null && overlappedWindow.IsActiveOrActivated()) { overlappedWindow.Deactivate(); } WindowOpenedEvent?.Invoke(window); }
protected virtual void OnWindowOpenedEvent(object sender, WindowEventArgs args) { WindowOpenedEvent?.Invoke(sender, args); }