From 76671d63d4f3ea18f8ad99e9ce9f0b2ec9a2599d Mon Sep 17 00:00:00 2001
From: Isaac Marovitz <42140194+IsaacMarovitz@users.noreply.github.com>
Date: Thu, 29 Dec 2022 14:24:05 +0000
Subject: [PATCH] Ava GUI: Restructure `Ryujinx.Ava` (#4165)
* Restructure `Ryujinx.Ava`
* Stylistic consistency
* Update Ryujinx.Ava/UI/Controls/UserEditor.axaml.cs
Co-authored-by: TSRBerry <20988865+TSRBerry@users.noreply.github.com>
* Update Ryujinx.Ava/UI/Controls/UserEditor.axaml.cs
Co-authored-by: TSRBerry <20988865+TSRBerry@users.noreply.github.com>
* Update Ryujinx.Ava/UI/Controls/UserSelector.axaml.cs
Co-authored-by: TSRBerry <20988865+TSRBerry@users.noreply.github.com>
* Update Ryujinx.Ava/UI/Controls/SaveManager.axaml.cs
Co-authored-by: TSRBerry <20988865+TSRBerry@users.noreply.github.com>
* Update Ryujinx.Ava/UI/Controls/SaveManager.axaml.cs
Co-authored-by: TSRBerry <20988865+TSRBerry@users.noreply.github.com>
* Update Ryujinx.Ava/UI/Windows/SettingsWindow.axaml.cs
Co-authored-by: TSRBerry <20988865+TSRBerry@users.noreply.github.com>
* Update Ryujinx.Ava/UI/Helpers/EmbeddedWindow.cs
Co-authored-by: TSRBerry <20988865+TSRBerry@users.noreply.github.com>
* Update Ryujinx.Ava/UI/Helpers/EmbeddedWindow.cs
Co-authored-by: TSRBerry <20988865+TSRBerry@users.noreply.github.com>
* Update Ryujinx.Ava/UI/Helpers/EmbeddedWindow.cs
Co-authored-by: TSRBerry <20988865+TSRBerry@users.noreply.github.com>
* Update Ryujinx.Ava/UI/Helpers/EmbeddedWindow.cs
Co-authored-by: TSRBerry <20988865+TSRBerry@users.noreply.github.com>
* Update Ryujinx.Ava/UI/Windows/SettingsWindow.axaml.cs
Co-authored-by: TSRBerry <20988865+TSRBerry@users.noreply.github.com>
* Update Ryujinx.Ava/UI/ViewModels/UserProfileViewModel.cs
Co-authored-by: TSRBerry <20988865+TSRBerry@users.noreply.github.com>
* Update Ryujinx.Ava/UI/ViewModels/UserProfileViewModel.cs
Co-authored-by: TSRBerry <20988865+TSRBerry@users.noreply.github.com>
* Update Ryujinx.Ava/UI/Helpers/EmbeddedWindow.cs
Co-authored-by: TSRBerry <20988865+TSRBerry@users.noreply.github.com>
* Fix redundancies
* Remove redunancies
* Add back elses
Co-authored-by: TSRBerry <20988865+TSRBerry@users.noreply.github.com>
---
Ryujinx.Ava/App.axaml | 2 +-
Ryujinx.Ava/App.axaml.cs | 5 +-
Ryujinx.Ava/AppHost.cs | 7 +-
Ryujinx.Ava/Common/ApplicationHelper.cs | 5 +-
Ryujinx.Ava/Common/Locale/LocaleManager.cs | 2 +-
Ryujinx.Ava/Helper/MetalHelper.cs | 2 +-
Ryujinx.Ava/Modules/Updater/Updater.cs | 5 +-
Ryujinx.Ava/Program.cs | 2 +-
.../{Ui => UI}/Applet/AvaHostUiHandler.cs | 7 +-
.../Applet/AvaloniaDynamicTextInputHandler.cs | 7 +-
.../{Ui => UI}/Applet/AvaloniaHostUiTheme.cs | 4 +-
.../{Ui => UI}/Applet/ErrorAppletWindow.axaml | 3 +-
.../Applet/ErrorAppletWindow.axaml.cs | 4 +-
.../{Ui => UI}/Applet/SwkbdAppletDialog.axaml | 3 +-
.../Applet/SwkbdAppletDialog.axaml.cs | 5 +-
.../{Ui => UI}/Controls/GameGridView.axaml | 6 +-
.../{Ui => UI}/Controls/GameGridView.axaml.cs | 5 +-
.../{Ui => UI}/Controls/GameListView.axaml | 7 +-
.../{Ui => UI}/Controls/GameListView.axaml.cs | 5 +-
.../{Ui => UI}/Controls/InputDialog.axaml | 2 +-
.../{Ui => UI}/Controls/InputDialog.axaml.cs | 5 +-
.../UI/Controls/NavigationDialogHost.axaml | 16 ++
.../Controls/NavigationDialogHost.axaml.cs | 4 +-
.../ProfileImageSelectionDialog.axaml | 57 ++++++
.../ProfileImageSelectionDialog.axaml.cs | 6 +-
Ryujinx.Ava/UI/Controls/RendererHost.axaml | 11 ++
.../{Ui => UI}/Controls/RendererHost.axaml.cs | 3 +-
Ryujinx.Ava/UI/Controls/SaveManager.axaml | 175 ++++++++++++++++++
.../{Ui => UI}/Controls/SaveManager.axaml.cs | 6 +-
.../Controls/UpdateWaitWindow.axaml | 3 +-
.../Controls/UpdateWaitWindow.axaml.cs | 4 +-
.../{Ui => UI}/Controls/UserEditor.axaml | 23 +--
.../{Ui => UI}/Controls/UserEditor.axaml.cs | 7 +-
.../{Ui => UI}/Controls/UserRecoverer.axaml | 33 ++--
.../Controls/UserRecoverer.axaml.cs | 6 +-
.../{Ui => UI}/Controls/UserSelector.axaml | 21 +--
.../{Ui => UI}/Controls/UserSelector.axaml.cs | 6 +-
.../Helpers}/ApplicationOpenedEventArgs.cs | 2 +-
.../Helpers}/AvaloniaGlxContext.cs | 2 +-
.../Helpers}/AvaloniaWglContext.cs | 2 +-
.../Helpers}/BitmapArrayValueConverter.cs | 2 +-
.../Helpers}/ButtonKeyAssigner.cs | 2 +-
.../Helpers}/ContentDialogHelper.cs | 7 +-
.../Controls => UI/Helpers}/EmbeddedWindow.cs | 8 +-
Ryujinx.Ava/UI/Helpers/Glyph.cs | 9 +
.../Helpers}/GlyphValueConverter.cs | 2 +-
.../Controls => UI/Helpers}/HotKeyControl.cs | 2 +-
.../Helpers}/IGlContextExtension.cs | 2 +-
.../Helpers}/KeyValueConverter.cs | 2 +-
.../Controls => UI/Helpers}/MiniCommand.cs | 2 +-
.../Helpers}/OffscreenTextBox.cs | 2 +-
.../Helpers}/OpenGLEmbeddedWindow.cs | 5 +-
.../Helpers}/OpenToolkitBindingsContext.cs | 2 +-
.../Helpers}/SPBOpenGLContext.cs | 2 +-
.../Helpers}/UserErrorDialog.cs | 4 +-
.../{Ui/Controls => UI/Helpers}/UserResult.cs | 2 +-
.../Helpers}/VulkanEmbeddedWindow.cs | 3 +-
.../Helpers}/Win32NativeInterop.cs | 2 +-
Ryujinx.Ava/{Ui => UI}/Models/Amiibo.cs | 2 +-
Ryujinx.Ava/{Ui => UI}/Models/CheatModel.cs | 4 +-
Ryujinx.Ava/{Ui => UI}/Models/CheatsList.cs | 2 +-
.../{Ui => UI}/Models/ControllerModel.cs | 2 +-
Ryujinx.Ava/{Ui => UI}/Models/DeviceType.cs | 2 +-
.../Models/DownloadableContentModel.cs | 4 +-
.../Models/Generic/LastPlayedSortComparer.cs | 2 +-
.../{Ui => UI}/Models/InputConfiguration.cs | 4 +-
Ryujinx.Ava/{Ui => UI}/Models/PlayerModel.cs | 2 +-
.../{Ui => UI}/Models/ProfileImageModel.cs | 2 +-
Ryujinx.Ava/{Ui => UI}/Models/SaveModel.cs | 9 +-
.../Models/StatusUpdatedEventArgs.cs | 2 +-
Ryujinx.Ava/{Ui => UI}/Models/TempProfile.cs | 4 +-
Ryujinx.Ava/{Ui => UI}/Models/TimeZone.cs | 2 +-
.../{Ui => UI}/Models/TitleUpdateModel.cs | 2 +-
Ryujinx.Ava/{Ui => UI}/Models/UserProfile.cs | 6 +-
.../ViewModels/AmiiboWindowViewModel.cs | 9 +-
.../ViewModels/AvatarProfileViewModel.cs | 4 +-
.../{Ui => UI}/ViewModels/BaseModel.cs | 2 +-
.../ViewModels/ControllerSettingsViewModel.cs | 9 +-
.../ViewModels/MainWindowViewModel.cs | 7 +-
.../ViewModels/SettingsViewModel.cs | 16 +-
.../ViewModels/UserProfileViewModel.cs | 16 +-
.../{Ui => UI}/Windows/AboutWindow.axaml | 4 +-
.../{Ui => UI}/Windows/AboutWindow.axaml.cs | 2 +-
.../{Ui => UI}/Windows/AmiiboWindow.axaml | 35 ++--
.../{Ui => UI}/Windows/AmiiboWindow.axaml.cs | 6 +-
.../{Ui => UI}/Windows/AvatarWindow.axaml | 37 ++--
.../{Ui => UI}/Windows/AvatarWindow.axaml.cs | 8 +-
.../{Ui => UI}/Windows/CheatWindow.axaml | 6 +-
.../{Ui => UI}/Windows/CheatWindow.axaml.cs | 4 +-
.../Windows/ContentDialogOverlayWindow.axaml | 29 +++
.../ContentDialogOverlayWindow.axaml.cs | 2 +-
.../Windows/ControllerSettingsWindow.axaml | 8 +-
.../Windows/ControllerSettingsWindow.axaml.cs | 9 +-
.../DownloadableContentManagerWindow.axaml | 4 +-
.../DownloadableContentManagerWindow.axaml.cs | 7 +-
.../{Ui => UI}/Windows/IconColorPicker.cs | 2 +-
.../{Ui => UI}/Windows/MainWindow.axaml | 26 +--
.../{Ui => UI}/Windows/MainWindow.axaml.cs | 11 +-
.../Windows/MotionSettingsWindow.axaml | 20 +-
.../Windows/MotionSettingsWindow.axaml.cs | 6 +-
.../Windows/RumbleSettingsWindow.axaml | 19 +-
.../Windows/RumbleSettingsWindow.axaml.cs | 6 +-
.../{Ui => UI}/Windows/SettingsWindow.axaml | 12 +-
.../Windows/SettingsWindow.axaml.cs | 9 +-
.../{Ui => UI}/Windows/StyleableWindow.cs | 2 +-
.../Windows/TitleUpdateWindow.axaml | 4 +-
.../Windows/TitleUpdateWindow.axaml.cs | 7 +-
Ryujinx.Ava/Ui/Controls/Glyph.cs | 9 -
.../Ui/Controls/NavigationDialogHost.axaml | 11 --
.../ProfileImageSelectionDialog.axaml | 32 ----
Ryujinx.Ava/Ui/Controls/RendererHost.axaml | 8 -
Ryujinx.Ava/Ui/Controls/SaveManager.axaml | 103 -----------
.../Windows/ContentDialogOverlayWindow.axaml | 28 ---
113 files changed, 624 insertions(+), 506 deletions(-)
rename Ryujinx.Ava/{Ui => UI}/Applet/AvaHostUiHandler.cs (98%)
rename Ryujinx.Ava/{Ui => UI}/Applet/AvaloniaDynamicTextInputHandler.cs (97%)
rename Ryujinx.Ava/{Ui => UI}/Applet/AvaloniaHostUiTheme.cs (96%)
rename Ryujinx.Ava/{Ui => UI}/Applet/ErrorAppletWindow.axaml (93%)
rename Ryujinx.Ava/{Ui => UI}/Applet/ErrorAppletWindow.axaml.cs (96%)
rename Ryujinx.Ava/{Ui => UI}/Applet/SwkbdAppletDialog.axaml (94%)
rename Ryujinx.Ava/{Ui => UI}/Applet/SwkbdAppletDialog.axaml.cs (98%)
rename Ryujinx.Ava/{Ui => UI}/Controls/GameGridView.axaml (98%)
rename Ryujinx.Ava/{Ui => UI}/Controls/GameGridView.axaml.cs (96%)
rename Ryujinx.Ava/{Ui => UI}/Controls/GameListView.axaml (98%)
rename Ryujinx.Ava/{Ui => UI}/Controls/GameListView.axaml.cs (96%)
rename Ryujinx.Ava/{Ui => UI}/Controls/InputDialog.axaml (95%)
rename Ryujinx.Ava/{Ui => UI}/Controls/InputDialog.axaml.cs (94%)
create mode 100644 Ryujinx.Ava/UI/Controls/NavigationDialogHost.axaml
rename Ryujinx.Ava/{Ui => UI}/Controls/NavigationDialogHost.axaml.cs (97%)
create mode 100644 Ryujinx.Ava/UI/Controls/ProfileImageSelectionDialog.axaml
rename Ryujinx.Ava/{Ui => UI}/Controls/ProfileImageSelectionDialog.axaml.cs (97%)
create mode 100644 Ryujinx.Ava/UI/Controls/RendererHost.axaml
rename Ryujinx.Ava/{Ui => UI}/Controls/RendererHost.axaml.cs (98%)
create mode 100644 Ryujinx.Ava/UI/Controls/SaveManager.axaml
rename Ryujinx.Ava/{Ui => UI}/Controls/SaveManager.axaml.cs (97%)
rename Ryujinx.Ava/{Ui => UI}/Controls/UpdateWaitWindow.axaml (92%)
rename Ryujinx.Ava/{Ui => UI}/Controls/UpdateWaitWindow.axaml.cs (87%)
rename Ryujinx.Ava/{Ui => UI}/Controls/UserEditor.axaml (76%)
rename Ryujinx.Ava/{Ui => UI}/Controls/UserEditor.axaml.cs (95%)
rename Ryujinx.Ava/{Ui => UI}/Controls/UserRecoverer.axaml (70%)
rename Ryujinx.Ava/{Ui => UI}/Controls/UserRecoverer.axaml.cs (92%)
rename Ryujinx.Ava/{Ui => UI}/Controls/UserSelector.axaml (88%)
rename Ryujinx.Ava/{Ui => UI}/Controls/UserSelector.axaml.cs (94%)
rename Ryujinx.Ava/{Ui/Controls => UI/Helpers}/ApplicationOpenedEventArgs.cs (91%)
rename Ryujinx.Ava/{Ui/Controls => UI/Helpers}/AvaloniaGlxContext.cs (91%)
rename Ryujinx.Ava/{Ui/Controls => UI/Helpers}/AvaloniaWglContext.cs (91%)
rename Ryujinx.Ava/{Ui/Controls => UI/Helpers}/BitmapArrayValueConverter.cs (96%)
rename Ryujinx.Ava/{Ui/Controls => UI/Helpers}/ButtonKeyAssigner.cs (98%)
rename Ryujinx.Ava/{Ui/Controls => UI/Helpers}/ContentDialogHelper.cs (99%)
rename Ryujinx.Ava/{Ui/Controls => UI/Helpers}/EmbeddedWindow.cs (97%)
create mode 100644 Ryujinx.Ava/UI/Helpers/Glyph.cs
rename Ryujinx.Ava/{Ui/Controls => UI/Helpers}/GlyphValueConverter.cs (97%)
rename Ryujinx.Ava/{Ui/Controls => UI/Helpers}/HotKeyControl.cs (98%)
rename Ryujinx.Ava/{Ui/Controls => UI/Helpers}/IGlContextExtension.cs (94%)
rename Ryujinx.Ava/{Ui/Controls => UI/Helpers}/KeyValueConverter.cs (97%)
rename Ryujinx.Ava/{Ui/Controls => UI/Helpers}/MiniCommand.cs (98%)
rename Ryujinx.Ava/{Ui/Controls => UI/Helpers}/OffscreenTextBox.cs (96%)
rename Ryujinx.Ava/{Ui/Controls => UI/Helpers}/OpenGLEmbeddedWindow.cs (95%)
rename Ryujinx.Ava/{Ui/Controls => UI/Helpers}/OpenToolkitBindingsContext.cs (92%)
rename Ryujinx.Ava/{Ui/Controls => UI/Helpers}/SPBOpenGLContext.cs (97%)
rename Ryujinx.Ava/{Ui/Controls => UI/Helpers}/UserErrorDialog.cs (98%)
rename Ryujinx.Ava/{Ui/Controls => UI/Helpers}/UserResult.cs (78%)
rename Ryujinx.Ava/{Ui/Controls => UI/Helpers}/VulkanEmbeddedWindow.cs (96%)
rename Ryujinx.Ava/{Ui/Controls => UI/Helpers}/Win32NativeInterop.cs (99%)
rename Ryujinx.Ava/{Ui => UI}/Models/Amiibo.cs (98%)
rename Ryujinx.Ava/{Ui => UI}/Models/CheatModel.cs (92%)
rename Ryujinx.Ava/{Ui => UI}/Models/CheatsList.cs (97%)
rename Ryujinx.Ava/{Ui => UI}/Models/ControllerModel.cs (78%)
rename Ryujinx.Ava/{Ui => UI}/Models/DeviceType.cs (74%)
rename Ryujinx.Ava/{Ui => UI}/Models/DownloadableContentModel.cs (91%)
rename Ryujinx.Ava/{Ui => UI}/Models/Generic/LastPlayedSortComparer.cs (95%)
rename Ryujinx.Ava/{Ui => UI}/Models/InputConfiguration.cs (99%)
rename Ryujinx.Ava/{Ui => UI}/Models/PlayerModel.cs (77%)
rename Ryujinx.Ava/{Ui => UI}/Models/ProfileImageModel.cs (89%)
rename Ryujinx.Ava/{Ui => UI}/Models/SaveModel.cs (95%)
rename Ryujinx.Ava/{Ui => UI}/Models/StatusUpdatedEventArgs.cs (96%)
rename Ryujinx.Ava/{Ui => UI}/Models/TempProfile.cs (94%)
rename Ryujinx.Ava/{Ui => UI}/Models/TimeZone.cs (92%)
rename Ryujinx.Ava/{Ui => UI}/Models/TitleUpdateModel.cs (95%)
rename Ryujinx.Ava/{Ui => UI}/Models/UserProfile.cs (94%)
rename Ryujinx.Ava/{Ui => UI}/ViewModels/AmiiboWindowViewModel.cs (98%)
rename Ryujinx.Ava/{Ui => UI}/ViewModels/AvatarProfileViewModel.cs (99%)
rename Ryujinx.Ava/{Ui => UI}/ViewModels/BaseModel.cs (91%)
rename Ryujinx.Ava/{Ui => UI}/ViewModels/ControllerSettingsViewModel.cs (99%)
rename Ryujinx.Ava/{Ui => UI}/ViewModels/MainWindowViewModel.cs (99%)
rename Ryujinx.Ava/{Ui => UI}/ViewModels/SettingsViewModel.cs (98%)
rename Ryujinx.Ava/{Ui => UI}/ViewModels/UserProfileViewModel.cs (93%)
rename Ryujinx.Ava/{Ui => UI}/Windows/AboutWindow.axaml (98%)
rename Ryujinx.Ava/{Ui => UI}/Windows/AboutWindow.axaml.cs (98%)
rename Ryujinx.Ava/{Ui => UI}/Windows/AmiiboWindow.axaml (75%)
rename Ryujinx.Ava/{Ui => UI}/Windows/AmiiboWindow.axaml.cs (94%)
rename Ryujinx.Ava/{Ui => UI}/Windows/AvatarWindow.axaml (65%)
rename Ryujinx.Ava/{Ui => UI}/Windows/AvatarWindow.axaml.cs (93%)
rename Ryujinx.Ava/{Ui => UI}/Windows/CheatWindow.axaml (96%)
rename Ryujinx.Ava/{Ui => UI}/Windows/CheatWindow.axaml.cs (98%)
create mode 100644 Ryujinx.Ava/UI/Windows/ContentDialogOverlayWindow.axaml
rename Ryujinx.Ava/{Ui => UI}/Windows/ContentDialogOverlayWindow.axaml.cs (95%)
rename Ryujinx.Ava/{Ui => UI}/Windows/ControllerSettingsWindow.axaml (99%)
rename Ryujinx.Ava/{Ui => UI}/Windows/ControllerSettingsWindow.axaml.cs (97%)
rename Ryujinx.Ava/{Ui => UI}/Windows/DownloadableContentManagerWindow.axaml (98%)
rename Ryujinx.Ava/{Ui => UI}/Windows/DownloadableContentManagerWindow.axaml.cs (98%)
rename Ryujinx.Ava/{Ui => UI}/Windows/IconColorPicker.cs (99%)
rename Ryujinx.Ava/{Ui => UI}/Windows/MainWindow.axaml (97%)
rename Ryujinx.Ava/{Ui => UI}/Windows/MainWindow.axaml.cs (99%)
rename Ryujinx.Ava/{Ui => UI}/Windows/MotionSettingsWindow.axaml (91%)
rename Ryujinx.Ava/{Ui => UI}/Windows/MotionSettingsWindow.axaml.cs (96%)
rename Ryujinx.Ava/{Ui => UI}/Windows/RumbleSettingsWindow.axaml (75%)
rename Ryujinx.Ava/{Ui => UI}/Windows/RumbleSettingsWindow.axaml.cs (95%)
rename Ryujinx.Ava/{Ui => UI}/Windows/SettingsWindow.axaml (99%)
rename Ryujinx.Ava/{Ui => UI}/Windows/SettingsWindow.axaml.cs (97%)
rename Ryujinx.Ava/{Ui => UI}/Windows/StyleableWindow.cs (97%)
rename Ryujinx.Ava/{Ui => UI}/Windows/TitleUpdateWindow.axaml (97%)
rename Ryujinx.Ava/{Ui => UI}/Windows/TitleUpdateWindow.axaml.cs (98%)
delete mode 100644 Ryujinx.Ava/Ui/Controls/Glyph.cs
delete mode 100644 Ryujinx.Ava/Ui/Controls/NavigationDialogHost.axaml
delete mode 100644 Ryujinx.Ava/Ui/Controls/ProfileImageSelectionDialog.axaml
delete mode 100644 Ryujinx.Ava/Ui/Controls/RendererHost.axaml
delete mode 100644 Ryujinx.Ava/Ui/Controls/SaveManager.axaml
delete mode 100644 Ryujinx.Ava/Ui/Windows/ContentDialogOverlayWindow.axaml
diff --git a/Ryujinx.Ava/App.axaml b/Ryujinx.Ava/App.axaml
index eb9ffd8656..72bc0deeef 100644
--- a/Ryujinx.Ava/App.axaml
+++ b/Ryujinx.Ava/App.axaml
@@ -4,6 +4,6 @@
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:sty="using:FluentAvalonia.Styling">
-
+
\ No newline at end of file
diff --git a/Ryujinx.Ava/App.axaml.cs b/Ryujinx.Ava/App.axaml.cs
index 3c28c01916..e59f9bd397 100644
--- a/Ryujinx.Ava/App.axaml.cs
+++ b/Ryujinx.Ava/App.axaml.cs
@@ -5,8 +5,9 @@ using Avalonia.Styling;
using Avalonia.Threading;
using FluentAvalonia.Styling;
using Ryujinx.Ava.Common.Locale;
-using Ryujinx.Ava.Ui.Controls;
-using Ryujinx.Ava.Ui.Windows;
+using Ryujinx.Ava.UI.Controls;
+using Ryujinx.Ava.UI.Helpers;
+using Ryujinx.Ava.UI.Windows;
using Ryujinx.Common;
using Ryujinx.Common.Logging;
using Ryujinx.Ui.Common.Configuration;
diff --git a/Ryujinx.Ava/AppHost.cs b/Ryujinx.Ava/AppHost.cs
index c1b3355a4d..f8bd032cbc 100644
--- a/Ryujinx.Ava/AppHost.cs
+++ b/Ryujinx.Ava/AppHost.cs
@@ -11,9 +11,10 @@ using Ryujinx.Audio.Integration;
using Ryujinx.Ava.Common;
using Ryujinx.Ava.Common.Locale;
using Ryujinx.Ava.Input;
-using Ryujinx.Ava.Ui.Controls;
-using Ryujinx.Ava.Ui.Models;
-using Ryujinx.Ava.Ui.Windows;
+using Ryujinx.Ava.UI.Controls;
+using Ryujinx.Ava.UI.Helpers;
+using Ryujinx.Ava.UI.Models;
+using Ryujinx.Ava.UI.Windows;
using Ryujinx.Common;
using Ryujinx.Common.Configuration;
using Ryujinx.Common.Logging;
diff --git a/Ryujinx.Ava/Common/ApplicationHelper.cs b/Ryujinx.Ava/Common/ApplicationHelper.cs
index 7f76661429..0c562dfe01 100644
--- a/Ryujinx.Ava/Common/ApplicationHelper.cs
+++ b/Ryujinx.Ava/Common/ApplicationHelper.cs
@@ -12,8 +12,9 @@ using LibHac.Tools.Fs;
using LibHac.Tools.FsSystem;
using LibHac.Tools.FsSystem.NcaUtils;
using Ryujinx.Ava.Common.Locale;
-using Ryujinx.Ava.Ui.Controls;
-using Ryujinx.Ava.Ui.Windows;
+using Ryujinx.Ava.UI.Controls;
+using Ryujinx.Ava.UI.Helpers;
+using Ryujinx.Ava.UI.Windows;
using Ryujinx.Common.Logging;
using Ryujinx.HLE.FileSystem;
using Ryujinx.HLE.HOS;
diff --git a/Ryujinx.Ava/Common/Locale/LocaleManager.cs b/Ryujinx.Ava/Common/Locale/LocaleManager.cs
index 41b9813683..acbbf2dff7 100644
--- a/Ryujinx.Ava/Common/Locale/LocaleManager.cs
+++ b/Ryujinx.Ava/Common/Locale/LocaleManager.cs
@@ -1,4 +1,4 @@
-using Ryujinx.Ava.Ui.ViewModels;
+using Ryujinx.Ava.UI.ViewModels;
using Ryujinx.Common;
using Ryujinx.Common.Utilities;
using Ryujinx.Ui.Common.Configuration;
diff --git a/Ryujinx.Ava/Helper/MetalHelper.cs b/Ryujinx.Ava/Helper/MetalHelper.cs
index 2d4d828b80..ea3477eb94 100644
--- a/Ryujinx.Ava/Helper/MetalHelper.cs
+++ b/Ryujinx.Ava/Helper/MetalHelper.cs
@@ -3,7 +3,7 @@ using System.Runtime.Versioning;
using System.Runtime.InteropServices;
using Avalonia;
-namespace Ryujinx.Ava.Ui.Helper
+namespace Ryujinx.Ava.UI.Helper
{
public delegate void UpdateBoundsCallbackDelegate(Rect rect);
diff --git a/Ryujinx.Ava/Modules/Updater/Updater.cs b/Ryujinx.Ava/Modules/Updater/Updater.cs
index b3a1ef30c1..d495131f05 100644
--- a/Ryujinx.Ava/Modules/Updater/Updater.cs
+++ b/Ryujinx.Ava/Modules/Updater/Updater.cs
@@ -7,8 +7,9 @@ using ICSharpCode.SharpZipLib.Zip;
using Newtonsoft.Json.Linq;
using Ryujinx.Ava;
using Ryujinx.Ava.Common.Locale;
-using Ryujinx.Ava.Ui.Controls;
-using Ryujinx.Ava.Ui.Windows;
+using Ryujinx.Ava.UI.Controls;
+using Ryujinx.Ava.UI.Helpers;
+using Ryujinx.Ava.UI.Windows;
using Ryujinx.Common;
using Ryujinx.Common.Logging;
using Ryujinx.Ui.Common.Helper;
diff --git a/Ryujinx.Ava/Program.cs b/Ryujinx.Ava/Program.cs
index 023e31df32..142d7820be 100644
--- a/Ryujinx.Ava/Program.cs
+++ b/Ryujinx.Ava/Program.cs
@@ -1,7 +1,7 @@
using ARMeilleure.Translation.PTC;
using Avalonia;
using Avalonia.Threading;
-using Ryujinx.Ava.Ui.Windows;
+using Ryujinx.Ava.UI.Windows;
using Ryujinx.Common;
using Ryujinx.Common.Configuration;
using Ryujinx.Common.GraphicsDriver;
diff --git a/Ryujinx.Ava/Ui/Applet/AvaHostUiHandler.cs b/Ryujinx.Ava/UI/Applet/AvaHostUiHandler.cs
similarity index 98%
rename from Ryujinx.Ava/Ui/Applet/AvaHostUiHandler.cs
rename to Ryujinx.Ava/UI/Applet/AvaHostUiHandler.cs
index a8d6a6dffa..a8e76275c5 100644
--- a/Ryujinx.Ava/Ui/Applet/AvaHostUiHandler.cs
+++ b/Ryujinx.Ava/UI/Applet/AvaHostUiHandler.cs
@@ -2,8 +2,9 @@ using Avalonia.Controls;
using Avalonia.Threading;
using FluentAvalonia.UI.Controls;
using Ryujinx.Ava.Common.Locale;
-using Ryujinx.Ava.Ui.Controls;
-using Ryujinx.Ava.Ui.Windows;
+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;
@@ -11,7 +12,7 @@ using Ryujinx.HLE.Ui;
using System;
using System.Threading;
-namespace Ryujinx.Ava.Ui.Applet
+namespace Ryujinx.Ava.UI.Applet
{
internal class AvaHostUiHandler : IHostUiHandler
{
diff --git a/Ryujinx.Ava/Ui/Applet/AvaloniaDynamicTextInputHandler.cs b/Ryujinx.Ava/UI/Applet/AvaloniaDynamicTextInputHandler.cs
similarity index 97%
rename from Ryujinx.Ava/Ui/Applet/AvaloniaDynamicTextInputHandler.cs
rename to Ryujinx.Ava/UI/Applet/AvaloniaDynamicTextInputHandler.cs
index 78692ceda7..314746e76e 100644
--- a/Ryujinx.Ava/Ui/Applet/AvaloniaDynamicTextInputHandler.cs
+++ b/Ryujinx.Ava/UI/Applet/AvaloniaDynamicTextInputHandler.cs
@@ -3,15 +3,16 @@ using Avalonia.Controls;
using Avalonia.Input;
using Avalonia.Threading;
using Ryujinx.Ava.Input;
-using Ryujinx.Ava.Ui.Controls;
-using Ryujinx.Ava.Ui.Windows;
+using Ryujinx.Ava.UI.Controls;
+using Ryujinx.Ava.UI.Helpers;
+using Ryujinx.Ava.UI.Windows;
using Ryujinx.HLE.Ui;
using System;
using System.Threading;
using HidKey = Ryujinx.Common.Configuration.Hid.Key;
-namespace Ryujinx.Ava.Ui.Applet
+namespace Ryujinx.Ava.UI.Applet
{
class AvaloniaDynamicTextInputHandler : IDynamicTextInputHandler
{
diff --git a/Ryujinx.Ava/Ui/Applet/AvaloniaHostUiTheme.cs b/Ryujinx.Ava/UI/Applet/AvaloniaHostUiTheme.cs
similarity index 96%
rename from Ryujinx.Ava/Ui/Applet/AvaloniaHostUiTheme.cs
rename to Ryujinx.Ava/UI/Applet/AvaloniaHostUiTheme.cs
index 8034b506ed..fe5e272101 100644
--- a/Ryujinx.Ava/Ui/Applet/AvaloniaHostUiTheme.cs
+++ b/Ryujinx.Ava/UI/Applet/AvaloniaHostUiTheme.cs
@@ -1,9 +1,9 @@
using Avalonia.Media;
-using Ryujinx.Ava.Ui.Windows;
+using Ryujinx.Ava.UI.Windows;
using Ryujinx.HLE.Ui;
using System;
-namespace Ryujinx.Ava.Ui.Applet
+namespace Ryujinx.Ava.UI.Applet
{
class AvaloniaHostUiTheme : IHostUiTheme
{
diff --git a/Ryujinx.Ava/Ui/Applet/ErrorAppletWindow.axaml b/Ryujinx.Ava/UI/Applet/ErrorAppletWindow.axaml
similarity index 93%
rename from Ryujinx.Ava/Ui/Applet/ErrorAppletWindow.axaml
rename to Ryujinx.Ava/UI/Applet/ErrorAppletWindow.axaml
index aae66ccca8..211b47254b 100644
--- a/Ryujinx.Ava/Ui/Applet/ErrorAppletWindow.axaml
+++ b/Ryujinx.Ava/UI/Applet/ErrorAppletWindow.axaml
@@ -1,11 +1,10 @@
diff --git a/Ryujinx.Ava/Ui/Applet/SwkbdAppletDialog.axaml.cs b/Ryujinx.Ava/UI/Applet/SwkbdAppletDialog.axaml.cs
similarity index 98%
rename from Ryujinx.Ava/Ui/Applet/SwkbdAppletDialog.axaml.cs
rename to Ryujinx.Ava/UI/Applet/SwkbdAppletDialog.axaml.cs
index ee329bc29b..80be29798d 100644
--- a/Ryujinx.Ava/Ui/Applet/SwkbdAppletDialog.axaml.cs
+++ b/Ryujinx.Ava/UI/Applet/SwkbdAppletDialog.axaml.cs
@@ -6,12 +6,13 @@ using Avalonia.Media;
using FluentAvalonia.Core;
using FluentAvalonia.UI.Controls;
using Ryujinx.Ava.Common.Locale;
-using Ryujinx.Ava.Ui.Windows;
+using Ryujinx.Ava.UI.Helpers;
+using Ryujinx.Ava.UI.Windows;
using Ryujinx.HLE.HOS.Applets;
using System;
using System.Threading.Tasks;
-namespace Ryujinx.Ava.Ui.Controls
+namespace Ryujinx.Ava.UI.Controls
{
internal partial class SwkbdAppletDialog : UserControl
{
diff --git a/Ryujinx.Ava/Ui/Controls/GameGridView.axaml b/Ryujinx.Ava/UI/Controls/GameGridView.axaml
similarity index 98%
rename from Ryujinx.Ava/Ui/Controls/GameGridView.axaml
rename to Ryujinx.Ava/UI/Controls/GameGridView.axaml
index b0669463b8..1c4d7638e7 100644
--- a/Ryujinx.Ava/Ui/Controls/GameGridView.axaml
+++ b/Ryujinx.Ava/UI/Controls/GameGridView.axaml
@@ -1,19 +1,19 @@
-
+
\ No newline at end of file
diff --git a/Ryujinx.Ava/Ui/Controls/NavigationDialogHost.axaml.cs b/Ryujinx.Ava/UI/Controls/NavigationDialogHost.axaml.cs
similarity index 97%
rename from Ryujinx.Ava/Ui/Controls/NavigationDialogHost.axaml.cs
rename to Ryujinx.Ava/UI/Controls/NavigationDialogHost.axaml.cs
index ced8832866..98f9e9e3db 100644
--- a/Ryujinx.Ava/Ui/Controls/NavigationDialogHost.axaml.cs
+++ b/Ryujinx.Ava/UI/Controls/NavigationDialogHost.axaml.cs
@@ -3,13 +3,13 @@ using Avalonia.Controls;
using FluentAvalonia.UI.Controls;
using LibHac;
using Ryujinx.Ava.Common.Locale;
-using Ryujinx.Ava.Ui.ViewModels;
+using Ryujinx.Ava.UI.ViewModels;
using Ryujinx.HLE.FileSystem;
using Ryujinx.HLE.HOS.Services.Account.Acc;
using System;
using System.Threading.Tasks;
-namespace Ryujinx.Ava.Ui.Controls
+namespace Ryujinx.Ava.UI.Controls
{
public partial class NavigationDialogHost : UserControl
{
diff --git a/Ryujinx.Ava/UI/Controls/ProfileImageSelectionDialog.axaml b/Ryujinx.Ava/UI/Controls/ProfileImageSelectionDialog.axaml
new file mode 100644
index 0000000000..56f8152ae4
--- /dev/null
+++ b/Ryujinx.Ava/UI/Controls/ProfileImageSelectionDialog.axaml
@@ -0,0 +1,57 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Ryujinx.Ava/Ui/Controls/ProfileImageSelectionDialog.axaml.cs b/Ryujinx.Ava/UI/Controls/ProfileImageSelectionDialog.axaml.cs
similarity index 97%
rename from Ryujinx.Ava/Ui/Controls/ProfileImageSelectionDialog.axaml.cs
rename to Ryujinx.Ava/UI/Controls/ProfileImageSelectionDialog.axaml.cs
index 5d361af92f..00183b6988 100644
--- a/Ryujinx.Ava/Ui/Controls/ProfileImageSelectionDialog.axaml.cs
+++ b/Ryujinx.Ava/UI/Controls/ProfileImageSelectionDialog.axaml.cs
@@ -4,15 +4,15 @@ using Avalonia.VisualTree;
using FluentAvalonia.UI.Controls;
using FluentAvalonia.UI.Navigation;
using Ryujinx.Ava.Common.Locale;
-using Ryujinx.Ava.Ui.Models;
-using Ryujinx.Ava.Ui.Windows;
+using Ryujinx.Ava.UI.Models;
+using Ryujinx.Ava.UI.Windows;
using Ryujinx.HLE.FileSystem;
using SixLabors.ImageSharp;
using SixLabors.ImageSharp.Processing;
using System.IO;
using Image = SixLabors.ImageSharp.Image;
-namespace Ryujinx.Ava.Ui.Controls
+namespace Ryujinx.Ava.UI.Controls
{
public partial class ProfileImageSelectionDialog : UserControl
{
diff --git a/Ryujinx.Ava/UI/Controls/RendererHost.axaml b/Ryujinx.Ava/UI/Controls/RendererHost.axaml
new file mode 100644
index 0000000000..1cc557f066
--- /dev/null
+++ b/Ryujinx.Ava/UI/Controls/RendererHost.axaml
@@ -0,0 +1,11 @@
+
+
diff --git a/Ryujinx.Ava/Ui/Controls/RendererHost.axaml.cs b/Ryujinx.Ava/UI/Controls/RendererHost.axaml.cs
similarity index 98%
rename from Ryujinx.Ava/Ui/Controls/RendererHost.axaml.cs
rename to Ryujinx.Ava/UI/Controls/RendererHost.axaml.cs
index b6986b7c80..97058fa499 100644
--- a/Ryujinx.Ava/Ui/Controls/RendererHost.axaml.cs
+++ b/Ryujinx.Ava/UI/Controls/RendererHost.axaml.cs
@@ -1,13 +1,14 @@
using Avalonia;
using Avalonia.Controls;
using Avalonia.Markup.Xaml;
+using Ryujinx.Ava.UI.Helpers;
using Ryujinx.Common.Configuration;
using Silk.NET.Vulkan;
using SPB.Graphics.OpenGL;
using SPB.Windowing;
using System;
-namespace Ryujinx.Ava.Ui.Controls
+namespace Ryujinx.Ava.UI.Controls
{
public partial class RendererHost : UserControl, IDisposable
{
diff --git a/Ryujinx.Ava/UI/Controls/SaveManager.axaml b/Ryujinx.Ava/UI/Controls/SaveManager.axaml
new file mode 100644
index 0000000000..b0dc4c6f76
--- /dev/null
+++ b/Ryujinx.Ava/UI/Controls/SaveManager.axaml
@@ -0,0 +1,175 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Ryujinx.Ava/Ui/Controls/SaveManager.axaml.cs b/Ryujinx.Ava/UI/Controls/SaveManager.axaml.cs
similarity index 97%
rename from Ryujinx.Ava/Ui/Controls/SaveManager.axaml.cs
rename to Ryujinx.Ava/UI/Controls/SaveManager.axaml.cs
index 499cd918e8..9910481c5c 100644
--- a/Ryujinx.Ava/Ui/Controls/SaveManager.axaml.cs
+++ b/Ryujinx.Ava/UI/Controls/SaveManager.axaml.cs
@@ -7,16 +7,16 @@ using LibHac.Fs;
using LibHac.Fs.Shim;
using Ryujinx.Ava.Common;
using Ryujinx.Ava.Common.Locale;
-using Ryujinx.Ava.Ui.Models;
+using Ryujinx.Ava.UI.Models;
using Ryujinx.HLE.FileSystem;
using Ryujinx.Ui.App.Common;
using System;
using System.Collections.Generic;
using System.Collections.ObjectModel;
using System.Threading.Tasks;
-using UserProfile = Ryujinx.Ava.Ui.Models.UserProfile;
+using UserProfile = Ryujinx.Ava.UI.Models.UserProfile;
-namespace Ryujinx.Ava.Ui.Controls
+namespace Ryujinx.Ava.UI.Controls
{
public partial class SaveManager : UserControl
{
diff --git a/Ryujinx.Ava/Ui/Controls/UpdateWaitWindow.axaml b/Ryujinx.Ava/UI/Controls/UpdateWaitWindow.axaml
similarity index 92%
rename from Ryujinx.Ava/Ui/Controls/UpdateWaitWindow.axaml
rename to Ryujinx.Ava/UI/Controls/UpdateWaitWindow.axaml
index 8309e36906..c5041230d2 100644
--- a/Ryujinx.Ava/Ui/Controls/UpdateWaitWindow.axaml
+++ b/Ryujinx.Ava/UI/Controls/UpdateWaitWindow.axaml
@@ -1,10 +1,9 @@
-
+
@@ -43,13 +40,13 @@
Margin="5"
HorizontalAlignment="Stretch"
Click="ChangePictureButton_Click"
- Content="{Locale:Locale UserProfilesChangeProfileImage}" />
+ Content="{locale:Locale UserProfilesChangeProfileImage}" />
+ Content="{locale:Locale UserProfilesSetProfileImage}" />
-
+
-
+
+ Content="{locale:Locale Save}" />
+ Content="{locale:Locale Discard}" />
diff --git a/Ryujinx.Ava/Ui/Controls/UserEditor.axaml.cs b/Ryujinx.Ava/UI/Controls/UserEditor.axaml.cs
similarity index 95%
rename from Ryujinx.Ava/Ui/Controls/UserEditor.axaml.cs
rename to Ryujinx.Ava/UI/Controls/UserEditor.axaml.cs
index f5b51e4e3c..19fa29e517 100644
--- a/Ryujinx.Ava/Ui/Controls/UserEditor.axaml.cs
+++ b/Ryujinx.Ava/UI/Controls/UserEditor.axaml.cs
@@ -4,10 +4,11 @@ using Avalonia.Interactivity;
using FluentAvalonia.UI.Controls;
using FluentAvalonia.UI.Navigation;
using Ryujinx.Ava.Common.Locale;
-using Ryujinx.Ava.Ui.Models;
-using UserProfile = Ryujinx.Ava.Ui.Models.UserProfile;
+using Ryujinx.Ava.UI.Helpers;
+using Ryujinx.Ava.UI.Models;
+using UserProfile = Ryujinx.Ava.UI.Models.UserProfile;
-namespace Ryujinx.Ava.Ui.Controls
+namespace Ryujinx.Ava.UI.Controls
{
public partial class UserEditor : UserControl
{
diff --git a/Ryujinx.Ava/Ui/Controls/UserRecoverer.axaml b/Ryujinx.Ava/UI/Controls/UserRecoverer.axaml
similarity index 70%
rename from Ryujinx.Ava/Ui/Controls/UserRecoverer.axaml
rename to Ryujinx.Ava/UI/Controls/UserRecoverer.axaml
index 0efb50190b..69f3d36a2d 100644
--- a/Ryujinx.Ava/Ui/Controls/UserRecoverer.axaml
+++ b/Ryujinx.Ava/UI/Controls/UserRecoverer.axaml
@@ -1,17 +1,18 @@
-
+
@@ -32,7 +33,7 @@
+ Text="{locale:Locale UserProfilesRecoverHeading}"/>
+ Content="{locale:Locale Recover}"/>
diff --git a/Ryujinx.Ava/Ui/Controls/UserRecoverer.axaml.cs b/Ryujinx.Ava/UI/Controls/UserRecoverer.axaml.cs
similarity index 92%
rename from Ryujinx.Ava/Ui/Controls/UserRecoverer.axaml.cs
rename to Ryujinx.Ava/UI/Controls/UserRecoverer.axaml.cs
index f093686dd4..9f29fddbd6 100644
--- a/Ryujinx.Ava/Ui/Controls/UserRecoverer.axaml.cs
+++ b/Ryujinx.Ava/UI/Controls/UserRecoverer.axaml.cs
@@ -4,10 +4,10 @@ using Avalonia.Interactivity;
using Avalonia.Markup.Xaml;
using FluentAvalonia.UI.Controls;
using FluentAvalonia.UI.Navigation;
-using Ryujinx.Ava.Ui.Models;
-using Ryujinx.Ava.Ui.ViewModels;
+using Ryujinx.Ava.UI.Models;
+using Ryujinx.Ava.UI.ViewModels;
-namespace Ryujinx.Ava.Ui.Controls
+namespace Ryujinx.Ava.UI.Controls
{
public partial class UserRecoverer : UserControl
{
diff --git a/Ryujinx.Ava/Ui/Controls/UserSelector.axaml b/Ryujinx.Ava/UI/Controls/UserSelector.axaml
similarity index 88%
rename from Ryujinx.Ava/Ui/Controls/UserSelector.axaml
rename to Ryujinx.Ava/UI/Controls/UserSelector.axaml
index 7cfdc481dc..002d27a064 100644
--- a/Ryujinx.Ava/Ui/Controls/UserSelector.axaml
+++ b/Ryujinx.Ava/UI/Controls/UserSelector.axaml
@@ -1,21 +1,20 @@
-
+
@@ -109,21 +108,21 @@
Grid.Column="0"
Margin="2"
Command="{Binding AddUser}"
- Content="{Locale:Locale UserProfilesAddNewProfile}" />
+ Content="{locale:Locale UserProfilesAddNewProfile}" />
+ Content="{locale:Locale UserProfilesRecoverLostAccounts}" />
\ No newline at end of file
diff --git a/Ryujinx.Ava/Ui/Controls/UserSelector.axaml.cs b/Ryujinx.Ava/UI/Controls/UserSelector.axaml.cs
similarity index 94%
rename from Ryujinx.Ava/Ui/Controls/UserSelector.axaml.cs
rename to Ryujinx.Ava/UI/Controls/UserSelector.axaml.cs
index 8d93088c74..bd8c561e68 100644
--- a/Ryujinx.Ava/Ui/Controls/UserSelector.axaml.cs
+++ b/Ryujinx.Ava/UI/Controls/UserSelector.axaml.cs
@@ -2,10 +2,10 @@ using Avalonia.Controls;
using Avalonia.Interactivity;
using FluentAvalonia.UI.Controls;
using FluentAvalonia.UI.Navigation;
-using Ryujinx.Ava.Ui.ViewModels;
-using UserProfile = Ryujinx.Ava.Ui.Models.UserProfile;
+using Ryujinx.Ava.UI.ViewModels;
+using UserProfile = Ryujinx.Ava.UI.Models.UserProfile;
-namespace Ryujinx.Ava.Ui.Controls
+namespace Ryujinx.Ava.UI.Controls
{
public partial class UserSelector : UserControl
{
diff --git a/Ryujinx.Ava/Ui/Controls/ApplicationOpenedEventArgs.cs b/Ryujinx.Ava/UI/Helpers/ApplicationOpenedEventArgs.cs
similarity index 91%
rename from Ryujinx.Ava/Ui/Controls/ApplicationOpenedEventArgs.cs
rename to Ryujinx.Ava/UI/Helpers/ApplicationOpenedEventArgs.cs
index 9909bd6a2a..ebf5c16ec5 100644
--- a/Ryujinx.Ava/Ui/Controls/ApplicationOpenedEventArgs.cs
+++ b/Ryujinx.Ava/UI/Helpers/ApplicationOpenedEventArgs.cs
@@ -1,7 +1,7 @@
using Avalonia.Interactivity;
using Ryujinx.Ui.App.Common;
-namespace Ryujinx.Ava.Ui.Controls
+namespace Ryujinx.Ava.UI.Helpers
{
public class ApplicationOpenedEventArgs : RoutedEventArgs
{
diff --git a/Ryujinx.Ava/Ui/Controls/AvaloniaGlxContext.cs b/Ryujinx.Ava/UI/Helpers/AvaloniaGlxContext.cs
similarity index 91%
rename from Ryujinx.Ava/Ui/Controls/AvaloniaGlxContext.cs
rename to Ryujinx.Ava/UI/Helpers/AvaloniaGlxContext.cs
index d48de41dd9..6b696ba739 100644
--- a/Ryujinx.Ava/Ui/Controls/AvaloniaGlxContext.cs
+++ b/Ryujinx.Ava/UI/Helpers/AvaloniaGlxContext.cs
@@ -2,7 +2,7 @@
using System;
using System.Runtime.Versioning;
-namespace Ryujinx.Ava.Ui.Controls
+namespace Ryujinx.Ava.UI.Helpers
{
[SupportedOSPlatform("linux")]
internal class AvaloniaGlxContext : SPB.Platform.GLX.GLXOpenGLContext
diff --git a/Ryujinx.Ava/Ui/Controls/AvaloniaWglContext.cs b/Ryujinx.Ava/UI/Helpers/AvaloniaWglContext.cs
similarity index 91%
rename from Ryujinx.Ava/Ui/Controls/AvaloniaWglContext.cs
rename to Ryujinx.Ava/UI/Helpers/AvaloniaWglContext.cs
index 01e9b92073..b63a973a11 100644
--- a/Ryujinx.Ava/Ui/Controls/AvaloniaWglContext.cs
+++ b/Ryujinx.Ava/UI/Helpers/AvaloniaWglContext.cs
@@ -2,7 +2,7 @@
using System;
using System.Runtime.Versioning;
-namespace Ryujinx.Ava.Ui.Controls
+namespace Ryujinx.Ava.UI.Helpers
{
[SupportedOSPlatform("windows")]
internal class AvaloniaWglContext : SPB.Platform.WGL.WGLOpenGLContext
diff --git a/Ryujinx.Ava/Ui/Controls/BitmapArrayValueConverter.cs b/Ryujinx.Ava/UI/Helpers/BitmapArrayValueConverter.cs
similarity index 96%
rename from Ryujinx.Ava/Ui/Controls/BitmapArrayValueConverter.cs
rename to Ryujinx.Ava/UI/Helpers/BitmapArrayValueConverter.cs
index d037e5f117..3fd368f897 100644
--- a/Ryujinx.Ava/Ui/Controls/BitmapArrayValueConverter.cs
+++ b/Ryujinx.Ava/UI/Helpers/BitmapArrayValueConverter.cs
@@ -5,7 +5,7 @@ using System;
using System.Globalization;
using System.IO;
-namespace Ryujinx.Ava.Ui.Controls
+namespace Ryujinx.Ava.UI.Helpers
{
internal class BitmapArrayValueConverter : IValueConverter
{
diff --git a/Ryujinx.Ava/Ui/Controls/ButtonKeyAssigner.cs b/Ryujinx.Ava/UI/Helpers/ButtonKeyAssigner.cs
similarity index 98%
rename from Ryujinx.Ava/Ui/Controls/ButtonKeyAssigner.cs
rename to Ryujinx.Ava/UI/Helpers/ButtonKeyAssigner.cs
index a83ef9614c..6730b57118 100644
--- a/Ryujinx.Ava/Ui/Controls/ButtonKeyAssigner.cs
+++ b/Ryujinx.Ava/UI/Helpers/ButtonKeyAssigner.cs
@@ -8,7 +8,7 @@ using System;
using System.Linq;
using System.Threading.Tasks;
-namespace Ryujinx.Ava.Ui.Controls
+namespace Ryujinx.Ava.UI.Helpers
{
internal class ButtonKeyAssigner
{
diff --git a/Ryujinx.Ava/Ui/Controls/ContentDialogHelper.cs b/Ryujinx.Ava/UI/Helpers/ContentDialogHelper.cs
similarity index 99%
rename from Ryujinx.Ava/Ui/Controls/ContentDialogHelper.cs
rename to Ryujinx.Ava/UI/Helpers/ContentDialogHelper.cs
index eca476449b..cf30d99b83 100644
--- a/Ryujinx.Ava/Ui/Controls/ContentDialogHelper.cs
+++ b/Ryujinx.Ava/UI/Helpers/ContentDialogHelper.cs
@@ -1,20 +1,19 @@
using Avalonia;
using Avalonia.Controls;
using Avalonia.Controls.ApplicationLifetimes;
-using Avalonia.Controls.Primitives;
using Avalonia.Media;
using Avalonia.Threading;
using FluentAvalonia.Core;
using FluentAvalonia.UI.Controls;
using Ryujinx.Ava.Common.Locale;
-using Ryujinx.Ava.Ui.Models;
-using Ryujinx.Ava.Ui.Windows;
+using Ryujinx.Ava.UI.Controls;
+using Ryujinx.Ava.UI.Windows;
using Ryujinx.Common.Logging;
using System;
using System.Threading;
using System.Threading.Tasks;
-namespace Ryujinx.Ava.Ui.Controls
+namespace Ryujinx.Ava.UI.Helpers
{
public static class ContentDialogHelper
{
diff --git a/Ryujinx.Ava/Ui/Controls/EmbeddedWindow.cs b/Ryujinx.Ava/UI/Helpers/EmbeddedWindow.cs
similarity index 97%
rename from Ryujinx.Ava/Ui/Controls/EmbeddedWindow.cs
rename to Ryujinx.Ava/UI/Helpers/EmbeddedWindow.cs
index 05b2cc5bd2..bdeceaeae6 100644
--- a/Ryujinx.Ava/Ui/Controls/EmbeddedWindow.cs
+++ b/Ryujinx.Ava/UI/Helpers/EmbeddedWindow.cs
@@ -2,7 +2,7 @@ using Avalonia;
using Avalonia.Controls;
using Avalonia.Input;
using Avalonia.Platform;
-using Ryujinx.Ava.Ui.Helper;
+using Ryujinx.Ava.UI.Helper;
using SPB.Graphics;
using SPB.Platform;
using SPB.Platform.GLX;
@@ -10,9 +10,9 @@ using System;
using System.Runtime.InteropServices;
using System.Runtime.Versioning;
using System.Threading.Tasks;
-using static Ryujinx.Ava.Ui.Controls.Win32NativeInterop;
+using static Ryujinx.Ava.UI.Helpers.Win32NativeInterop;
-namespace Ryujinx.Ava.Ui.Controls
+namespace Ryujinx.Ava.UI.Helpers
{
public class EmbeddedWindow : NativeControlHost
{
@@ -199,7 +199,7 @@ namespace Ryujinx.Ava.Ui.Controls
KeyModifiers.None));
break;
}
- return DefWindowProc(hWnd, msg, (IntPtr)wParam, (IntPtr)lParam);
+ return DefWindowProc(hWnd, msg, wParam, lParam);
}
[SupportedOSPlatform("macos")]
diff --git a/Ryujinx.Ava/UI/Helpers/Glyph.cs b/Ryujinx.Ava/UI/Helpers/Glyph.cs
new file mode 100644
index 0000000000..4aae854f7c
--- /dev/null
+++ b/Ryujinx.Ava/UI/Helpers/Glyph.cs
@@ -0,0 +1,9 @@
+namespace Ryujinx.Ava.UI.Helpers
+{
+ public enum Glyph
+ {
+ List,
+ Grid,
+ Chip
+ }
+}
diff --git a/Ryujinx.Ava/Ui/Controls/GlyphValueConverter.cs b/Ryujinx.Ava/UI/Helpers/GlyphValueConverter.cs
similarity index 97%
rename from Ryujinx.Ava/Ui/Controls/GlyphValueConverter.cs
rename to Ryujinx.Ava/UI/Helpers/GlyphValueConverter.cs
index 63c6a17d7a..3d6c9c0180 100644
--- a/Ryujinx.Ava/Ui/Controls/GlyphValueConverter.cs
+++ b/Ryujinx.Ava/UI/Helpers/GlyphValueConverter.cs
@@ -4,7 +4,7 @@ using FluentAvalonia.UI.Controls;
using System;
using System.Collections.Generic;
-namespace Ryujinx.Ava.Ui.Controls
+namespace Ryujinx.Ava.UI.Helpers
{
public class GlyphValueConverter : MarkupExtension
{
diff --git a/Ryujinx.Ava/Ui/Controls/HotKeyControl.cs b/Ryujinx.Ava/UI/Helpers/HotKeyControl.cs
similarity index 98%
rename from Ryujinx.Ava/Ui/Controls/HotKeyControl.cs
rename to Ryujinx.Ava/UI/Helpers/HotKeyControl.cs
index d3ab1e8f93..f1fad1576b 100644
--- a/Ryujinx.Ava/Ui/Controls/HotKeyControl.cs
+++ b/Ryujinx.Ava/UI/Helpers/HotKeyControl.cs
@@ -4,7 +4,7 @@ using Avalonia.Input;
using System;
using System.Windows.Input;
-namespace Ryujinx.Ava.Ui.Controls
+namespace Ryujinx.Ava.UI.Helpers
{
public class HotKeyControl : ContentControl, ICommandSource
{
diff --git a/Ryujinx.Ava/Ui/Controls/IGlContextExtension.cs b/Ryujinx.Ava/UI/Helpers/IGlContextExtension.cs
similarity index 94%
rename from Ryujinx.Ava/Ui/Controls/IGlContextExtension.cs
rename to Ryujinx.Ava/UI/Helpers/IGlContextExtension.cs
index 79d6658d65..e69774c307 100644
--- a/Ryujinx.Ava/Ui/Controls/IGlContextExtension.cs
+++ b/Ryujinx.Ava/UI/Helpers/IGlContextExtension.cs
@@ -2,7 +2,7 @@ using Avalonia.OpenGL;
using SPB.Graphics.OpenGL;
using System;
-namespace Ryujinx.Ava.Ui.Controls
+namespace Ryujinx.Ava.UI.Helpers
{
internal static class IGlContextExtension
{
diff --git a/Ryujinx.Ava/Ui/Controls/KeyValueConverter.cs b/Ryujinx.Ava/UI/Helpers/KeyValueConverter.cs
similarity index 97%
rename from Ryujinx.Ava/Ui/Controls/KeyValueConverter.cs
rename to Ryujinx.Ava/UI/Helpers/KeyValueConverter.cs
index ac0b622b22..8d5c2815ab 100644
--- a/Ryujinx.Ava/Ui/Controls/KeyValueConverter.cs
+++ b/Ryujinx.Ava/UI/Helpers/KeyValueConverter.cs
@@ -4,7 +4,7 @@ using Ryujinx.Common.Configuration.Hid.Controller;
using System;
using System.Globalization;
-namespace Ryujinx.Ava.Ui.Controls
+namespace Ryujinx.Ava.UI.Helpers
{
internal class KeyValueConverter : IValueConverter
{
diff --git a/Ryujinx.Ava/Ui/Controls/MiniCommand.cs b/Ryujinx.Ava/UI/Helpers/MiniCommand.cs
similarity index 98%
rename from Ryujinx.Ava/Ui/Controls/MiniCommand.cs
rename to Ryujinx.Ava/UI/Helpers/MiniCommand.cs
index e14cfa6fd3..305182c926 100644
--- a/Ryujinx.Ava/Ui/Controls/MiniCommand.cs
+++ b/Ryujinx.Ava/UI/Helpers/MiniCommand.cs
@@ -2,7 +2,7 @@
using System.Threading.Tasks;
using System.Windows.Input;
-namespace Ryujinx.Ava.Ui.Models
+namespace Ryujinx.Ava.UI.Helpers
{
public sealed class MiniCommand : MiniCommand, ICommand
{
diff --git a/Ryujinx.Ava/Ui/Controls/OffscreenTextBox.cs b/Ryujinx.Ava/UI/Helpers/OffscreenTextBox.cs
similarity index 96%
rename from Ryujinx.Ava/Ui/Controls/OffscreenTextBox.cs
rename to Ryujinx.Ava/UI/Helpers/OffscreenTextBox.cs
index ffe5bddea6..785e785cdf 100644
--- a/Ryujinx.Ava/Ui/Controls/OffscreenTextBox.cs
+++ b/Ryujinx.Ava/UI/Helpers/OffscreenTextBox.cs
@@ -2,7 +2,7 @@ using Avalonia.Controls;
using Avalonia.Input;
using Avalonia.Interactivity;
-namespace Ryujinx.Ava.Ui.Controls
+namespace Ryujinx.Ava.UI.Helpers
{
public class OffscreenTextBox : TextBox
{
diff --git a/Ryujinx.Ava/Ui/Controls/OpenGLEmbeddedWindow.cs b/Ryujinx.Ava/UI/Helpers/OpenGLEmbeddedWindow.cs
similarity index 95%
rename from Ryujinx.Ava/Ui/Controls/OpenGLEmbeddedWindow.cs
rename to Ryujinx.Ava/UI/Helpers/OpenGLEmbeddedWindow.cs
index f32bf04153..db77f66bf0 100644
--- a/Ryujinx.Ava/Ui/Controls/OpenGLEmbeddedWindow.cs
+++ b/Ryujinx.Ava/UI/Helpers/OpenGLEmbeddedWindow.cs
@@ -1,16 +1,13 @@
-using Avalonia;
-using Avalonia.OpenGL;
using OpenTK.Graphics.OpenGL;
using Ryujinx.Common.Configuration;
using SPB.Graphics;
using SPB.Graphics.OpenGL;
using SPB.Platform;
-using SPB.Platform.GLX;
using SPB.Platform.WGL;
using SPB.Windowing;
using System;
-namespace Ryujinx.Ava.Ui.Controls
+namespace Ryujinx.Ava.UI.Helpers
{
public class OpenGLEmbeddedWindow : EmbeddedWindow
{
diff --git a/Ryujinx.Ava/Ui/Controls/OpenToolkitBindingsContext.cs b/Ryujinx.Ava/UI/Helpers/OpenToolkitBindingsContext.cs
similarity index 92%
rename from Ryujinx.Ava/Ui/Controls/OpenToolkitBindingsContext.cs
rename to Ryujinx.Ava/UI/Helpers/OpenToolkitBindingsContext.cs
index 3a767ce9c3..efb703bab6 100644
--- a/Ryujinx.Ava/Ui/Controls/OpenToolkitBindingsContext.cs
+++ b/Ryujinx.Ava/UI/Helpers/OpenToolkitBindingsContext.cs
@@ -1,7 +1,7 @@
using OpenTK;
using System;
-namespace Ryujinx.Ava.Ui.Controls
+namespace Ryujinx.Ava.UI.Helpers
{
internal class OpenToolkitBindingsContext : IBindingsContext
{
diff --git a/Ryujinx.Ava/Ui/Controls/SPBOpenGLContext.cs b/Ryujinx.Ava/UI/Helpers/SPBOpenGLContext.cs
similarity index 97%
rename from Ryujinx.Ava/Ui/Controls/SPBOpenGLContext.cs
rename to Ryujinx.Ava/UI/Helpers/SPBOpenGLContext.cs
index 45c6187e47..21f206c83d 100644
--- a/Ryujinx.Ava/Ui/Controls/SPBOpenGLContext.cs
+++ b/Ryujinx.Ava/UI/Helpers/SPBOpenGLContext.cs
@@ -5,7 +5,7 @@ using SPB.Graphics.OpenGL;
using SPB.Platform;
using SPB.Windowing;
-namespace Ryujinx.Ava.Ui.Controls
+namespace Ryujinx.Ava.UI.Helpers
{
class SPBOpenGLContext : IOpenGLContext
{
diff --git a/Ryujinx.Ava/Ui/Controls/UserErrorDialog.cs b/Ryujinx.Ava/UI/Helpers/UserErrorDialog.cs
similarity index 98%
rename from Ryujinx.Ava/Ui/Controls/UserErrorDialog.cs
rename to Ryujinx.Ava/UI/Helpers/UserErrorDialog.cs
index 0b2d2c1172..ab8d6edcae 100644
--- a/Ryujinx.Ava/Ui/Controls/UserErrorDialog.cs
+++ b/Ryujinx.Ava/UI/Helpers/UserErrorDialog.cs
@@ -1,10 +1,10 @@
using Ryujinx.Ava.Common.Locale;
-using Ryujinx.Ava.Ui.Windows;
+using Ryujinx.Ava.UI.Windows;
using Ryujinx.Ui.Common;
using Ryujinx.Ui.Common.Helper;
using System.Threading.Tasks;
-namespace Ryujinx.Ava.Ui.Controls
+namespace Ryujinx.Ava.UI.Helpers
{
internal class UserErrorDialog
{
diff --git a/Ryujinx.Ava/Ui/Controls/UserResult.cs b/Ryujinx.Ava/UI/Helpers/UserResult.cs
similarity index 78%
rename from Ryujinx.Ava/Ui/Controls/UserResult.cs
rename to Ryujinx.Ava/UI/Helpers/UserResult.cs
index 6eb89a90f9..57802804f0 100644
--- a/Ryujinx.Ava/Ui/Controls/UserResult.cs
+++ b/Ryujinx.Ava/UI/Helpers/UserResult.cs
@@ -1,4 +1,4 @@
-namespace Ryujinx.Ava.Ui.Controls
+namespace Ryujinx.Ava.UI.Helpers
{
public enum UserResult
{
diff --git a/Ryujinx.Ava/Ui/Controls/VulkanEmbeddedWindow.cs b/Ryujinx.Ava/UI/Helpers/VulkanEmbeddedWindow.cs
similarity index 96%
rename from Ryujinx.Ava/Ui/Controls/VulkanEmbeddedWindow.cs
rename to Ryujinx.Ava/UI/Helpers/VulkanEmbeddedWindow.cs
index b9c5f75f52..6581610b6a 100644
--- a/Ryujinx.Ava/Ui/Controls/VulkanEmbeddedWindow.cs
+++ b/Ryujinx.Ava/UI/Helpers/VulkanEmbeddedWindow.cs
@@ -1,5 +1,4 @@
using Avalonia.Platform;
-using Ryujinx.Ava.Ui.Controls;
using Silk.NET.Vulkan;
using SPB.Graphics.Vulkan;
using SPB.Platform.GLX;
@@ -10,7 +9,7 @@ using SPB.Windowing;
using System;
using System.Runtime.Versioning;
-namespace Ryujinx.Ava.Ui
+namespace Ryujinx.Ava.UI.Helpers
{
public class VulkanEmbeddedWindow : EmbeddedWindow
{
diff --git a/Ryujinx.Ava/Ui/Controls/Win32NativeInterop.cs b/Ryujinx.Ava/UI/Helpers/Win32NativeInterop.cs
similarity index 99%
rename from Ryujinx.Ava/Ui/Controls/Win32NativeInterop.cs
rename to Ryujinx.Ava/UI/Helpers/Win32NativeInterop.cs
index 81e2fee90c..1e6e3c3bd3 100644
--- a/Ryujinx.Ava/Ui/Controls/Win32NativeInterop.cs
+++ b/Ryujinx.Ava/UI/Helpers/Win32NativeInterop.cs
@@ -2,7 +2,7 @@
using System.Runtime.InteropServices;
using System.Runtime.Versioning;
-namespace Ryujinx.Ava.Ui.Controls
+namespace Ryujinx.Ava.UI.Helpers
{
[SupportedOSPlatform("windows")]
internal partial class Win32NativeInterop
diff --git a/Ryujinx.Ava/Ui/Models/Amiibo.cs b/Ryujinx.Ava/UI/Models/Amiibo.cs
similarity index 98%
rename from Ryujinx.Ava/Ui/Models/Amiibo.cs
rename to Ryujinx.Ava/UI/Models/Amiibo.cs
index 8644ab52c2..d0ccafd081 100644
--- a/Ryujinx.Ava/Ui/Models/Amiibo.cs
+++ b/Ryujinx.Ava/UI/Models/Amiibo.cs
@@ -2,7 +2,7 @@ using System;
using System.Collections.Generic;
using System.Text.Json.Serialization;
-namespace Ryujinx.Ava.Ui.Models
+namespace Ryujinx.Ava.UI.Models
{
public class Amiibo
{
diff --git a/Ryujinx.Ava/Ui/Models/CheatModel.cs b/Ryujinx.Ava/UI/Models/CheatModel.cs
similarity index 92%
rename from Ryujinx.Ava/Ui/Models/CheatModel.cs
rename to Ryujinx.Ava/UI/Models/CheatModel.cs
index 5011d3981b..a7507add99 100644
--- a/Ryujinx.Ava/Ui/Models/CheatModel.cs
+++ b/Ryujinx.Ava/UI/Models/CheatModel.cs
@@ -1,7 +1,7 @@
-using Ryujinx.Ava.Ui.ViewModels;
+using Ryujinx.Ava.UI.ViewModels;
using System;
-namespace Ryujinx.Ava.Ui.Models
+namespace Ryujinx.Ava.UI.Models
{
public class CheatModel : BaseModel
{
diff --git a/Ryujinx.Ava/Ui/Models/CheatsList.cs b/Ryujinx.Ava/UI/Models/CheatsList.cs
similarity index 97%
rename from Ryujinx.Ava/Ui/Models/CheatsList.cs
rename to Ryujinx.Ava/UI/Models/CheatsList.cs
index 8231e5211e..e674f4eb7f 100644
--- a/Ryujinx.Ava/Ui/Models/CheatsList.cs
+++ b/Ryujinx.Ava/UI/Models/CheatsList.cs
@@ -3,7 +3,7 @@ using System.Collections.Specialized;
using System.ComponentModel;
using System.Linq;
-namespace Ryujinx.Ava.Ui.Models
+namespace Ryujinx.Ava.UI.Models
{
public class CheatsList : ObservableCollection
{
diff --git a/Ryujinx.Ava/Ui/Models/ControllerModel.cs b/Ryujinx.Ava/UI/Models/ControllerModel.cs
similarity index 78%
rename from Ryujinx.Ava/Ui/Models/ControllerModel.cs
rename to Ryujinx.Ava/UI/Models/ControllerModel.cs
index 23df400215..2af2d13b8d 100644
--- a/Ryujinx.Ava/Ui/Models/ControllerModel.cs
+++ b/Ryujinx.Ava/UI/Models/ControllerModel.cs
@@ -1,6 +1,6 @@
using Ryujinx.Common.Configuration.Hid;
-namespace Ryujinx.Ava.Ui.Models
+namespace Ryujinx.Ava.UI.Models
{
internal record ControllerModel(ControllerType Type, string Name);
}
diff --git a/Ryujinx.Ava/Ui/Models/DeviceType.cs b/Ryujinx.Ava/UI/Models/DeviceType.cs
similarity index 74%
rename from Ryujinx.Ava/Ui/Models/DeviceType.cs
rename to Ryujinx.Ava/UI/Models/DeviceType.cs
index cb1520d0a1..fa2e620cc5 100644
--- a/Ryujinx.Ava/Ui/Models/DeviceType.cs
+++ b/Ryujinx.Ava/UI/Models/DeviceType.cs
@@ -1,4 +1,4 @@
-namespace Ryujinx.Ava.Ui.Models
+namespace Ryujinx.Ava.UI.Models
{
public enum DeviceType
{
diff --git a/Ryujinx.Ava/Ui/Models/DownloadableContentModel.cs b/Ryujinx.Ava/UI/Models/DownloadableContentModel.cs
similarity index 91%
rename from Ryujinx.Ava/Ui/Models/DownloadableContentModel.cs
rename to Ryujinx.Ava/UI/Models/DownloadableContentModel.cs
index 5f3ca03174..3070fc0293 100644
--- a/Ryujinx.Ava/Ui/Models/DownloadableContentModel.cs
+++ b/Ryujinx.Ava/UI/Models/DownloadableContentModel.cs
@@ -1,6 +1,6 @@
-using Ryujinx.Ava.Ui.ViewModels;
+using Ryujinx.Ava.UI.ViewModels;
-namespace Ryujinx.Ava.Ui.Models
+namespace Ryujinx.Ava.UI.Models
{
public class DownloadableContentModel : BaseModel
{
diff --git a/Ryujinx.Ava/Ui/Models/Generic/LastPlayedSortComparer.cs b/Ryujinx.Ava/UI/Models/Generic/LastPlayedSortComparer.cs
similarity index 95%
rename from Ryujinx.Ava/Ui/Models/Generic/LastPlayedSortComparer.cs
rename to Ryujinx.Ava/UI/Models/Generic/LastPlayedSortComparer.cs
index 7e26cfbfcd..b322ed64ee 100644
--- a/Ryujinx.Ava/Ui/Models/Generic/LastPlayedSortComparer.cs
+++ b/Ryujinx.Ava/UI/Models/Generic/LastPlayedSortComparer.cs
@@ -3,7 +3,7 @@ using Ryujinx.Ui.App.Common;
using System;
using System.Collections.Generic;
-namespace Ryujinx.Ava.Ui.Models.Generic
+namespace Ryujinx.Ava.UI.Models.Generic
{
internal class LastPlayedSortComparer : IComparer
{
diff --git a/Ryujinx.Ava/Ui/Models/InputConfiguration.cs b/Ryujinx.Ava/UI/Models/InputConfiguration.cs
similarity index 99%
rename from Ryujinx.Ava/Ui/Models/InputConfiguration.cs
rename to Ryujinx.Ava/UI/Models/InputConfiguration.cs
index 53bf7eedb6..2acd716ba5 100644
--- a/Ryujinx.Ava/Ui/Models/InputConfiguration.cs
+++ b/Ryujinx.Ava/UI/Models/InputConfiguration.cs
@@ -1,11 +1,11 @@
-using Ryujinx.Ava.Ui.ViewModels;
+using Ryujinx.Ava.UI.ViewModels;
using Ryujinx.Common.Configuration.Hid;
using Ryujinx.Common.Configuration.Hid.Controller;
using Ryujinx.Common.Configuration.Hid.Controller.Motion;
using Ryujinx.Common.Configuration.Hid.Keyboard;
using System;
-namespace Ryujinx.Ava.Ui.Models
+namespace Ryujinx.Ava.UI.Models
{
internal class InputConfiguration : BaseModel
{
diff --git a/Ryujinx.Ava/Ui/Models/PlayerModel.cs b/Ryujinx.Ava/UI/Models/PlayerModel.cs
similarity index 77%
rename from Ryujinx.Ava/Ui/Models/PlayerModel.cs
rename to Ryujinx.Ava/UI/Models/PlayerModel.cs
index ec8f3fce5c..f0b1bf7a8d 100644
--- a/Ryujinx.Ava/Ui/Models/PlayerModel.cs
+++ b/Ryujinx.Ava/UI/Models/PlayerModel.cs
@@ -1,6 +1,6 @@
using Ryujinx.Common.Configuration.Hid;
-namespace Ryujinx.Ava.Ui.Models
+namespace Ryujinx.Ava.UI.Models
{
public record PlayerModel(PlayerIndex Id, string Name);
}
diff --git a/Ryujinx.Ava/Ui/Models/ProfileImageModel.cs b/Ryujinx.Ava/UI/Models/ProfileImageModel.cs
similarity index 89%
rename from Ryujinx.Ava/Ui/Models/ProfileImageModel.cs
rename to Ryujinx.Ava/UI/Models/ProfileImageModel.cs
index 1c9f3b0539..63da7b4498 100644
--- a/Ryujinx.Ava/Ui/Models/ProfileImageModel.cs
+++ b/Ryujinx.Ava/UI/Models/ProfileImageModel.cs
@@ -1,4 +1,4 @@
-namespace Ryujinx.Ava.Ui.Models
+namespace Ryujinx.Ava.UI.Models
{
public class ProfileImageModel
{
diff --git a/Ryujinx.Ava/Ui/Models/SaveModel.cs b/Ryujinx.Ava/UI/Models/SaveModel.cs
similarity index 95%
rename from Ryujinx.Ava/Ui/Models/SaveModel.cs
rename to Ryujinx.Ava/UI/Models/SaveModel.cs
index 70478cea93..c931110473 100644
--- a/Ryujinx.Ava/Ui/Models/SaveModel.cs
+++ b/Ryujinx.Ava/UI/Models/SaveModel.cs
@@ -4,9 +4,10 @@ using LibHac.Fs.Shim;
using LibHac.Ncm;
using Ryujinx.Ava.Common;
using Ryujinx.Ava.Common.Locale;
-using Ryujinx.Ava.Ui.Controls;
-using Ryujinx.Ava.Ui.ViewModels;
-using Ryujinx.Ava.Ui.Windows;
+using Ryujinx.Ava.UI.Controls;
+using Ryujinx.Ava.UI.Helpers;
+using Ryujinx.Ava.UI.ViewModels;
+using Ryujinx.Ava.UI.Windows;
using Ryujinx.HLE.FileSystem;
using Ryujinx.Ui.App.Common;
using System;
@@ -14,7 +15,7 @@ using System.IO;
using System.Linq;
using System.Threading.Tasks;
-namespace Ryujinx.Ava.Ui.Models
+namespace Ryujinx.Ava.UI.Models
{
public class SaveModel : BaseModel
{
diff --git a/Ryujinx.Ava/Ui/Models/StatusUpdatedEventArgs.cs b/Ryujinx.Ava/UI/Models/StatusUpdatedEventArgs.cs
similarity index 96%
rename from Ryujinx.Ava/Ui/Models/StatusUpdatedEventArgs.cs
rename to Ryujinx.Ava/UI/Models/StatusUpdatedEventArgs.cs
index da042cdff1..ea2b903856 100644
--- a/Ryujinx.Ava/Ui/Models/StatusUpdatedEventArgs.cs
+++ b/Ryujinx.Ava/UI/Models/StatusUpdatedEventArgs.cs
@@ -1,6 +1,6 @@
using System;
-namespace Ryujinx.Ava.Ui.Models
+namespace Ryujinx.Ava.UI.Models
{
internal class StatusUpdatedEventArgs : EventArgs
{
diff --git a/Ryujinx.Ava/Ui/Models/TempProfile.cs b/Ryujinx.Ava/UI/Models/TempProfile.cs
similarity index 94%
rename from Ryujinx.Ava/Ui/Models/TempProfile.cs
rename to Ryujinx.Ava/UI/Models/TempProfile.cs
index 4e6d344625..2dd7a6c828 100644
--- a/Ryujinx.Ava/Ui/Models/TempProfile.cs
+++ b/Ryujinx.Ava/UI/Models/TempProfile.cs
@@ -1,8 +1,8 @@
-using Ryujinx.Ava.Ui.ViewModels;
+using Ryujinx.Ava.UI.ViewModels;
using Ryujinx.HLE.HOS.Services.Account.Acc;
using System;
-namespace Ryujinx.Ava.Ui.Models
+namespace Ryujinx.Ava.UI.Models
{
public class TempProfile : BaseModel
{
diff --git a/Ryujinx.Ava/Ui/Models/TimeZone.cs b/Ryujinx.Ava/UI/Models/TimeZone.cs
similarity index 92%
rename from Ryujinx.Ava/Ui/Models/TimeZone.cs
rename to Ryujinx.Ava/UI/Models/TimeZone.cs
index a1bad05103..cb6cc2fdc5 100644
--- a/Ryujinx.Ava/Ui/Models/TimeZone.cs
+++ b/Ryujinx.Ava/UI/Models/TimeZone.cs
@@ -1,4 +1,4 @@
-namespace Ryujinx.Ava.Ui.Models
+namespace Ryujinx.Ava.UI.Models
{
internal class TimeZone
{
diff --git a/Ryujinx.Ava/Ui/Models/TitleUpdateModel.cs b/Ryujinx.Ava/UI/Models/TitleUpdateModel.cs
similarity index 95%
rename from Ryujinx.Ava/Ui/Models/TitleUpdateModel.cs
rename to Ryujinx.Ava/UI/Models/TitleUpdateModel.cs
index 2bf6dbfa1f..772032229a 100644
--- a/Ryujinx.Ava/Ui/Models/TitleUpdateModel.cs
+++ b/Ryujinx.Ava/UI/Models/TitleUpdateModel.cs
@@ -1,7 +1,7 @@
using LibHac.Ns;
using Ryujinx.Ava.Common.Locale;
-namespace Ryujinx.Ava.Ui.Models
+namespace Ryujinx.Ava.UI.Models
{
internal class TitleUpdateModel
{
diff --git a/Ryujinx.Ava/Ui/Models/UserProfile.cs b/Ryujinx.Ava/UI/Models/UserProfile.cs
similarity index 94%
rename from Ryujinx.Ava/Ui/Models/UserProfile.cs
rename to Ryujinx.Ava/UI/Models/UserProfile.cs
index c0ea9451ac..869db66106 100644
--- a/Ryujinx.Ava/Ui/Models/UserProfile.cs
+++ b/Ryujinx.Ava/UI/Models/UserProfile.cs
@@ -1,9 +1,9 @@
-using Ryujinx.Ava.Ui.Controls;
-using Ryujinx.Ava.Ui.ViewModels;
+using Ryujinx.Ava.UI.Controls;
+using Ryujinx.Ava.UI.ViewModels;
using Ryujinx.HLE.HOS.Services.Account.Acc;
using Profile = Ryujinx.HLE.HOS.Services.Account.Acc.UserProfile;
-namespace Ryujinx.Ava.Ui.Models
+namespace Ryujinx.Ava.UI.Models
{
public class UserProfile : BaseModel
{
diff --git a/Ryujinx.Ava/Ui/ViewModels/AmiiboWindowViewModel.cs b/Ryujinx.Ava/UI/ViewModels/AmiiboWindowViewModel.cs
similarity index 98%
rename from Ryujinx.Ava/Ui/ViewModels/AmiiboWindowViewModel.cs
rename to Ryujinx.Ava/UI/ViewModels/AmiiboWindowViewModel.cs
index d007e0e747..cf94a9aa7a 100644
--- a/Ryujinx.Ava/Ui/ViewModels/AmiiboWindowViewModel.cs
+++ b/Ryujinx.Ava/UI/ViewModels/AmiiboWindowViewModel.cs
@@ -3,9 +3,10 @@ using Avalonia.Collections;
using Avalonia.Media.Imaging;
using Avalonia.Threading;
using Ryujinx.Ava.Common.Locale;
-using Ryujinx.Ava.Ui.Controls;
-using Ryujinx.Ava.Ui.Models;
-using Ryujinx.Ava.Ui.Windows;
+using Ryujinx.Ava.UI.Controls;
+using Ryujinx.Ava.UI.Helpers;
+using Ryujinx.Ava.UI.Models;
+using Ryujinx.Ava.UI.Windows;
using Ryujinx.Common;
using Ryujinx.Common.Configuration;
using Ryujinx.Common.Utilities;
@@ -19,7 +20,7 @@ using System.Text;
using System.Text.Json;
using System.Threading.Tasks;
-namespace Ryujinx.Ava.Ui.ViewModels
+namespace Ryujinx.Ava.UI.ViewModels
{
public class AmiiboWindowViewModel : BaseModel, IDisposable
{
diff --git a/Ryujinx.Ava/Ui/ViewModels/AvatarProfileViewModel.cs b/Ryujinx.Ava/UI/ViewModels/AvatarProfileViewModel.cs
similarity index 99%
rename from Ryujinx.Ava/Ui/ViewModels/AvatarProfileViewModel.cs
rename to Ryujinx.Ava/UI/ViewModels/AvatarProfileViewModel.cs
index c29837414f..1d0906237c 100644
--- a/Ryujinx.Ava/Ui/ViewModels/AvatarProfileViewModel.cs
+++ b/Ryujinx.Ava/UI/ViewModels/AvatarProfileViewModel.cs
@@ -8,7 +8,7 @@ using LibHac.Ncm;
using LibHac.Tools.Fs;
using LibHac.Tools.FsSystem;
using LibHac.Tools.FsSystem.NcaUtils;
-using Ryujinx.Ava.Ui.Models;
+using Ryujinx.Ava.UI.Models;
using Ryujinx.HLE.FileSystem;
using SixLabors.ImageSharp;
using SixLabors.ImageSharp.Formats.Png;
@@ -24,7 +24,7 @@ using System.Threading;
using System.Threading.Tasks;
using Color = Avalonia.Media.Color;
-namespace Ryujinx.Ava.Ui.ViewModels
+namespace Ryujinx.Ava.UI.ViewModels
{
internal class AvatarProfileViewModel : BaseModel, IDisposable
{
diff --git a/Ryujinx.Ava/Ui/ViewModels/BaseModel.cs b/Ryujinx.Ava/UI/ViewModels/BaseModel.cs
similarity index 91%
rename from Ryujinx.Ava/Ui/ViewModels/BaseModel.cs
rename to Ryujinx.Ava/UI/ViewModels/BaseModel.cs
index abb14c7d00..5a3717fd3b 100644
--- a/Ryujinx.Ava/Ui/ViewModels/BaseModel.cs
+++ b/Ryujinx.Ava/UI/ViewModels/BaseModel.cs
@@ -1,7 +1,7 @@
using System.ComponentModel;
using System.Runtime.CompilerServices;
-namespace Ryujinx.Ava.Ui.ViewModels
+namespace Ryujinx.Ava.UI.ViewModels
{
public class BaseModel : INotifyPropertyChanged
{
diff --git a/Ryujinx.Ava/Ui/ViewModels/ControllerSettingsViewModel.cs b/Ryujinx.Ava/UI/ViewModels/ControllerSettingsViewModel.cs
similarity index 99%
rename from Ryujinx.Ava/Ui/ViewModels/ControllerSettingsViewModel.cs
rename to Ryujinx.Ava/UI/ViewModels/ControllerSettingsViewModel.cs
index c769031681..692d2a8ca7 100644
--- a/Ryujinx.Ava/Ui/ViewModels/ControllerSettingsViewModel.cs
+++ b/Ryujinx.Ava/UI/ViewModels/ControllerSettingsViewModel.cs
@@ -5,9 +5,10 @@ using Avalonia.Svg.Skia;
using Avalonia.Threading;
using Ryujinx.Ava.Common.Locale;
using Ryujinx.Ava.Input;
-using Ryujinx.Ava.Ui.Controls;
-using Ryujinx.Ava.Ui.Models;
-using Ryujinx.Ava.Ui.Windows;
+using Ryujinx.Ava.UI.Controls;
+using Ryujinx.Ava.UI.Helpers;
+using Ryujinx.Ava.UI.Models;
+using Ryujinx.Ava.UI.Windows;
using Ryujinx.Common;
using Ryujinx.Common.Configuration;
using Ryujinx.Common.Configuration.Hid;
@@ -28,7 +29,7 @@ using ConfigGamepadInputId = Ryujinx.Common.Configuration.Hid.Controller.Gamepad
using ConfigStickInputId = Ryujinx.Common.Configuration.Hid.Controller.StickInputId;
using Key = Ryujinx.Common.Configuration.Hid.Key;
-namespace Ryujinx.Ava.Ui.ViewModels
+namespace Ryujinx.Ava.UI.ViewModels
{
public class ControllerSettingsViewModel : BaseModel, IDisposable
{
diff --git a/Ryujinx.Ava/Ui/ViewModels/MainWindowViewModel.cs b/Ryujinx.Ava/UI/ViewModels/MainWindowViewModel.cs
similarity index 99%
rename from Ryujinx.Ava/Ui/ViewModels/MainWindowViewModel.cs
rename to Ryujinx.Ava/UI/ViewModels/MainWindowViewModel.cs
index 06513e37cc..e6d971930e 100644
--- a/Ryujinx.Ava/Ui/ViewModels/MainWindowViewModel.cs
+++ b/Ryujinx.Ava/UI/ViewModels/MainWindowViewModel.cs
@@ -12,8 +12,9 @@ using LibHac.Ncm;
using Ryujinx.Ava.Common;
using Ryujinx.Ava.Common.Locale;
using Ryujinx.Ava.Input;
-using Ryujinx.Ava.Ui.Controls;
-using Ryujinx.Ava.Ui.Windows;
+using Ryujinx.Ava.UI.Controls;
+using Ryujinx.Ava.UI.Helpers;
+using Ryujinx.Ava.UI.Windows;
using Ryujinx.Common;
using Ryujinx.Common.Configuration;
using Ryujinx.Common.Logging;
@@ -35,7 +36,7 @@ using System.Threading.Tasks;
using Path = System.IO.Path;
using ShaderCacheLoadingState = Ryujinx.Graphics.Gpu.Shader.ShaderCacheState;
-namespace Ryujinx.Ava.Ui.ViewModels
+namespace Ryujinx.Ava.UI.ViewModels
{
internal class MainWindowViewModel : BaseModel
{
diff --git a/Ryujinx.Ava/Ui/ViewModels/SettingsViewModel.cs b/Ryujinx.Ava/UI/ViewModels/SettingsViewModel.cs
similarity index 98%
rename from Ryujinx.Ava/Ui/ViewModels/SettingsViewModel.cs
rename to Ryujinx.Ava/UI/ViewModels/SettingsViewModel.cs
index c752697b98..de1bde46b4 100644
--- a/Ryujinx.Ava/Ui/ViewModels/SettingsViewModel.cs
+++ b/Ryujinx.Ava/UI/ViewModels/SettingsViewModel.cs
@@ -9,8 +9,9 @@ using Ryujinx.Audio.Backends.SDL2;
using Ryujinx.Audio.Backends.SoundIo;
using Ryujinx.Ava.Common.Locale;
using Ryujinx.Ava.Input;
-using Ryujinx.Ava.Ui.Controls;
-using Ryujinx.Ava.Ui.Windows;
+using Ryujinx.Ava.UI.Controls;
+using Ryujinx.Ava.UI.Helpers;
+using Ryujinx.Ava.UI.Windows;
using Ryujinx.Common.Configuration;
using Ryujinx.Common.Configuration.Hid;
using Ryujinx.Common.GraphicsDriver;
@@ -25,9 +26,9 @@ using System;
using System.Collections.Generic;
using System.Collections.ObjectModel;
using System.Linq;
-using TimeZone = Ryujinx.Ava.Ui.Models.TimeZone;
+using TimeZone = Ryujinx.Ava.UI.Models.TimeZone;
-namespace Ryujinx.Ava.Ui.ViewModels
+namespace Ryujinx.Ava.UI.ViewModels
{
internal class SettingsViewModel : BaseModel
{
@@ -41,7 +42,6 @@ namespace Ryujinx.Ava.Ui.ViewModels
private float _customResolutionScale;
private int _resolutionScale;
private int _graphicsBackendMultithreadingIndex;
- private float _previousVolumeLevel;
private float _volume;
private bool _isVulkanAvailable = true;
private bool _directoryChanged = false;
@@ -390,8 +390,6 @@ namespace Ryujinx.Ava.Ui.ViewModels
TimeOffset = dateTimeOffset.TimeOfDay;
KeyboardHotkeys = config.Hid.Hotkeys.Value;
-
- _previousVolumeLevel = Volume;
}
public void SaveSettings()
@@ -479,9 +477,7 @@ namespace Ryujinx.Ava.Ui.ViewModels
config.ToFileFormat().SaveConfig(Program.ConfigurationPath);
MainWindow.UpdateGraphicsConfig();
-
- _previousVolumeLevel = Volume;
-
+
if (_owner is SettingsWindow owner)
{
owner.ControllerSettings?.SaveCurrentProfile();
diff --git a/Ryujinx.Ava/Ui/ViewModels/UserProfileViewModel.cs b/Ryujinx.Ava/UI/ViewModels/UserProfileViewModel.cs
similarity index 93%
rename from Ryujinx.Ava/Ui/ViewModels/UserProfileViewModel.cs
rename to Ryujinx.Ava/UI/ViewModels/UserProfileViewModel.cs
index eb9f69d638..7b2e1d39cc 100644
--- a/Ryujinx.Ava/Ui/ViewModels/UserProfileViewModel.cs
+++ b/Ryujinx.Ava/UI/ViewModels/UserProfileViewModel.cs
@@ -5,15 +5,17 @@ using LibHac.Common;
using LibHac.Fs;
using LibHac.Fs.Shim;
using Ryujinx.Ava.Common.Locale;
-using Ryujinx.Ava.Ui.Controls;
+using Ryujinx.Ava.UI.Controls;
+using Ryujinx.Ava.UI.Helpers;
using Ryujinx.HLE.HOS.Services.Account.Acc;
using System;
using System.Collections.Generic;
using System.Collections.ObjectModel;
using System.Linq;
-using UserProfile = Ryujinx.Ava.Ui.Models.UserProfile;
+using UserId = Ryujinx.HLE.HOS.Services.Account.Acc.UserId;
+using UserProfile = Ryujinx.Ava.UI.Models.UserProfile;
-namespace Ryujinx.Ava.Ui.ViewModels
+namespace Ryujinx.Ava.UI.ViewModels
{
public class UserProfileViewModel : BaseModel, IDisposable
{
@@ -46,7 +48,7 @@ namespace Ryujinx.Ava.Ui.ViewModels
{
_selectedProfile = value;
- OnPropertyChanged(nameof(SelectedProfile));
+ OnPropertyChanged();
OnPropertyChanged(nameof(IsHighlightedProfileDeletable));
OnPropertyChanged(nameof(IsHighlightedProfileEditable));
}
@@ -63,7 +65,7 @@ namespace Ryujinx.Ava.Ui.ViewModels
{
_highlightedProfile = value;
- OnPropertyChanged(nameof(HighlightedProfile));
+ OnPropertyChanged();
OnPropertyChanged(nameof(IsHighlightedProfileDeletable));
OnPropertyChanged(nameof(IsHighlightedProfileEditable));
}
@@ -104,7 +106,7 @@ namespace Ryujinx.Ava.Ui.ViewModels
Span saveDataInfo = stackalloc SaveDataInfo[10];
- HashSet lostAccounts = new HashSet();
+ HashSet lostAccounts = new HashSet();
while (true)
{
@@ -118,7 +120,7 @@ namespace Ryujinx.Ava.Ui.ViewModels
for (int i = 0; i < readCount; i++)
{
var save = saveDataInfo[i];
- var id = new HLE.HOS.Services.Account.Acc.UserId((long)save.UserId.Id.Low, (long)save.UserId.Id.High);
+ var id = new UserId((long)save.UserId.Id.Low, (long)save.UserId.Id.High);
if (Profiles.FirstOrDefault( x=> x.UserId == id) == null)
{
lostAccounts.Add(id);
diff --git a/Ryujinx.Ava/Ui/Windows/AboutWindow.axaml b/Ryujinx.Ava/UI/Windows/AboutWindow.axaml
similarity index 98%
rename from Ryujinx.Ava/Ui/Windows/AboutWindow.axaml
rename to Ryujinx.Ava/UI/Windows/AboutWindow.axaml
index f3e42eb7ee..08d28740b0 100644
--- a/Ryujinx.Ava/Ui/Windows/AboutWindow.axaml
+++ b/Ryujinx.Ava/UI/Windows/AboutWindow.axaml
@@ -1,11 +1,11 @@
+
diff --git a/Ryujinx.Ava/Ui/Windows/AmiiboWindow.axaml.cs b/Ryujinx.Ava/UI/Windows/AmiiboWindow.axaml.cs
similarity index 94%
rename from Ryujinx.Ava/Ui/Windows/AmiiboWindow.axaml.cs
rename to Ryujinx.Ava/UI/Windows/AmiiboWindow.axaml.cs
index e0efdf4368..68d16f3501 100644
--- a/Ryujinx.Ava/Ui/Windows/AmiiboWindow.axaml.cs
+++ b/Ryujinx.Ava/UI/Windows/AmiiboWindow.axaml.cs
@@ -1,9 +1,9 @@
using Avalonia.Interactivity;
using Ryujinx.Ava.Common.Locale;
-using Ryujinx.Ava.Ui.Models;
-using Ryujinx.Ava.Ui.ViewModels;
+using Ryujinx.Ava.UI.Models;
+using Ryujinx.Ava.UI.ViewModels;
-namespace Ryujinx.Ava.Ui.Windows
+namespace Ryujinx.Ava.UI.Windows
{
public partial class AmiiboWindow : StyleableWindow
{
diff --git a/Ryujinx.Ava/Ui/Windows/AvatarWindow.axaml b/Ryujinx.Ava/UI/Windows/AvatarWindow.axaml
similarity index 65%
rename from Ryujinx.Ava/Ui/Windows/AvatarWindow.axaml
rename to Ryujinx.Ava/UI/Windows/AvatarWindow.axaml
index a1099d1b5d..c90ce0221d 100644
--- a/Ryujinx.Ava/Ui/Windows/AvatarWindow.axaml
+++ b/Ryujinx.Ava/UI/Windows/AvatarWindow.axaml
@@ -1,23 +1,24 @@
-
+
-
+
@@ -43,9 +44,9 @@
-
+
-
diff --git a/Ryujinx.Ava/Ui/Windows/AvatarWindow.axaml.cs b/Ryujinx.Ava/UI/Windows/AvatarWindow.axaml.cs
similarity index 93%
rename from Ryujinx.Ava/Ui/Windows/AvatarWindow.axaml.cs
rename to Ryujinx.Ava/UI/Windows/AvatarWindow.axaml.cs
index 2189f47d85..e060d65e90 100644
--- a/Ryujinx.Ava/Ui/Windows/AvatarWindow.axaml.cs
+++ b/Ryujinx.Ava/UI/Windows/AvatarWindow.axaml.cs
@@ -2,12 +2,12 @@ using Avalonia.Controls;
using Avalonia.Interactivity;
using FluentAvalonia.UI.Controls;
using FluentAvalonia.UI.Navigation;
-using Ryujinx.Ava.Ui.Controls;
-using Ryujinx.Ava.Ui.Models;
-using Ryujinx.Ava.Ui.ViewModels;
+using Ryujinx.Ava.UI.Controls;
+using Ryujinx.Ava.UI.Models;
+using Ryujinx.Ava.UI.ViewModels;
using Ryujinx.HLE.FileSystem;
-namespace Ryujinx.Ava.Ui.Windows
+namespace Ryujinx.Ava.UI.Windows
{
public partial class AvatarWindow : UserControl
{
diff --git a/Ryujinx.Ava/Ui/Windows/CheatWindow.axaml b/Ryujinx.Ava/UI/Windows/CheatWindow.axaml
similarity index 96%
rename from Ryujinx.Ava/Ui/Windows/CheatWindow.axaml
rename to Ryujinx.Ava/UI/Windows/CheatWindow.axaml
index 8d313d647a..3557ed696f 100644
--- a/Ryujinx.Ava/Ui/Windows/CheatWindow.axaml
+++ b/Ryujinx.Ava/UI/Windows/CheatWindow.axaml
@@ -1,12 +1,12 @@
+
+
+
+
+
+
+
diff --git a/Ryujinx.Ava/Ui/Windows/ContentDialogOverlayWindow.axaml.cs b/Ryujinx.Ava/UI/Windows/ContentDialogOverlayWindow.axaml.cs
similarity index 95%
rename from Ryujinx.Ava/Ui/Windows/ContentDialogOverlayWindow.axaml.cs
rename to Ryujinx.Ava/UI/Windows/ContentDialogOverlayWindow.axaml.cs
index 7a51e64d00..3f77124d9f 100644
--- a/Ryujinx.Ava/Ui/Windows/ContentDialogOverlayWindow.axaml.cs
+++ b/Ryujinx.Ava/UI/Windows/ContentDialogOverlayWindow.axaml.cs
@@ -3,7 +3,7 @@ using Avalonia.Controls;
using Avalonia.Markup.Xaml;
using Avalonia.Media;
-namespace Ryujinx.Ava.Ui.Windows
+namespace Ryujinx.Ava.UI.Windows
{
public partial class ContentDialogOverlayWindow : StyleableWindow
{
diff --git a/Ryujinx.Ava/Ui/Windows/ControllerSettingsWindow.axaml b/Ryujinx.Ava/UI/Windows/ControllerSettingsWindow.axaml
similarity index 99%
rename from Ryujinx.Ava/Ui/Windows/ControllerSettingsWindow.axaml
rename to Ryujinx.Ava/UI/Windows/ControllerSettingsWindow.axaml
index 3e8dc41eb8..f6bb1aa42a 100644
--- a/Ryujinx.Ava/Ui/Windows/ControllerSettingsWindow.axaml
+++ b/Ryujinx.Ava/UI/Windows/ControllerSettingsWindow.axaml
@@ -1,13 +1,13 @@
-
+
-
+
-
+
-
-
-
-
+
+
+
+
+ Glyph="{helpers:GlyphValueConverter List}" />
+ Glyph="{helpers:GlyphValueConverter Grid}" />
+
diff --git a/Ryujinx.Ava/Ui/Windows/MotionSettingsWindow.axaml.cs b/Ryujinx.Ava/UI/Windows/MotionSettingsWindow.axaml.cs
similarity index 96%
rename from Ryujinx.Ava/Ui/Windows/MotionSettingsWindow.axaml.cs
rename to Ryujinx.Ava/UI/Windows/MotionSettingsWindow.axaml.cs
index b478198416..215525fcf1 100644
--- a/Ryujinx.Ava/Ui/Windows/MotionSettingsWindow.axaml.cs
+++ b/Ryujinx.Ava/UI/Windows/MotionSettingsWindow.axaml.cs
@@ -1,12 +1,12 @@
using Avalonia.Controls;
using FluentAvalonia.UI.Controls;
using Ryujinx.Ava.Common.Locale;
-using Ryujinx.Ava.Ui.Models;
-using Ryujinx.Ava.Ui.ViewModels;
+using Ryujinx.Ava.UI.Models;
+using Ryujinx.Ava.UI.ViewModels;
using Ryujinx.Common.Configuration.Hid.Controller;
using System.Threading.Tasks;
-namespace Ryujinx.Ava.Ui.Windows
+namespace Ryujinx.Ava.UI.Windows
{
public partial class MotionSettingsWindow : UserControl
{
diff --git a/Ryujinx.Ava/Ui/Windows/RumbleSettingsWindow.axaml b/Ryujinx.Ava/UI/Windows/RumbleSettingsWindow.axaml
similarity index 75%
rename from Ryujinx.Ava/Ui/Windows/RumbleSettingsWindow.axaml
rename to Ryujinx.Ava/UI/Windows/RumbleSettingsWindow.axaml
index 120643aad0..e47cc5bd1a 100644
--- a/Ryujinx.Ava/Ui/Windows/RumbleSettingsWindow.axaml
+++ b/Ryujinx.Ava/UI/Windows/RumbleSettingsWindow.axaml
@@ -1,13 +1,12 @@
-
+
diff --git a/Ryujinx.Ava/Ui/Windows/RumbleSettingsWindow.axaml.cs b/Ryujinx.Ava/UI/Windows/RumbleSettingsWindow.axaml.cs
similarity index 95%
rename from Ryujinx.Ava/Ui/Windows/RumbleSettingsWindow.axaml.cs
rename to Ryujinx.Ava/UI/Windows/RumbleSettingsWindow.axaml.cs
index afb5a33ac0..f645ae3593 100644
--- a/Ryujinx.Ava/Ui/Windows/RumbleSettingsWindow.axaml.cs
+++ b/Ryujinx.Ava/UI/Windows/RumbleSettingsWindow.axaml.cs
@@ -1,12 +1,12 @@
using Avalonia.Controls;
using FluentAvalonia.UI.Controls;
using Ryujinx.Ava.Common.Locale;
-using Ryujinx.Ava.Ui.Models;
-using Ryujinx.Ava.Ui.ViewModels;
+using Ryujinx.Ava.UI.Models;
+using Ryujinx.Ava.UI.ViewModels;
using Ryujinx.Common.Configuration.Hid.Controller;
using System.Threading.Tasks;
-namespace Ryujinx.Ava.Ui.Windows
+namespace Ryujinx.Ava.UI.Windows
{
public partial class RumbleSettingsWindow : UserControl
{
diff --git a/Ryujinx.Ava/Ui/Windows/SettingsWindow.axaml b/Ryujinx.Ava/UI/Windows/SettingsWindow.axaml
similarity index 99%
rename from Ryujinx.Ava/Ui/Windows/SettingsWindow.axaml
rename to Ryujinx.Ava/UI/Windows/SettingsWindow.axaml
index bd3dd613e4..e25500828f 100644
--- a/Ryujinx.Ava/Ui/Windows/SettingsWindow.axaml
+++ b/Ryujinx.Ava/UI/Windows/SettingsWindow.axaml
@@ -1,14 +1,14 @@
-
+
@@ -935,7 +935,7 @@
Tag="CpuPage">
+ Glyph="{helpers:GlyphValueConverter Chip}" />
-
-
\ No newline at end of file
diff --git a/Ryujinx.Ava/Ui/Controls/ProfileImageSelectionDialog.axaml b/Ryujinx.Ava/Ui/Controls/ProfileImageSelectionDialog.axaml
deleted file mode 100644
index 7bbd03ca26..0000000000
--- a/Ryujinx.Ava/Ui/Controls/ProfileImageSelectionDialog.axaml
+++ /dev/null
@@ -1,32 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/Ryujinx.Ava/Ui/Controls/RendererHost.axaml b/Ryujinx.Ava/Ui/Controls/RendererHost.axaml
deleted file mode 100644
index 45bc1b2b84..0000000000
--- a/Ryujinx.Ava/Ui/Controls/RendererHost.axaml
+++ /dev/null
@@ -1,8 +0,0 @@
-
-
diff --git a/Ryujinx.Ava/Ui/Controls/SaveManager.axaml b/Ryujinx.Ava/Ui/Controls/SaveManager.axaml
deleted file mode 100644
index 8721d2a7bf..0000000000
--- a/Ryujinx.Ava/Ui/Controls/SaveManager.axaml
+++ /dev/null
@@ -1,103 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/Ryujinx.Ava/Ui/Windows/ContentDialogOverlayWindow.axaml b/Ryujinx.Ava/Ui/Windows/ContentDialogOverlayWindow.axaml
deleted file mode 100644
index 037b7af85e..0000000000
--- a/Ryujinx.Ava/Ui/Windows/ContentDialogOverlayWindow.axaml
+++ /dev/null
@@ -1,28 +0,0 @@
-
-
-
-
-
-
-
-