| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667 |
- using Avalonia.Controls;
- using Avalonia.Markup.Xaml;
- using FluentAvalonia.UI.Controls;
- using Ryujinx.Ava.Common.Locale;
- using Ryujinx.Ava.Ui.Models;
- using Ryujinx.Ava.Ui.Windows;
- using System.Threading.Tasks;
- namespace Ryujinx.Ava.Ui.Controls
- {
- public 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;
- InitializeComponent();
- }
- public InputDialog()
- {
- InitializeComponent();
- }
- private void InitializeComponent()
- {
- AvaloniaXamlLoader.Load(this);
- }
- public static async Task<(UserResult Result, string Input)> ShowInputDialog(StyleableWindow window, string title, string message, string input = "", string subMessage = "", uint maxLength = int.MaxValue)
- {
- ContentDialog contentDialog = window.ContentDialog;
- UserResult result = UserResult.Cancel;
- InputDialog content = new InputDialog(message, input = "", subMessage = "", maxLength);
- if (contentDialog != null)
- {
- contentDialog.Title = title;
- contentDialog.PrimaryButtonText = LocaleManager.Instance["InputDialogOk"];
- contentDialog.SecondaryButtonText = "";
- contentDialog.CloseButtonText = LocaleManager.Instance["InputDialogCancel"];
- contentDialog.Content = content;
- contentDialog.PrimaryButtonCommand = MiniCommand.Create(() =>
- {
- result = UserResult.Ok;
- input = content.Input;
- });
- await contentDialog.ShowAsync();
- }
- return (result, input);
- }
- }
- }
|