2022-07-23 19:23:32 +00:00
|
|
|
|
using System;
|
2023-07-12 22:41:31 +00:00
|
|
|
|
using System.Collections.Generic;
|
2022-07-23 19:23:32 +00:00
|
|
|
|
|
|
|
|
|
namespace MSFSPopoutPanelManager.Shared
|
|
|
|
|
{
|
|
|
|
|
public class StatusMessageWriter
|
|
|
|
|
{
|
2023-07-12 22:41:31 +00:00
|
|
|
|
private static List<StatusMessage> _messages = new List<StatusMessage>();
|
|
|
|
|
|
2023-08-16 03:41:14 +00:00
|
|
|
|
public static event EventHandler<List<StatusMessage>> OnStatusMessage;
|
2022-07-23 19:23:32 +00:00
|
|
|
|
|
2023-08-16 03:41:14 +00:00
|
|
|
|
public static void WriteMessage(string message, StatusMessageType statusMessageType)
|
2023-07-12 22:41:31 +00:00
|
|
|
|
{
|
2023-08-16 03:41:14 +00:00
|
|
|
|
_messages.Add(new StatusMessage { Message = message, StatusMessageType = statusMessageType });
|
2023-07-12 22:41:31 +00:00
|
|
|
|
|
|
|
|
|
if (IsEnabled)
|
2023-08-16 03:41:14 +00:00
|
|
|
|
OnStatusMessage?.Invoke(null, _messages);
|
2023-07-12 22:41:31 +00:00
|
|
|
|
}
|
|
|
|
|
|
2023-08-16 03:41:14 +00:00
|
|
|
|
public static void WriteMessageWithNewLine(string message, StatusMessageType statusMessageType)
|
2022-07-23 19:23:32 +00:00
|
|
|
|
{
|
2023-07-12 22:41:31 +00:00
|
|
|
|
_messages.Add(new StatusMessage { Message = message, StatusMessageType = statusMessageType, NewLine = true });
|
|
|
|
|
|
|
|
|
|
if (IsEnabled)
|
2023-08-16 03:41:14 +00:00
|
|
|
|
OnStatusMessage?.Invoke(null, _messages);
|
2022-07-23 19:23:32 +00:00
|
|
|
|
}
|
|
|
|
|
|
2023-08-16 03:41:14 +00:00
|
|
|
|
public static void WriteExecutingStatusMessage()
|
|
|
|
|
{
|
|
|
|
|
_messages.Add(new StatusMessage { Message = " (Executing)", StatusMessageType = StatusMessageType.Executing, NewLine = false });
|
|
|
|
|
|
|
|
|
|
if (IsEnabled)
|
|
|
|
|
OnStatusMessage?.Invoke(null, _messages);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public static void WriteOkStatusMessage()
|
2022-07-23 19:23:32 +00:00
|
|
|
|
{
|
2023-07-12 22:41:31 +00:00
|
|
|
|
_messages.Add(new StatusMessage { Message = " (OK)", StatusMessageType = StatusMessageType.Success, NewLine = true });
|
|
|
|
|
|
|
|
|
|
if (IsEnabled)
|
2023-08-16 03:41:14 +00:00
|
|
|
|
OnStatusMessage?.Invoke(null, _messages);
|
2022-07-23 19:23:32 +00:00
|
|
|
|
}
|
2023-07-12 22:41:31 +00:00
|
|
|
|
|
2023-08-16 03:41:14 +00:00
|
|
|
|
public static void WriteFailureStatusMessage()
|
2023-07-12 22:41:31 +00:00
|
|
|
|
{
|
|
|
|
|
_messages.Add(new StatusMessage { Message = " (FAILED)", StatusMessageType = StatusMessageType.Failure, NewLine = true });
|
|
|
|
|
|
|
|
|
|
if (IsEnabled)
|
2023-08-16 03:41:14 +00:00
|
|
|
|
OnStatusMessage?.Invoke(null, _messages);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public static void RemoveLastMessage()
|
|
|
|
|
{
|
|
|
|
|
_messages.RemoveAt(_messages.Count - 1);
|
2023-07-12 22:41:31 +00:00
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public static void ClearMessage()
|
|
|
|
|
{
|
|
|
|
|
_messages.Clear();
|
2023-08-16 03:41:14 +00:00
|
|
|
|
OnStatusMessage?.Invoke(null, new List<StatusMessage>());
|
2023-07-12 22:41:31 +00:00
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public static bool IsEnabled { get; set; }
|
2022-07-23 19:23:32 +00:00
|
|
|
|
}
|
|
|
|
|
}
|