Эх сурвалжийг харах

UI: Adapt accent color to the user's system.

https://amwx.github.io/FluentAvaloniaDocs/pages/FATheme/Accents#using-the-systems-accent-color
Evan Husted 1 жил өмнө
parent
commit
06abba25c1

+ 1 - 1
src/Ryujinx/App.axaml

@@ -11,7 +11,7 @@
         </ResourceDictionary>
     </Application.Resources>
     <Application.Styles>
-        <sty:FluentAvaloniaTheme PreferSystemTheme="False" />
+        <sty:FluentAvaloniaTheme PreferUserAccentColor="True" PreferSystemTheme="False" />
         <StyleInclude Source="/Assets/Styles/Styles.xaml" />
     </Application.Styles>
 </Application>

+ 1 - 35
src/Ryujinx/Assets/Styles/Themes.xaml

@@ -4,18 +4,6 @@
         <ResourceDictionary x:Key="Default">
             <SolidColorBrush x:Key="DataGridSelectionBackgroundBrush"
                              Color="{DynamicResource DataGridSelectionColor}" />
-            <SolidColorBrush x:Key="ThemeAccentColorBrush"
-                             Color="{DynamicResource SystemAccentColor}" />
-            <SolidColorBrush x:Key="ThemeAccentBrush4"
-                             Color="{DynamicResource ThemeAccentColor4}" />
-            <Color x:Key="SystemAccentColor">#FF00C3E3</Color>
-            <Color x:Key="SystemAccentColorDark1">#FF00C3E3</Color>
-            <Color x:Key="SystemAccentColorDark2">#FF00C3E3</Color>
-            <Color x:Key="SystemAccentColorDark3">#FF00C3E3</Color>
-            <Color x:Key="SystemAccentColorLight1">#FF00C3E3</Color>
-            <Color x:Key="SystemAccentColorLight2">#FF00C3E3</Color>
-            <Color x:Key="SystemAccentColorLight3">#FF00C3E3</Color>
-            <Color x:Key="ThemeAccentColor4">#FFe8e8e8</Color>
             <Color x:Key="DataGridSelectionColor">#FF00FABB</Color>
             <Color x:Key="ThemeContentBackgroundColor">#FFF0F0F0</Color>
             <Color x:Key="ThemeControlBorderColor">#FFd6d6d6</Color>
@@ -26,6 +14,7 @@
             <Color x:Key="AppListBackgroundColor">#b3ffffff</Color>
             <Color x:Key="AppListHoverBackgroundColor">#80cccccc</Color>
             <Color x:Key="SecondaryTextColor">#A0000000</Color>
+            <Color x:Key="FavoriteApplicationIconColor">#fffcd12a</Color>
             <Color x:Key="Switch">#FF2EEAC9</Color>
             <Color x:Key="Unbounded">#FFFF4554</Color>
             <Color x:Key="Custom">#6483F5</Color>
@@ -33,18 +22,6 @@
         <ResourceDictionary x:Key="Light">
             <SolidColorBrush x:Key="DataGridSelectionBackgroundBrush"
                              Color="{DynamicResource DataGridSelectionColor}" />
-            <SolidColorBrush x:Key="ThemeAccentColorBrush"
-                             Color="{DynamicResource SystemAccentColor}" />
-            <SolidColorBrush x:Key="ThemeAccentBrush4"
-                             Color="{DynamicResource ThemeAccentColor4}" />
-            <Color x:Key="SystemAccentColor">#FF00C3E3</Color>
-            <Color x:Key="SystemAccentColorDark1">#FF00C3E3</Color>
-            <Color x:Key="SystemAccentColorDark2">#FF00C3E3</Color>
-            <Color x:Key="SystemAccentColorDark3">#FF00C3E3</Color>
-            <Color x:Key="SystemAccentColorLight1">#FF00C3E3</Color>
-            <Color x:Key="SystemAccentColorLight2">#FF00C3E3</Color>
-            <Color x:Key="SystemAccentColorLight3">#FF00C3E3</Color>
-            <Color x:Key="ThemeAccentColor4">#FFe8e8e8</Color>
             <Color x:Key="DataGridSelectionColor">#FF00FABB</Color>
             <Color x:Key="ThemeContentBackgroundColor">#FFF0F0F0</Color>
             <Color x:Key="ThemeControlBorderColor">#FFd6d6d6</Color>
