/* * 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 }