Browse Source

Fixed some icons

Krzysztof Krysiński 2 months ago
parent
commit
a88ac48c0c

+ 1 - 1
src/PixiEditor.UI.Common/Accents/Base.axaml

@@ -239,7 +239,6 @@
             <SolidColorBrush x:Key="DockThemeControlBackgroundBrush" Color="{DynamicResource ThemeBackground1Color}" />
             <system:Double x:Key="DockFontSizeNormal">12</system:Double>
 
-            <FontFamily x:Key="ContentControlThemeFontFamily">Arial</FontFamily>
             <system:Double x:Key="FontSizeSmall">10</system:Double>
             <system:Double x:Key="FontSizeNormal">12</system:Double>
             <system:Double x:Key="FontSizeLarge">16</system:Double>
@@ -254,6 +253,7 @@
     </ResourceDictionary.ThemeDictionaries>
 
 
+    <FontFamily x:Key="ContentControlThemeFontFamily">$Default</FontFamily>
     <SolidColorBrush x:Key="RefreshVisualizerBackground">Pink</SolidColorBrush>
     <SolidColorBrush x:Key="RefreshVisualizerForeground">White</SolidColorBrush>
 

+ 17 - 1
src/PixiEditor.UI.Common/Fonts/PixiPerfectIcons.Extensions.cs

@@ -1,4 +1,5 @@
-using Avalonia.Media;
+using Avalonia;
+using Avalonia.Media;
 using Avalonia.Platform;
 using PixiEditor.UI.Common.Rendering;
 
@@ -28,4 +29,19 @@ public static class PixiPerfectIconExtensions
 
         return new IconImage(unicode, pixiPerfectFontFamily, size, Colors.White, rotation);
     }
+
+    public static string? TryGetByName(string? icon)
+    {
+        if (string.IsNullOrEmpty(icon))
+        {
+            return null;
+        }
+
+        if (Application.Current.Styles.TryGetResource(icon, null, out object resource))
+        {
+            return resource as string;
+        }
+
+        return icon;
+    }
 }

+ 7 - 1
src/PixiEditor.UI.Common/Themes/PixiEditorTheme.axaml.cs

@@ -1,4 +1,6 @@
-using Avalonia.Markup.Xaml;
+using Avalonia;
+using Avalonia.Markup.Xaml;
+using Avalonia.Media;
 using Avalonia.Styling;
 
 namespace PixiEditor.UI.Common.Themes;
@@ -8,5 +10,9 @@ public class PixiEditorTheme : Styles
     public PixiEditorTheme(IServiceProvider? sp = null)
     {
         AvaloniaXamlLoader.Load(sp, this);
+        if (OperatingSystem.IsMacOS())
+        {
+            Application.Current.Styles.Resources["ContentControlThemeFontFamily"] = FontFamily.Parse("Arial");
+        }
     }
 }

+ 8 - 8
src/PixiEditor/Data/Configs/ToolSetsConfig.json

@@ -1,7 +1,7 @@
 [
   {
     "Name": "PIXEL_ART_TOOLSET",
-    "Icon": "\uE986",
+    "Icon": "icon-lowres-circle",
     "Tools": [
       "MoveViewport",
       "RotateViewport",
@@ -32,7 +32,7 @@
           "AntiAliasing": false,
           "ForceLowDpiRendering": true
         },
-        "Icon": "\ue994"
+        "Icon": "icon-text-pixel"
       },
       {
         "ToolName": "Eraser",
@@ -48,7 +48,7 @@
   },
   {
     "Name": "PAINT_TOOLSET",
-    "Icon": "\uE912",
+    "Icon": "icon-paint-brush",
     "Tools": [
       "MoveViewport",
       "RotateViewport",
@@ -83,21 +83,21 @@
         "Settings": {
           "AntiAliasing": true
         },
-        "Icon": "\ue93a"
+        "Icon": "icon-line"
       },
       {
         "ToolName": "RasterEllipse",
         "Settings": {
           "AntiAliasing": true
         },
-        "Icon": "\ue910"
+        "Icon": "icon-circle"
       },
       {
         "ToolName": "RasterRectangle",
         "Settings": {
           "AntiAliasing": true
         },
-        "Icon": "\uE953"
+        "Icon": "icon-square"
       },
       {
         "ToolName": "Text",
@@ -105,7 +105,7 @@
           "AntiAliasing": true,
           "ForceLowDpiRendering": true
         },
-        "Icon": "\ue98E"
+        "Icon": "icon-text-antialiased"
       },
       {
         "ToolName": "Eraser",
@@ -123,7 +123,7 @@
   },
   {
     "Name": "VECTOR_TOOLSET",
-    "Icon": "\uE945",
+    "Icon": "icon-vector-pen",
     "Tools": [
       "MoveViewport",
       "RotateViewport",

+ 2 - 1
src/PixiEditor/ViewModels/SubViewModels/ToolSetViewModel.cs

@@ -1,5 +1,6 @@
 using System.Collections.ObjectModel;
 using PixiEditor.Models.Handlers;
+using PixiEditor.UI.Common.Fonts;
 using PixiEditor.ViewModels.Tools;
 
 namespace PixiEditor.ViewModels.SubViewModels;
@@ -16,7 +17,7 @@ internal class ToolSetViewModel : PixiObservableObject, IToolSetHandler
 
     public ToolSetViewModel(string setName, string? icon = null)
     {
-        Icon = icon ?? string.Empty;
+        Icon = PixiPerfectIconExtensions.TryGetByName(icon) ?? string.Empty;
         Name = setName;
     }
 

+ 2 - 1
src/PixiEditor/ViewModels/SubViewModels/ToolsViewModel.cs

@@ -20,6 +20,7 @@ using PixiEditor.Models.Handlers;
 using Drawie.Numerics;
 using PixiEditor.Extensions.CommonApi.UserPreferences.Settings;
 using PixiEditor.Models.Handlers.Toolbars;
+using PixiEditor.UI.Common.Fonts;
 using PixiEditor.ViewModels.Document;
 using PixiEditor.ViewModels.Tools;
 using PixiEditor.ViewModels.Tools.Tools;
@@ -513,7 +514,7 @@ internal class ToolsViewModel : SubViewModel<ViewModelMain>, IToolsHandler
 
                 if (!string.IsNullOrEmpty(toolFromToolset.Icon))
                 {
-                    toolSetViewModel.IconOverwrites[tool] = toolFromToolset.Icon;
+                    toolSetViewModel.IconOverwrites[tool] = PixiPerfectIconExtensions.TryGetByName(toolFromToolset.Icon) ?? PixiPerfectIcons.Placeholder;
                 }
 
                 if (tool is null)

+ 1 - 1
src/PixiEditor/ViewModels/Tools/ToolViewModel.cs

@@ -26,7 +26,7 @@ internal abstract class ToolViewModel : ObservableObject, IToolHandler
     public abstract string ToolNameLocalizationKey { get; }
     public virtual LocalizedString DisplayName => new LocalizedString(ToolNameLocalizationKey);
 
-    public virtual string DefaultIcon => $"\u25a1";
+    public virtual string DefaultIcon => PixiPerfectIcons.Placeholder;
 
     public virtual BrushShape FinalBrushShape => BrushShape.Square;