using System; namespace Artemis.UI.Shared.Services.MainWindow; /// /// A service that can be used to manage the state of the main window. /// public interface IMainWindowService : IArtemisSharedUIService { /// /// Gets a boolean indicating whether the main window is currently open /// bool IsMainWindowOpen { get; } /// /// Gets a boolean indicating whether the main window is currently focused /// bool IsMainWindowFocused { get; } /// /// Sets up the main window provider that controls the state of the main window /// /// The main window provider to use to control the state of the main window void ConfigureMainWindowProvider(IMainWindowProvider mainWindowProvider); /// /// Opens the main window if it is not already open, must be called on the UI thread /// void OpenMainWindow(); /// /// Closes the main window if it is not already closed, must be called on the UI thread /// void CloseMainWindow(); /// /// Occurs when the main window has been opened /// public event EventHandler? MainWindowOpened; /// /// Occurs when the main window has been closed /// public event EventHandler? MainWindowClosed; /// /// Occurs when the main window has been focused /// public event EventHandler? MainWindowFocused; /// /// Occurs when the main window has been unfocused /// public event EventHandler? MainWindowUnfocused; }