/*
* GNU AFFERO GENERAL PUBLIC LICENSE
* Version 3, 19 November 2007
* Copyright (C) 2007 Free Software Foundation, Inc.
* Everyone is permitted to copy and distribute verbatim copies
* of this license document, but changing it is not allowed.
*/
using Avalonia.Threading;
using MessageBox.Avalonia.Enums;
using System;
using System.Threading.Tasks;
using UVtools.Core.Dialogs;
using UVtools.WPF.Extensions;
namespace UVtools.WPF.Structures;
public class UiMessageBoxStandard : AbstractMessageBoxStandard
{
#region Instance
private static readonly Lazy _instance = new(() => new UiMessageBoxStandard());
public static UiMessageBoxStandard Instance => _instance.Value;
#endregion
#region Constructor
private UiMessageBoxStandard()
{ }
#endregion
#region Methods
public override Task ShowDialog(string? title, string message, MessageButtons buttons = MessageButtons.Ok)
{
return Dispatcher.UIThread.InvokeAsync(async () =>
{
var result = await App.MainWindow.MessageBoxQuestion(message, string.IsNullOrWhiteSpace(title) ? "Question" : title, (ButtonEnum) buttons, false, true);
return (MessageButtonResult) result;
});
}
#endregion
}