|
@@ -1,18 +1,23 @@
|
|
|
-using Avalonia;
|
|
|
-using Avalonia.Controls;
|
|
|
-using Avalonia.Controls.ApplicationLifetimes;
|
|
|
+using Avalonia.Controls;
|
|
|
using Avalonia.Layout;
|
|
|
using ReactiveUI;
|
|
|
using System.IO;
|
|
|
-using System.Security.Principal;
|
|
|
|
|
|
namespace VeloeMinecraftLauncher.ViewModels;
|
|
|
|
|
|
-public class ErrorWindowViewModel : ViewModelBase
|
|
|
+public enum MessageBoxButtons
|
|
|
+{
|
|
|
+ Ok,
|
|
|
+ OkCancel,
|
|
|
+ YesNo
|
|
|
+}
|
|
|
+public class MessageWindowViewModel : ViewModelBase
|
|
|
{
|
|
|
- public ErrorWindowViewModel()
|
|
|
+ public MessageWindowViewModel()
|
|
|
{
|
|
|
- ErrorMessage = "Error";
|
|
|
+ SetButtons(MessageBoxButtons.Ok);
|
|
|
+ Title = "Message";
|
|
|
+ Message = "Error";
|
|
|
ErrorTrace = "ErrorTrace\n1\n2\n3\n4\n5";
|
|
|
IsErrorTraceVisible = false;
|
|
|
ButtonText = "Open log";
|
|
@@ -20,9 +25,11 @@ public class ErrorWindowViewModel : ViewModelBase
|
|
|
_logfile = "";
|
|
|
}
|
|
|
|
|
|
- public ErrorWindowViewModel(string errorMessage, string errorTrace = "", bool centerMessage = false, string logfile = "")
|
|
|
+ public MessageWindowViewModel(string message, string title, MessageBoxButtons buttons = MessageBoxButtons.Ok, string errorTrace = "", string logfile = "")
|
|
|
{
|
|
|
- ErrorMessage = errorMessage;
|
|
|
+ SetButtons(buttons);
|
|
|
+ Title = title;
|
|
|
+ Message = message;
|
|
|
ErrorTrace = errorTrace;
|
|
|
if (string.IsNullOrEmpty(errorTrace))
|
|
|
{
|
|
@@ -45,7 +52,7 @@ public class ErrorWindowViewModel : ViewModelBase
|
|
|
|
|
|
}
|
|
|
|
|
|
- private string _errorMessage = string.Empty;
|
|
|
+ private string _message = string.Empty;
|
|
|
private string _errorTrace = string.Empty;
|
|
|
private bool _isErrorTraceVisible = false;
|
|
|
private bool _centerMessage = false;
|
|
@@ -57,10 +64,10 @@ public class ErrorWindowViewModel : ViewModelBase
|
|
|
set => this.RaiseAndSetIfChanged(ref _errorTrace, value);
|
|
|
}
|
|
|
|
|
|
- public string ErrorMessage
|
|
|
+ public string Message
|
|
|
{
|
|
|
- get => _errorMessage;
|
|
|
- set => this.RaiseAndSetIfChanged(ref _errorMessage, value);
|
|
|
+ get => _message;
|
|
|
+ set => this.RaiseAndSetIfChanged(ref _message, value);
|
|
|
}
|
|
|
|
|
|
public bool CenterMessage
|
|
@@ -85,13 +92,38 @@ public class ErrorWindowViewModel : ViewModelBase
|
|
|
get => CenterMessage ? VerticalAlignment.Center : VerticalAlignment.Stretch;
|
|
|
}
|
|
|
|
|
|
+ public string Title { get; set; } = "Message";
|
|
|
public string ButtonText { get; set; } = string.Empty;
|
|
|
+ public string ButtonOk { get; set; } = "Ok";
|
|
|
+ public string ButtonCancel { get; set; } = "Cancel";
|
|
|
+ public bool IsCancelButtonVisible { get; set; } = false;
|
|
|
|
|
|
public bool IsLogButtonVisible
|
|
|
{
|
|
|
get => !string.IsNullOrEmpty(_logfile);
|
|
|
}
|
|
|
|
|
|
+ private void SetButtons(MessageBoxButtons buttons)
|
|
|
+ {
|
|
|
+ switch (buttons)
|
|
|
+ {
|
|
|
+ case MessageBoxButtons.Ok:
|
|
|
+ ButtonOk = "Ok";
|
|
|
+ IsCancelButtonVisible = false;
|
|
|
+ break;
|
|
|
+ case MessageBoxButtons.OkCancel:
|
|
|
+ ButtonOk = "Ok";
|
|
|
+ ButtonCancel = "Cancel";
|
|
|
+ IsCancelButtonVisible = true;
|
|
|
+ break;
|
|
|
+ case MessageBoxButtons.YesNo:
|
|
|
+ ButtonOk = "Yes";
|
|
|
+ ButtonCancel = "No";
|
|
|
+ IsCancelButtonVisible = true;
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
public void OpenLogFile()
|
|
|
{
|
|
|
if (Path.Exists(_logfile))
|
|
@@ -105,5 +137,13 @@ public class ErrorWindowViewModel : ViewModelBase
|
|
|
window?.Close();
|
|
|
}
|
|
|
|
|
|
+ public void CloseWindowOk(Window window)
|
|
|
+ {
|
|
|
+ window?.Close(true);
|
|
|
+ }
|
|
|
|
|
|
+ public void CloseWindowCancel(Window window)
|
|
|
+ {
|
|
|
+ window?.Close(false);
|
|
|
+ }
|
|
|
}
|