From f06d22d6f01e657ebbc0c8ef082739cd468e47b5 Mon Sep 17 00:00:00 2001 From: Isaac Marovitz <42140194+IsaacMarovitz@users.noreply.github.com> Date: Sun, 11 Feb 2024 02:09:18 +0000 Subject: Infra: Capitalisation Consistency (#6296) * Rename Ryujinx.UI.Common * Rename Ryujinx.UI.LocaleGenerator * Update in Files AboutWindow * Configuration State * Rename projects * Ryujinx/UI * Fix build * Main remaining inconsistencies * HLE.UI Namespace * HLE.UI Files * Namespace * Ryujinx.UI.Common.Configuration.UI * Ryujinx.UI.Common,Configuration.UI Files * More instances --- src/Ryujinx.Ava/UI/Applet/AvaHostUIHandler.cs | 204 +++++++++++++++++++++ src/Ryujinx.Ava/UI/Applet/AvaHostUiHandler.cs | 204 --------------------- .../UI/Applet/AvaloniaDynamicTextInputHandler.cs | 2 +- src/Ryujinx.Ava/UI/Applet/AvaloniaHostUITheme.cs | 41 +++++ src/Ryujinx.Ava/UI/Applet/AvaloniaHostUiTheme.cs | 41 ----- .../UI/Applet/ControllerAppletDialog.axaml.cs | 4 +- src/Ryujinx.Ava/UI/Applet/ErrorAppletWindow.axaml | 2 +- src/Ryujinx.Ava/UI/Applet/SwkbdAppletDialog.axaml | 2 +- .../UI/Applet/SwkbdAppletDialog.axaml.cs | 2 +- 9 files changed, 251 insertions(+), 251 deletions(-) create mode 100644 src/Ryujinx.Ava/UI/Applet/AvaHostUIHandler.cs delete mode 100644 src/Ryujinx.Ava/UI/Applet/AvaHostUiHandler.cs create mode 100644 src/Ryujinx.Ava/UI/Applet/AvaloniaHostUITheme.cs delete mode 100644 src/Ryujinx.Ava/UI/Applet/AvaloniaHostUiTheme.cs (limited to 'src/Ryujinx.Ava/UI/Applet') diff --git a/src/Ryujinx.Ava/UI/Applet/AvaHostUIHandler.cs b/src/Ryujinx.Ava/UI/Applet/AvaHostUIHandler.cs new file mode 100644 index 00000000..4bcc35a7 --- /dev/null +++ b/src/Ryujinx.Ava/UI/Applet/AvaHostUIHandler.cs @@ -0,0 +1,204 @@ +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); + } + } +} diff --git a/src/Ryujinx.Ava/UI/Applet/AvaHostUiHandler.cs b/src/Ryujinx.Ava/UI/Applet/AvaHostUiHandler.cs deleted file mode 100644 index e1193910..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); - } - } -} diff --git a/src/Ryujinx.Ava/UI/Applet/AvaloniaDynamicTextInputHandler.cs b/src/Ryujinx.Ava/UI/Applet/AvaloniaDynamicTextInputHandler.cs index 2411659f..531d0061 100644 --- a/src/Ryujinx.Ava/UI/Applet/AvaloniaDynamicTextInputHandler.cs +++ b/src/Ryujinx.Ava/UI/Applet/AvaloniaDynamicTextInputHandler.cs @@ -5,7 +5,7 @@ using Avalonia.Threading; using Ryujinx.Ava.Input; using Ryujinx.Ava.UI.Helpers; using Ryujinx.Ava.UI.Windows; -using Ryujinx.HLE.Ui; +using Ryujinx.HLE.UI; using System; using System.Threading; using HidKey = Ryujinx.Common.Configuration.Hid.Key; diff --git a/src/Ryujinx.Ava/UI/Applet/AvaloniaHostUITheme.cs b/src/Ryujinx.Ava/UI/Applet/AvaloniaHostUITheme.cs new file mode 100644 index 00000000..016fb484 --- /dev/null +++ b/src/Ryujinx.Ava/UI/Applet/AvaloniaHostUITheme.cs @@ -0,0 +1,41 @@ +using Avalonia.Media; +using Ryujinx.Ava.UI.Windows; +using Ryujinx.HLE.UI; +using System; + +namespace Ryujinx.Ava.UI.Applet +{ + class AvaloniaHostUITheme : IHostUITheme + { + public AvaloniaHostUITheme(MainWindow parent) + { + FontFamily = OperatingSystem.IsWindows() && OperatingSystem.IsWindowsVersionAtLeast(10, 0, 22000) ? "Segoe UI Variable" : parent.FontFamily.Name; + DefaultBackgroundColor = BrushToThemeColor(parent.Background); + DefaultForegroundColor = BrushToThemeColor(parent.Foreground); + DefaultBorderColor = BrushToThemeColor(parent.BorderBrush); + SelectionBackgroundColor = BrushToThemeColor(parent.ViewControls.SearchBox.SelectionBrush); + SelectionForegroundColor = BrushToThemeColor(parent.ViewControls.SearchBox.SelectionForegroundBrush); + } + + public string FontFamily { get; } + + public ThemeColor DefaultBackgroundColor { get; } + public ThemeColor DefaultForegroundColor { get; } + public ThemeColor DefaultBorderColor { get; } + public ThemeColor SelectionBackgroundColor { get; } + public ThemeColor SelectionForegroundColor { get; } + + private static ThemeColor BrushToThemeColor(IBrush brush) + { + if (brush is SolidColorBrush solidColor) + { + return new ThemeColor((float)solidColor.Color.A / 255, + (float)solidColor.Color.R / 255, + (float)solidColor.Color.G / 255, + (float)solidColor.Color.B / 255); + } + + return new ThemeColor(); + } + } +} diff --git a/src/Ryujinx.Ava/UI/Applet/AvaloniaHostUiTheme.cs b/src/Ryujinx.Ava/UI/Applet/AvaloniaHostUiTheme.cs deleted file mode 100644 index 4ee177d7..00000000 --- a/src/Ryujinx.Ava/UI/Applet/AvaloniaHostUiTheme.cs +++ /dev/null @@ -1,41 +0,0 @@ -using Avalonia.Media; -using Ryujinx.Ava.UI.Windows; -using Ryujinx.HLE.Ui; -using System; - -namespace Ryujinx.Ava.UI.Applet -{ - class AvaloniaHostUiTheme : IHostUiTheme - { - public AvaloniaHostUiTheme(MainWindow parent) - { - FontFamily = OperatingSystem.IsWindows() && OperatingSystem.IsWindowsVersionAtLeast(10, 0, 22000) ? "Segoe UI Variable" : parent.FontFamily.Name; - DefaultBackgroundColor = BrushToThemeColor(parent.Background); - DefaultForegroundColor = BrushToThemeColor(parent.Foreground); - DefaultBorderColor = BrushToThemeColor(parent.BorderBrush); - SelectionBackgroundColor = BrushToThemeColor(parent.ViewControls.SearchBox.SelectionBrush); - SelectionForegroundColor = BrushToThemeColor(parent.ViewControls.SearchBox.SelectionForegroundBrush); - } - - public string FontFamily { get; } - - public ThemeColor DefaultBackgroundColor { get; } - public ThemeColor DefaultForegroundColor { get; } - public ThemeColor DefaultBorderColor { get; } - public ThemeColor SelectionBackgroundColor { get; } - public ThemeColor SelectionForegroundColor { get; } - - private static ThemeColor BrushToThemeColor(IBrush brush) - { - if (brush is SolidColorBrush solidColor) - { - return new ThemeColor((float)solidColor.Color.A / 255, - (float)solidColor.Color.R / 255, - (float)solidColor.Color.G / 255, - (float)solidColor.Color.B / 255); - } - - return new ThemeColor(); - } - } -} diff --git a/src/Ryujinx.Ava/UI/Applet/ControllerAppletDialog.axaml.cs b/src/Ryujinx.Ava/UI/Applet/ControllerAppletDialog.axaml.cs index f7d751a6..279af07c 100644 --- a/src/Ryujinx.Ava/UI/Applet/ControllerAppletDialog.axaml.cs +++ b/src/Ryujinx.Ava/UI/Applet/ControllerAppletDialog.axaml.cs @@ -36,7 +36,7 @@ namespace Ryujinx.Ava.UI.Applet private readonly MainWindow _mainWindow; - public ControllerAppletDialog(MainWindow mainWindow, ControllerAppletUiArgs args) + public ControllerAppletDialog(MainWindow mainWindow, ControllerAppletUIArgs args) { if (args.PlayerCountMin == args.PlayerCountMax) { @@ -69,7 +69,7 @@ namespace Ryujinx.Ava.UI.Applet InitializeComponent(); } - public static async Task ShowControllerAppletDialog(MainWindow window, ControllerAppletUiArgs args) + public static async Task ShowControllerAppletDialog(MainWindow window, ControllerAppletUIArgs args) { ContentDialog contentDialog = new(); UserResult result = UserResult.Cancel; diff --git a/src/Ryujinx.Ava/UI/Applet/ErrorAppletWindow.axaml b/src/Ryujinx.Ava/UI/Applet/ErrorAppletWindow.axaml index 6186b7d9..51f37051 100644 --- a/src/Ryujinx.Ava/UI/Applet/ErrorAppletWindow.axaml +++ b/src/Ryujinx.Ava/UI/Applet/ErrorAppletWindow.axaml @@ -34,7 +34,7 @@ Height="80" MinWidth="50" Margin="5,10,20,10" - Source="resm:Ryujinx.Ui.Common.Resources.Logo_Ryujinx.png?assembly=Ryujinx.Ui.Common" /> + Source="resm:Ryujinx.UI.Common.Resources.Logo_Ryujinx.png?assembly=Ryujinx.UI.Common" /> + Source="resm:Ryujinx.UI.Common.Resources.Logo_Ryujinx.png?assembly=Ryujinx.UI.Common" /> ShowInputDialog(string title, SoftwareKeyboardUiArgs args) + public static async Task<(UserResult Result, string Input)> ShowInputDialog(string title, SoftwareKeyboardUIArgs args) { ContentDialog contentDialog = new(); -- cgit v1.2.3