Remotely/Desktop.Unix/Controls/MessageBox.xaml.cs
Jared Goodwin 10ec413b7d WIP
2021-07-29 07:53:54 -07:00

67 lines
1.5 KiB
C#

using Avalonia;
using Avalonia.Controls;
using Avalonia.Markup.Xaml;
using Remotely.Desktop.Unix.ViewModels;
using System.Threading.Tasks;
namespace Remotely.Desktop.Unix.Controls
{
public class MessageBox : Window
{
public static async Task<MessageBoxResult> Show(string message, string caption, MessageBoxType type)
{
var messageBox = new MessageBox();
var viewModel = new MessageBoxViewModel();
viewModel.Caption = caption;
viewModel.Message = message;
switch (type)
{
case MessageBoxType.OK:
viewModel.IsOkButtonVisible = true;
break;
case MessageBoxType.YesNo:
viewModel.AreYesNoButtonsVisible = true;
break;
default:
break;
}
messageBox.DataContext = viewModel;
await messageBox.ShowDialog(App.Current.MainWindow);
return viewModel.Result;
}
private MessageBox()
{
this.InitializeComponent();
#if DEBUG
this.AttachDevTools();
#endif
}
private void InitializeComponent()
{
AvaloniaXamlLoader.Load(this);
this.Icon = App.Current?.MainWindow?.Icon;
}
}
public enum MessageBoxType
{
OK,
YesNo
}
public enum MessageBoxResult
{
Cancel,
OK,
Yes,
No
}
}