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 @@
-
-
-
-
-
-
-
-