Skip to content

Commit fa96132

Browse files
committed
Add Plugin API -> VisibiltyChangedEventHandler
1 parent da26a17 commit fa96132

File tree

4 files changed

+33
-1
lines changed

4 files changed

+33
-1
lines changed

Flow.Launcher.Plugin/Interfaces/IPublicAPI.cs

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -96,7 +96,12 @@ public interface IPublicAPI
9696
/// </summary>
9797
/// <returns></returns>
9898
bool IsMainWindowVisible();
99-
99+
100+
/// <summary>
101+
/// Invoked when the visibility of the main window has changed
102+
/// </summary>
103+
event VisibilityChangedEventHandler VisibilityChanged;
104+
100105
/// <summary>
101106
/// Show message box
102107
/// </summary>
Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
using System;
2+
3+
namespace Flow.Launcher.Plugin
4+
{
5+
/// <summary>
6+
/// A delegate for when the visibility is changed
7+
/// </summary>
8+
/// <param name="sender"></param>
9+
/// <param name="args"></param>
10+
public delegate void VisibilityChangedEventHandler(object sender, VisibilityChangedEventArgs args);
11+
/// <summary>
12+
/// The event args for <see cref="VisibilityChangedEventHandler"/>
13+
/// </summary>
14+
public class VisibilityChangedEventArgs : EventArgs
15+
{
16+
/// <summary>
17+
/// <see langword="true"/> if the main window has become visible
18+
/// </summary>
19+
public bool IsVisible { get; init; }
20+
}
21+
}

Flow.Launcher/PublicAPIInstance.cs

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -75,6 +75,8 @@ public void RestartApp()
7575

7676
public bool IsMainWindowVisible() => _mainVM.MainWindowVisibilityStatus;
7777

78+
public event VisibilityChangedEventHandler VisibilityChanged { add => _mainVM.VisibilityChanged += value; remove => _mainVM.VisibilityChanged -= value; }
79+
7880
public void CheckForNewUpdate() => _settingsVM.UpdateApp();
7981

8082
public void SaveAppAllSettings()

Flow.Launcher/ViewModel/MainViewModel.cs

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -578,6 +578,8 @@ private ResultsViewModel SelectedResults
578578
// because it is more accurate and reliable representation than using Visibility as a condition check
579579
public bool MainWindowVisibilityStatus { get; set; } = true;
580580

581+
public event VisibilityChangedEventHandler VisibilityChanged;
582+
581583
public Visibility SearchIconVisibility { get; set; }
582584

583585
public double MainWindowWidth
@@ -1014,6 +1016,7 @@ public void Show()
10141016
MainWindowOpacity = 1;
10151017

10161018
MainWindowVisibilityStatus = true;
1019+
VisibilityChanged?.Invoke(this, new VisibilityChangedEventArgs { IsVisible = true });
10171020
});
10181021
}
10191022

@@ -1048,6 +1051,7 @@ public async void Hide()
10481051

10491052
MainWindowVisibilityStatus = false;
10501053
MainWindowVisibility = Visibility.Collapsed;
1054+
VisibilityChanged?.Invoke(this, new VisibilityChangedEventArgs { IsVisible = false });
10511055
}
10521056

10531057
/// <summary>

0 commit comments

Comments
 (0)