diff --git a/Images/Plus Minus.psd b/Images/Plus Minus.psd
index ae3fff21..187f6a4b 100644
Binary files a/Images/Plus Minus.psd and b/Images/Plus Minus.psd differ
diff --git a/Images/Stoplight with pdf.psd b/Images/Stoplight with pdf.psd
index 80542c2c..75fe9069 100644
Binary files a/Images/Stoplight with pdf.psd and b/Images/Stoplight with pdf.psd differ
diff --git a/Images/Stoplight.psd b/Images/Stoplight.psd
index 9b5f8105..4a11a81e 100644
Binary files a/Images/Stoplight.psd and b/Images/Stoplight.psd differ
diff --git a/Source/LibationAvalonia/App.axaml.cs b/Source/LibationAvalonia/App.axaml.cs
index 9bf752c7..398a89df 100644
--- a/Source/LibationAvalonia/App.axaml.cs
+++ b/Source/LibationAvalonia/App.axaml.cs
@@ -136,12 +136,12 @@ public class App : Application
[PropertyChangeFilter(nameof(ThemeVariant))]
private static void ThemeVariant_PropertyChanged(object sender, PropertyChangedEventArgsEx e)
- => OpenAndApplyTheme(e.NewValue as string);
+ => OpenAndApplyTheme(e.NewValue as Configuration.Theme? ?? Configuration.Theme.System);
private static void OnActualThemeVariantChanged(object? sender, EventArgs e)
- => OpenAndApplyTheme(Configuration.Instance.GetString(propertyName: nameof(ThemeVariant)));
+ => OpenAndApplyTheme(Configuration.Instance.ThemeVariant);
- private static void OpenAndApplyTheme(string? themeVariant)
+ private static void OpenAndApplyTheme(Configuration.Theme themeVariant)
{
using ChardonnayThemePersister? themePersister = ChardonnayThemePersister.Create();
themePersister?.Target.ApplyTheme(themeVariant);
diff --git a/Source/LibationAvalonia/Controls/Settings/Important.axaml.cs b/Source/LibationAvalonia/Controls/Settings/Important.axaml.cs
index 66148fc8..e00c97b0 100644
--- a/Source/LibationAvalonia/Controls/Settings/Important.axaml.cs
+++ b/Source/LibationAvalonia/Controls/Settings/Important.axaml.cs
@@ -52,7 +52,8 @@ namespace LibationAvalonia.Controls.Settings
var parent = ThemeComboBox.Parent as Panel;
if (parent?.Children.Remove(ThemeComboBox) ?? false)
{
- Configuration.Instance.SetString(ViewModel?.ThemeVariant, nameof(ViewModel.ThemeVariant));
+
+ Configuration.Instance.ThemeVariant = ViewModel?.ThemeVariant.Value ?? Configuration.Theme.System;
parent.Children.Add(ThemeComboBox);
}
ThemeComboBox.SelectionChanged += ThemeComboBox_SelectionChanged;
diff --git a/Source/LibationAvalonia/Dialogs/DialogWindow.cs b/Source/LibationAvalonia/Dialogs/DialogWindow.cs
index 1bb07286..7489cebe 100644
--- a/Source/LibationAvalonia/Dialogs/DialogWindow.cs
+++ b/Source/LibationAvalonia/Dialogs/DialogWindow.cs
@@ -29,11 +29,11 @@ namespace LibationAvalonia.Dialogs
if (Design.IsDesignMode)
{
- var themeVariant = Configuration.CreateMockInstance().GetString(propertyName: nameof(ThemeVariant));
+ var themeVariant = Configuration.CreateMockInstance().ThemeVariant;
RequestedThemeVariant = themeVariant switch
{
- nameof(ThemeVariant.Dark) => ThemeVariant.Dark,
- nameof(ThemeVariant.Light) => ThemeVariant.Light,
+ Configuration.Theme.Dark => ThemeVariant.Dark,
+ Configuration.Theme.Light => ThemeVariant.Light,
_ => ThemeVariant.Default,
};
}
diff --git a/Source/LibationAvalonia/Themes/ChardonnayTheme.cs b/Source/LibationAvalonia/Themes/ChardonnayTheme.cs
index ba13cd17..177fa1b5 100644
--- a/Source/LibationAvalonia/Themes/ChardonnayTheme.cs
+++ b/Source/LibationAvalonia/Themes/ChardonnayTheme.cs
@@ -37,7 +37,7 @@ public class ChardonnayTheme : IUpdatable, ICloneable
/// Invoke
public void Save() => Updated?.Invoke(this, EventArgs.Empty);
- public Color GetColor(string? themeVariant, string itemName)
+ public Color GetColor(LibationFileManager.Configuration.Theme themeVariant, string itemName)
=> GetColor(FromVariantName(themeVariant), itemName);
public Color GetColor(ThemeVariant themeVariant, string itemName)
@@ -46,7 +46,7 @@ public class ChardonnayTheme : IUpdatable, ICloneable
return ThemeColors[themeVariant].TryGetValue(itemName, out var color) ? color : default;
}
- public ChardonnayTheme SetColor(string? themeVariant, Expression> colorSelector, Color color)
+ public ChardonnayTheme SetColor(LibationFileManager.Configuration.Theme themeVariant, Expression> colorSelector, Color color)
=> SetColor(FromVariantName(themeVariant), colorSelector, color);
public ChardonnayTheme SetColor(ThemeVariant themeVariant, Expression> colorSelector, Color color)
@@ -59,7 +59,7 @@ public class ChardonnayTheme : IUpdatable, ICloneable
return this;
}
- public ChardonnayTheme SetColor(string? themeVariant, string itemName, Color itemColor)
+ public ChardonnayTheme SetColor(LibationFileManager.Configuration.Theme themeVariant, string itemName, Color itemColor)
=> SetColor(FromVariantName(themeVariant), itemName, itemColor);
public ChardonnayTheme SetColor(ThemeVariant themeVariant, string itemName, Color itemColor)
@@ -69,7 +69,7 @@ public class ChardonnayTheme : IUpdatable, ICloneable
return this;
}
- public FrozenDictionary GetThemeColors(string? themeVariant)
+ public FrozenDictionary GetThemeColors(LibationFileManager.Configuration.Theme themeVariant)
=> GetThemeColors(FromVariantName(themeVariant));
public FrozenDictionary GetThemeColors(ThemeVariant themeVariant)
@@ -78,7 +78,7 @@ public class ChardonnayTheme : IUpdatable, ICloneable
return ThemeColors[themeVariant].ToFrozenDictionary();
}
- public void ApplyTheme(string? themeVariant)
+ public void ApplyTheme(LibationFileManager.Configuration.Theme themeVariant)
=> ApplyTheme(FromVariantName(themeVariant));
public void ApplyTheme(ThemeVariant themeVariant)
@@ -195,11 +195,11 @@ public class ChardonnayTheme : IUpdatable, ICloneable
throw new InvalidOperationException("FluentTheme.Palettes only supports Light and Dark variants.");
}
- private static ThemeVariant FromVariantName(string? variantName)
+ private static ThemeVariant FromVariantName(LibationFileManager.Configuration.Theme variantName)
=> variantName switch
{
- nameof(ThemeVariant.Dark) => ThemeVariant.Dark,
- nameof(ThemeVariant.Light) => ThemeVariant.Light,
+ LibationFileManager.Configuration.Theme.Dark => ThemeVariant.Dark,
+ LibationFileManager.Configuration.Theme.Light => ThemeVariant.Light,
// "System"
_ => ThemeVariant.Default
};
diff --git a/Source/LibationAvalonia/ViewModels/Settings/ImportantSettingsVM.cs b/Source/LibationAvalonia/ViewModels/Settings/ImportantSettingsVM.cs
index eaf5e5fc..d0d71550 100644
--- a/Source/LibationAvalonia/ViewModels/Settings/ImportantSettingsVM.cs
+++ b/Source/LibationAvalonia/ViewModels/Settings/ImportantSettingsVM.cs
@@ -12,8 +12,7 @@ namespace LibationAvalonia.ViewModels.Settings
{
public class ImportantSettingsVM : ViewModelBase
{
- private string themeVariant;
- private string initialThemeVariant;
+ private EnumDisplay themeVariant;
private readonly Configuration config;
public ImportantSettingsVM(Configuration config)
@@ -30,9 +29,7 @@ namespace LibationAvalonia.ViewModels.Settings
GridScaleFactor = scaleFactorToLinearRange(config.GridScaleFactor);
GridFontScaleFactor = scaleFactorToLinearRange(config.GridFontScaleFactor);
- themeVariant = initialThemeVariant = config.GetString(propertyName: nameof(ThemeVariant)) ?? "";
- if (string.IsNullOrWhiteSpace(initialThemeVariant))
- themeVariant = initialThemeVariant = "System";
+ themeVariant = Themes.Single(v => v.Value == config.ThemeVariant);
}
public void SaveSettings(Configuration config)
@@ -91,7 +88,10 @@ namespace LibationAvalonia.ViewModels.Settings
public string GridScaleFactorText { get; } = Configuration.GetDescription(nameof(Configuration.GridScaleFactor));
public string GridFontScaleFactorText { get; } = Configuration.GetDescription(nameof(Configuration.GridFontScaleFactor));
public string BetaOptInText { get; } = Configuration.GetDescription(nameof(Configuration.BetaOptIn));
- public string[] Themes { get; } = { "System", nameof(Avalonia.Styling.ThemeVariant.Light), nameof(Avalonia.Styling.ThemeVariant.Dark) };
+ public EnumDisplay[] Themes { get; }
+ = Enum.GetValues()
+ .Select(v => new EnumDisplay(v))
+ .ToArray();
public string BooksDirectory { get; set; }
public bool SavePodcastsToParentFolder { get; set; }
@@ -103,7 +103,7 @@ namespace LibationAvalonia.ViewModels.Settings
public bool UseWebView { get; set; }
public Serilog.Events.LogEventLevel LoggingLevel { get; set; }
- public string ThemeVariant
+ public EnumDisplay ThemeVariant
{
get => themeVariant;
set => this.RaiseAndSetIfChanged(ref themeVariant, value);
diff --git a/Source/LibationFileManager/Configuration.PersistentSettings.cs b/Source/LibationFileManager/Configuration.PersistentSettings.cs
index 39f38391..30c8dbc2 100644
--- a/Source/LibationFileManager/Configuration.PersistentSettings.cs
+++ b/Source/LibationFileManager/Configuration.PersistentSettings.cs
@@ -154,6 +154,9 @@ namespace LibationFileManager
set => SetString(value);
}
+ [Description("Libation's display color theme")]
+ public Theme ThemeVariant { get => GetNonString(defaultValue: Theme.System); set => SetNonString(value); }
+
[Description("Allow Libation to fix up audiobook metadata")]
public bool AllowLibationFixup { get => GetNonString(defaultValue: true); set => SetNonString(value); }
@@ -261,6 +264,14 @@ namespace LibationFileManager
Ignore = 3
}
+ [JsonConverter(typeof(StringEnumConverter))]
+ public enum Theme
+ {
+ System = 0,
+ Light = 1,
+ Dark = 2
+ }
+
[JsonConverter(typeof(StringEnumConverter))]
public enum DateTimeSource
{
diff --git a/Source/LibationWinForms/AccessibleDataGridViewButtonCell.cs b/Source/LibationWinForms/AccessibleDataGridViewButtonCell.cs
index 2a384d9e..cc879e76 100644
--- a/Source/LibationWinForms/AccessibleDataGridViewButtonCell.cs
+++ b/Source/LibationWinForms/AccessibleDataGridViewButtonCell.cs
@@ -1,8 +1,9 @@
-using System.Windows.Forms;
+using LibationWinForms.GridView;
+using System.Windows.Forms;
namespace LibationWinForms
{
- public class AccessibleDataGridViewButtonCell : DataGridViewButtonCell
+ public class AccessibleDataGridViewButtonCell : DataGridViewButtonCell
{
protected string AccessibilityName { get; }
@@ -24,7 +25,8 @@ namespace LibationWinForms
public AccessibleDataGridViewButtonCell(string accessibilityName) : base()
{
AccessibilityName = accessibilityName;
- }
+ FlatStyle = Application.IsDarkModeEnabled ? FlatStyle.Flat : FlatStyle.System;
+ }
protected class ButtonCellAccessibilityObject : DataGridViewButtonCellAccessibleObject
{
diff --git a/Source/LibationWinForms/AccessibleDataGridViewComboBoxCell.cs b/Source/LibationWinForms/AccessibleDataGridViewComboBoxCell.cs
new file mode 100644
index 00000000..769af451
--- /dev/null
+++ b/Source/LibationWinForms/AccessibleDataGridViewComboBoxCell.cs
@@ -0,0 +1,45 @@
+using System.Windows.Forms;
+
+namespace LibationWinForms
+{
+ public class AccessibleDataGridViewComboBoxCell : DataGridViewComboBoxCell
+ {
+ protected string AccessibilityName { get; }
+
+ ///
+ /// Get or set description for accessibility. eg: screen readers. Also sets the ToolTipText
+ ///
+ protected string AccessibilityDescription
+ {
+ get => field;
+ set
+ {
+ field = value;
+ ToolTipText = value;
+ }
+ }
+
+ protected override AccessibleObject CreateAccessibilityInstance() => new ComboBoxCellAccessibilityObject(this, name: AccessibilityName, description: AccessibilityDescription);
+
+ public AccessibleDataGridViewComboBoxCell(string accessibilityName) : base()
+ {
+ FlatStyle = Application.IsDarkModeEnabled ? FlatStyle.Flat : FlatStyle.Standard;
+ AccessibilityName = accessibilityName;
+ }
+
+ protected class ComboBoxCellAccessibilityObject : DataGridViewComboBoxCellAccessibleObject
+ {
+ private string _name;
+ public override string Name => _name;
+
+ private string _description;
+ public override string Description => _description;
+
+ public ComboBoxCellAccessibilityObject(DataGridViewCell owner, string name, string description) : base(owner)
+ {
+ _name = name;
+ _description = description;
+ }
+ }
+ }
+}
diff --git a/Source/LibationWinForms/Dialogs/AboutDialog.cs b/Source/LibationWinForms/Dialogs/AboutDialog.cs
index e9f2cf51..eafc6cff 100644
--- a/Source/LibationWinForms/Dialogs/AboutDialog.cs
+++ b/Source/LibationWinForms/Dialogs/AboutDialog.cs
@@ -14,7 +14,7 @@ namespace LibationWinForms.Dialogs
InitializeComponent();
this.SetLibationIcon();
releaseNotesLbl.Text = $"Libation {AppScaffolding.LibationScaffolding.Variety} v{AppScaffolding.LibationScaffolding.BuildVersion}";
-
+ pictureBox1.Image = Application.IsDarkModeEnabled ? Properties.Resources.cheers_dark : Properties.Resources.cheers;
rmcrackanLbl.Tag = LibationContributor.PrimaryContributors.Single(c => c.Name == rmcrackanLbl.Text);
MBucariLbl.Tag = LibationContributor.PrimaryContributors.Single(c => c.Name == MBucariLbl.Text);
@@ -22,8 +22,13 @@ namespace LibationWinForms.Dialogs
{
var label = new LinkLabel { Tag = contributor, Text = contributor.Name, AutoSize = true };
label.LinkClicked += ContributorLabel_LinkClicked;
+ label.SetLinkLabelColors();
flowLayoutPanel1.Controls.Add(label);
}
+ rmcrackanLbl.SetLinkLabelColors();
+ MBucariLbl.SetLinkLabelColors();
+ releaseNotesLbl.SetLinkLabelColors();
+ getLibationLbl.SetLinkLabelColors();
var toolTip = new ToolTip();
toolTip.SetToolTip(releaseNotesLbl, "View Release Notes");
diff --git a/Source/LibationWinForms/Dialogs/AccountsDialog.Designer.cs b/Source/LibationWinForms/Dialogs/AccountsDialog.Designer.cs
index dcbfa698..7a77bebd 100644
--- a/Source/LibationWinForms/Dialogs/AccountsDialog.Designer.cs
+++ b/Source/LibationWinForms/Dialogs/AccountsDialog.Designer.cs
@@ -31,11 +31,11 @@
this.cancelBtn = new System.Windows.Forms.Button();
this.saveBtn = new System.Windows.Forms.Button();
this.dataGridView1 = new System.Windows.Forms.DataGridView();
- this.DeleteAccount = new System.Windows.Forms.DataGridViewButtonColumn();
- this.ExportAccount = new System.Windows.Forms.DataGridViewButtonColumn();
+ this.DeleteAccount = new DeleteColumn();
+ this.ExportAccount = new ExportColumn();
this.LibraryScan = new System.Windows.Forms.DataGridViewCheckBoxColumn();
this.AccountId = new System.Windows.Forms.DataGridViewTextBoxColumn();
- this.Locale = new System.Windows.Forms.DataGridViewComboBoxColumn();
+ this.Locale = new LocaleColumn();
this.AccountName = new System.Windows.Forms.DataGridViewTextBoxColumn();
this.importBtn = new System.Windows.Forms.Button();
((System.ComponentModel.ISupportInitialize)(this.dataGridView1)).BeginInit();
@@ -165,11 +165,11 @@
private System.Windows.Forms.Button saveBtn;
private System.Windows.Forms.DataGridView dataGridView1;
private System.Windows.Forms.Button importBtn;
- private System.Windows.Forms.DataGridViewButtonColumn DeleteAccount;
- private System.Windows.Forms.DataGridViewButtonColumn ExportAccount;
+ private DeleteColumn DeleteAccount;
+ private ExportColumn ExportAccount;
private System.Windows.Forms.DataGridViewCheckBoxColumn LibraryScan;
private System.Windows.Forms.DataGridViewTextBoxColumn AccountId;
- private System.Windows.Forms.DataGridViewComboBoxColumn Locale;
+ private LocaleColumn Locale;
private System.Windows.Forms.DataGridViewTextBoxColumn AccountName;
}
}
\ No newline at end of file
diff --git a/Source/LibationWinForms/Dialogs/AccountsDialog.cs b/Source/LibationWinForms/Dialogs/AccountsDialog.cs
index 4ee571bf..9d39bda8 100644
--- a/Source/LibationWinForms/Dialogs/AccountsDialog.cs
+++ b/Source/LibationWinForms/Dialogs/AccountsDialog.cs
@@ -20,7 +20,7 @@ namespace LibationWinForms.Dialogs
public AccountsDialog()
{
InitializeComponent();
-
+ dataGridView1.EnableHeadersVisualStyles = !Application.IsDarkModeEnabled;
dataGridView1.Columns[COL_AccountName].AutoSizeMode = DataGridViewAutoSizeColumnMode.Fill;
populateDropDown();
@@ -299,5 +299,55 @@ namespace LibationWinForms.Dialogs
ex);
}
}
+ #region Accessable Columns
+
+ public class DeleteColumn : DataGridViewButtonColumn
+ {
+ public DeleteColumn() : base()
+ {
+ this.CellTemplate = new DeleteColumnCell();
+ }
+ }
+
+ public class ExportColumn : DataGridViewButtonColumn
+ {
+ public ExportColumn() : base()
+ {
+ this.CellTemplate = new ExportColumnCell();
+ }
+ }
+
+ public class LocaleColumn : DataGridViewComboBoxColumn
+ {
+ public LocaleColumn() : base()
+ {
+ this.CellTemplate = new LocaleColumnCell();
+ }
+ }
+
+ public class DeleteColumnCell : AccessibleDataGridViewButtonCell
+ {
+ public DeleteColumnCell() : base("Delete account from Libation")
+ {
+ ToolTipText = AccessibilityName;
+ }
+ }
+
+ public class LocaleColumnCell : AccessibleDataGridViewComboBoxCell
+ {
+ public LocaleColumnCell() : base("Select Audible account region")
+ {
+ ToolTipText = AccessibilityName;
+ }
+ }
+
+ public class ExportColumnCell : AccessibleDataGridViewButtonCell
+ {
+ public ExportColumnCell() : base("Export account to mkb79/audible-cli format")
+ {
+ ToolTipText = AccessibilityName;
+ }
+ }
+ #endregion
}
}
diff --git a/Source/LibationWinForms/Dialogs/BookDetailsDialog.cs b/Source/LibationWinForms/Dialogs/BookDetailsDialog.cs
index d7f7a5b8..58dbb32d 100644
--- a/Source/LibationWinForms/Dialogs/BookDetailsDialog.cs
+++ b/Source/LibationWinForms/Dialogs/BookDetailsDialog.cs
@@ -27,6 +27,7 @@ namespace LibationWinForms.Dialogs
{
InitializeComponent();
this.SetLibationIcon();
+ audibleLink.SetLinkLabelColors();
}
public BookDetailsDialog(LibraryBook libraryBook) : this()
{
@@ -40,6 +41,7 @@ namespace LibationWinForms.Dialogs
{
this.Text = Book.TitleWithSubtitle;
dolbyAtmosPb.Visible = Book.IsSpatial;
+ dolbyAtmosPb.Image = Application.IsDarkModeEnabled ? Properties.Resources.Dolby_Atmos_Vertical_80_dark : Properties.Resources.Dolby_Atmos_Vertical_80;
(_, var picture) = PictureStorage.GetPicture(new PictureDefinition(Book.PictureId, PictureSize._80x80));
this.coverPb.Image = WinFormsUtil.TryLoadImageOrDefault(picture, PictureSize._80x80);
@@ -138,6 +140,7 @@ namespace LibationWinForms.Dialogs
var locale = AudibleApi.Localization.Get(_libraryBook.Book.Locale);
var link = $"https://www.audible.{locale.TopDomain}/pd/{Book.AudibleProductId}";
Go.To.Url(link);
+ e.Link.Visited = true;
}
}
}
diff --git a/Source/LibationWinForms/Dialogs/BookRecordsDialog.cs b/Source/LibationWinForms/Dialogs/BookRecordsDialog.cs
index c705d074..d9edb711 100644
--- a/Source/LibationWinForms/Dialogs/BookRecordsDialog.cs
+++ b/Source/LibationWinForms/Dialogs/BookRecordsDialog.cs
@@ -21,7 +21,7 @@ namespace LibationWinForms.Dialogs
public BookRecordsDialog()
{
InitializeComponent();
-
+ dataGridView1.EnableHeadersVisualStyles = !Application.IsDarkModeEnabled;
if (!DesignMode)
{
//Prevent the designer from auto-generating columns
diff --git a/Source/LibationWinForms/Dialogs/EditQuickFilters.cs b/Source/LibationWinForms/Dialogs/EditQuickFilters.cs
index 5669633b..99f3ac5a 100644
--- a/Source/LibationWinForms/Dialogs/EditQuickFilters.cs
+++ b/Source/LibationWinForms/Dialogs/EditQuickFilters.cs
@@ -55,7 +55,7 @@ namespace LibationWinForms.Dialogs
public EditQuickFilters()
{
InitializeComponent();
-
+ dataGridView1.EnableHeadersVisualStyles = !Application.IsDarkModeEnabled;
dataGridView1.Columns[COL_Filter].AutoSizeMode = DataGridViewAutoSizeColumnMode.Fill;
populateGridValues();
diff --git a/Source/LibationWinForms/Dialogs/SettingsDialog.Designer.cs b/Source/LibationWinForms/Dialogs/SettingsDialog.Designer.cs
index 53dafff0..d00ceaef 100644
--- a/Source/LibationWinForms/Dialogs/SettingsDialog.Designer.cs
+++ b/Source/LibationWinForms/Dialogs/SettingsDialog.Designer.cs
@@ -44,13 +44,13 @@
allowLibationFixupCbox = new System.Windows.Forms.CheckBox();
convertLossyRb = new System.Windows.Forms.RadioButton();
convertLosslessRb = new System.Windows.Forms.RadioButton();
- inProgressSelectControl = new DirectorySelectControl();
logsBtn = new System.Windows.Forms.Button();
- booksSelectControl = new DirectoryOrCustomSelectControl();
loggingLevelLbl = new System.Windows.Forms.Label();
loggingLevelCb = new System.Windows.Forms.ComboBox();
tabControl = new System.Windows.Forms.TabControl();
tab1ImportantSettings = new System.Windows.Forms.TabPage();
+ themeCb = new System.Windows.Forms.ComboBox();
+ label22 = new System.Windows.Forms.Label();
groupBox1 = new System.Windows.Forms.GroupBox();
applyDisplaySettingsBtn = new System.Windows.Forms.Button();
gridScaleFactorLbl = new System.Windows.Forms.Label();
@@ -58,6 +58,7 @@
gridFontScaleFactorLbl = new System.Windows.Forms.Label();
gridFontScaleFactorTbar = new System.Windows.Forms.TrackBar();
booksGb = new System.Windows.Forms.GroupBox();
+ booksSelectControl = new DirectoryOrCustomSelectControl();
lastWriteTimeCb = new System.Windows.Forms.ComboBox();
creationTimeCb = new System.Windows.Forms.ComboBox();
lastWriteTimeLbl = new System.Windows.Forms.Label();
@@ -72,6 +73,7 @@
saveMetadataToFileCbox = new System.Windows.Forms.CheckBox();
useCoverAsFolderIconCb = new System.Windows.Forms.CheckBox();
inProgressFilesGb = new System.Windows.Forms.GroupBox();
+ inProgressSelectControl = new DirectoryOrCustomSelectControl();
customFileNamingGb = new System.Windows.Forms.GroupBox();
editCharreplacementBtn = new System.Windows.Forms.Button();
chapterFileTemplateBtn = new System.Windows.Forms.Button();
@@ -137,6 +139,7 @@
retainAaxFileCbox = new System.Windows.Forms.CheckBox();
downloadCoverArtCbox = new System.Windows.Forms.CheckBox();
createCueSheetCbox = new System.Windows.Forms.CheckBox();
+ themeLbl = new System.Windows.Forms.Label();
badBookGb.SuspendLayout();
tabControl.SuspendLayout();
tab1ImportantSettings.SuspendLayout();
@@ -172,7 +175,7 @@
// inProgressDescLbl
//
inProgressDescLbl.AutoSize = true;
- inProgressDescLbl.Location = new System.Drawing.Point(7, 19);
+ inProgressDescLbl.Location = new System.Drawing.Point(7, 17);
inProgressDescLbl.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0);
inProgressDescLbl.Name = "inProgressDescLbl";
inProgressDescLbl.Size = new System.Drawing.Size(100, 45);
@@ -182,8 +185,8 @@
// saveBtn
//
saveBtn.Anchor = System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right;
- saveBtn.Location = new System.Drawing.Point(668, 499);
- saveBtn.Margin = new System.Windows.Forms.Padding(4, 3, 4, 3);
+ saveBtn.Location = new System.Drawing.Point(668, 501);
+ saveBtn.Margin = new System.Windows.Forms.Padding(4, 1, 4, 1);
saveBtn.Name = "saveBtn";
saveBtn.Size = new System.Drawing.Size(88, 27);
saveBtn.TabIndex = 98;
@@ -195,8 +198,8 @@
//
cancelBtn.Anchor = System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right;
cancelBtn.DialogResult = System.Windows.Forms.DialogResult.Cancel;
- cancelBtn.Location = new System.Drawing.Point(786, 499);
- cancelBtn.Margin = new System.Windows.Forms.Padding(4, 3, 4, 3);
+ cancelBtn.Location = new System.Drawing.Point(785, 501);
+ cancelBtn.Margin = new System.Windows.Forms.Padding(1);
cancelBtn.Name = "cancelBtn";
cancelBtn.Size = new System.Drawing.Size(88, 27);
cancelBtn.TabIndex = 99;
@@ -341,15 +344,6 @@
convertLosslessRb.UseVisualStyleBackColor = true;
convertLosslessRb.CheckedChanged += convertFormatRb_CheckedChanged;
//
- // inProgressSelectControl
- //
- inProgressSelectControl.Anchor = System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left | System.Windows.Forms.AnchorStyles.Right;
- inProgressSelectControl.Location = new System.Drawing.Point(6, 85);
- inProgressSelectControl.Margin = new System.Windows.Forms.Padding(3, 4, 3, 4);
- inProgressSelectControl.Name = "inProgressSelectControl";
- inProgressSelectControl.Size = new System.Drawing.Size(830, 49);
- inProgressSelectControl.TabIndex = 19;
- //
// logsBtn
//
logsBtn.Location = new System.Drawing.Point(256, 424);
@@ -360,15 +354,6 @@
logsBtn.UseVisualStyleBackColor = true;
logsBtn.Click += logsBtn_Click;
//
- // booksSelectControl
- //
- booksSelectControl.Anchor = System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left | System.Windows.Forms.AnchorStyles.Right;
- booksSelectControl.Location = new System.Drawing.Point(6, 37);
- booksSelectControl.Margin = new System.Windows.Forms.Padding(3, 4, 3, 4);
- booksSelectControl.Name = "booksSelectControl";
- booksSelectControl.Size = new System.Drawing.Size(832, 102);
- booksSelectControl.TabIndex = 2;
- //
// loggingLevelLbl
//
loggingLevelLbl.AutoSize = true;
@@ -397,12 +382,16 @@
tabControl.Location = new System.Drawing.Point(12, 12);
tabControl.Name = "tabControl";
tabControl.SelectedIndex = 0;
- tabControl.Size = new System.Drawing.Size(864, 481);
+ tabControl.Size = new System.Drawing.Size(864, 485);
tabControl.TabIndex = 100;
//
// tab1ImportantSettings
//
tab1ImportantSettings.AutoScroll = true;
+ tab1ImportantSettings.BackColor = System.Drawing.SystemColors.Window;
+ tab1ImportantSettings.Controls.Add(themeLbl);
+ tab1ImportantSettings.Controls.Add(themeCb);
+ tab1ImportantSettings.Controls.Add(label22);
tab1ImportantSettings.Controls.Add(groupBox1);
tab1ImportantSettings.Controls.Add(booksGb);
tab1ImportantSettings.Controls.Add(logsBtn);
@@ -411,10 +400,28 @@
tab1ImportantSettings.Location = new System.Drawing.Point(4, 24);
tab1ImportantSettings.Name = "tab1ImportantSettings";
tab1ImportantSettings.Padding = new System.Windows.Forms.Padding(3);
- tab1ImportantSettings.Size = new System.Drawing.Size(856, 453);
+ tab1ImportantSettings.Size = new System.Drawing.Size(856, 457);
tab1ImportantSettings.TabIndex = 0;
tab1ImportantSettings.Text = "Important settings";
- tab1ImportantSettings.UseVisualStyleBackColor = true;
+ //
+ // themeCb
+ //
+ themeCb.FormattingEnabled = true;
+ themeCb.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
+ themeCb.Location = new System.Drawing.Point(63, 390);
+ themeCb.Name = "themeCb";
+ themeCb.Size = new System.Drawing.Size(121, 23);
+ themeCb.TabIndex = 11;
+ themeCb.SelectedIndexChanged += themeCb_SelectedIndexChanged;
+ //
+ // label22
+ //
+ label22.AutoSize = true;
+ label22.Location = new System.Drawing.Point(4, 393);
+ label22.Name = "label22";
+ label22.Size = new System.Drawing.Size(44, 15);
+ label22.TabIndex = 10;
+ label22.Text = "Theme";
//
// groupBox1
//
@@ -434,7 +441,7 @@
// applyDisplaySettingsBtn
//
applyDisplaySettingsBtn.Anchor = System.Windows.Forms.AnchorStyles.Right;
- applyDisplaySettingsBtn.Location = new System.Drawing.Point(689, 26);
+ applyDisplaySettingsBtn.Location = new System.Drawing.Point(672, 26);
applyDisplaySettingsBtn.Name = "applyDisplaySettingsBtn";
applyDisplaySettingsBtn.Size = new System.Drawing.Size(148, 34);
applyDisplaySettingsBtn.TabIndex = 9;
@@ -487,13 +494,13 @@
// booksGb
//
booksGb.Anchor = System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left | System.Windows.Forms.AnchorStyles.Right;
+ booksGb.Controls.Add(booksSelectControl);
booksGb.Controls.Add(lastWriteTimeCb);
booksGb.Controls.Add(creationTimeCb);
booksGb.Controls.Add(lastWriteTimeLbl);
booksGb.Controls.Add(creationTimeLbl);
booksGb.Controls.Add(overwriteExistingCbox);
booksGb.Controls.Add(saveEpisodesToSeriesFolderCbox);
- booksGb.Controls.Add(booksSelectControl);
booksGb.Controls.Add(booksLocationDescLbl);
booksGb.Location = new System.Drawing.Point(6, 6);
booksGb.Name = "booksGb";
@@ -502,6 +509,14 @@
booksGb.TabStop = false;
booksGb.Text = "Books location";
//
+ // booksSelectControl
+ //
+ booksSelectControl.Anchor = System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left | System.Windows.Forms.AnchorStyles.Right;
+ booksSelectControl.Location = new System.Drawing.Point(8, 37);
+ booksSelectControl.Name = "booksSelectControl";
+ booksSelectControl.Size = new System.Drawing.Size(830, 80);
+ booksSelectControl.TabIndex = 6;
+ //
// lastWriteTimeCb
//
lastWriteTimeCb.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
@@ -563,6 +578,7 @@
// tab2ImportLibrary
//
tab2ImportLibrary.AutoScroll = true;
+ tab2ImportLibrary.BackColor = System.Drawing.SystemColors.Window;
tab2ImportLibrary.Controls.Add(autoDownloadEpisodesCb);
tab2ImportLibrary.Controls.Add(autoScanCb);
tab2ImportLibrary.Controls.Add(showImportedStatsCb);
@@ -571,10 +587,9 @@
tab2ImportLibrary.Location = new System.Drawing.Point(4, 24);
tab2ImportLibrary.Name = "tab2ImportLibrary";
tab2ImportLibrary.Padding = new System.Windows.Forms.Padding(3);
- tab2ImportLibrary.Size = new System.Drawing.Size(856, 453);
+ tab2ImportLibrary.Size = new System.Drawing.Size(856, 457);
tab2ImportLibrary.TabIndex = 1;
tab2ImportLibrary.Text = "Import library";
- tab2ImportLibrary.UseVisualStyleBackColor = true;
//
// autoDownloadEpisodesCb
//
@@ -609,6 +624,7 @@
// tab3DownloadDecrypt
//
tab3DownloadDecrypt.AutoScroll = true;
+ tab3DownloadDecrypt.BackColor = System.Drawing.SystemColors.Window;
tab3DownloadDecrypt.Controls.Add(saveMetadataToFileCbox);
tab3DownloadDecrypt.Controls.Add(useCoverAsFolderIconCb);
tab3DownloadDecrypt.Controls.Add(inProgressFilesGb);
@@ -617,15 +633,15 @@
tab3DownloadDecrypt.Location = new System.Drawing.Point(4, 24);
tab3DownloadDecrypt.Name = "tab3DownloadDecrypt";
tab3DownloadDecrypt.Padding = new System.Windows.Forms.Padding(3);
- tab3DownloadDecrypt.Size = new System.Drawing.Size(856, 453);
+ tab3DownloadDecrypt.Size = new System.Drawing.Size(856, 457);
tab3DownloadDecrypt.TabIndex = 2;
tab3DownloadDecrypt.Text = "Download/Decrypt";
- tab3DownloadDecrypt.UseVisualStyleBackColor = true;
//
// saveMetadataToFileCbox
//
+ saveMetadataToFileCbox.Anchor = System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right;
saveMetadataToFileCbox.AutoSize = true;
- saveMetadataToFileCbox.Location = new System.Drawing.Point(482, 428);
+ saveMetadataToFileCbox.Location = new System.Drawing.Point(481, 435);
saveMetadataToFileCbox.Name = "saveMetadataToFileCbox";
saveMetadataToFileCbox.Size = new System.Drawing.Size(166, 19);
saveMetadataToFileCbox.TabIndex = 22;
@@ -634,8 +650,9 @@
//
// useCoverAsFolderIconCb
//
+ useCoverAsFolderIconCb.Anchor = System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left;
useCoverAsFolderIconCb.AutoSize = true;
- useCoverAsFolderIconCb.Location = new System.Drawing.Point(7, 428);
+ useCoverAsFolderIconCb.Location = new System.Drawing.Point(6, 435);
useCoverAsFolderIconCb.Name = "useCoverAsFolderIconCb";
useCoverAsFolderIconCb.Size = new System.Drawing.Size(180, 19);
useCoverAsFolderIconCb.TabIndex = 22;
@@ -644,16 +661,24 @@
//
// inProgressFilesGb
//
- inProgressFilesGb.Anchor = System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left | System.Windows.Forms.AnchorStyles.Right;
- inProgressFilesGb.Controls.Add(inProgressDescLbl);
+ inProgressFilesGb.Anchor = System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left | System.Windows.Forms.AnchorStyles.Right;
inProgressFilesGb.Controls.Add(inProgressSelectControl);
+ inProgressFilesGb.Controls.Add(inProgressDescLbl);
inProgressFilesGb.Location = new System.Drawing.Point(6, 281);
inProgressFilesGb.Name = "inProgressFilesGb";
- inProgressFilesGb.Size = new System.Drawing.Size(842, 141);
+ inProgressFilesGb.Size = new System.Drawing.Size(842, 148);
inProgressFilesGb.TabIndex = 21;
inProgressFilesGb.TabStop = false;
inProgressFilesGb.Text = "In progress files";
//
+ // inProgressSelectControl
+ //
+ inProgressSelectControl.Anchor = System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left | System.Windows.Forms.AnchorStyles.Right;
+ inProgressSelectControl.Location = new System.Drawing.Point(6, 65);
+ inProgressSelectControl.Name = "inProgressSelectControl";
+ inProgressSelectControl.Size = new System.Drawing.Size(830, 80);
+ inProgressSelectControl.TabIndex = 19;
+ //
// customFileNamingGb
//
customFileNamingGb.Anchor = System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left | System.Windows.Forms.AnchorStyles.Right;
@@ -775,6 +800,7 @@
// tab4AudioFileOptions
//
tab4AudioFileOptions.AutoScroll = true;
+ tab4AudioFileOptions.BackColor = System.Drawing.SystemColors.Window;
tab4AudioFileOptions.Controls.Add(request_xHE_AAC_Cbox);
tab4AudioFileOptions.Controls.Add(requestSpatialCbox);
tab4AudioFileOptions.Controls.Add(useWidevineCbox);
@@ -798,10 +824,9 @@
tab4AudioFileOptions.Location = new System.Drawing.Point(4, 24);
tab4AudioFileOptions.Name = "tab4AudioFileOptions";
tab4AudioFileOptions.Padding = new System.Windows.Forms.Padding(3);
- tab4AudioFileOptions.Size = new System.Drawing.Size(856, 453);
+ tab4AudioFileOptions.Size = new System.Drawing.Size(856, 457);
tab4AudioFileOptions.TabIndex = 3;
tab4AudioFileOptions.Text = "Audio File Options";
- tab4AudioFileOptions.UseVisualStyleBackColor = true;
//
// request_xHE_AAC_Cbox
//
@@ -1183,6 +1208,7 @@
//
label19.Anchor = System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left | System.Windows.Forms.AnchorStyles.Right;
label19.AutoSize = true;
+ label19.BackColor = System.Drawing.SystemColors.ControlLightLight;
label19.Location = new System.Drawing.Point(332, 47);
label19.Name = "label19";
label19.Size = new System.Drawing.Size(20, 15);
@@ -1193,6 +1219,7 @@
//
label18.Anchor = System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left | System.Windows.Forms.AnchorStyles.Right;
label18.AutoSize = true;
+ label18.BackColor = System.Drawing.SystemColors.ControlLightLight;
label18.Location = new System.Drawing.Point(291, 47);
label18.Name = "label18";
label18.Size = new System.Drawing.Size(20, 15);
@@ -1203,6 +1230,7 @@
//
label17.Anchor = System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left | System.Windows.Forms.AnchorStyles.Right;
label17.AutoSize = true;
+ label17.BackColor = System.Drawing.SystemColors.ControlLightLight;
label17.Location = new System.Drawing.Point(251, 47);
label17.Name = "label17";
label17.Size = new System.Drawing.Size(20, 15);
@@ -1213,6 +1241,7 @@
//
label16.Anchor = System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left | System.Windows.Forms.AnchorStyles.Right;
label16.AutoSize = true;
+ label16.BackColor = System.Drawing.SystemColors.ControlLightLight;
label16.Location = new System.Drawing.Point(212, 47);
label16.Name = "label16";
label16.Size = new System.Drawing.Size(20, 15);
@@ -1223,6 +1252,7 @@
//
label12.Anchor = System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left | System.Windows.Forms.AnchorStyles.Right;
label12.AutoSize = true;
+ label12.BackColor = System.Drawing.SystemColors.ControlLightLight;
label12.Location = new System.Drawing.Point(170, 47);
label12.Name = "label12";
label12.Size = new System.Drawing.Size(20, 15);
@@ -1233,6 +1263,7 @@
//
label15.Anchor = System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left | System.Windows.Forms.AnchorStyles.Right;
label15.AutoSize = true;
+ label15.BackColor = System.Drawing.SystemColors.ControlLightLight;
label15.Location = new System.Drawing.Point(130, 47);
label15.Name = "label15";
label15.Size = new System.Drawing.Size(20, 15);
@@ -1243,6 +1274,7 @@
//
label9.Anchor = System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left | System.Windows.Forms.AnchorStyles.Right;
label9.AutoSize = true;
+ label9.BackColor = System.Drawing.SystemColors.ControlLightLight;
label9.Location = new System.Drawing.Point(89, 47);
label9.Name = "label9";
label9.Size = new System.Drawing.Size(20, 15);
@@ -1253,6 +1285,7 @@
//
label8.Anchor = System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left | System.Windows.Forms.AnchorStyles.Right;
label8.AutoSize = true;
+ label8.BackColor = System.Drawing.SystemColors.ControlLightLight;
label8.Location = new System.Drawing.Point(371, 47);
label8.Name = "label8";
label8.Size = new System.Drawing.Size(20, 15);
@@ -1281,6 +1314,7 @@
//
label14.Anchor = System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left | System.Windows.Forms.AnchorStyles.Right;
label14.AutoSize = true;
+ label14.BackColor = System.Drawing.SystemColors.ControlLightLight;
label14.Location = new System.Drawing.Point(50, 47);
label14.Name = "label14";
label14.Size = new System.Drawing.Size(20, 15);
@@ -1291,6 +1325,7 @@
//
label2.Anchor = System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left | System.Windows.Forms.AnchorStyles.Right;
label2.AutoSize = true;
+ label2.BackColor = System.Drawing.SystemColors.ControlLightLight;
label2.Location = new System.Drawing.Point(10, 47);
label2.Name = "label2";
label2.Size = new System.Drawing.Size(20, 15);
@@ -1403,6 +1438,15 @@
createCueSheetCbox.UseVisualStyleBackColor = true;
createCueSheetCbox.CheckedChanged += allowLibationFixupCbox_CheckedChanged;
//
+ // themeLbl
+ //
+ themeLbl.AutoSize = true;
+ themeLbl.Location = new System.Drawing.Point(190, 393);
+ themeLbl.Name = "themeLbl";
+ themeLbl.Size = new System.Drawing.Size(296, 15);
+ themeLbl.TabIndex = 12;
+ themeLbl.Text = "You must restart Libation for this change to take effect.";
+ //
// SettingsDialog
//
AcceptButton = saveBtn;
@@ -1464,8 +1508,6 @@
public System.Windows.Forms.Button saveBtn;
public System.Windows.Forms.Button cancelBtn;
private System.Windows.Forms.CheckBox allowLibationFixupCbox;
- private DirectoryOrCustomSelectControl booksSelectControl;
- private DirectorySelectControl inProgressSelectControl;
private System.Windows.Forms.RadioButton convertLossyRb;
private System.Windows.Forms.RadioButton convertLosslessRb;
private System.Windows.Forms.Button logsBtn;
@@ -1568,5 +1610,10 @@
private System.Windows.Forms.CheckBox useWidevineCbox;
private System.Windows.Forms.CheckBox requestSpatialCbox;
private System.Windows.Forms.CheckBox request_xHE_AAC_Cbox;
+ private DirectoryOrCustomSelectControl inProgressSelectControl;
+ private DirectoryOrCustomSelectControl booksSelectControl;
+ private System.Windows.Forms.Label label22;
+ private System.Windows.Forms.ComboBox themeCb;
+ private System.Windows.Forms.Label themeLbl;
}
}
\ No newline at end of file
diff --git a/Source/LibationWinForms/Dialogs/SettingsDialog.Important.cs b/Source/LibationWinForms/Dialogs/SettingsDialog.Important.cs
index d0295e9c..22bb44fb 100644
--- a/Source/LibationWinForms/Dialogs/SettingsDialog.Important.cs
+++ b/Source/LibationWinForms/Dialogs/SettingsDialog.Important.cs
@@ -1,4 +1,6 @@
using Dinah.Core;
+using DocumentFormat.OpenXml.Drawing;
+using DocumentFormat.OpenXml.Office2013.Theme;
using FileManager;
using LibationFileManager;
using LibationUiBase;
@@ -19,6 +21,8 @@ namespace LibationWinForms.Dialogs
else
Go.To.Folder(Configuration.Instance.LibationFiles.Location.ShortPathName);
}
+ private Configuration.Theme themeVariant;
+ private Configuration.Theme initialThemeVariant;
private void Load_Important(Configuration config)
{
@@ -44,6 +48,10 @@ namespace LibationWinForms.Dialogs
creationTimeCb.SelectedItem = dateTimeSources.SingleOrDefault(v => v.Value == config.CreationTime) ?? dateTimeSources[0];
lastWriteTimeCb.SelectedItem = dateTimeSources.SingleOrDefault(v => v.Value == config.LastWriteTime) ?? dateTimeSources[0];
+ themeVariant = initialThemeVariant = config.ThemeVariant;
+ var themes = Enum.GetValues().Select(v => new EnumDisplay(v)).ToArray();
+ themeCb.Items.AddRange(themes);
+ themeCb.SelectedItem = themes.SingleOrDefault(v => v.Value == themeVariant) ?? themes[0];
booksSelectControl.SetSearchTitle("books location");
booksSelectControl.SetDirectoryItems(
@@ -110,6 +118,7 @@ namespace LibationWinForms.Dialogs
config.CreationTime = (creationTimeCb.SelectedItem as EnumDisplay)?.Value ?? Configuration.DateTimeSource.File;
config.LastWriteTime = (lastWriteTimeCb.SelectedItem as EnumDisplay)?.Value ?? Configuration.DateTimeSource.File;
+ config.ThemeVariant = (themeCb.SelectedItem as EnumDisplay)?.Value ?? Configuration.Theme.System;
return true;
}
@@ -123,5 +132,15 @@ namespace LibationWinForms.Dialogs
config.GridFontScaleFactor = linearRangeToScaleFactor(gridFontScaleFactorTbar.Value);
config.GridScaleFactor = linearRangeToScaleFactor(gridScaleFactorTbar.Value);
}
+
+ private void themeCb_SelectedIndexChanged(object? sender, EventArgs e)
+ {
+ var selected = themeCb.SelectedItem as EnumDisplay;
+ if (selected != null)
+ {
+ themeVariant = selected.Value;
+ themeLbl.Visible = themeVariant != initialThemeVariant;
+ }
+ }
}
}
diff --git a/Source/LibationWinForms/Form1.ScanNotification.cs b/Source/LibationWinForms/Form1.ScanNotification.cs
index e0e8226c..e7c82255 100644
--- a/Source/LibationWinForms/Form1.ScanNotification.cs
+++ b/Source/LibationWinForms/Form1.ScanNotification.cs
@@ -21,6 +21,7 @@ namespace LibationWinForms
scanLibraryOfAllAccountsToolStripMenuItem.Enabled = false;
scanLibraryOfSomeAccountsToolStripMenuItem.Enabled = false;
+ this.scanningToolStripMenuItem.Image = System.Windows.Forms.Application.IsDarkModeEnabled ? Properties.Resources.import_16x16_dark : Properties.Resources.import_16x16;
this.scanningToolStripMenuItem.Visible = true;
this.scanningToolStripMenuItem.Text
= (accountsLength == 1)
diff --git a/Source/LibationWinForms/Form1._NonUI.cs b/Source/LibationWinForms/Form1._NonUI.cs
index 314758eb..783a18ce 100644
--- a/Source/LibationWinForms/Form1._NonUI.cs
+++ b/Source/LibationWinForms/Form1._NonUI.cs
@@ -22,7 +22,7 @@ namespace LibationWinForms
PictureStorage.SetDefaultImage(PictureSize.Native, Properties.Resources.default_cover_500x500.ToBytes(format));
BaseUtil.SetLoadImageDelegate(WinFormsUtil.TryLoadImageOrDefault);
- BaseUtil.SetLoadResourceImageDelegate(Properties.Resources.ResourceManager.GetObject);
+ BaseUtil.SetLoadResourceImageDelegate(LoadResourceImage);
// wire-up event to automatically download after scan.
// winforms only. this should NOT be allowed in cli
@@ -36,6 +36,13 @@ namespace LibationWinForms
};
}
+ private static object LoadResourceImage(string resourceName)
+ {
+ if (Application.IsDarkModeEnabled)
+ resourceName += "_dark";
+ return Properties.Resources.ResourceManager.GetObject(resourceName);
+ }
+
private void AudibleApiStorage_LoadError(object sender, AccountSettingsLoadErrorEventArgs e)
{
try
diff --git a/Source/LibationWinForms/GridView/EditTagsDataGridViewImageButtonColumn.cs b/Source/LibationWinForms/GridView/EditTagsDataGridViewImageButtonColumn.cs
index 5387c08e..422de6de 100644
--- a/Source/LibationWinForms/GridView/EditTagsDataGridViewImageButtonColumn.cs
+++ b/Source/LibationWinForms/GridView/EditTagsDataGridViewImageButtonColumn.cs
@@ -23,7 +23,7 @@ namespace LibationWinForms.GridView
{
public EditTagsDataGridViewImageButtonCell() : base("Edit Tags button") { }
- private static Image ButtonImage { get; } = Properties.Resources.edit_25x25;
+ private static Image ButtonImage => Application.IsDarkModeEnabled ? Properties.Resources.edit_25x25_dark : Properties.Resources.edit_25x25;
protected override void Paint(Graphics graphics, Rectangle clipBounds, Rectangle cellBounds, int rowIndex, DataGridViewElementStates elementState, object value, object formattedValue, string errorText, DataGridViewCellStyle cellStyle, DataGridViewAdvancedBorderStyle advancedBorderStyle, DataGridViewPaintParts paintParts)
{
diff --git a/Source/LibationWinForms/GridView/LiberateDataGridViewImageButtonColumn.cs b/Source/LibationWinForms/GridView/LiberateDataGridViewImageButtonColumn.cs
index 13d3abd1..05b12a75 100644
--- a/Source/LibationWinForms/GridView/LiberateDataGridViewImageButtonColumn.cs
+++ b/Source/LibationWinForms/GridView/LiberateDataGridViewImageButtonColumn.cs
@@ -23,6 +23,8 @@ namespace LibationWinForms.GridView
private static readonly Brush DISABLED_GRAY = new SolidBrush(Color.FromArgb(0x60, Color.LightGray));
private static readonly Color HiddenForeColor = Color.LightGray;
private static readonly Color SERIES_BG_COLOR = Color.FromArgb(230, 255, 230);
+ private static readonly Color SERIES_BG_COLOR_DARK = Color.FromArgb(76, 82, 93);
+ private static Color SeriesBgColor => Application.IsDarkModeEnabled ? SERIES_BG_COLOR_DARK:SERIES_BG_COLOR;
protected override void Paint(Graphics graphics, Rectangle clipBounds, Rectangle cellBounds, int rowIndex, DataGridViewElementStates elementState, object? value, object? formattedValue, string? errorText, DataGridViewCellStyle cellStyle, DataGridViewAdvancedBorderStyle advancedBorderStyle, DataGridViewPaintParts paintParts)
{
@@ -32,7 +34,7 @@ namespace LibationWinForms.GridView
//Don't paint the button graphic
paintParts ^= DataGridViewPaintParts.ContentBackground | DataGridViewPaintParts.ContentForeground | DataGridViewPaintParts.SelectionBackground;
- row.DefaultCellStyle.BackColor = status.IsEpisode ? SERIES_BG_COLOR : grid.DefaultCellStyle.BackColor;
+ row.DefaultCellStyle.BackColor = status.IsEpisode ? SeriesBgColor : grid.DefaultCellStyle.BackColor;
row.DefaultCellStyle.ForeColor = status.Opacity == 1 ? grid.DefaultCellStyle.ForeColor : HiddenForeColor;
base.Paint(graphics, clipBounds, cellBounds, rowIndex, elementState, null, null, null, cellStyle, advancedBorderStyle, paintParts);
diff --git a/Source/LibationWinForms/GridView/ProductsGrid.cs b/Source/LibationWinForms/GridView/ProductsGrid.cs
index 2f8f1941..0d754e2a 100644
--- a/Source/LibationWinForms/GridView/ProductsGrid.cs
+++ b/Source/LibationWinForms/GridView/ProductsGrid.cs
@@ -53,6 +53,7 @@ namespace LibationWinForms.GridView
setGridScale(Configuration.Instance.GridScaleFactor);
Configuration.Instance.PropertyChanged += Configuration_ScaleChanged;
Configuration.Instance.PropertyChanged += Configuration_FontScaleChanged;
+ gridEntryDataGridView.EnableHeadersVisualStyles = !Application.IsDarkModeEnabled;
gridEntryDataGridView.Disposed += (_, _) =>
{
diff --git a/Source/LibationWinForms/ProcessQueue/ProcessBookControl.Designer.cs b/Source/LibationWinForms/ProcessQueue/ProcessBookControl.Designer.cs
index 3f1e9fa2..c198cf1b 100644
--- a/Source/LibationWinForms/ProcessQueue/ProcessBookControl.Designer.cs
+++ b/Source/LibationWinForms/ProcessQueue/ProcessBookControl.Designer.cs
@@ -29,184 +29,177 @@
private void InitializeComponent()
{
System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(ProcessBookControl));
- this.pictureBox1 = new System.Windows.Forms.PictureBox();
- this.progressBar1 = new System.Windows.Forms.ProgressBar();
- this.remainingTimeLbl = new System.Windows.Forms.Label();
- this.etaLbl = new System.Windows.Forms.Label();
- this.cancelBtn = new System.Windows.Forms.Button();
- this.statusLbl = new System.Windows.Forms.Label();
- this.bookInfoLbl = new System.Windows.Forms.Label();
- this.moveUpBtn = new System.Windows.Forms.Button();
- this.moveDownBtn = new System.Windows.Forms.Button();
- this.moveFirstBtn = new System.Windows.Forms.Button();
- this.moveLastBtn = new System.Windows.Forms.Button();
- ((System.ComponentModel.ISupportInitialize)(this.pictureBox1)).BeginInit();
- this.SuspendLayout();
+ pictureBox1 = new System.Windows.Forms.PictureBox();
+ progressBar1 = new System.Windows.Forms.ProgressBar();
+ remainingTimeLbl = new System.Windows.Forms.Label();
+ etaLbl = new System.Windows.Forms.Label();
+ cancelBtn = new System.Windows.Forms.Button();
+ statusLbl = new System.Windows.Forms.Label();
+ bookInfoLbl = new System.Windows.Forms.Label();
+ moveUpBtn = new System.Windows.Forms.Button();
+ moveDownBtn = new System.Windows.Forms.Button();
+ moveFirstBtn = new System.Windows.Forms.Button();
+ moveLastBtn = new System.Windows.Forms.Button();
+ ((System.ComponentModel.ISupportInitialize)pictureBox1).BeginInit();
+ SuspendLayout();
//
// pictureBox1
//
- this.pictureBox1.Location = new System.Drawing.Point(2, 2);
- this.pictureBox1.Name = "pictureBox1";
- this.pictureBox1.Size = new System.Drawing.Size(80, 80);
- this.pictureBox1.SizeMode = System.Windows.Forms.PictureBoxSizeMode.StretchImage;
- this.pictureBox1.TabIndex = 0;
- this.pictureBox1.TabStop = false;
+ pictureBox1.Location = new System.Drawing.Point(2, 2);
+ pictureBox1.Name = "pictureBox1";
+ pictureBox1.Size = new System.Drawing.Size(80, 80);
+ pictureBox1.SizeMode = System.Windows.Forms.PictureBoxSizeMode.StretchImage;
+ pictureBox1.TabIndex = 0;
+ pictureBox1.TabStop = false;
//
// progressBar1
//
- this.progressBar1.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left)
- | System.Windows.Forms.AnchorStyles.Right)));
- this.progressBar1.Location = new System.Drawing.Point(88, 65);
- this.progressBar1.MarqueeAnimationSpeed = 0;
- this.progressBar1.Name = "progressBar1";
- this.progressBar1.Size = new System.Drawing.Size(212, 17);
- this.progressBar1.TabIndex = 2;
+ progressBar1.Anchor = System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left | System.Windows.Forms.AnchorStyles.Right;
+ progressBar1.Location = new System.Drawing.Point(88, 65);
+ progressBar1.MarqueeAnimationSpeed = 0;
+ progressBar1.Name = "progressBar1";
+ progressBar1.Size = new System.Drawing.Size(212, 17);
+ progressBar1.TabIndex = 2;
//
// remainingTimeLbl
//
- this.remainingTimeLbl.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right)));
- this.remainingTimeLbl.AutoSize = true;
- this.remainingTimeLbl.Location = new System.Drawing.Point(338, 65);
- this.remainingTimeLbl.Name = "remainingTimeLbl";
- this.remainingTimeLbl.Size = new System.Drawing.Size(30, 15);
- this.remainingTimeLbl.TabIndex = 3;
- this.remainingTimeLbl.Text = "--:--";
- this.remainingTimeLbl.TextAlign = System.Drawing.ContentAlignment.TopRight;
+ remainingTimeLbl.Anchor = System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right;
+ remainingTimeLbl.AutoSize = true;
+ remainingTimeLbl.Location = new System.Drawing.Point(338, 65);
+ remainingTimeLbl.Name = "remainingTimeLbl";
+ remainingTimeLbl.Size = new System.Drawing.Size(30, 15);
+ remainingTimeLbl.TabIndex = 3;
+ remainingTimeLbl.Text = "--:--";
+ remainingTimeLbl.TextAlign = System.Drawing.ContentAlignment.TopRight;
//
// etaLbl
//
- this.etaLbl.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right)));
- this.etaLbl.AutoSize = true;
- this.etaLbl.Font = new System.Drawing.Font("Segoe UI", 8F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point);
- this.etaLbl.Location = new System.Drawing.Point(304, 66);
- this.etaLbl.Name = "etaLbl";
- this.etaLbl.Size = new System.Drawing.Size(28, 13);
- this.etaLbl.TabIndex = 3;
- this.etaLbl.Text = "ETA:";
- this.etaLbl.TextAlign = System.Drawing.ContentAlignment.TopRight;
+ etaLbl.Anchor = System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right;
+ etaLbl.AutoSize = true;
+ etaLbl.Font = new System.Drawing.Font("Segoe UI", 8F);
+ etaLbl.Location = new System.Drawing.Point(304, 66);
+ etaLbl.Name = "etaLbl";
+ etaLbl.Size = new System.Drawing.Size(27, 13);
+ etaLbl.TabIndex = 3;
+ etaLbl.Text = "ETA:";
+ etaLbl.TextAlign = System.Drawing.ContentAlignment.TopRight;
//
// cancelBtn
//
- this.cancelBtn.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right)));
- this.cancelBtn.BackColor = System.Drawing.Color.Transparent;
- this.cancelBtn.BackgroundImage = ((System.Drawing.Image)(resources.GetObject("cancelBtn.BackgroundImage")));
- this.cancelBtn.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Zoom;
- this.cancelBtn.FlatStyle = System.Windows.Forms.FlatStyle.Flat;
- this.cancelBtn.ForeColor = System.Drawing.SystemColors.Control;
- this.cancelBtn.Location = new System.Drawing.Point(348, 6);
- this.cancelBtn.Margin = new System.Windows.Forms.Padding(0);
- this.cancelBtn.Name = "cancelBtn";
- this.cancelBtn.Size = new System.Drawing.Size(20, 20);
- this.cancelBtn.TabIndex = 4;
- this.cancelBtn.UseVisualStyleBackColor = false;
+ cancelBtn.Anchor = System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right;
+ cancelBtn.BackColor = System.Drawing.Color.Transparent;
+ cancelBtn.BackgroundImage = (System.Drawing.Image)resources.GetObject("cancelBtn.BackgroundImage");
+ cancelBtn.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Zoom;
+ cancelBtn.FlatStyle = System.Windows.Forms.FlatStyle.Flat;
+ cancelBtn.ForeColor = System.Drawing.SystemColors.Control;
+ cancelBtn.Location = new System.Drawing.Point(348, 6);
+ cancelBtn.Margin = new System.Windows.Forms.Padding(0);
+ cancelBtn.Name = "cancelBtn";
+ cancelBtn.Size = new System.Drawing.Size(20, 20);
+ cancelBtn.TabIndex = 4;
+ cancelBtn.UseVisualStyleBackColor = false;
//
// statusLbl
//
- this.statusLbl.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left)));
- this.statusLbl.AutoSize = true;
- this.statusLbl.Font = new System.Drawing.Font("Segoe UI", 8F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point);
- this.statusLbl.Location = new System.Drawing.Point(89, 66);
- this.statusLbl.Name = "statusLbl";
- this.statusLbl.Size = new System.Drawing.Size(50, 13);
- this.statusLbl.TabIndex = 3;
- this.statusLbl.Text = "[STATUS]";
- this.statusLbl.TextAlign = System.Drawing.ContentAlignment.TopRight;
+ statusLbl.Anchor = System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left;
+ statusLbl.AutoSize = true;
+ statusLbl.Font = new System.Drawing.Font("Segoe UI", 8F);
+ statusLbl.Location = new System.Drawing.Point(89, 66);
+ statusLbl.Name = "statusLbl";
+ statusLbl.Size = new System.Drawing.Size(48, 13);
+ statusLbl.TabIndex = 3;
+ statusLbl.Text = "[STATUS]";
+ statusLbl.TextAlign = System.Drawing.ContentAlignment.TopRight;
//
// bookInfoLbl
//
- this.bookInfoLbl.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
- | System.Windows.Forms.AnchorStyles.Left)
- | System.Windows.Forms.AnchorStyles.Right)));
- this.bookInfoLbl.Font = new System.Drawing.Font("Segoe UI", 8F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point);
- this.bookInfoLbl.Location = new System.Drawing.Point(89, 6);
- this.bookInfoLbl.Name = "bookInfoLbl";
- this.bookInfoLbl.Size = new System.Drawing.Size(219, 56);
- this.bookInfoLbl.TabIndex = 1;
- this.bookInfoLbl.Text = "[multi-\r\nline\r\nbook\r\n info]";
+ bookInfoLbl.Anchor = System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left | System.Windows.Forms.AnchorStyles.Right;
+ bookInfoLbl.Font = new System.Drawing.Font("Segoe UI", 8F);
+ bookInfoLbl.Location = new System.Drawing.Point(89, 6);
+ bookInfoLbl.Name = "bookInfoLbl";
+ bookInfoLbl.Size = new System.Drawing.Size(219, 56);
+ bookInfoLbl.TabIndex = 1;
+ bookInfoLbl.Text = "[multi-\r\nline\r\nbook\r\n info]";
//
// moveUpBtn
//
- this.moveUpBtn.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
- | System.Windows.Forms.AnchorStyles.Right)));
- this.moveUpBtn.BackColor = System.Drawing.Color.Transparent;
- this.moveUpBtn.BackgroundImage = ((System.Drawing.Image)(resources.GetObject("moveUpBtn.BackgroundImage")));
- this.moveUpBtn.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Zoom;
- this.moveUpBtn.FlatStyle = System.Windows.Forms.FlatStyle.Flat;
- this.moveUpBtn.ForeColor = System.Drawing.SystemColors.Control;
- this.moveUpBtn.Location = new System.Drawing.Point(314, 24);
- this.moveUpBtn.Name = "moveUpBtn";
- this.moveUpBtn.Size = new System.Drawing.Size(30, 17);
- this.moveUpBtn.TabIndex = 5;
- this.moveUpBtn.UseVisualStyleBackColor = false;
+ moveUpBtn.Anchor = System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right;
+ moveUpBtn.BackColor = System.Drawing.Color.Transparent;
+ moveUpBtn.BackgroundImage = Properties.Resources.move_up;
+ moveUpBtn.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Zoom;
+ moveUpBtn.FlatStyle = System.Windows.Forms.FlatStyle.Flat;
+ moveUpBtn.ForeColor = System.Drawing.SystemColors.Control;
+ moveUpBtn.Location = new System.Drawing.Point(314, 24);
+ moveUpBtn.Name = "moveUpBtn";
+ moveUpBtn.Size = new System.Drawing.Size(30, 17);
+ moveUpBtn.TabIndex = 5;
+ moveUpBtn.UseVisualStyleBackColor = false;
//
// moveDownBtn
//
- this.moveDownBtn.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
- | System.Windows.Forms.AnchorStyles.Right)));
- this.moveDownBtn.BackColor = System.Drawing.Color.Transparent;
- this.moveDownBtn.BackgroundImage = ((System.Drawing.Image)(resources.GetObject("moveDownBtn.BackgroundImage")));
- this.moveDownBtn.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Zoom;
- this.moveDownBtn.FlatStyle = System.Windows.Forms.FlatStyle.Flat;
- this.moveDownBtn.ForeColor = System.Drawing.SystemColors.Control;
- this.moveDownBtn.Location = new System.Drawing.Point(314, 40);
- this.moveDownBtn.Name = "moveDownBtn";
- this.moveDownBtn.Size = new System.Drawing.Size(30, 17);
- this.moveDownBtn.TabIndex = 5;
- this.moveDownBtn.UseVisualStyleBackColor = false;
+ moveDownBtn.Anchor = System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right;
+ moveDownBtn.BackColor = System.Drawing.Color.Transparent;
+ moveDownBtn.BackgroundImage = Properties.Resources.move_down;
+ moveDownBtn.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Zoom;
+ moveDownBtn.FlatStyle = System.Windows.Forms.FlatStyle.Flat;
+ moveDownBtn.ForeColor = System.Drawing.SystemColors.Control;
+ moveDownBtn.Location = new System.Drawing.Point(314, 40);
+ moveDownBtn.Name = "moveDownBtn";
+ moveDownBtn.Size = new System.Drawing.Size(30, 17);
+ moveDownBtn.TabIndex = 5;
+ moveDownBtn.UseVisualStyleBackColor = false;
//
// moveFirstBtn
//
- this.moveFirstBtn.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
- | System.Windows.Forms.AnchorStyles.Right)));
- this.moveFirstBtn.BackColor = System.Drawing.Color.Transparent;
- this.moveFirstBtn.BackgroundImage = ((System.Drawing.Image)(resources.GetObject("moveFirstBtn.BackgroundImage")));
- this.moveFirstBtn.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Zoom;
- this.moveFirstBtn.FlatStyle = System.Windows.Forms.FlatStyle.Flat;
- this.moveFirstBtn.ForeColor = System.Drawing.SystemColors.Control;
- this.moveFirstBtn.Location = new System.Drawing.Point(314, 3);
- this.moveFirstBtn.Name = "moveFirstBtn";
- this.moveFirstBtn.Size = new System.Drawing.Size(30, 17);
- this.moveFirstBtn.TabIndex = 5;
- this.moveFirstBtn.UseVisualStyleBackColor = false;
+ moveFirstBtn.Anchor = System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right;
+ moveFirstBtn.BackColor = System.Drawing.Color.Transparent;
+ moveFirstBtn.BackgroundImage = Properties.Resources.move_first;
+ moveFirstBtn.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Zoom;
+ moveFirstBtn.FlatStyle = System.Windows.Forms.FlatStyle.Flat;
+ moveFirstBtn.ForeColor = System.Drawing.SystemColors.Control;
+ moveFirstBtn.Location = new System.Drawing.Point(314, 3);
+ moveFirstBtn.Name = "moveFirstBtn";
+ moveFirstBtn.Size = new System.Drawing.Size(30, 17);
+ moveFirstBtn.TabIndex = 5;
+ moveFirstBtn.UseVisualStyleBackColor = false;
//
// moveLastBtn
//
- this.moveLastBtn.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
- | System.Windows.Forms.AnchorStyles.Right)));
- this.moveLastBtn.BackColor = System.Drawing.Color.Transparent;
- this.moveLastBtn.BackgroundImage = ((System.Drawing.Image)(resources.GetObject("moveLastBtn.BackgroundImage")));
- this.moveLastBtn.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Zoom;
- this.moveLastBtn.FlatStyle = System.Windows.Forms.FlatStyle.Flat;
- this.moveLastBtn.ForeColor = System.Drawing.SystemColors.Control;
- this.moveLastBtn.Location = new System.Drawing.Point(314, 63);
- this.moveLastBtn.Name = "moveLastBtn";
- this.moveLastBtn.Size = new System.Drawing.Size(30, 17);
- this.moveLastBtn.TabIndex = 5;
- this.moveLastBtn.UseVisualStyleBackColor = false;
+ moveLastBtn.Anchor = System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right;
+ moveLastBtn.BackColor = System.Drawing.Color.Transparent;
+ moveLastBtn.BackgroundImage = Properties.Resources.move_last;
+ moveLastBtn.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Zoom;
+ moveLastBtn.FlatStyle = System.Windows.Forms.FlatStyle.Flat;
+ moveLastBtn.ForeColor = System.Drawing.SystemColors.Control;
+ moveLastBtn.Location = new System.Drawing.Point(314, 63);
+ moveLastBtn.Name = "moveLastBtn";
+ moveLastBtn.Size = new System.Drawing.Size(30, 17);
+ moveLastBtn.TabIndex = 5;
+ moveLastBtn.UseVisualStyleBackColor = false;
//
// ProcessBookControl
//
- this.AutoScaleDimensions = new System.Drawing.SizeF(96F, 96F);
- this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Dpi;
- this.BackColor = System.Drawing.SystemColors.ControlLight;
- this.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle;
- this.Controls.Add(this.moveLastBtn);
- this.Controls.Add(this.moveDownBtn);
- this.Controls.Add(this.moveFirstBtn);
- this.Controls.Add(this.moveUpBtn);
- this.Controls.Add(this.cancelBtn);
- this.Controls.Add(this.statusLbl);
- this.Controls.Add(this.etaLbl);
- this.Controls.Add(this.remainingTimeLbl);
- this.Controls.Add(this.progressBar1);
- this.Controls.Add(this.bookInfoLbl);
- this.Controls.Add(this.pictureBox1);
- this.Margin = new System.Windows.Forms.Padding(4, 2, 4, 2);
- this.Name = "ProcessBookControl";
- this.Size = new System.Drawing.Size(375, 86);
- ((System.ComponentModel.ISupportInitialize)(this.pictureBox1)).EndInit();
- this.ResumeLayout(false);
- this.PerformLayout();
+ AutoScaleDimensions = new System.Drawing.SizeF(96F, 96F);
+ AutoScaleMode = System.Windows.Forms.AutoScaleMode.Dpi;
+ BackColor = System.Drawing.SystemColors.ControlLight;
+ BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle;
+ Controls.Add(moveLastBtn);
+ Controls.Add(moveDownBtn);
+ Controls.Add(moveFirstBtn);
+ Controls.Add(moveUpBtn);
+ Controls.Add(cancelBtn);
+ Controls.Add(statusLbl);
+ Controls.Add(etaLbl);
+ Controls.Add(remainingTimeLbl);
+ Controls.Add(progressBar1);
+ Controls.Add(bookInfoLbl);
+ Controls.Add(pictureBox1);
+ Margin = new System.Windows.Forms.Padding(4, 2, 4, 2);
+ Name = "ProcessBookControl";
+ Size = new System.Drawing.Size(375, 86);
+ ((System.ComponentModel.ISupportInitialize)pictureBox1).EndInit();
+ ResumeLayout(false);
+ PerformLayout();
}
diff --git a/Source/LibationWinForms/ProcessQueue/ProcessBookControl.cs b/Source/LibationWinForms/ProcessQueue/ProcessBookControl.cs
index 35718afa..83524efc 100644
--- a/Source/LibationWinForms/ProcessQueue/ProcessBookControl.cs
+++ b/Source/LibationWinForms/ProcessQueue/ProcessBookControl.cs
@@ -12,10 +12,10 @@ namespace LibationWinForms.ProcessQueue
private readonly int ProgressBarDistanceFromEdge;
private object? m_OldContext;
- private static Color FailedColor { get; } = Color.LightCoral;
- private static Color CancelledColor { get; } = Color.Khaki;
+ private static Color FailedColor => Application.IsDarkModeEnabled ? Color.FromArgb(0x50, 0x27, 0x27) : Color.LightCoral;
+ private static Color CancelledColor => Application.IsDarkModeEnabled ? Color.FromArgb(0x4e, 0x4b, 0x15) : Color.Khaki;
private static Color QueuedColor { get; } = SystemColors.Control;
- private static Color SuccessColor { get; } = Color.PaleGreen;
+ private static Color SuccessColor => Application.IsDarkModeEnabled ? Color.FromArgb(0x1c, 0x3e, 0x20) : Color.PaleGreen;
public ProcessBookControl()
{
@@ -23,6 +23,10 @@ namespace LibationWinForms.ProcessQueue
remainingTimeLbl.Visible = false;
progressBar1.Visible = false;
etaLbl.Visible = false;
+ moveDownBtn.BackgroundImage = Application.IsDarkModeEnabled ? Properties.Resources.move_down_dark : Properties.Resources.move_down;
+ moveUpBtn.BackgroundImage = Application.IsDarkModeEnabled ? Properties.Resources.move_up_dark : Properties.Resources.move_up;
+ moveFirstBtn.BackgroundImage = Application.IsDarkModeEnabled ? Properties.Resources.move_first_dark : Properties.Resources.move_first;
+ moveLastBtn.BackgroundImage = Application.IsDarkModeEnabled ? Properties.Resources.move_last_dark : Properties.Resources.move_last;
CancelBtnDistanceFromEdge = Width - cancelBtn.Location.X;
ProgressBarDistanceFromEdge = Width - progressBar1.Location.X - progressBar1.Width;
diff --git a/Source/LibationWinForms/ProcessQueue/ProcessBookControl.resx b/Source/LibationWinForms/ProcessQueue/ProcessBookControl.resx
index 83921ba7..218b7826 100644
--- a/Source/LibationWinForms/ProcessQueue/ProcessBookControl.resx
+++ b/Source/LibationWinForms/ProcessQueue/ProcessBookControl.resx
@@ -1,4 +1,64 @@
-
+
+
+
@@ -76,662 +136,638 @@
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
- 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
- /x9W31o+WFcHNAAAAABJRU5ErkJggg==
+ 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
@@ -743,125 +779,15 @@
True
-
-
- iVBORw0KGgoAAAANSUhEUgAAAMgAAABNCAYAAADjJSv1AAAAIGNIUk0AAHolAACAgwAA+f8AAIDpAAB1
- MAAA6mAAADqYAAAXb5JfxUYAAAAJcEhZcwAACwwAAAsMAT9AIsgAAATRSURBVHhe7Zlfp6ZVHIaHISIi
- Oo2I6ANEDDFERx3FMERERN8gIoaIoc8QERERnQ5DREQfICKio4iOYs/vmndmrNlz79nPs55nrWf9uS8u
- xn0y27vf2/rd9pWzszNr7QXK0Fp7UobW2pMytNaelKG19qQMrbUnZWitPSlDa+1JGaI5jHfCZ07/NDWR
- PVAhmuq8GP4Y8uH/Fr4amorIHqgQTVXeDv8O+eAf+l/4UWgqIXugQjRVeDb8MkyLcd7vQ14XUxjZAxWi
- Kc5rIadUWoaL/CvklTEFkT1QIZqifBxyQqUlWOLt0AO+ELIHKkRTBE6lH8L0S79WD/hCyB6oEM3ucCJx
- KqVf9lw94Asge6BCNLvBScRplH7B99IDfkdkD1SIZhc4hZYO8Vz/DN8KzUZkD1SIZjOcQDlDPNcvQg/4
- DcgeqBBNNpw8nD7pl7eWv4Ye8JnIHqgQTRacOpw86Ze2trxaH4ZmJbIHKkSzipJDPFcP+JXIHqgQzWJq
- DPFcPeBXIHugQjSLqD3Ec/WAX4DsgQrRPJUjh3iuHvCXIHugQjQX0sIQz9UD/inIHqgQzRNwonCqpF+4
- Xv0ufCE0CbIHKkTzGJwmnCjpl6x3eQWvh+YBsgcqRPMITpIehniun4ce8IHsgQrR3D9BOEXSL9Oo/hJO
- P+BlD1SIk8Pp0esQz3X6AS97oEKcFE4NTo70izOb0w542QMV4oRwYnBqpF+WWZ1ywMseqBAn44Pw3zD9
- ktjJBrzsgQpxEmYa4rlOM+BlD1SIEzDjEM+V15VXdmhkD1SIA+Mhni+v7fPhkMgeqBAHxUN8u7y6b4bD
- IXugQhwQD/F9vRUONeBlD1SIA8FJ4CFexp/DYQa87IEKcRA4BTzEyzrMgJc9UCF2Dk8/J0D6i7Rl7X7A
- yx6oEDvmlZCnP/3l2Tp2PeBlD1SInfJ+6CF+vF0OeNkDFWJn8LR/G6a/JHusvOK85t0ge6BC7Aie9D/C
- 9Jdj25DXnFe9C2QPVIgdcDXkKf8/TH8ptj153Zsf8LIHKsTG8RDvT175pge87IEKsWE8xPuV177ZAS97
- oEJsEA/xcWxywMseqBAbw0N8PJsb8LIHKsRG8BAf32YGvOyBCrEBXg49xOewiQEve6BCPJj3Qg/xuXw4
- 4LkaDkH2QIV4EDy134TpB2fnkquB66E6sgcqxAO4Fv4eph+WnVOuB66IqsgeqBArwpP6Weghbs/LNVFt
- wMseqBArwVP6U5h+KNamclVUGfCyByrECtwMPcTtEqsMeNkDFWJBngu/DtMPwNolFh3wsgcqxEK8EXqI
- 2y0WG/CyByrEnfEQt3u7+4CXPVAh7oiHuC0l1wh/HtgF2QMV4k54iNvScpVwnWwe8LIHKsSNeIjb2nKl
- bBrwsgcqxA14iNuj5FrhaslC9kCFmAFP3Kehh7g9Wq6X1QNe9kCFuBKetrth+kNae6SrB7zsgQpxBTfC
- f8L0h7O2BVcNeNkDFeICGOJfhekPZG2LLhrwsgcqxEt4PfQQtz156YCXPVAhXgBP1Sehh7jtVQY8188T
- yB6oEAUvhXfC9D+ztke5fvhzxGPIHqgQz/Fu6CFuR5IriD9LPBrwsgcqxAd4iNvR5c8T9we87IEKMfAQ
- t7PIdXRT9kCF1lo8u3IPfFOKqVljg2IAAAAASUVORK5CYII=
-
-
True
-
-
- iVBORw0KGgoAAAANSUhEUgAAAMgAAABNCAYAAADjJSv1AAAAIGNIUk0AAHolAACAgwAA+f8AAIDpAAB1
- MAAA6mAAADqYAAAXb5JfxUYAAAAJcEhZcwAACwwAAAsMAT9AIsgAAATWSURBVHhe7Zlfh+1lGIaHiIiI
- 6DQiog8QERHRUacRERHRN4hNRET0GSIiIvoAERERnUZEdBTRUUzP1dLe7559zTtr1vr9/90XF3Uf7D17
- Zt3e5zYXl5eXMcZr9PDi4o3yr5L/iXHL/lI+bz1ADw88VX5Xtn9YjFvys/LRUnuAHt7jofJO+U/Z/sEx
- rtk/y9fLu1gP0MMHeaHkKWr/khjX6Lcl19F9WA/QQ+ex8vOy/ctiXItcQe+XXEUPYD1AD/tkwMe1+d8Q
- L6/FeoAe3gxP1Pdl+0XEuETvDvEe1gP08Dh4qj4oM+DjEuXKuW+I97AeoIe348Xy17L94mKcU3498cAQ
- 72E9QA9vDwP+i7L9ImOcWq4Zfi2hQ7yH9QA9PJ0M+DiXDHF+HXES1gP08Dwy4OPU8usHrpiTsR6gh+eT
- AR+nkGuFq+VsrAfo4XBkwMex5Eq51RDvYT1AD4clAz4OKVcJ18mth3gP6wF6OA5vlhnw8Ry5RrhKBsd6
- gB6Ox9NlBnw8xbOHeA/rAXo4Lg+XPJHtPz7G6xxsiPewHqCH08BT+VvZfjNibB10iPewHqCH08GT+WXZ
- flNiHGWI97AeoIfTkwEf/3e0Id7DeoAezkMGfOTXAaMN8R7WA/RwPjLg9ynXA1fEbFgP0MP5yYDfj1wN
- XA+zYj1AD5dBBvz25Vrgapgd6wF6uCzeKjPgtyXXweRDvIf1AD1cHs+UP5TtNzmuU66CWYZ4D+sBerhM
- eIo/LNtvdlyPXAFcA4vEeoAeLpuXygz4dcnrzxWwWKwH6OHyebzMgF+HixniPawH6OF6yIBfrosb4j2s
- B+jhusiAX56LHOI9rAfo4frIgF+Gix7iPawH6OF6yYCfz8UP8R7WA/Rw3WTATy+v9+KHeA/rAXq4Dd4u
- /y7bH2QcVl5rXu3VYz1AD7cDT/6PZftDjcPIK81rvQmsB+jhtuDp/6hsf7jxdHmVeZ03hfUAPdwmL5cZ
- 8OfJa7zaId7DeoAebpcM+NPlFV71EO9hPUAPt08G/PHy6vL6bhrrAXq4DzLgb/ar8oly81gP0MP9kAHv
- bnKI97AeoIf7IwP+npsd4j2sB+jhPuGU4KRoPyx7c9NDvIf1AD3cN++UexvwuxjiPawH6GHgxPipbD9E
- W3U3Q7yH9QA9DMCp8XHZfpi2JK8kr2UorAfoYWh5pdzagOd13N0Q72E9QA/DVbY04HkVdznEe1gP0MNw
- HWse8L+XvIZBsB6gh6HHGgf81+Xuh3gP6wF6GG5iLQOe1+7dMtyA9QA9DMfCycLp0n4olyKv3LNlOALr
- AXoYbgOnCydM++Gc20/KR8pwJNYD9DCcAqfM3AM+Q/xErAfoYTgVTpq5BnyG+BlYD9DDcA6cNlMO+Azx
- AbAeoIdhCKYY8BniA2E9QA/DUIw54DPEB8R6gB6GoRlywP9RZogPjPUAPQxjMMSA/6bMEB8B6wF6GMaC
- k4jTqP3QHyOvz3tlGAnrAXoYxoYTiVOpLcF1/lw+V4YRsR6gh2EKOJU4mdoyXPXTMkN8AqwH6GGYEk6n
- qwOe1+XVMkyE9QA9DFPDCcUpxTefV+XJMkyI9QA9DHPAKfXa4T/D1FgPUMMY40ENY4wHNYwxHtQwxnhQ
- wxjjQQ1jjAc1jDEe1DDGiJcX/wKcO4zm90rrbQAAAABJRU5ErkJggg==
-
-
True
-
-
- iVBORw0KGgoAAAANSUhEUgAAAMgAAABZCAYAAAB7Ymt4AAAAIGNIUk0AAHolAACAgwAA+f8AAIDpAAB1
- MAAA6mAAADqYAAAXb5JfxUYAAAAJcEhZcwAACwwAAAsMAT9AIsgAAAT8SURBVHhe7dlvp+ZVFMbxIWKI
- iJ4OEdELiIiIIeZpRERERO8ghoiI6DUMERHRC4iIiOgFRERPI3oUp3WNWWPfa52z53fv+/dv//b34kNn
- KR3n3Je9lnPr6urqWpZ7Rv8AjOTeSQ/KL0r6F4v/CBgFBQEqKAhQQUGACgoCVFAQoIKCABUUBKigIEAF
- BQEqKAhQQUGACgoCVFAQoIKCABUUBKigIEAFBQEqKAhQQUGACgoCVFAQoIKCABWTC0KWz23zpSl/QdF3
- 5nlDVspJD8ovSmTxvGx+M2UZbvKXedOQFXLSg/KLElk0H5l/TVmCKb4wTxuyUFIP4sCRRaJV6XtTfujP
- pVfnJUMWSOpBHDgye7QiaVUqP+yt9Pp8aMjMST2IA0dmi1YirUblB3wuHPAzJ/UgDhyZJVqFph7irf40
- dw2ZIakHceDIxdEK1HKIt/rccMBfmNSDOHCkOVp5tPqUH961/Go44C9I6kEcONIUrTpaecoP7dr0an1g
- SENSD+LAkbOy5CHeigO+IakHceDI5KxxiLfigD8zqQdx4MikrH2It+KAn5jUgzhwpJotD/FWHPATknoQ
- B47cmD0c4q044J+Q1IM4cCRFK4pWlfID16tvzXOGhKQexIEjJ9FqohWl/JD1Tq/gG4YUST2IA0ceRytJ
- D4d4q88MB/yjpB7EgSMPVxCtIuWH6ah+MRzwltSDOHCDR6tHr4d4Kw54S+pBHLhBo1VDK0f5wRnN0Ad8
- 6kEcuAGjFUOrRvlhGdWwB3zqQRy4wfK++ceUHxIMeMCnHsSBGyQjHeKthjrgUw/iwA2QEQ/xVnpd9coe
- PqkHceAOHA7xdnptnzWHTepBHLiDhkP8cnp1XzeHTOpBHLgDhkN8Xp+awx3wqQdx4A4UrQQc4sv42Rzq
- gE89iAN3kGgV4BBf1qEO+NSDOHCdR0+/VoDyF4llHeKATz2IA9dxXjR6+stfHtbR/QGfehAHrtO8ZzjE
- t9ftAZ96EAeus+hp/8aUvyRsS6+4XvOuknoQB66j6En/w5S/HOyDXnO96t0k9SAOXAd5yugp/8+UvxTs
- j173Lg741IM4cDsPh3h/9Mrv/oBPPYgDt+NwiPdLr/2uD/jUgzhwOwyH+HHs9oBPPYgDt7NwiB/PLg/4
- 1IM4cDsJh/jx7eqATz2IA7eDvGA4xMewmwM+9SAO3MZ513CIj8UPeG0NmyX1IA7cRtFT+7Upf3AYi7YG
- bQ+bJPUgDtwGec38bsofFsak7UFbxOpJPYgDt2L0pH5iOMQRaZtY9YBPPYgDt1L0lP5kyh8KUNJWsdoB
- n3oQB26FvGM4xDHFagd86kEcuAXzjPnKlD8AYIrFD/jUgzhwC+VVwyGOSyx6wKcexIGbORzimNsiB3zq
- QRy4GcMhjqVoG9GfB2ZL6kEcuJnCIY6laSvRdjLLAZ96EAfuwnCIY23aUi4+4FMP4sBdEA5xbEXbiraW
- 5qQexIFriJ64+4ZDHFvT9tJ0wKcexIE7M3rafjTlNwlsqemATz2IA3dG3jZ/m/KbA/bg7AM+9SAO3ITo
- EH9gym8I2KPJB3zqQRy4J+QVwyGOnkw64FMP4sDdED1VHxsOcfRKB7y2n2uTehAH7prcMT+Y8n8G9Ejb
- j/4ckZJ6EAcu5C3DIY4j0RakP0ucHPCpB3HgHoVDHEenP088PuBTD+LAWTjEMQptRw8P+NMeXN36HzdL
- jfkqyMbMAAAAAElFTkSuQmCC
-
-
True
-
-
- iVBORw0KGgoAAAANSUhEUgAAAMgAAABZCAYAAAB7Ymt4AAAAIGNIUk0AAHolAACAgwAA+f8AAIDpAAB1
- MAAA6mAAADqYAAAXb5JfxUYAAAAJcEhZcwAACwwAAAsMAT9AIsgAAAUASURBVHhe7Zntpq1lFIYXERER
- +wAiIjqAiIiIfQYRERHRGURERMQ+hoiIiA4gIiKivxER/YroV6zGncbezxxjrrHmmvP9eJ73vS6uH+uW
- vVdrz9szbuvq+vr6wP95w/zLVIC4ZX8xX4w9cHPwiGfM78z2D0Pckp+ZT5qpB24ODnnM/MD8x2z/YMSR
- /dN83XxI7IGbg+O8ZOopav8SxBH91tR1dEDsgZuDm3nK/Nxs/zLEUdQV9L6pqygRe+Dm4HYY8Dia/w1x
- 80ZiD9wcnIaeqO/N9ptA7NGHQ7wi9sDNwenoqfrQZMBjj+rKORjiFbEHbg7uzsvmr2b7zSGuqX49kYZ4
- ReyBm4Pz0ID/wmy/ScSl1TWjX0scHeIVsQduDi6DAY9rqSGuX0ecReyBm4PLYcDj0urXD7pizib2wM3B
- NDDgcQl1rehquZjYAzcH08KAx7nUlXKnIV4Re+DmYHoY8Dilukp0ndx5iFfEHrg5mI83TQY8XqKuEV0l
- kxN74OZgXp41GfB4jhcP8YrYAzcH8/O4qSey/Z9HvMnJhnhF7IGbg+XQU/mb2f4wEFsnHeIVsQduDpZF
- T+aXZvtDQZxliFfEHrg5WAcGPLqzDfGK2AM3B+vBgEf9OmC2IV4Re+DmYF0Y8PtU14OuiNWIPXBz0AcM
- +P2oq0HXw6rEHrg56AcG/PbVtaCrYXViD9wc9MdbJgN+W+o6WHyIV8QeuDnok+fMH8z2h4xjqqtglSFe
- EXvg5qBf9BR/ZLY/bBxHXQG6Brok9sDNQf+8YjLgx1Kvv66Abok9cHMwBk+bDPgx7GaIV8QeuDkYCwZ8
- v3Y3xCtiD9wcjAcDvj+7HOIVsQduDsaEAd+HXQ/xitgDNwdjw4Bfz+6HeEXsgZuD8WHAL69e7+6HeEXs
- gZuD7fC2+bfZ/kPitOq11qs9PLEHbg62hZ78H832HxWnUa+0XutNEHvg5mB76On/2Gz/cfF89Srrdd4U
- sQduDrbLqyYD/jL1Gg87xCtiD9wcbBsG/PnqFR56iFfEHrg52AcM+NPVq6vXd9PEHrg52A8M+Nv9yrxn
- bp7YAzcH+4IBf9xNDvGK2AM3B/uEAf/IzQ7xitgDNwf7RaeETor2w7I3Nz3EK2IP3BzAO+beBvwuhnhF
- 7IGbAxA6MX4y2w/RVt3NEK+IPXBzAI5OjU/M9sO0JfVK6rUEI/bAzQFEXjO3NuD1Ou5uiFfEHrg5gGNs
- acDrVdzlEK+IPXBzABUjD/jfTb2GcITYAzcHcBsjDvivzd0P8YrYAzcHcAqjDHi9du+acAuxB24O4C7o
- ZNHp0n4oe1Gv3PMmnEDsgZsDuCs6XXTCtB/Otf3UfMKEE4k9cHMA56JTZu0BzxA/k9gDNwdwCTpp1hrw
- DPELiD1wcwCXotNmyQHPEJ+A2AM3BzAVSwx4hvhExB64OYApmXPAM8QnJPbAzQHMwZQD/g+TIT4xsQdu
- DmAuphjw35gM8RmIPXBzAHOik0inUfuhP0W9Pu+ZMBOxB+7hF7AUOpF0KrUluMmfzRdMmJG2B62HX8CS
- 6FTSydSWIfrAZIgvQNuD1sMvrq7u679F3Jn32x60Hn5BQXCfUhDEQgqCWEhBEAspCGIhBUEspCCIhRQE
- sZCCIBZSEMRCCoJYSEEQCykIYiEFQSykIIiFFASxkIIgFlIQxEIKglhIQRALKQhiIQVBLKQgiIU3FOT6
- 6l8KOJAbKVKmPQAAAABJRU5ErkJggg==
-
-
True
diff --git a/Source/LibationWinForms/ProcessQueue/ProcessQueueControl.cs b/Source/LibationWinForms/ProcessQueue/ProcessQueueControl.cs
index 15bcc5d6..5a14901e 100644
--- a/Source/LibationWinForms/ProcessQueue/ProcessQueueControl.cs
+++ b/Source/LibationWinForms/ProcessQueue/ProcessQueueControl.cs
@@ -31,7 +31,11 @@ internal partial class ProcessQueueControl : UserControl
virtualFlowControl2.ButtonClicked += VirtualFlowControl2_ButtonClicked;
virtualFlowControl2.DataContext = ViewModel.Queue;
+ queueNumberLbl.Image = Application.IsDarkModeEnabled ? Properties.Resources.queue_queued_dark : Properties.Resources.queue_queued;
+ errorNumberLbl.Image = Application.IsDarkModeEnabled ? Properties.Resources.queue_error_dark : Properties.Resources.queue_error;
+ completedNumberLbl.Image = Application.IsDarkModeEnabled ? Properties.Resources.queue_completed_dark : Properties.Resources.queue_completed;
+ logDGV.EnableHeadersVisualStyles = !Application.IsDarkModeEnabled;
ViewModel.PropertyChanged += ProcessQueue_PropertyChanged;
ViewModel.LogEntries.CollectionChanged += LogEntries_CollectionChanged;
ProcessQueue_PropertyChanged(this, new PropertyChangedEventArgs(null));
diff --git a/Source/LibationWinForms/Program.cs b/Source/LibationWinForms/Program.cs
index 8862a63e..7cd67d18 100644
--- a/Source/LibationWinForms/Program.cs
+++ b/Source/LibationWinForms/Program.cs
@@ -46,10 +46,11 @@ namespace LibationWinForms
LibationUiBase.Forms.MessageBoxBase.ShowAsyncImpl = ShowMessageBox;
// do this as soon as possible (post-config)
- RunSetupIfNeededAsync(config).Wait();
+ RunSetupIfNeededAsync(config);
// most migrations go in here
LibationScaffolding.RunPostConfigMigrations(config);
+ SetThemeColor(config);
// migrations which require Forms or are long-running
RunWindowsOnlyMigrations(config);
@@ -117,7 +118,19 @@ namespace LibationWinForms
}
#endregion;
- private static async Task RunSetupIfNeededAsync(Configuration config)
+ private static void SetThemeColor(Configuration config)
+ {
+ var theme = config.ThemeVariant switch
+ {
+ Configuration.Theme.Light => SystemColorMode.Classic,
+ Configuration.Theme.Dark => SystemColorMode.Dark,
+ _ => SystemColorMode.System,
+ };
+
+ Application.SetColorMode(theme);
+ }
+
+ private static void RunSetupIfNeededAsync(Configuration config)
{
var setup = new LibationSetup(config.LibationFiles)
{
@@ -125,7 +138,7 @@ namespace LibationWinForms
SelectFolderPrompt = SelectInstallLocation
};
- if (!await setup.RunSetupIfNeededAsync())
+ if (!setup.RunSetupIfNeededAsync().GetAwaiter().GetResult())
{
MessageBox.Show("Initial set up cancelled.", "Cancelled", MessageBoxButtons.OK, MessageBoxIcon.Warning);
Application.Exit();
diff --git a/Source/LibationWinForms/Properties/Resources.Designer.cs b/Source/LibationWinForms/Properties/Resources.Designer.cs
index 197f945a..d0d9cb7f 100644
--- a/Source/LibationWinForms/Properties/Resources.Designer.cs
+++ b/Source/LibationWinForms/Properties/Resources.Designer.cs
@@ -19,7 +19,7 @@ namespace LibationWinForms.Properties {
// class via a tool like ResGen or Visual Studio.
// To add or remove a member, edit your .ResX file then rerun ResGen
// with the /str option, or rebuild your VS project.
- [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "17.0.0.0")]
+ [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "18.0.0.0")]
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
[global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
internal class Resources {
@@ -70,6 +70,16 @@ namespace LibationWinForms.Properties {
}
}
+ ///
+ /// Looks up a localized resource of type System.Drawing.Bitmap.
+ ///
+ internal static System.Drawing.Bitmap cheers_dark {
+ get {
+ object obj = ResourceManager.GetObject("cheers_dark", resourceCulture);
+ return ((System.Drawing.Bitmap)(obj));
+ }
+ }
+
///
/// Looks up a localized resource of type System.Drawing.Bitmap.
///
@@ -110,6 +120,16 @@ namespace LibationWinForms.Properties {
}
}
+ ///
+ /// Looks up a localized resource of type System.Drawing.Bitmap.
+ ///
+ internal static System.Drawing.Bitmap Dolby_Atmos_Vertical_80_dark {
+ get {
+ object obj = ResourceManager.GetObject("Dolby_Atmos_Vertical_80_dark", resourceCulture);
+ return ((System.Drawing.Bitmap)(obj));
+ }
+ }
+
///
/// Looks up a localized resource of type System.Drawing.Bitmap.
///
@@ -123,29 +143,9 @@ namespace LibationWinForms.Properties {
///
/// Looks up a localized resource of type System.Drawing.Bitmap.
///
- internal static System.Drawing.Bitmap edit_64x64 {
+ internal static System.Drawing.Bitmap edit_25x25_dark {
get {
- object obj = ResourceManager.GetObject("edit_64x64", resourceCulture);
- return ((System.Drawing.Bitmap)(obj));
- }
- }
-
- ///
- /// Looks up a localized resource of type System.Drawing.Bitmap.
- ///
- internal static System.Drawing.Bitmap edit_tags_25x25 {
- get {
- object obj = ResourceManager.GetObject("edit_tags_25x25", resourceCulture);
- return ((System.Drawing.Bitmap)(obj));
- }
- }
-
- ///
- /// Looks up a localized resource of type System.Drawing.Bitmap.
- ///
- internal static System.Drawing.Bitmap edit_tags_50x50 {
- get {
- object obj = ResourceManager.GetObject("edit_tags_50x50", resourceCulture);
+ object obj = ResourceManager.GetObject("edit_25x25_dark", resourceCulture);
return ((System.Drawing.Bitmap)(obj));
}
}
@@ -160,6 +160,16 @@ namespace LibationWinForms.Properties {
}
}
+ ///
+ /// Looks up a localized resource of type System.Drawing.Bitmap.
+ ///
+ internal static System.Drawing.Bitmap error_dark {
+ get {
+ object obj = ResourceManager.GetObject("error_dark", resourceCulture);
+ return ((System.Drawing.Bitmap)(obj));
+ }
+ }
+
///
/// Looks up a localized resource of type System.Drawing.Bitmap.
///
@@ -170,6 +180,16 @@ namespace LibationWinForms.Properties {
}
}
+ ///
+ /// Looks up a localized resource of type System.Drawing.Bitmap.
+ ///
+ internal static System.Drawing.Bitmap import_16x16_dark {
+ get {
+ object obj = ResourceManager.GetObject("import_16x16_dark", resourceCulture);
+ return ((System.Drawing.Bitmap)(obj));
+ }
+ }
+
///
/// Looks up a localized resource of type System.Drawing.Bitmap.
///
@@ -180,6 +200,16 @@ namespace LibationWinForms.Properties {
}
}
+ ///
+ /// Looks up a localized resource of type System.Drawing.Bitmap.
+ ///
+ internal static System.Drawing.Bitmap liberate_green_dark {
+ get {
+ object obj = ResourceManager.GetObject("liberate_green_dark", resourceCulture);
+ return ((System.Drawing.Bitmap)(obj));
+ }
+ }
+
///
/// Looks up a localized resource of type System.Drawing.Bitmap.
///
@@ -190,6 +220,16 @@ namespace LibationWinForms.Properties {
}
}
+ ///
+ /// Looks up a localized resource of type System.Drawing.Bitmap.
+ ///
+ internal static System.Drawing.Bitmap liberate_green_pdf_no_dark {
+ get {
+ object obj = ResourceManager.GetObject("liberate_green_pdf_no_dark", resourceCulture);
+ return ((System.Drawing.Bitmap)(obj));
+ }
+ }
+
///
/// Looks up a localized resource of type System.Drawing.Bitmap.
///
@@ -200,6 +240,16 @@ namespace LibationWinForms.Properties {
}
}
+ ///
+ /// Looks up a localized resource of type System.Drawing.Bitmap.
+ ///
+ internal static System.Drawing.Bitmap liberate_green_pdf_yes_dark {
+ get {
+ object obj = ResourceManager.GetObject("liberate_green_pdf_yes_dark", resourceCulture);
+ return ((System.Drawing.Bitmap)(obj));
+ }
+ }
+
///
/// Looks up a localized resource of type System.Drawing.Bitmap.
///
@@ -210,6 +260,16 @@ namespace LibationWinForms.Properties {
}
}
+ ///
+ /// Looks up a localized resource of type System.Drawing.Bitmap.
+ ///
+ internal static System.Drawing.Bitmap liberate_red_dark {
+ get {
+ object obj = ResourceManager.GetObject("liberate_red_dark", resourceCulture);
+ return ((System.Drawing.Bitmap)(obj));
+ }
+ }
+
///
/// Looks up a localized resource of type System.Drawing.Bitmap.
///
@@ -220,6 +280,16 @@ namespace LibationWinForms.Properties {
}
}
+ ///
+ /// Looks up a localized resource of type System.Drawing.Bitmap.
+ ///
+ internal static System.Drawing.Bitmap liberate_red_pdf_no_dark {
+ get {
+ object obj = ResourceManager.GetObject("liberate_red_pdf_no_dark", resourceCulture);
+ return ((System.Drawing.Bitmap)(obj));
+ }
+ }
+
///
/// Looks up a localized resource of type System.Drawing.Bitmap.
///
@@ -230,6 +300,16 @@ namespace LibationWinForms.Properties {
}
}
+ ///
+ /// Looks up a localized resource of type System.Drawing.Bitmap.
+ ///
+ internal static System.Drawing.Bitmap liberate_red_pdf_yes_dark {
+ get {
+ object obj = ResourceManager.GetObject("liberate_red_pdf_yes_dark", resourceCulture);
+ return ((System.Drawing.Bitmap)(obj));
+ }
+ }
+
///
/// Looks up a localized resource of type System.Drawing.Bitmap.
///
@@ -240,6 +320,16 @@ namespace LibationWinForms.Properties {
}
}
+ ///
+ /// Looks up a localized resource of type System.Drawing.Bitmap.
+ ///
+ internal static System.Drawing.Bitmap liberate_yellow_dark {
+ get {
+ object obj = ResourceManager.GetObject("liberate_yellow_dark", resourceCulture);
+ return ((System.Drawing.Bitmap)(obj));
+ }
+ }
+
///
/// Looks up a localized resource of type System.Drawing.Bitmap.
///
@@ -250,6 +340,16 @@ namespace LibationWinForms.Properties {
}
}
+ ///
+ /// Looks up a localized resource of type System.Drawing.Bitmap.
+ ///
+ internal static System.Drawing.Bitmap liberate_yellow_pdf_no_dark {
+ get {
+ object obj = ResourceManager.GetObject("liberate_yellow_pdf_no_dark", resourceCulture);
+ return ((System.Drawing.Bitmap)(obj));
+ }
+ }
+
///
/// Looks up a localized resource of type System.Drawing.Bitmap.
///
@@ -260,6 +360,16 @@ namespace LibationWinForms.Properties {
}
}
+ ///
+ /// Looks up a localized resource of type System.Drawing.Bitmap.
+ ///
+ internal static System.Drawing.Bitmap liberate_yellow_pdf_yes_dark {
+ get {
+ object obj = ResourceManager.GetObject("liberate_yellow_pdf_yes_dark", resourceCulture);
+ return ((System.Drawing.Bitmap)(obj));
+ }
+ }
+
///
/// Looks up a localized resource of type System.Drawing.Bitmap.
///
@@ -270,6 +380,96 @@ namespace LibationWinForms.Properties {
}
}
+ ///
+ /// Looks up a localized resource of type System.Drawing.Bitmap.
+ ///
+ internal static System.Drawing.Bitmap minus_dark {
+ get {
+ object obj = ResourceManager.GetObject("minus_dark", resourceCulture);
+ return ((System.Drawing.Bitmap)(obj));
+ }
+ }
+
+ ///
+ /// Looks up a localized resource of type System.Drawing.Bitmap.
+ ///
+ internal static System.Drawing.Bitmap move_down {
+ get {
+ object obj = ResourceManager.GetObject("move_down", resourceCulture);
+ return ((System.Drawing.Bitmap)(obj));
+ }
+ }
+
+ ///
+ /// Looks up a localized resource of type System.Drawing.Bitmap.
+ ///
+ internal static System.Drawing.Bitmap move_down_dark {
+ get {
+ object obj = ResourceManager.GetObject("move_down_dark", resourceCulture);
+ return ((System.Drawing.Bitmap)(obj));
+ }
+ }
+
+ ///
+ /// Looks up a localized resource of type System.Drawing.Bitmap.
+ ///
+ internal static System.Drawing.Bitmap move_first {
+ get {
+ object obj = ResourceManager.GetObject("move_first", resourceCulture);
+ return ((System.Drawing.Bitmap)(obj));
+ }
+ }
+
+ ///
+ /// Looks up a localized resource of type System.Drawing.Bitmap.
+ ///
+ internal static System.Drawing.Bitmap move_first_dark {
+ get {
+ object obj = ResourceManager.GetObject("move_first_dark", resourceCulture);
+ return ((System.Drawing.Bitmap)(obj));
+ }
+ }
+
+ ///
+ /// Looks up a localized resource of type System.Drawing.Bitmap.
+ ///
+ internal static System.Drawing.Bitmap move_last {
+ get {
+ object obj = ResourceManager.GetObject("move_last", resourceCulture);
+ return ((System.Drawing.Bitmap)(obj));
+ }
+ }
+
+ ///
+ /// Looks up a localized resource of type System.Drawing.Bitmap.
+ ///
+ internal static System.Drawing.Bitmap move_last_dark {
+ get {
+ object obj = ResourceManager.GetObject("move_last_dark", resourceCulture);
+ return ((System.Drawing.Bitmap)(obj));
+ }
+ }
+
+ ///
+ /// Looks up a localized resource of type System.Drawing.Bitmap.
+ ///
+ internal static System.Drawing.Bitmap move_up {
+ get {
+ object obj = ResourceManager.GetObject("move_up", resourceCulture);
+ return ((System.Drawing.Bitmap)(obj));
+ }
+ }
+
+ ///
+ /// Looks up a localized resource of type System.Drawing.Bitmap.
+ ///
+ internal static System.Drawing.Bitmap move_up_dark {
+ get {
+ object obj = ResourceManager.GetObject("move_up_dark", resourceCulture);
+ return ((System.Drawing.Bitmap)(obj));
+ }
+ }
+
///
/// Looks up a localized resource of type System.Drawing.Bitmap.
///
@@ -279,5 +479,75 @@ namespace LibationWinForms.Properties {
return ((System.Drawing.Bitmap)(obj));
}
}
+
+ ///
+ /// Looks up a localized resource of type System.Drawing.Bitmap.
+ ///
+ internal static System.Drawing.Bitmap plus_dark {
+ get {
+ object obj = ResourceManager.GetObject("plus_dark", resourceCulture);
+ return ((System.Drawing.Bitmap)(obj));
+ }
+ }
+
+ ///
+ /// Looks up a localized resource of type System.Drawing.Bitmap.
+ ///
+ internal static System.Drawing.Bitmap queue_completed {
+ get {
+ object obj = ResourceManager.GetObject("queue_completed", resourceCulture);
+ return ((System.Drawing.Bitmap)(obj));
+ }
+ }
+
+ ///
+ /// Looks up a localized resource of type System.Drawing.Bitmap.
+ ///
+ internal static System.Drawing.Bitmap queue_completed_dark {
+ get {
+ object obj = ResourceManager.GetObject("queue_completed_dark", resourceCulture);
+ return ((System.Drawing.Bitmap)(obj));
+ }
+ }
+
+ ///
+ /// Looks up a localized resource of type System.Drawing.Bitmap.
+ ///
+ internal static System.Drawing.Bitmap queue_error {
+ get {
+ object obj = ResourceManager.GetObject("queue_error", resourceCulture);
+ return ((System.Drawing.Bitmap)(obj));
+ }
+ }
+
+ ///
+ /// Looks up a localized resource of type System.Drawing.Bitmap.
+ ///
+ internal static System.Drawing.Bitmap queue_error_dark {
+ get {
+ object obj = ResourceManager.GetObject("queue_error_dark", resourceCulture);
+ return ((System.Drawing.Bitmap)(obj));
+ }
+ }
+
+ ///
+ /// Looks up a localized resource of type System.Drawing.Bitmap.
+ ///
+ internal static System.Drawing.Bitmap queue_queued {
+ get {
+ object obj = ResourceManager.GetObject("queue_queued", resourceCulture);
+ return ((System.Drawing.Bitmap)(obj));
+ }
+ }
+
+ ///
+ /// Looks up a localized resource of type System.Drawing.Bitmap.
+ ///
+ internal static System.Drawing.Bitmap queue_queued_dark {
+ get {
+ object obj = ResourceManager.GetObject("queue_queued_dark", resourceCulture);
+ return ((System.Drawing.Bitmap)(obj));
+ }
+ }
}
}
diff --git a/Source/LibationWinForms/Properties/Resources.resx b/Source/LibationWinForms/Properties/Resources.resx
index 1c7458d0..98cf3e0e 100644
--- a/Source/LibationWinForms/Properties/Resources.resx
+++ b/Source/LibationWinForms/Properties/Resources.resx
@@ -130,8 +130,8 @@
..\Resources\liberate_yellow.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
-
- ..\Resources\edit_64x64.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
+
+ ..\Resources\edit_25x25.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
..\Resources\img-coverart-prod-unavailable_300x300.jpg;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
@@ -142,15 +142,9 @@
..\Resources\liberate_red.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
-
- ..\Resources\edit-tags-50x50.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
-
..\Resources\liberate_green_pdf_yes.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
-
- ..\Resources\edit_25x25.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
-
..\Resources\plus.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
@@ -178,10 +172,97 @@
..\Resources\liberate_yellow_pdf_no.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
-
- ..\Resources\edit-tags-25x25.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
-
..\Resources\Dolby_Atmos_Vertical_80.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
+
+ ..\Resources\liberate_green_dark.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
+
+
+ ..\Resources\liberate_green_pdf_no_dark.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
+
+
+ ..\Resources\liberate_green_pdf_yes_dark.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
+
+
+ ..\Resources\liberate_red_dark.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
+
+
+ ..\Resources\liberate_red_pdf_no_dark.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
+
+
+ ..\Resources\liberate_red_pdf_yes_dark.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
+
+
+ ..\Resources\plus_dark.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
+
+
+ ..\Resources\minus_dark.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
+
+
+ ..\Resources\liberate_yellow_pdf_yes_dark.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
+
+
+ ..\Resources\liberate_yellow_pdf_no_dark.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
+
+
+ ..\Resources\liberate_yellow_dark.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
+
+
+ ..\Resources\Dolby_Atmos_Vertical_80_dark.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
+
+
+ ..\Resources\cheers_dark.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
+
+
+ ..\Resources\edit_25x25_dark.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
+
+
+ ..\Resources\error_dark.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
+
+
+ ..\Resources\import_16x16_dark.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
+
+
+ ..\Resources\move_first.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
+
+
+ ..\Resources\move_first_dark.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
+
+
+ ..\Resources\move_up.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
+
+
+ ..\Resources\move_up_dark.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
+
+
+ ..\Resources\move_down.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
+
+
+ ..\Resources\move_down_dark.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
+
+
+ ..\Resources\move_last.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
+
+
+ ..\Resources\move_last_dark.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
+
+
+ ..\Resources\queue_completed.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
+
+
+ ..\Resources\queue_completed_dark.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
+
+
+ ..\Resources\queue_error.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
+
+
+ ..\Resources\queue_error_dark.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
+
+
+ ..\Resources\queue_queued.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
+
+
+ ..\Resources\queue_queued_dark.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
+
\ No newline at end of file
diff --git a/Source/LibationWinForms/Resources/Dolby_Atmos_Vertical_80_dark.png b/Source/LibationWinForms/Resources/Dolby_Atmos_Vertical_80_dark.png
new file mode 100644
index 00000000..de176eee
Binary files /dev/null and b/Source/LibationWinForms/Resources/Dolby_Atmos_Vertical_80_dark.png differ
diff --git a/Source/LibationWinForms/Resources/cheers_dark.png b/Source/LibationWinForms/Resources/cheers_dark.png
new file mode 100644
index 00000000..d380da2c
Binary files /dev/null and b/Source/LibationWinForms/Resources/cheers_dark.png differ
diff --git a/Source/LibationWinForms/Resources/edit-tags-25x25.png b/Source/LibationWinForms/Resources/edit-tags-25x25.png
deleted file mode 100644
index 82b24209..00000000
Binary files a/Source/LibationWinForms/Resources/edit-tags-25x25.png and /dev/null differ
diff --git a/Source/LibationWinForms/Resources/edit-tags-50x50.png b/Source/LibationWinForms/Resources/edit-tags-50x50.png
deleted file mode 100644
index 7b0043ac..00000000
Binary files a/Source/LibationWinForms/Resources/edit-tags-50x50.png and /dev/null differ
diff --git a/Source/LibationWinForms/Resources/edit_25x25.png b/Source/LibationWinForms/Resources/edit_25x25.png
index 12e70d0f..2f287651 100644
Binary files a/Source/LibationWinForms/Resources/edit_25x25.png and b/Source/LibationWinForms/Resources/edit_25x25.png differ
diff --git a/Source/LibationWinForms/Resources/edit_25x25_dark.png b/Source/LibationWinForms/Resources/edit_25x25_dark.png
new file mode 100644
index 00000000..204f3f99
Binary files /dev/null and b/Source/LibationWinForms/Resources/edit_25x25_dark.png differ
diff --git a/Source/LibationWinForms/Resources/error.png b/Source/LibationWinForms/Resources/error.png
index 700ce41e..2b08236c 100644
Binary files a/Source/LibationWinForms/Resources/error.png and b/Source/LibationWinForms/Resources/error.png differ
diff --git a/Source/LibationWinForms/Resources/error_dark.png b/Source/LibationWinForms/Resources/error_dark.png
new file mode 100644
index 00000000..ce6eeb5b
Binary files /dev/null and b/Source/LibationWinForms/Resources/error_dark.png differ
diff --git a/Source/LibationWinForms/Resources/import_16x16_dark.png b/Source/LibationWinForms/Resources/import_16x16_dark.png
new file mode 100644
index 00000000..5804efcd
Binary files /dev/null and b/Source/LibationWinForms/Resources/import_16x16_dark.png differ
diff --git a/Source/LibationWinForms/Resources/liberate_green.png b/Source/LibationWinForms/Resources/liberate_green.png
index 86171e0c..e105af6b 100644
Binary files a/Source/LibationWinForms/Resources/liberate_green.png and b/Source/LibationWinForms/Resources/liberate_green.png differ
diff --git a/Source/LibationWinForms/Resources/liberate_green_dark.png b/Source/LibationWinForms/Resources/liberate_green_dark.png
new file mode 100644
index 00000000..74ead89c
Binary files /dev/null and b/Source/LibationWinForms/Resources/liberate_green_dark.png differ
diff --git a/Source/LibationWinForms/Resources/liberate_green_pdf_no.png b/Source/LibationWinForms/Resources/liberate_green_pdf_no.png
index a128c088..3819ea15 100644
Binary files a/Source/LibationWinForms/Resources/liberate_green_pdf_no.png and b/Source/LibationWinForms/Resources/liberate_green_pdf_no.png differ
diff --git a/Source/LibationWinForms/Resources/liberate_green_pdf_no_dark.png b/Source/LibationWinForms/Resources/liberate_green_pdf_no_dark.png
new file mode 100644
index 00000000..f3480a81
Binary files /dev/null and b/Source/LibationWinForms/Resources/liberate_green_pdf_no_dark.png differ
diff --git a/Source/LibationWinForms/Resources/liberate_green_pdf_yes.png b/Source/LibationWinForms/Resources/liberate_green_pdf_yes.png
index baac0151..9dc4cdc4 100644
Binary files a/Source/LibationWinForms/Resources/liberate_green_pdf_yes.png and b/Source/LibationWinForms/Resources/liberate_green_pdf_yes.png differ
diff --git a/Source/LibationWinForms/Resources/liberate_green_pdf_yes_dark.png b/Source/LibationWinForms/Resources/liberate_green_pdf_yes_dark.png
new file mode 100644
index 00000000..60793e2f
Binary files /dev/null and b/Source/LibationWinForms/Resources/liberate_green_pdf_yes_dark.png differ
diff --git a/Source/LibationWinForms/Resources/liberate_red.png b/Source/LibationWinForms/Resources/liberate_red.png
index 8e4b34e4..6d7a4bc7 100644
Binary files a/Source/LibationWinForms/Resources/liberate_red.png and b/Source/LibationWinForms/Resources/liberate_red.png differ
diff --git a/Source/LibationWinForms/Resources/liberate_red_dark.png b/Source/LibationWinForms/Resources/liberate_red_dark.png
new file mode 100644
index 00000000..1805d906
Binary files /dev/null and b/Source/LibationWinForms/Resources/liberate_red_dark.png differ
diff --git a/Source/LibationWinForms/Resources/liberate_red_pdf_no.png b/Source/LibationWinForms/Resources/liberate_red_pdf_no.png
index 6506603c..a7c83d7d 100644
Binary files a/Source/LibationWinForms/Resources/liberate_red_pdf_no.png and b/Source/LibationWinForms/Resources/liberate_red_pdf_no.png differ
diff --git a/Source/LibationWinForms/Resources/liberate_red_pdf_no_dark.png b/Source/LibationWinForms/Resources/liberate_red_pdf_no_dark.png
new file mode 100644
index 00000000..818b5cb3
Binary files /dev/null and b/Source/LibationWinForms/Resources/liberate_red_pdf_no_dark.png differ
diff --git a/Source/LibationWinForms/Resources/liberate_red_pdf_yes.png b/Source/LibationWinForms/Resources/liberate_red_pdf_yes.png
index 0d5b5eb6..b82081e7 100644
Binary files a/Source/LibationWinForms/Resources/liberate_red_pdf_yes.png and b/Source/LibationWinForms/Resources/liberate_red_pdf_yes.png differ
diff --git a/Source/LibationWinForms/Resources/liberate_red_pdf_yes_dark.png b/Source/LibationWinForms/Resources/liberate_red_pdf_yes_dark.png
new file mode 100644
index 00000000..26502f04
Binary files /dev/null and b/Source/LibationWinForms/Resources/liberate_red_pdf_yes_dark.png differ
diff --git a/Source/LibationWinForms/Resources/liberate_yellow.png b/Source/LibationWinForms/Resources/liberate_yellow.png
index 8b3e8aab..d2548401 100644
Binary files a/Source/LibationWinForms/Resources/liberate_yellow.png and b/Source/LibationWinForms/Resources/liberate_yellow.png differ
diff --git a/Source/LibationWinForms/Resources/liberate_yellow_dark.png b/Source/LibationWinForms/Resources/liberate_yellow_dark.png
new file mode 100644
index 00000000..6ccabbbd
Binary files /dev/null and b/Source/LibationWinForms/Resources/liberate_yellow_dark.png differ
diff --git a/Source/LibationWinForms/Resources/liberate_yellow_pdf_no.png b/Source/LibationWinForms/Resources/liberate_yellow_pdf_no.png
index 2bddcffd..7c005335 100644
Binary files a/Source/LibationWinForms/Resources/liberate_yellow_pdf_no.png and b/Source/LibationWinForms/Resources/liberate_yellow_pdf_no.png differ
diff --git a/Source/LibationWinForms/Resources/liberate_yellow_pdf_no_dark.png b/Source/LibationWinForms/Resources/liberate_yellow_pdf_no_dark.png
new file mode 100644
index 00000000..23c29b61
Binary files /dev/null and b/Source/LibationWinForms/Resources/liberate_yellow_pdf_no_dark.png differ
diff --git a/Source/LibationWinForms/Resources/liberate_yellow_pdf_yes.png b/Source/LibationWinForms/Resources/liberate_yellow_pdf_yes.png
index b51a28ad..212a50ea 100644
Binary files a/Source/LibationWinForms/Resources/liberate_yellow_pdf_yes.png and b/Source/LibationWinForms/Resources/liberate_yellow_pdf_yes.png differ
diff --git a/Source/LibationWinForms/Resources/liberate_yellow_pdf_yes_dark.png b/Source/LibationWinForms/Resources/liberate_yellow_pdf_yes_dark.png
new file mode 100644
index 00000000..69345bbe
Binary files /dev/null and b/Source/LibationWinForms/Resources/liberate_yellow_pdf_yes_dark.png differ
diff --git a/Source/LibationWinForms/Resources/minus.png b/Source/LibationWinForms/Resources/minus.png
index 8aee13b4..29d11a33 100644
Binary files a/Source/LibationWinForms/Resources/minus.png and b/Source/LibationWinForms/Resources/minus.png differ
diff --git a/Source/LibationWinForms/Resources/minus_dark.png b/Source/LibationWinForms/Resources/minus_dark.png
new file mode 100644
index 00000000..485899cb
Binary files /dev/null and b/Source/LibationWinForms/Resources/minus_dark.png differ
diff --git a/Source/LibationWinForms/Resources/move_down.png b/Source/LibationWinForms/Resources/move_down.png
new file mode 100644
index 00000000..40760aff
Binary files /dev/null and b/Source/LibationWinForms/Resources/move_down.png differ
diff --git a/Source/LibationWinForms/Resources/move_down_dark.png b/Source/LibationWinForms/Resources/move_down_dark.png
new file mode 100644
index 00000000..838c2515
Binary files /dev/null and b/Source/LibationWinForms/Resources/move_down_dark.png differ
diff --git a/Source/LibationWinForms/Resources/move_first.png b/Source/LibationWinForms/Resources/move_first.png
new file mode 100644
index 00000000..0f95e8d6
Binary files /dev/null and b/Source/LibationWinForms/Resources/move_first.png differ
diff --git a/Source/LibationWinForms/Resources/move_first_dark.png b/Source/LibationWinForms/Resources/move_first_dark.png
new file mode 100644
index 00000000..823404da
Binary files /dev/null and b/Source/LibationWinForms/Resources/move_first_dark.png differ
diff --git a/Source/LibationWinForms/Resources/move_last.png b/Source/LibationWinForms/Resources/move_last.png
new file mode 100644
index 00000000..f8a5628d
Binary files /dev/null and b/Source/LibationWinForms/Resources/move_last.png differ
diff --git a/Source/LibationWinForms/Resources/move_last_dark.png b/Source/LibationWinForms/Resources/move_last_dark.png
new file mode 100644
index 00000000..78f67a23
Binary files /dev/null and b/Source/LibationWinForms/Resources/move_last_dark.png differ
diff --git a/Source/LibationWinForms/Resources/move_up.png b/Source/LibationWinForms/Resources/move_up.png
new file mode 100644
index 00000000..613c8747
Binary files /dev/null and b/Source/LibationWinForms/Resources/move_up.png differ
diff --git a/Source/LibationWinForms/Resources/move_up_dark.png b/Source/LibationWinForms/Resources/move_up_dark.png
new file mode 100644
index 00000000..d9469e2d
Binary files /dev/null and b/Source/LibationWinForms/Resources/move_up_dark.png differ
diff --git a/Source/LibationWinForms/Resources/plus.png b/Source/LibationWinForms/Resources/plus.png
index 41b056db..54edd0a9 100644
Binary files a/Source/LibationWinForms/Resources/plus.png and b/Source/LibationWinForms/Resources/plus.png differ
diff --git a/Source/LibationWinForms/Resources/plus_dark.png b/Source/LibationWinForms/Resources/plus_dark.png
new file mode 100644
index 00000000..ba07ebc1
Binary files /dev/null and b/Source/LibationWinForms/Resources/plus_dark.png differ
diff --git a/Source/LibationWinForms/Resources/queue_completed.png b/Source/LibationWinForms/Resources/queue_completed.png
new file mode 100644
index 00000000..9bb2a99d
Binary files /dev/null and b/Source/LibationWinForms/Resources/queue_completed.png differ
diff --git a/Source/LibationWinForms/Resources/queue_completed_dark.png b/Source/LibationWinForms/Resources/queue_completed_dark.png
new file mode 100644
index 00000000..4e8b0360
Binary files /dev/null and b/Source/LibationWinForms/Resources/queue_completed_dark.png differ
diff --git a/Source/LibationWinForms/Resources/queue_error.png b/Source/LibationWinForms/Resources/queue_error.png
new file mode 100644
index 00000000..30b00ba2
Binary files /dev/null and b/Source/LibationWinForms/Resources/queue_error.png differ
diff --git a/Source/LibationWinForms/Resources/queue_error_dark.png b/Source/LibationWinForms/Resources/queue_error_dark.png
new file mode 100644
index 00000000..b89cf826
Binary files /dev/null and b/Source/LibationWinForms/Resources/queue_error_dark.png differ
diff --git a/Source/LibationWinForms/Resources/queue_queued.png b/Source/LibationWinForms/Resources/queue_queued.png
new file mode 100644
index 00000000..2e25cb9f
Binary files /dev/null and b/Source/LibationWinForms/Resources/queue_queued.png differ
diff --git a/Source/LibationWinForms/Resources/queue_queued_dark.png b/Source/LibationWinForms/Resources/queue_queued_dark.png
new file mode 100644
index 00000000..8f059bfc
Binary files /dev/null and b/Source/LibationWinForms/Resources/queue_queued_dark.png differ
diff --git a/Source/LibationWinForms/SeriesView/SeriesViewDialog.cs b/Source/LibationWinForms/SeriesView/SeriesViewDialog.cs
index aac9a704..372420f4 100644
--- a/Source/LibationWinForms/SeriesView/SeriesViewDialog.cs
+++ b/Source/LibationWinForms/SeriesView/SeriesViewDialog.cs
@@ -44,6 +44,7 @@ namespace LibationWinForms.SeriesView
dgv.CellContentClick += Dgv_CellContentClick;
dgv.DataSource = new SeriesEntryBindingList(seriesEntries[series]);
dgv.BindingContextChanged += (_, _) => dgv.Sort(dgv.Columns["Order"], ListSortDirection.Ascending);
+ dgv.EnableHeadersVisualStyles = !Application.IsDarkModeEnabled;
var tab = new TabPage { Text = series.Title };
tab.Controls.Add(dgv);
@@ -171,6 +172,8 @@ namespace LibationWinForms.SeriesView
TrackVisitedState = true,
SortMode = DataGridViewColumnSortMode.Automatic,
Width = 200,
+ LinkColor = ThemeExtensions.LinkColor,
+ VisitedLinkColor = ThemeExtensions.VisitedLinkColor,
});
dgv.CellToolTipTextNeeded += Dgv_CellToolTipTextNeeded;
diff --git a/Source/LibationWinForms/ThemeExtensions.cs b/Source/LibationWinForms/ThemeExtensions.cs
new file mode 100644
index 00000000..8b1e7b0d
--- /dev/null
+++ b/Source/LibationWinForms/ThemeExtensions.cs
@@ -0,0 +1,22 @@
+using System.Drawing;
+using System.Windows.Forms;
+
+namespace LibationWinForms;
+
+internal static class ThemeExtensions
+{
+ private static readonly Color LinkLabelNew = Color.FromKnownColor(KnownColor.Blue);
+ private static readonly Color LinkLabelVisited = Color.FromKnownColor(KnownColor.Purple);
+ private static readonly Color LinkLabelNew_Dark = Color.FromKnownColor(KnownColor.CornflowerBlue);
+ private static readonly Color LinkLabelVisited_Dark = Color.FromKnownColor(KnownColor.Orchid);
+ public static Color LinkColor => Application.IsDarkModeEnabled ? LinkLabelNew_Dark : LinkLabelNew;
+ public static Color VisitedLinkColor => Application.IsDarkModeEnabled ? LinkLabelVisited_Dark : LinkLabelVisited;
+ extension(LinkLabel ll)
+ {
+ public void SetLinkLabelColors()
+ {
+ ll.VisitedLinkColor = VisitedLinkColor;
+ ll.LinkColor = LinkColor;
+ }
+ }
+}