From 0742d0301c4208301f9268d572191c12e6f21219 Mon Sep 17 00:00:00 2001 From: Kevin Zhang Date: Sat, 16 Oct 2021 21:53:03 -0500 Subject: [PATCH] Revert "- Change the popup to windows notification" This reverts commit 1317077dd8ab1102c97d93ad0477c255e4aa112b. --- Flow.Launcher/Msg.xaml.cs | 66 +++++++++++++++++++++++++++------------ 1 file changed, 46 insertions(+), 20 deletions(-) diff --git a/Flow.Launcher/Msg.xaml.cs b/Flow.Launcher/Msg.xaml.cs index c6b26ccd5..6bb2fc2dc 100644 --- a/Flow.Launcher/Msg.xaml.cs +++ b/Flow.Launcher/Msg.xaml.cs @@ -5,30 +5,59 @@ using System.Windows.Forms; using System.Windows.Input; using System.Windows.Media.Animation; using System.Windows.Media.Imaging; -using System.Windows.Media; using Flow.Launcher.Helper; using Flow.Launcher.Infrastructure; using Flow.Launcher.Infrastructure.Image; -using Windows.UI; -using Windows.Data; -using Windows.Data.Xml.Dom; -using Windows.UI.Notifications; namespace Flow.Launcher { public partial class Msg : Window { + Storyboard fadeOutStoryboard = new Storyboard(); + private bool closing; public Msg() { InitializeComponent(); + var screen = Screen.FromPoint(System.Windows.Forms.Cursor.Position); + var dipWorkingArea = WindowsInteropHelper.TransformPixelsToDIP(this, + screen.WorkingArea.Width, + screen.WorkingArea.Height); + Left = dipWorkingArea.X - Width; + Top = dipWorkingArea.Y; + showAnimation.From = dipWorkingArea.Y; + showAnimation.To = dipWorkingArea.Y - Height; + // Create the fade out storyboard + fadeOutStoryboard.Completed += fadeOutStoryboard_Completed; + DoubleAnimation fadeOutAnimation = new DoubleAnimation(dipWorkingArea.Y - Height, dipWorkingArea.Y, new Duration(TimeSpan.FromSeconds(5))) + { + AccelerationRatio = 0.2 + }; + Storyboard.SetTarget(fadeOutAnimation, this); + Storyboard.SetTargetProperty(fadeOutAnimation, new PropertyPath(TopProperty)); + fadeOutStoryboard.Children.Add(fadeOutAnimation); + + imgClose.Source = ImageLoader.Load(Path.Combine(Infrastructure.Constant.ProgramDirectory, "Images\\close.png")); + imgClose.MouseUp += imgClose_MouseUp; + } + + void imgClose_MouseUp(object sender, MouseButtonEventArgs e) + { + if (!closing) + { + closing = true; + fadeOutStoryboard.Begin(); + } + } + + private void fadeOutStoryboard_Completed(object sender, EventArgs e) + { + Close(); } public void Show(string title, string subTitle, string iconPath) { - - tbTitle.Text = title; tbSubTitle.Text = subTitle; if (string.IsNullOrEmpty(subTitle)) @@ -39,23 +68,20 @@ namespace Flow.Launcher { imgIco.Source = ImageLoader.Load(Path.Combine(Constant.ProgramDirectory, "Images\\app.png")); } - else - { + else { imgIco.Source = ImageLoader.Load(iconPath); } - /* Using Windows Notification System */ - var ToastTitle = title; - var ToastsubTitle = subTitle; - var Icon = imgIco.Source; - var xml = $"\"meziantou\"/{ToastTitle}" + - $"{ToastsubTitle}"; - var toastXml = new XmlDocument(); - toastXml.LoadXml(xml); - var toast = new ToastNotification(toastXml); - ToastNotificationManager.CreateToastNotifier("Flow Launcher").Show(toast); + Show(); + Dispatcher.InvokeAsync(async () => + { + if (!closing) + { + closing = true; + await Dispatcher.InvokeAsync(fadeOutStoryboard.Begin); + } + }); } - } }