private void MakeRoomInStack(PopupNotificationForm window) { int index = _windows.IndexOf(window); if (index == -1) { return; } var desiredTop = _origin.Y - _windows[_windows.Count - 1].Height; for (int i = _windows.Count - 2; i >= index + 1; --i) { desiredTop -= _windows[i].Height - WindowSpacing; } if (window.Top > desiredTop) { AnimateVerticalSlide(window, desiredTop); } var w2 = window; for (int i = index - 1; i >= 0; --i) { var w1 = _windows[i]; desiredTop = desiredTop - w1.Height - WindowSpacing; if (w1.Top > desiredTop) { AnimateVerticalSlide(w1, desiredTop); } else { break; } w2 = w1; } }
private void PushForce(NotificationContent notification) { var window = new PopupNotificationForm(notification); var h = window.Height; var x = _origin.X; var y = _origin.Y - h; window.Left = x; window.Top = y; _windows.Add(window); MakeRoomInStack(window); window.SizeChanged += OnWindowSizeChanged; AnimateFadeIn(window); window.Closed += OnWindowClosed; window.Show(); }
private static void AnimateFadeIn(PopupNotificationForm window) { }
private static void AnimateVerticalSlide(PopupNotificationForm window, int targetTop) { window.Top = targetTop; }