diff --git a/Ryujinx.Ava/App.axaml b/Ryujinx.Ava/App.axaml
index eb9ffd86..72bc0dee 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 3c28c019..e59f9bd3 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 c1b3355a..f8bd032c 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 7f766614..0c562dfe 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 41b98136..acbbf2df 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 2d4d828b..ea3477eb 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 b3a1ef30..d495131f 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 023e31df..142d7820 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 a8d6a6df..a8e76275 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 78692ced..314746e7 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 8034b506..fe5e2721 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 aae66ccc..211b4725 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 ee329bc2..80be2979 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 b0669463..1c4d7638 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 ced88328..98f9e9e3 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 00000000..56f8152a
--- /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 5d361af9..00183b69 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 00000000..1cc557f0
--- /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 b6986b7c..97058fa4 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 00000000..b0dc4c6f
--- /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 499cd918..9910481c 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 8309e369..c5041230 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 f5b51e4e..19fa29e5 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 0efb5019..69f3d36a 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 f093686d..9f29fddb 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 7cfdc481..002d27a0 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 8d93088c..bd8c561e 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 9909bd6a..ebf5c16e 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 d48de41d..6b696ba7 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 01e9b920..b63a973a 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 d037e5f1..3fd368f8 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 a83ef961..6730b571 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 eca47644..cf30d99b 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 05b2cc5b..bdeceaea 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 00000000..4aae854f
--- /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 63c6a17d..3d6c9c01 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 d3ab1e8f..f1fad157 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 79d6658d..e69774c3 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 ac0b622b..8d5c2815 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 e14cfa6f..305182c9 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 ffe5bdde..785e785c 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 f32bf041..db77f66b 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 3a767ce9..efb703ba 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 45c6187e..21f206c8 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 0b2d2c11..ab8d6edc 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 6eb89a90..57802804 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 b9c5f75f..6581610b 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 81e2fee9..1e6e3c3b 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 8644ab52..d0ccafd0 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 5011d398..a7507add 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 8231e521..e674f4eb 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 23df4002..2af2d13b 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 cb1520d0..fa2e620c 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 5f3ca031..3070fc02 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 7e26cfbf..b322ed64 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 53bf7eed..2acd716b 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 ec8f3fce..f0b1bf7a 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 1c9f3b05..63da7b44 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 70478cea..c9311104 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 da042cdf..ea2b9038 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 4e6d3446..2dd7a6c8 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 a1bad051..cb6cc2fd 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 2bf6dbfa..77203222 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 c0ea9451..869db661 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 d007e0e7..cf94a9aa 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 c2983741..1d090623 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 abb14c7d..5a3717fd 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 c7690316..692d2a8c 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 06513e37..e6d97193 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 c752697b..de1bde46 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 eb9f69d6..7b2e1d39 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 f3e42eb7..08d28740 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 e0efdf43..68d16f35 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 a1099d1b..c90ce022 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 2189f47d..e060d65e 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 8d313d64..3557ed69 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 7a51e64d..3f77124d 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 3e8dc41e..f6bb1aa4 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 b4781984..215525fc 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 120643aa..e47cc5bd 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 afb5a33a..f645ae35 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 bd3dd613..e2550082 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 7bbd03ca..00000000
--- 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 45bc1b2b..00000000
--- 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 8721d2a7..00000000
--- 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 037b7af8..00000000
--- a/Ryujinx.Ava/Ui/Windows/ContentDialogOverlayWindow.axaml
+++ /dev/null
@@ -1,28 +0,0 @@
-
-
-
-
-
-
-
-