diff options
Diffstat (limited to 'Ryujinx.Ava/UI/Controls/InputDialog.axaml.cs')
-rw-r--r-- | Ryujinx.Ava/UI/Controls/InputDialog.axaml.cs | 57 |
1 files changed, 57 insertions, 0 deletions
diff --git a/Ryujinx.Ava/UI/Controls/InputDialog.axaml.cs b/Ryujinx.Ava/UI/Controls/InputDialog.axaml.cs new file mode 100644 index 00000000..abaabd3b --- /dev/null +++ b/Ryujinx.Ava/UI/Controls/InputDialog.axaml.cs @@ -0,0 +1,57 @@ +using Avalonia.Controls; +using FluentAvalonia.UI.Controls; +using Ryujinx.Ava.Common.Locale; +using Ryujinx.Ava.UI.Helpers; +using Ryujinx.Ava.UI.Models; +using System.Threading.Tasks; + +namespace Ryujinx.Ava.UI.Controls +{ + public partial class InputDialog : UserControl + { + public string Message { get; set; } + public string Input { get; set; } + public string SubMessage { get; set; } + + public uint MaxLength { get; } + + public InputDialog(string message, string input = "", string subMessage = "", uint maxLength = int.MaxValue) + { + Message = message; + Input = input; + SubMessage = subMessage; + MaxLength = maxLength; + + DataContext = this; + } + + public InputDialog() + { + InitializeComponent(); + } + + public static async Task<(UserResult Result, string Input)> ShowInputDialog(string title, string message, + string input = "", string subMessage = "", uint maxLength = int.MaxValue) + { + UserResult result = UserResult.Cancel; + + InputDialog content = new InputDialog(message, input, subMessage, maxLength); + ContentDialog contentDialog = new ContentDialog + { + Title = title, + PrimaryButtonText = LocaleManager.Instance["InputDialogOk"], + SecondaryButtonText = "", + CloseButtonText = LocaleManager.Instance["InputDialogCancel"], + Content = content, + PrimaryButtonCommand = MiniCommand.Create(() => + { + result = UserResult.Ok; + input = content.Input; + }) + }; + await contentDialog.ShowAsync(); + + return (result, input); + } + } +}
\ No newline at end of file |