From c7c78dfecc495ec92b4b97cbfdd806df72585b26 Mon Sep 17 00:00:00 2001 From: Robert Date: Sat, 15 May 2021 13:50:01 +0200 Subject: [PATCH] Layouts - Round LEDs and device size Tray - Use dark icon for for light Windows theme --- .../Models/Surface/Layout/ArtemisLayout.cs | 76 +++++++++--------- src/Artemis.UI/Artemis.UI.csproj | 2 + .../Resources/Images/Logo/bow-black.ico | Bin 0 -> 67917 bytes src/Artemis.UI/Screens/TrayView.xaml | 2 +- src/Artemis.UI/Screens/TrayViewModel.cs | 17 +++- 5 files changed, 57 insertions(+), 40 deletions(-) create mode 100644 src/Artemis.UI/Resources/Images/Logo/bow-black.ico diff --git a/src/Artemis.Core/Models/Surface/Layout/ArtemisLayout.cs b/src/Artemis.Core/Models/Surface/Layout/ArtemisLayout.cs index 5376779fa..130b8cba7 100644 --- a/src/Artemis.Core/Models/Surface/Layout/ArtemisLayout.cs +++ b/src/Artemis.Core/Models/Surface/Layout/ArtemisLayout.cs @@ -66,6 +66,44 @@ namespace Artemis.Core /// public LayoutCustomDeviceData LayoutCustomDeviceData { get; private set; } = null!; + /// + /// Applies the layout to the provided device + /// + public void ApplyTo(IRGBDevice device, bool createMissingLeds = false, bool removeExcessiveLeds = false) + { + device.Size = new Size(MathF.Round(RgbLayout.Width), MathF.Round(RgbLayout.Height)); + device.DeviceInfo.LayoutMetadata = RgbLayout.CustomData; + + HashSet ledIds = new(); + foreach (ILedLayout layoutLed in RgbLayout.Leds) + { + if (Enum.TryParse(layoutLed.Id, true, out LedId ledId)) + { + ledIds.Add(ledId); + + Led? led = device[ledId]; + if (led == null && createMissingLeds) + led = device.AddLed(ledId, new Point(), new Size()); + + if (led != null) + { + led.Location = new Point(MathF.Round(layoutLed.X), MathF.Round(layoutLed.Y)); + led.Size = new Size(MathF.Round(layoutLed.Width), MathF.Round(layoutLed.Height)); + led.Shape = layoutLed.Shape; + led.ShapeData = layoutLed.ShapeData; + led.LayoutMetadata = layoutLed.CustomData; + } + } + } + + if (removeExcessiveLeds) + { + List ledsToRemove = device.Select(led => led.Id).Where(id => !ledIds.Contains(id)).ToList(); + foreach (LedId led in ledsToRemove) + device.RemoveLed(led); + } + } + internal void ApplyDevice(ArtemisDevice artemisDevice) { Device = artemisDevice; @@ -108,44 +146,6 @@ namespace Artemis.Core else Image = null; } - - /// - /// Applies the layout to the provided device - /// - public void ApplyTo(IRGBDevice device, bool createMissingLeds = false, bool removeExcessiveLeds = false) - { - device.Size = new Size(MathF.Round(RgbLayout.Width), MathF.Round(RgbLayout.Height)); - device.DeviceInfo.LayoutMetadata = RgbLayout.CustomData; - - HashSet ledIds = new(); - foreach (ILedLayout layoutLed in RgbLayout.Leds) - { - if (Enum.TryParse(layoutLed.Id, true, out LedId ledId)) - { - ledIds.Add(ledId); - - Led? led = device[ledId]; - if ((led == null) && createMissingLeds) - led = device.AddLed(ledId, new Point(), new Size()); - - if (led != null) - { - led.Location = new Point(MathF.Round(layoutLed.X), MathF.Round(layoutLed.Y)); - led.Size = new Size(MathF.Round(layoutLed.Width), MathF.Round(layoutLed.Height)); - led.Shape = layoutLed.Shape; - led.ShapeData = layoutLed.ShapeData; - led.LayoutMetadata = layoutLed.CustomData; - } - } - } - - if (removeExcessiveLeds) - { - List ledsToRemove = device.Select(led => led.Id).Where(id => !ledIds.Contains(id)).ToList(); - foreach (LedId led in ledsToRemove) - device.RemoveLed(led); - } - } } /// diff --git a/src/Artemis.UI/Artemis.UI.csproj b/src/Artemis.UI/Artemis.UI.csproj index 114e65702..ce31292e3 100644 --- a/src/Artemis.UI/Artemis.UI.csproj +++ b/src/Artemis.UI/Artemis.UI.csproj @@ -85,6 +85,7 @@ + @@ -313,6 +314,7 @@ + diff --git a/src/Artemis.UI/Resources/Images/Logo/bow-black.ico b/src/Artemis.UI/Resources/Images/Logo/bow-black.ico new file mode 100644 index 0000000000000000000000000000000000000000..9649063ce500cad6826c946ec090e6d7dd31fc41 GIT binary patch literal 67917 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 jsAEtWD9HxfaCif5I - _icon; + set => SetAndNotify(ref _icon, value); + } + public void TrayActivateSidebarItem(string sidebarItem) { TrayBringToForeground(); @@ -168,9 +177,15 @@ namespace Artemis.UI.Screens private void ApplyWindowsTheme(ThemeWatcher.WindowsTheme windowsTheme) { + Execute.PostToUIThread(() => + { + Icon = windowsTheme == ThemeWatcher.WindowsTheme.Dark + ? new BitmapImage(new Uri("pack://application:,,,/Artemis.UI;component/Resources/Images/Logo/bow-white.ico")) + : new BitmapImage(new Uri("pack://application:,,,/Artemis.UI;component/Resources/Images/Logo/bow-black.ico")); + }); + if (_colorScheme.Value != ApplicationColorScheme.Automatic) return; - if (windowsTheme == ThemeWatcher.WindowsTheme.Dark) ChangeMaterialColors(ApplicationColorScheme.Dark); else