From ec6cb0abb4b7669895b6e96fd7581c93b5abd691 Mon Sep 17 00:00:00 2001 From: Mary Guillemard Date: Sat, 2 Mar 2024 12:51:05 +0100 Subject: infra: Make Avalonia the default UI (#6375) * misc: Move Ryujinx project to Ryujinx.Gtk3 This breaks release CI for now but that's fine. Signed-off-by: Mary Guillemard * misc: Move Ryujinx.Ava project to Ryujinx This breaks CI for now, but it's fine. Signed-off-by: Mary Guillemard * infra: Make Avalonia the default UI Should fix CI after the previous changes. GTK3 isn't build by the release job anymore, only by PR CI. This also ensure that the test-ava update package is still generated to allow update from the old testing channel. Signed-off-by: Mary Guillemard * Fix missing copy in create_app_bundle.sh Signed-off-by: Mary Guillemard * Fix syntax error Signed-off-by: Mary Guillemard --------- Signed-off-by: Mary Guillemard --- src/Ryujinx.Ava/UI/Applet/AvaHostUIHandler.cs | 204 -------------------------- 1 file changed, 204 deletions(-) delete mode 100644 src/Ryujinx.Ava/UI/Applet/AvaHostUIHandler.cs (limited to 'src/Ryujinx.Ava/UI/Applet/AvaHostUIHandler.cs') diff --git a/src/Ryujinx.Ava/UI/Applet/AvaHostUIHandler.cs b/src/Ryujinx.Ava/UI/Applet/AvaHostUIHandler.cs deleted file mode 100644 index 4bcc35a7..00000000 --- a/src/Ryujinx.Ava/UI/Applet/AvaHostUIHandler.cs +++ /dev/null @@ -1,204 +0,0 @@ -using Avalonia.Controls; -using Avalonia.Threading; -using FluentAvalonia.UI.Controls; -using Ryujinx.Ava.Common.Locale; -using Ryujinx.Ava.UI.Controls; -using Ryujinx.Ava.UI.Helpers; -using Ryujinx.Ava.UI.Windows; -using Ryujinx.HLE; -using Ryujinx.HLE.HOS.Applets; -using Ryujinx.HLE.HOS.Services.Am.AppletOE.ApplicationProxyService.ApplicationProxy.Types; -using Ryujinx.HLE.UI; -using System; -using System.Threading; - -namespace Ryujinx.Ava.UI.Applet -{ - internal class AvaHostUIHandler : IHostUIHandler - { - private readonly MainWindow _parent; - - public IHostUITheme HostUITheme { get; } - - public AvaHostUIHandler(MainWindow parent) - { - _parent = parent; - - HostUITheme = new AvaloniaHostUITheme(parent); - } - - public bool DisplayMessageDialog(ControllerAppletUIArgs args) - { - ManualResetEvent dialogCloseEvent = new(false); - - bool okPressed = false; - - Dispatcher.UIThread.InvokeAsync(async () => - { - var response = await ControllerAppletDialog.ShowControllerAppletDialog(_parent, args); - if (response == UserResult.Ok) - { - okPressed = true; - } - - dialogCloseEvent.Set(); - }); - - dialogCloseEvent.WaitOne(); - - return okPressed; - } - - public bool DisplayMessageDialog(string title, string message) - { - ManualResetEvent dialogCloseEvent = new(false); - - bool okPressed = false; - - Dispatcher.UIThread.InvokeAsync(async () => - { - try - { - ManualResetEvent deferEvent = new(false); - - bool opened = false; - - UserResult response = await ContentDialogHelper.ShowDeferredContentDialog(_parent, - title, - message, - "", - LocaleManager.Instance[LocaleKeys.DialogOpenSettingsWindowLabel], - "", - LocaleManager.Instance[LocaleKeys.SettingsButtonClose], - (int)Symbol.Important, - deferEvent, - async window => - { - if (opened) - { - return; - } - - opened = true; - - _parent.SettingsWindow = new SettingsWindow(_parent.VirtualFileSystem, _parent.ContentManager); - - await _parent.SettingsWindow.ShowDialog(window); - - _parent.SettingsWindow = null; - - opened = false; - }); - - if (response == UserResult.Ok) - { - okPressed = true; - } - - dialogCloseEvent.Set(); - } - catch (Exception ex) - { - await ContentDialogHelper.CreateErrorDialog(LocaleManager.Instance.UpdateAndGetDynamicValue(LocaleKeys.DialogMessageDialogErrorExceptionMessage, ex)); - - dialogCloseEvent.Set(); - } - }); - - dialogCloseEvent.WaitOne(); - - return okPressed; - } - - public bool DisplayInputDialog(SoftwareKeyboardUIArgs args, out string userText) - { - ManualResetEvent dialogCloseEvent = new(false); - - bool okPressed = false; - bool error = false; - string inputText = args.InitialText ?? ""; - - Dispatcher.UIThread.InvokeAsync(async () => - { - try - { - var response = await SwkbdAppletDialog.ShowInputDialog(LocaleManager.Instance[LocaleKeys.SoftwareKeyboard], args); - - if (response.Result == UserResult.Ok) - { - inputText = response.Input; - okPressed = true; - } - } - catch (Exception ex) - { - error = true; - - await ContentDialogHelper.CreateErrorDialog(LocaleManager.Instance.UpdateAndGetDynamicValue(LocaleKeys.DialogSoftwareKeyboardErrorExceptionMessage, ex)); - } - finally - { - dialogCloseEvent.Set(); - } - }); - - dialogCloseEvent.WaitOne(); - - userText = error ? null : inputText; - - return error || okPressed; - } - - public void ExecuteProgram(Switch device, ProgramSpecifyKind kind, ulong value) - { - device.Configuration.UserChannelPersistence.ExecuteProgram(kind, value); - _parent.ViewModel.AppHost?.Stop(); - } - - public bool DisplayErrorAppletDialog(string title, string message, string[] buttons) - { - ManualResetEvent dialogCloseEvent = new(false); - - bool showDetails = false; - - Dispatcher.UIThread.InvokeAsync(async () => - { - try - { - ErrorAppletWindow msgDialog = new(_parent, buttons, message) - { - Title = title, - WindowStartupLocation = WindowStartupLocation.CenterScreen, - Width = 400, - }; - - object response = await msgDialog.Run(); - - if (response != null && buttons != null && buttons.Length > 1 && (int)response != buttons.Length - 1) - { - showDetails = true; - } - - dialogCloseEvent.Set(); - - msgDialog.Close(); - } - catch (Exception ex) - { - dialogCloseEvent.Set(); - - await ContentDialogHelper.CreateErrorDialog(LocaleManager.Instance.UpdateAndGetDynamicValue(LocaleKeys.DialogErrorAppletErrorExceptionMessage, ex)); - } - }); - - dialogCloseEvent.WaitOne(); - - return showDetails; - } - - public IDynamicTextInputHandler CreateDynamicTextInputHandler() - { - return new AvaloniaDynamicTextInputHandler(_parent); - } - } -} -- cgit v1.2.3