diff --git a/Source/LibationWinForms/AvaloniaUI/App.axaml b/Source/LibationWinForms/AvaloniaUI/App.axaml
index 3526c826..f8ef3650 100644
--- a/Source/LibationWinForms/AvaloniaUI/App.axaml
+++ b/Source/LibationWinForms/AvaloniaUI/App.axaml
@@ -12,5 +12,6 @@
+
\ No newline at end of file
diff --git a/Source/LibationWinForms/AvaloniaUI/App.axaml.cs b/Source/LibationWinForms/AvaloniaUI/App.axaml.cs
index 2351216d..c38a0ef0 100644
--- a/Source/LibationWinForms/AvaloniaUI/App.axaml.cs
+++ b/Source/LibationWinForms/AvaloniaUI/App.axaml.cs
@@ -1,12 +1,20 @@
using Avalonia;
using Avalonia.Controls.ApplicationLifetimes;
using Avalonia.Markup.Xaml;
+using Avalonia.Media;
using LibationWinForms.AvaloniaUI.Views;
namespace LibationWinForms.AvaloniaUI
{
public class App : Application
{
+ public static IBrush ProcessQueueBookFailedBrush { get; private set; }
+ public static IBrush ProcessQueueBookCompletedBrush { get; private set; }
+ public static IBrush ProcessQueueBookCancelledBrush { get; private set; }
+ public static IBrush ProcessQueueBookDefaultBrush { get; private set; }
+ public static IBrush SeriesEntryGridBackgroundBrush { get; private set; }
+
+
public override void Initialize()
{
AvaloniaXamlLoader.Load(this);
@@ -14,6 +22,8 @@ namespace LibationWinForms.AvaloniaUI
public override void OnFrameworkInitializationCompleted()
{
+ LoadStyles();
+
if (ApplicationLifetime is IClassicDesktopStyleApplicationLifetime desktop)
{
var mainWindow = new MainWindow();
@@ -23,5 +33,14 @@ namespace LibationWinForms.AvaloniaUI
base.OnFrameworkInitializationCompleted();
}
+
+ private void LoadStyles()
+ {
+ ProcessQueueBookFailedBrush = AvaloniaUtils.GetBrushFromResources("ProcessQueueBookFailedBrush");
+ ProcessQueueBookCompletedBrush = AvaloniaUtils.GetBrushFromResources("ProcessQueueBookCompletedBrush");
+ ProcessQueueBookCancelledBrush = AvaloniaUtils.GetBrushFromResources("ProcessQueueBookCancelledBrush");
+ ProcessQueueBookDefaultBrush = AvaloniaUtils.GetBrushFromResources("ProcessQueueBookDefaultBrush");
+ SeriesEntryGridBackgroundBrush = AvaloniaUtils.GetBrushFromResources("SeriesEntryGridBackgroundBrush");
+ }
}
}
\ No newline at end of file
diff --git a/Source/LibationWinForms/AvaloniaUI/Assets/LibationStyles.xaml b/Source/LibationWinForms/AvaloniaUI/Assets/LibationStyles.xaml
new file mode 100644
index 00000000..e1e3f5ce
--- /dev/null
+++ b/Source/LibationWinForms/AvaloniaUI/Assets/LibationStyles.xaml
@@ -0,0 +1,12 @@
+
+
+ #FFE6FFE6
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Source/LibationWinForms/AvaloniaUI/AvaloniaUtils.cs b/Source/LibationWinForms/AvaloniaUI/AvaloniaUtils.cs
new file mode 100644
index 00000000..18e28559
--- /dev/null
+++ b/Source/LibationWinForms/AvaloniaUI/AvaloniaUtils.cs
@@ -0,0 +1,22 @@
+using Avalonia.Media;
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace LibationWinForms.AvaloniaUI
+{
+ internal static class AvaloniaUtils
+ {
+
+ public static IBrush GetBrushFromResources(string name)
+ => GetBrushFromResources(name, Brushes.Transparent);
+ public static IBrush GetBrushFromResources(string name, IBrush defaultBrush)
+ {
+ if (App.Current.Styles.TryGetResource(name, out var value) && value is IBrush brush)
+ return brush;
+ return defaultBrush;
+ }
+ }
+}
diff --git a/Source/LibationWinForms/AvaloniaUI/ViewModels/ProcessBook2.cs b/Source/LibationWinForms/AvaloniaUI/ViewModels/ProcessBook2.cs
index be11604d..9fdf74c2 100644
--- a/Source/LibationWinForms/AvaloniaUI/ViewModels/ProcessBook2.cs
+++ b/Source/LibationWinForms/AvaloniaUI/ViewModels/ProcessBook2.cs
@@ -3,6 +3,7 @@ using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
using ApplicationServices;
+using Avalonia.Media;
using Avalonia.Media.Imaging;
using DataLayer;
using Dinah.Core;
@@ -63,12 +64,12 @@ namespace LibationWinForms.AvaloniaUI.ViewModels
public bool IsDownloading => Status is ProcessBookStatus.Working;
public bool Queued => Status is ProcessBookStatus.Queued;
- public string BackgroundColor => Status switch
+ public IBrush BackgroundColor => Status switch
{
- ProcessBookStatus.Cancelled => "Khaki",
- ProcessBookStatus.Completed => "PaleGreen",
- ProcessBookStatus.Failed => "LightCoral",
- _ => "White",
+ ProcessBookStatus.Cancelled => App.ProcessQueueBookCancelledBrush,
+ ProcessBookStatus.Completed => App.ProcessQueueBookCompletedBrush,
+ ProcessBookStatus.Failed => App.ProcessQueueBookFailedBrush,
+ _ => App.ProcessQueueBookDefaultBrush,
};
public string StatusText => Result switch
{
@@ -83,6 +84,7 @@ namespace LibationWinForms.AvaloniaUI.ViewModels
#endregion
+
private TimeSpan TimeRemaining { set { ETA = $"ETA: {value:mm\\:ss}"; } }
private Processable CurrentProcessable => _currentProcessable ??= Processes.Dequeue().Invoke();
private Processable NextProcessable() => _currentProcessable = null;
@@ -107,6 +109,7 @@ namespace LibationWinForms.AvaloniaUI.ViewModels
// Mutable property. Set the field so PropertyChanged isn't fired.
using var ms = new System.IO.MemoryStream(picture);
_cover = new Bitmap(ms);
+
}
private void PictureStorage_PictureCached(object sender, PictureCachedEventArgs e)
diff --git a/Source/LibationWinForms/AvaloniaUI/Views/MainWindow/MainWindow.axaml b/Source/LibationWinForms/AvaloniaUI/Views/MainWindow/MainWindow.axaml
index 633f312b..47c66173 100644
--- a/Source/LibationWinForms/AvaloniaUI/Views/MainWindow/MainWindow.axaml
+++ b/Source/LibationWinForms/AvaloniaUI/Views/MainWindow/MainWindow.axaml
@@ -9,13 +9,25 @@
mc:Ignorable="d" d:DesignWidth="2000" d:DesignHeight="700"
x:Class="LibationWinForms.AvaloniaUI.Views.MainWindow" Title="MainWindow">
-
-
-
+
+
+
-
-
-
-
-
-
-
+
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
+
+
-
-
-
-
+
+
+
+
-
-
-
+
+
+
+
-
-
-
-
-
+
+
+
+
+
diff --git a/Source/LibationWinForms/AvaloniaUI/Views/MainWindow/MainWindow.axaml.cs b/Source/LibationWinForms/AvaloniaUI/Views/MainWindow/MainWindow.axaml.cs
index 681fb3b7..984608f7 100644
--- a/Source/LibationWinForms/AvaloniaUI/Views/MainWindow/MainWindow.axaml.cs
+++ b/Source/LibationWinForms/AvaloniaUI/Views/MainWindow/MainWindow.axaml.cs
@@ -53,7 +53,6 @@ namespace LibationWinForms.AvaloniaUI.Views
private void FindAllControls()
{
- importToolStripMenuItem = this.FindControl