feat: add ability to change app icon

Add ability to change application icon to any image file inside the src\Ryujinx\Assets\Icons\AppIcons directory. The app should automatically load any resource in that folder as a selectable icon.
This commit is contained in:
VewDev
2025-08-29 13:56:28 +02:00
parent 462c93e1ff
commit af0f8e2720
16 changed files with 144 additions and 1 deletions

View File

@@ -354,6 +354,11 @@ namespace Ryujinx.Ava.Systems.Configuration
/// </summary>
public string BaseStyle { get; set; }
/// <summary>
/// The name of the currently selected window icon
/// </summary>
public string SelectedWindowIcon { get; set; }
/// <summary>
/// Chooses the view mode of the game list // Not Used
/// </summary>

View File

@@ -129,6 +129,7 @@ namespace Ryujinx.Ava.Systems.Configuration
UI.ShownFileTypes.NSO.Value = shouldLoadFromFile ? cff.ShownFileTypes.NSO : UI.ShownFileTypes.NSO.Value;
UI.LanguageCode.Value = shouldLoadFromFile ? cff.LanguageCode : UI.LanguageCode.Value;
UI.BaseStyle.Value = shouldLoadFromFile ? cff.BaseStyle : UI.BaseStyle.Value;
UI.SelectedWindowIcon.Value = shouldLoadFromFile ? cff.SelectedWindowIcon : UI.SelectedWindowIcon.Value;
UI.GameListViewMode.Value = shouldLoadFromFile ? cff.GameListViewMode : UI.GameListViewMode.Value;
UI.ShowNames.Value = shouldLoadFromFile ? cff.ShowNames : UI.ShowNames.Value;
UI.IsAscendingOrder.Value = shouldLoadFromFile ? cff.IsAscendingOrder : UI.IsAscendingOrder.Value;

View File

@@ -150,6 +150,11 @@ namespace Ryujinx.Ava.Systems.Configuration
/// </summary>
public ReactiveObject<string> BaseStyle { get; private set; }
/// <summary>
/// The currently selected window icon.
/// </summary>
public ReactiveObject<string> SelectedWindowIcon { get; private set; }
/// <summary>
/// Start games in fullscreen mode
/// </summary>
@@ -199,6 +204,7 @@ namespace Ryujinx.Ava.Systems.Configuration
ShownFileTypes = new ShownFileTypeSettings();
WindowStartup = new WindowStartupSettings();
BaseStyle = new ReactiveObject<string>();
SelectedWindowIcon = new ReactiveObject<string>();
StartFullscreen = new ReactiveObject<bool>();
StartNoUI = new ReactiveObject<bool>();
GameListViewMode = new ReactiveObject<int>();

View File

@@ -126,6 +126,7 @@ namespace Ryujinx.Ava.Systems.Configuration
},
LanguageCode = UI.LanguageCode,
BaseStyle = UI.BaseStyle,
SelectedWindowIcon = UI.SelectedWindowIcon,
GameListViewMode = UI.GameListViewMode,
ShowNames = UI.ShowNames,
GridSize = UI.GridSize,