Add Plugin API -> VisibiltyChangedEventHandler

This commit is contained in:
Odotocodot 2023-07-03 22:42:41 +01:00
parent da26a17163
commit fa96132528
4 changed files with 33 additions and 1 deletions

View file

@ -96,7 +96,12 @@ namespace Flow.Launcher.Plugin
/// </summary>
/// <returns></returns>
bool IsMainWindowVisible();
/// <summary>
/// Invoked when the visibility of the main window has changed
/// </summary>
event VisibilityChangedEventHandler VisibilityChanged;
/// <summary>
/// Show message box
/// </summary>

View file

@ -0,0 +1,21 @@
using System;
namespace Flow.Launcher.Plugin
{
/// <summary>
/// A delegate for when the visibility is changed
/// </summary>
/// <param name="sender"></param>
/// <param name="args"></param>
public delegate void VisibilityChangedEventHandler(object sender, VisibilityChangedEventArgs args);
/// <summary>
/// The event args for <see cref="VisibilityChangedEventHandler"/>
/// </summary>
public class VisibilityChangedEventArgs : EventArgs
{
/// <summary>
/// <see langword="true"/> if the main window has become visible
/// </summary>
public bool IsVisible { get; init; }
}
}

View file

@ -75,6 +75,8 @@ namespace Flow.Launcher
public bool IsMainWindowVisible() => _mainVM.MainWindowVisibilityStatus;
public event VisibilityChangedEventHandler VisibilityChanged { add => _mainVM.VisibilityChanged += value; remove => _mainVM.VisibilityChanged -= value; }
public void CheckForNewUpdate() => _settingsVM.UpdateApp();
public void SaveAppAllSettings()

View file

@ -578,6 +578,8 @@ namespace Flow.Launcher.ViewModel
// because it is more accurate and reliable representation than using Visibility as a condition check
public bool MainWindowVisibilityStatus { get; set; } = true;
public event VisibilityChangedEventHandler VisibilityChanged;
public Visibility SearchIconVisibility { get; set; }
public double MainWindowWidth
@ -1014,6 +1016,7 @@ namespace Flow.Launcher.ViewModel
MainWindowOpacity = 1;
MainWindowVisibilityStatus = true;
VisibilityChanged?.Invoke(this, new VisibilityChangedEventArgs { IsVisible = true });
});
}
@ -1048,6 +1051,7 @@ namespace Flow.Launcher.ViewModel
MainWindowVisibilityStatus = false;
MainWindowVisibility = Visibility.Collapsed;
VisibilityChanged?.Invoke(this, new VisibilityChangedEventArgs { IsVisible = false });
}
/// <summary>