@@ -59,18 +36,7 @@
         <ResourceDictionary x:Key="Dark">
             <SolidColorBrush x:Key="DataGridSelectionBackgroundBrush"
                              Color="{DynamicResource DataGridSelectionColor}" />
-            <SolidColorBrush x:Key="ThemeAccentColorBrush"
-                             Color="{DynamicResource SystemAccentColor}" />
-            <SolidColorBrush x:Key="ThemeAccentBrush4"
-                             Color="{DynamicResource ThemeAccentColor4}" />
             <Color x:Key="ControlFillColorSecondary">#008AA8</Color>
-            <Color x:Key="SystemAccentColor">#FF00C3E3</Color>
-            <Color x:Key="SystemAccentColorDark1">#FF99b000</Color>
-            <Color x:Key="SystemAccentColorDark2">#FF006d7d</Color>
-            <Color x:Key="SystemAccentColorDark3">#FF00525E</Color>
-            <Color x:Key="SystemAccentColorLight1">#FF00dbff</Color>
-            <Color x:Key="SystemAccentColorLight2">#FF19dfff</Color>
-            <Color x:Key="SystemAccentColorLight3">#FF33e3ff</Color>
             <Color x:Key="DataGridSelectionColor">#FF00FABB</Color>
             <Color x:Key="ThemeContentBackgroundColor">#FF2D2D2D</Color>
             <Color x:Key="ThemeControlBorderColor">#FF505050</Color>

+ 2 - 2
src/Ryujinx/Common/Markup/BasicMarkupExtension.cs

@@ -17,13 +17,13 @@ namespace Ryujinx.Ava.Common.Markup
         public virtual string Name => "Item";
         public virtual Action<object, T?>? Setter => null;
 
-        protected abstract T? GetValue();
+        protected abstract T? Value { get; }
 
         protected virtual void ConfigureBindingExtension(CompiledBindingExtension _) { }
 
         private ClrPropertyInfo PropertyInfo =>
             new(Name,
-                _ => GetValue(),
+                _ => Value,
                 Setter as Action<object, object?>,
                 typeof(T));
 

+ 3 - 3
src/Ryujinx/Common/Markup/MarkupExtensions.cs

@@ -6,17 +6,17 @@ namespace Ryujinx.Ava.Common.Markup
 {
     internal class IconExtension(string iconString) : BasicMarkupExtension<Icon>
     {
-        protected override Icon GetValue() => new() { Value = iconString };
+        protected override Icon Value => new() { Value = iconString };
     }
     
     internal class SpinningIconExtension(string iconString) : BasicMarkupExtension<Icon>
     {
-        protected override Icon GetValue() => new() { Value = iconString, Animation = IconAnimation.Spin };
+        protected override Icon Value => new() { Value = iconString, Animation = IconAnimation.Spin };
     }
     
     internal class LocaleExtension(LocaleKeys key) : BasicMarkupExtension<string>
     {
-        protected override string GetValue() => LocaleManager.Instance[key];
+        protected override string Value => LocaleManager.Instance[key];
 
         protected override void ConfigureBindingExtension(CompiledBindingExtension bindingExtension) 
             => bindingExtension.Source = LocaleManager.Instance;

+ 1 - 1
src/Ryujinx/UI/Controls/ApplicationGridView.axaml

@@ -91,7 +91,7 @@
                             HorizontalAlignment="Left"
                             VerticalAlignment="Top"
                             FontSize="16"
-                            Foreground="{DynamicResource SystemAccentColor}"
+                            Foreground="{DynamicResource FavoriteApplicationIconColor}"
                             IsVisible="{Binding Favorite}"
                             Symbol="StarFilled" />
                     </Grid>

+ 1 - 1
src/Ryujinx/UI/Controls/ApplicationListView.axaml

@@ -146,7 +146,7 @@
                                     HorizontalAlignment="Left"
                                     VerticalAlignment="Top"
                                     FontSize="16"
-                                    Foreground="{DynamicResource SystemAccentColor}"
+                                    Foreground="{DynamicResource FavoriteApplicationIconColor}"
                                     IsVisible="{Binding Favorite}"
                                     Symbol="StarFilled" />
                             </Grid>