From 78eba880aa710b102d90b0f4304e52acf6316285 Mon Sep 17 00:00:00 2001 From: Paddy Xu Date: Fri, 9 Jun 2017 21:40:10 +0300 Subject: [PATCH] Expose BalloonTip events to the outside world --- QuickLook/TrayIconManager.cs | 18 +++++++++++++++++- 1 file changed, 17 insertions(+), 1 deletion(-) diff --git a/QuickLook/TrayIconManager.cs b/QuickLook/TrayIconManager.cs index fc0c2f9..b8f181f 100644 --- a/QuickLook/TrayIconManager.cs +++ b/QuickLook/TrayIconManager.cs @@ -47,9 +47,25 @@ namespace QuickLook _icon.Visible = false; } - public void ShowNotification(string title, string content, bool isError = false) + public void ShowNotification(string title, string content, bool isError = false, Action clickEvent = null, + Action closeEvent = null) { _icon.ShowBalloonTip(5000, title, content, isError ? ToolTipIcon.Error : ToolTipIcon.Info); + _icon.BalloonTipClicked += OnIconOnBalloonTipClicked; + _icon.BalloonTipClosed += OnIconOnBalloonTipClosed; + + void OnIconOnBalloonTipClicked(object sender, EventArgs e) + { + clickEvent?.Invoke(); + _icon.BalloonTipClicked -= OnIconOnBalloonTipClicked; + } + + + void OnIconOnBalloonTipClosed(object sender, EventArgs e) + { + closeEvent?.Invoke(); + _icon.BalloonTipClosed -= OnIconOnBalloonTipClosed; + } } internal static TrayIconManager GetInstance()