using CommunityToolkit.Mvvm.Input; using MultiTerm.Protocols.Types; namespace MultiTerm.Protocols; public interface IProtocolSettingsViewModel { /// /// Indicates the protocol type of the implementing SettingsViewModel. /// ProtocolType ProtocolType { get; } /// /// Indicates if the displays ifself as if the protocol is connected. /// bool DisplaysConnected { get; } /// /// Indicates wether the settings can currently be edited. /// bool AreEditable { get; } /// /// Event that is thrown when the user requested to connect to the device with the entered settings. /// Provides protocol settings to use for connection. /// event EventHandler ConnectRequested; /// /// Event that is thrown when the user requested to disconnect from the device. /// event EventHandler? DisconnectRequested; /// /// Change the state from connected to disconnected or from disconnected to connected. /// Does not throw or . /// /// /// if true changes the state from disconnected to connected. /// if false changes the state from connected to disconnected. /// void ForceConnectedState(bool connected); }