2020-07-07 07:15:45 +12:00
|
|
|
|
// <copyright file="Config.cs" company="PlaceholderCompany">
|
|
|
|
|
// Copyright (c) PlaceholderCompany. All rights reserved.
|
|
|
|
|
// </copyright>
|
2020-03-28 08:43:16 +13:00
|
|
|
|
|
|
|
|
|
namespace SystemTrayMenu
|
|
|
|
|
{
|
2021-04-17 04:59:35 +12:00
|
|
|
|
using System;
|
2021-05-09 19:52:37 +12:00
|
|
|
|
using System.Configuration;
|
2020-07-07 07:15:45 +12:00
|
|
|
|
using System.Diagnostics;
|
2021-05-05 02:18:19 +12:00
|
|
|
|
using System.Drawing;
|
2020-07-07 07:15:45 +12:00
|
|
|
|
using System.IO;
|
|
|
|
|
using System.Windows.Forms;
|
2020-08-08 01:24:25 +12:00
|
|
|
|
using Microsoft.Win32;
|
2021-06-26 23:24:56 +12:00
|
|
|
|
using Svg;
|
2021-05-05 02:18:19 +12:00
|
|
|
|
using SystemTrayMenu.Properties;
|
2020-07-08 03:05:19 +12:00
|
|
|
|
using SystemTrayMenu.UserInterface.FolderBrowseDialog;
|
2020-07-07 07:15:45 +12:00
|
|
|
|
using SystemTrayMenu.Utilities;
|
|
|
|
|
|
2020-03-28 08:43:16 +13:00
|
|
|
|
public static class Config
|
|
|
|
|
{
|
2021-06-26 23:24:56 +12:00
|
|
|
|
internal static readonly Bitmap BitmapOpenFolder = ReadSvg(Properties.Resources.ic_fluent_folder_48_regular);
|
|
|
|
|
internal static readonly Bitmap BitmapPin = ReadSvg(Properties.Resources.ic_fluent_pin_48_regular);
|
|
|
|
|
internal static readonly Bitmap BitmapPinActive = ReadSvg(Properties.Resources.ic_fluent_pin_48_filled);
|
2021-06-27 21:35:07 +12:00
|
|
|
|
internal static readonly Bitmap BitmapSearch = ReadSvg(Properties.Resources.ic_fluent_search_48_regular);
|
2021-06-26 23:24:56 +12:00
|
|
|
|
|
2021-04-17 12:39:48 +12:00
|
|
|
|
private static bool readDarkModeDone;
|
|
|
|
|
private static bool isDarkMode;
|
|
|
|
|
private static bool readHideFileExtdone;
|
|
|
|
|
private static bool isHideFileExtension;
|
2021-04-17 07:30:45 +12:00
|
|
|
|
|
|
|
|
|
public static bool IsHideFileExtdone => IsHideFileExtension();
|
2020-08-08 01:24:25 +12:00
|
|
|
|
|
2021-05-05 02:18:19 +12:00
|
|
|
|
public static string Path => Settings.Default.PathDirectory;
|
2020-03-28 08:43:16 +13:00
|
|
|
|
|
2021-06-26 23:24:56 +12:00
|
|
|
|
public static bool AlwaysOpenByPin { get; internal set; }
|
|
|
|
|
|
2021-05-05 02:18:19 +12:00
|
|
|
|
public static void Initialize()
|
2020-03-28 08:43:16 +13:00
|
|
|
|
{
|
2021-05-05 02:18:19 +12:00
|
|
|
|
UpgradeIfNotUpgraded();
|
|
|
|
|
InitializeColors();
|
2020-03-28 08:43:16 +13:00
|
|
|
|
}
|
|
|
|
|
|
2021-06-26 23:24:56 +12:00
|
|
|
|
public static void Dispose()
|
|
|
|
|
{
|
|
|
|
|
BitmapOpenFolder.Dispose();
|
|
|
|
|
BitmapPin.Dispose();
|
|
|
|
|
BitmapPinActive.Dispose();
|
|
|
|
|
}
|
|
|
|
|
|
2020-03-28 08:43:16 +13:00
|
|
|
|
public static bool LoadOrSetByUser()
|
|
|
|
|
{
|
2020-10-25 03:07:40 +13:00
|
|
|
|
bool pathOK = Directory.Exists(Path);
|
2020-03-28 08:43:16 +13:00
|
|
|
|
|
|
|
|
|
if (!pathOK)
|
|
|
|
|
{
|
2020-05-31 23:43:12 +12:00
|
|
|
|
string textFirstStart = Translator.GetText("TextFirstStart");
|
2020-07-07 07:15:45 +12:00
|
|
|
|
MessageBox.Show(
|
|
|
|
|
textFirstStart,
|
|
|
|
|
Translator.GetText("SystemTrayMenu"),
|
2020-05-31 23:43:12 +12:00
|
|
|
|
MessageBoxButtons.OK);
|
|
|
|
|
ShowHelpFAQ();
|
2020-03-28 08:43:16 +13:00
|
|
|
|
pathOK = SetFolderByUser();
|
|
|
|
|
}
|
2020-07-07 07:15:45 +12:00
|
|
|
|
|
2020-03-28 08:43:16 +13:00
|
|
|
|
return pathOK;
|
|
|
|
|
}
|
|
|
|
|
|
2020-05-05 05:43:47 +12:00
|
|
|
|
public static bool SetFolderByUser(bool save = true)
|
2020-03-28 08:43:16 +13:00
|
|
|
|
{
|
|
|
|
|
bool pathOK = false;
|
|
|
|
|
bool userAborted = false;
|
2020-06-06 02:42:12 +12:00
|
|
|
|
using (FolderDialog dialog = new FolderDialog())
|
2020-03-28 08:43:16 +13:00
|
|
|
|
{
|
2020-06-06 02:42:12 +12:00
|
|
|
|
dialog.InitialFolder = Path;
|
2020-03-28 08:43:16 +13:00
|
|
|
|
|
|
|
|
|
do
|
|
|
|
|
{
|
2020-06-06 02:42:12 +12:00
|
|
|
|
if (dialog.ShowDialog() == DialogResult.OK)
|
2020-03-28 08:43:16 +13:00
|
|
|
|
{
|
2020-06-06 02:42:12 +12:00
|
|
|
|
if (Directory.Exists(dialog.Folder))
|
2020-03-28 08:43:16 +13:00
|
|
|
|
{
|
|
|
|
|
pathOK = true;
|
2021-05-05 02:18:19 +12:00
|
|
|
|
Settings.Default.PathDirectory =
|
2020-06-06 02:42:12 +12:00
|
|
|
|
dialog.Folder;
|
2020-05-05 05:43:47 +12:00
|
|
|
|
if (save)
|
|
|
|
|
{
|
2021-05-05 02:18:19 +12:00
|
|
|
|
Settings.Default.Save();
|
2020-05-05 05:43:47 +12:00
|
|
|
|
}
|
2020-03-28 08:43:16 +13:00
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
{
|
|
|
|
|
userAborted = true;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
while (!pathOK && !userAborted);
|
2020-07-07 07:15:45 +12:00
|
|
|
|
}
|
2020-03-28 08:43:16 +13:00
|
|
|
|
|
|
|
|
|
return pathOK;
|
|
|
|
|
}
|
2020-05-31 23:43:12 +12:00
|
|
|
|
|
|
|
|
|
internal static void ShowHelpFAQ()
|
|
|
|
|
{
|
2021-05-03 01:01:31 +12:00
|
|
|
|
if (FileUrl.GetDefaultBrowserPath(out string browserPath))
|
2020-06-06 02:42:12 +12:00
|
|
|
|
{
|
|
|
|
|
Process.Start(browserPath, "https://github.com/Hofknecht/SystemTrayMenu#FAQ");
|
|
|
|
|
}
|
2020-05-31 23:43:12 +12:00
|
|
|
|
}
|
2020-08-08 01:24:25 +12:00
|
|
|
|
|
2021-04-17 07:30:45 +12:00
|
|
|
|
/// <summary>
|
|
|
|
|
/// Read the OS setting whether dark mode is enabled.
|
|
|
|
|
/// </summary>
|
|
|
|
|
/// <returns>true = Dark mode; false = Light mode.</returns>
|
2020-08-08 01:24:25 +12:00
|
|
|
|
internal static bool IsDarkMode()
|
|
|
|
|
{
|
2021-04-17 07:30:45 +12:00
|
|
|
|
if (!readDarkModeDone)
|
2020-08-08 01:24:25 +12:00
|
|
|
|
{
|
2021-04-17 07:30:45 +12:00
|
|
|
|
// 0 = Dark mode, 1 = Light mode
|
2021-05-05 02:18:19 +12:00
|
|
|
|
if (Settings.Default.IsDarkModeAlwaysOn ||
|
2021-04-17 07:30:45 +12:00
|
|
|
|
IsRegistryValueThisValue(
|
|
|
|
|
@"HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Themes\Personalize",
|
|
|
|
|
"AppsUseLightTheme",
|
|
|
|
|
"0"))
|
2020-08-08 01:24:25 +12:00
|
|
|
|
{
|
|
|
|
|
isDarkMode = true;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
readDarkModeDone = true;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
return isDarkMode;
|
|
|
|
|
}
|
|
|
|
|
|
2021-06-06 09:57:36 +12:00
|
|
|
|
internal static void ResetReadDarkModeDone()
|
|
|
|
|
{
|
|
|
|
|
isDarkMode = false;
|
|
|
|
|
readDarkModeDone = false;
|
|
|
|
|
}
|
|
|
|
|
|
2020-08-08 01:24:25 +12:00
|
|
|
|
/// <summary>
|
2021-04-17 07:30:45 +12:00
|
|
|
|
/// Read the OS setting whether HideFileExt enabled.
|
2020-08-08 01:24:25 +12:00
|
|
|
|
/// </summary>
|
|
|
|
|
/// <returns>true = Dark mode; false = Light mode.</returns>
|
2021-04-17 07:30:45 +12:00
|
|
|
|
internal static bool IsHideFileExtension()
|
|
|
|
|
{
|
|
|
|
|
if (!readHideFileExtdone)
|
|
|
|
|
{
|
|
|
|
|
// 0 = To show extensions, 1 = To hide extensions
|
|
|
|
|
if (IsRegistryValueThisValue(
|
|
|
|
|
@"HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced",
|
|
|
|
|
"HideFileExt",
|
|
|
|
|
"1"))
|
|
|
|
|
{
|
|
|
|
|
isHideFileExtension = true;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
readHideFileExtdone = true;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
return isHideFileExtension;
|
|
|
|
|
}
|
|
|
|
|
|
2021-06-06 09:57:36 +12:00
|
|
|
|
internal static void InitializeColors(bool save = true)
|
2021-05-05 02:18:19 +12:00
|
|
|
|
{
|
2021-05-09 21:36:49 +12:00
|
|
|
|
ColorConverter converter = new ColorConverter();
|
|
|
|
|
ColorAndCode colorAndCode = default;
|
|
|
|
|
bool changed = false;
|
|
|
|
|
|
|
|
|
|
colorAndCode.HtmlColorCode = Settings.Default.ColorSelectedItem;
|
|
|
|
|
colorAndCode.Color = Color.FromArgb(204, 232, 255);
|
|
|
|
|
colorAndCode = ProcessColorAndCode(converter, colorAndCode, ref changed);
|
|
|
|
|
Settings.Default.ColorSelectedItem = colorAndCode.HtmlColorCode;
|
|
|
|
|
AppColors.SelectedItem = colorAndCode.Color;
|
|
|
|
|
|
|
|
|
|
colorAndCode.HtmlColorCode = Settings.Default.ColorDarkModeSelecetedItem;
|
|
|
|
|
colorAndCode.Color = Color.FromArgb(51, 51, 51);
|
|
|
|
|
colorAndCode = ProcessColorAndCode(converter, colorAndCode, ref changed);
|
|
|
|
|
Settings.Default.ColorDarkModeSelecetedItem = colorAndCode.HtmlColorCode;
|
|
|
|
|
AppColors.DarkModeSelecetedItem = colorAndCode.Color;
|
|
|
|
|
|
|
|
|
|
colorAndCode.HtmlColorCode = Settings.Default.ColorSelectedItemBorder;
|
|
|
|
|
colorAndCode.Color = Color.FromArgb(153, 209, 255);
|
|
|
|
|
colorAndCode = ProcessColorAndCode(converter, colorAndCode, ref changed);
|
|
|
|
|
Settings.Default.ColorSelectedItemBorder = colorAndCode.HtmlColorCode;
|
|
|
|
|
AppColors.SelectedItemBorder = colorAndCode.Color;
|
|
|
|
|
|
|
|
|
|
colorAndCode.HtmlColorCode = Settings.Default.ColorDarkModeSelectedItemBorder;
|
|
|
|
|
colorAndCode.Color = Color.FromArgb(20, 29, 75);
|
|
|
|
|
colorAndCode = ProcessColorAndCode(converter, colorAndCode, ref changed);
|
|
|
|
|
Settings.Default.ColorDarkModeSelectedItemBorder = colorAndCode.HtmlColorCode;
|
|
|
|
|
AppColors.DarkModeSelectedItemBorder = colorAndCode.Color;
|
|
|
|
|
|
|
|
|
|
colorAndCode.HtmlColorCode = Settings.Default.ColorOpenFolder;
|
|
|
|
|
colorAndCode.Color = Color.FromArgb(194, 245, 222);
|
|
|
|
|
colorAndCode = ProcessColorAndCode(converter, colorAndCode, ref changed);
|
|
|
|
|
Settings.Default.ColorOpenFolder = colorAndCode.HtmlColorCode;
|
|
|
|
|
AppColors.OpenFolder = colorAndCode.Color;
|
|
|
|
|
|
|
|
|
|
colorAndCode.HtmlColorCode = Settings.Default.ColorDarkModeOpenFolder;
|
|
|
|
|
colorAndCode.Color = Color.FromArgb(20, 65, 42);
|
|
|
|
|
colorAndCode = ProcessColorAndCode(converter, colorAndCode, ref changed);
|
|
|
|
|
Settings.Default.ColorDarkModeOpenFolder = colorAndCode.HtmlColorCode;
|
|
|
|
|
AppColors.DarkModeOpenFolder = colorAndCode.Color;
|
|
|
|
|
|
|
|
|
|
colorAndCode.HtmlColorCode = Settings.Default.ColorOpenFolderBorder;
|
|
|
|
|
colorAndCode.Color = Color.FromArgb(153, 255, 165);
|
|
|
|
|
colorAndCode = ProcessColorAndCode(converter, colorAndCode, ref changed);
|
|
|
|
|
Settings.Default.ColorOpenFolderBorder = colorAndCode.HtmlColorCode;
|
|
|
|
|
AppColors.OpenFolderBorder = colorAndCode.Color;
|
|
|
|
|
|
|
|
|
|
colorAndCode.HtmlColorCode = Settings.Default.ColorDarkModeOpenFolderBorder;
|
|
|
|
|
colorAndCode.Color = Color.FromArgb(20, 75, 85);
|
|
|
|
|
colorAndCode = ProcessColorAndCode(converter, colorAndCode, ref changed);
|
|
|
|
|
Settings.Default.ColorDarkModeOpenFolderBorder = colorAndCode.HtmlColorCode;
|
|
|
|
|
AppColors.DarkModeOpenFolderBorder = colorAndCode.Color;
|
|
|
|
|
|
|
|
|
|
colorAndCode.HtmlColorCode = Settings.Default.ColorWarning;
|
|
|
|
|
colorAndCode.Color = Color.FromArgb(255, 204, 232);
|
|
|
|
|
colorAndCode = ProcessColorAndCode(converter, colorAndCode, ref changed);
|
|
|
|
|
Settings.Default.ColorWarning = colorAndCode.HtmlColorCode;
|
|
|
|
|
AppColors.Warning = colorAndCode.Color;
|
|
|
|
|
|
|
|
|
|
colorAndCode.HtmlColorCode = Settings.Default.ColorDarkModeWarning;
|
|
|
|
|
colorAndCode.Color = Color.FromArgb(75, 24, 52);
|
|
|
|
|
colorAndCode = ProcessColorAndCode(converter, colorAndCode, ref changed);
|
|
|
|
|
Settings.Default.ColorDarkModeWarning = colorAndCode.HtmlColorCode;
|
|
|
|
|
AppColors.DarkModeWarning = colorAndCode.Color;
|
|
|
|
|
|
|
|
|
|
colorAndCode.HtmlColorCode = Settings.Default.ColorTitle;
|
|
|
|
|
colorAndCode.Color = Color.Azure;
|
|
|
|
|
colorAndCode = ProcessColorAndCode(converter, colorAndCode, ref changed);
|
|
|
|
|
Settings.Default.ColorTitle = colorAndCode.HtmlColorCode;
|
|
|
|
|
AppColors.Title = colorAndCode.Color;
|
|
|
|
|
|
|
|
|
|
colorAndCode.HtmlColorCode = Settings.Default.ColorDarkModeTitle;
|
|
|
|
|
colorAndCode.Color = Color.FromArgb(43, 43, 43);
|
|
|
|
|
colorAndCode = ProcessColorAndCode(converter, colorAndCode, ref changed);
|
|
|
|
|
Settings.Default.ColorDarkModeTitle = colorAndCode.HtmlColorCode;
|
|
|
|
|
AppColors.DarkModeTitle = colorAndCode.Color;
|
|
|
|
|
|
|
|
|
|
colorAndCode.HtmlColorCode = Settings.Default.ColorSearchField;
|
|
|
|
|
colorAndCode.Color = Color.FromArgb(255, 255, 255);
|
|
|
|
|
colorAndCode = ProcessColorAndCode(converter, colorAndCode, ref changed);
|
|
|
|
|
Settings.Default.ColorSearchField = colorAndCode.HtmlColorCode;
|
|
|
|
|
AppColors.SearchField = colorAndCode.Color;
|
|
|
|
|
|
|
|
|
|
colorAndCode.HtmlColorCode = Settings.Default.ColorDarkModeSearchField;
|
|
|
|
|
colorAndCode.Color = Color.FromArgb(25, 25, 25);
|
|
|
|
|
colorAndCode = ProcessColorAndCode(converter, colorAndCode, ref changed);
|
|
|
|
|
Settings.Default.ColorDarkModeSearchField = colorAndCode.HtmlColorCode;
|
|
|
|
|
AppColors.DarkModeSearchField = colorAndCode.Color;
|
|
|
|
|
|
|
|
|
|
colorAndCode.HtmlColorCode = Settings.Default.ColorBackground;
|
|
|
|
|
colorAndCode.Color = Color.FromArgb(255, 255, 255);
|
|
|
|
|
colorAndCode = ProcessColorAndCode(converter, colorAndCode, ref changed);
|
|
|
|
|
Settings.Default.ColorBackground = colorAndCode.HtmlColorCode;
|
|
|
|
|
AppColors.Background = colorAndCode.Color;
|
|
|
|
|
|
|
|
|
|
colorAndCode.HtmlColorCode = Settings.Default.ColorDarkModeBackground;
|
|
|
|
|
colorAndCode.Color = Color.FromArgb(32, 32, 32);
|
|
|
|
|
colorAndCode = ProcessColorAndCode(converter, colorAndCode, ref changed);
|
|
|
|
|
Settings.Default.ColorDarkModeBackground = colorAndCode.HtmlColorCode;
|
|
|
|
|
AppColors.DarkModeBackground = colorAndCode.Color;
|
|
|
|
|
|
2021-06-06 09:57:36 +12:00
|
|
|
|
colorAndCode.HtmlColorCode = Settings.Default.ColorArrow;
|
|
|
|
|
colorAndCode.Color = Color.FromArgb(96, 96, 96);
|
|
|
|
|
colorAndCode = ProcessColorAndCode(converter, colorAndCode, ref changed);
|
|
|
|
|
Settings.Default.ColorArrow = colorAndCode.HtmlColorCode;
|
|
|
|
|
AppColors.Arrow = colorAndCode.Color;
|
|
|
|
|
|
|
|
|
|
colorAndCode.HtmlColorCode = Settings.Default.ColorArrowHoverBackground;
|
|
|
|
|
colorAndCode.Color = Color.FromArgb(218, 218, 218);
|
|
|
|
|
colorAndCode = ProcessColorAndCode(converter, colorAndCode, ref changed);
|
|
|
|
|
Settings.Default.ColorArrowHoverBackground = colorAndCode.HtmlColorCode;
|
|
|
|
|
AppColors.ArrowHoverBackground = colorAndCode.Color;
|
|
|
|
|
|
|
|
|
|
colorAndCode.HtmlColorCode = Settings.Default.ColorArrowHover;
|
|
|
|
|
colorAndCode.Color = Color.FromArgb(0, 0, 0);
|
|
|
|
|
colorAndCode = ProcessColorAndCode(converter, colorAndCode, ref changed);
|
|
|
|
|
Settings.Default.ColorArrowHover = colorAndCode.HtmlColorCode;
|
|
|
|
|
AppColors.ArrowHover = colorAndCode.Color;
|
|
|
|
|
|
|
|
|
|
colorAndCode.HtmlColorCode = Settings.Default.ColorArrowClick;
|
|
|
|
|
colorAndCode.Color = Color.FromArgb(255, 255, 255);
|
|
|
|
|
colorAndCode = ProcessColorAndCode(converter, colorAndCode, ref changed);
|
|
|
|
|
Settings.Default.ColorArrowClick = colorAndCode.HtmlColorCode;
|
|
|
|
|
AppColors.ArrowClick = colorAndCode.Color;
|
|
|
|
|
|
|
|
|
|
colorAndCode.HtmlColorCode = Settings.Default.ColorArrowClickBackground;
|
|
|
|
|
colorAndCode.Color = Color.FromArgb(96, 96, 96);
|
|
|
|
|
colorAndCode = ProcessColorAndCode(converter, colorAndCode, ref changed);
|
|
|
|
|
Settings.Default.ColorArrowClickBackground = colorAndCode.HtmlColorCode;
|
|
|
|
|
AppColors.ArrowClickBackground = colorAndCode.Color;
|
|
|
|
|
|
|
|
|
|
colorAndCode.HtmlColorCode = Settings.Default.ColorSliderArrowsAndTrackHover;
|
|
|
|
|
colorAndCode.Color = Color.FromArgb(192, 192, 192);
|
|
|
|
|
colorAndCode = ProcessColorAndCode(converter, colorAndCode, ref changed);
|
|
|
|
|
Settings.Default.ColorSliderArrowsAndTrackHover = colorAndCode.HtmlColorCode;
|
|
|
|
|
AppColors.SliderArrowsAndTrackHover = colorAndCode.Color;
|
|
|
|
|
|
|
|
|
|
colorAndCode.HtmlColorCode = Settings.Default.ColorSlider;
|
|
|
|
|
colorAndCode.Color = Color.FromArgb(205, 205, 205);
|
|
|
|
|
colorAndCode = ProcessColorAndCode(converter, colorAndCode, ref changed);
|
|
|
|
|
Settings.Default.ColorSlider = colorAndCode.HtmlColorCode;
|
|
|
|
|
AppColors.Slider = colorAndCode.Color;
|
|
|
|
|
|
|
|
|
|
colorAndCode.HtmlColorCode = Settings.Default.ColorSliderHover;
|
|
|
|
|
colorAndCode.Color = Color.FromArgb(166, 166, 166);
|
|
|
|
|
colorAndCode = ProcessColorAndCode(converter, colorAndCode, ref changed);
|
|
|
|
|
Settings.Default.ColorSliderHover = colorAndCode.HtmlColorCode;
|
|
|
|
|
AppColors.SliderHover = colorAndCode.Color;
|
|
|
|
|
|
|
|
|
|
colorAndCode.HtmlColorCode = Settings.Default.ColorSliderDragging;
|
|
|
|
|
colorAndCode.Color = Color.FromArgb(96, 96, 96);
|
|
|
|
|
colorAndCode = ProcessColorAndCode(converter, colorAndCode, ref changed);
|
|
|
|
|
Settings.Default.ColorSliderDragging = colorAndCode.HtmlColorCode;
|
|
|
|
|
AppColors.SliderDragging = colorAndCode.Color;
|
|
|
|
|
|
|
|
|
|
colorAndCode.HtmlColorCode = Settings.Default.ColorScrollbarBackground;
|
|
|
|
|
colorAndCode.Color = Color.FromArgb(240, 240, 240);
|
|
|
|
|
colorAndCode = ProcessColorAndCode(converter, colorAndCode, ref changed);
|
|
|
|
|
Settings.Default.ColorScrollbarBackground = colorAndCode.HtmlColorCode;
|
|
|
|
|
AppColors.ScrollbarBackground = colorAndCode.Color;
|
|
|
|
|
|
|
|
|
|
colorAndCode.HtmlColorCode = Settings.Default.ColorArrowDarkMode;
|
|
|
|
|
colorAndCode.Color = Color.FromArgb(103, 103, 103);
|
|
|
|
|
colorAndCode = ProcessColorAndCode(converter, colorAndCode, ref changed);
|
|
|
|
|
Settings.Default.ColorArrowDarkMode = colorAndCode.HtmlColorCode;
|
|
|
|
|
AppColors.ArrowDarkMode = colorAndCode.Color;
|
|
|
|
|
|
|
|
|
|
colorAndCode.HtmlColorCode = Settings.Default.ColorArrowHoverBackgroundDarkMode;
|
|
|
|
|
colorAndCode.Color = Color.FromArgb(55, 55, 55);
|
|
|
|
|
colorAndCode = ProcessColorAndCode(converter, colorAndCode, ref changed);
|
|
|
|
|
Settings.Default.ColorArrowHoverBackgroundDarkMode = colorAndCode.HtmlColorCode;
|
|
|
|
|
AppColors.ArrowHoverBackgroundDarkMode = colorAndCode.Color;
|
|
|
|
|
|
|
|
|
|
colorAndCode.HtmlColorCode = Settings.Default.ColorArrowHoverDarkMode;
|
|
|
|
|
colorAndCode.Color = Color.FromArgb(103, 103, 103);
|
|
|
|
|
colorAndCode = ProcessColorAndCode(converter, colorAndCode, ref changed);
|
|
|
|
|
Settings.Default.ColorArrowHoverDarkMode = colorAndCode.HtmlColorCode;
|
|
|
|
|
AppColors.ArrowHoverDarkMode = colorAndCode.Color;
|
|
|
|
|
|
|
|
|
|
colorAndCode.HtmlColorCode = Settings.Default.ColorArrowClickDarkMode;
|
|
|
|
|
colorAndCode.Color = Color.FromArgb(23, 23, 23);
|
|
|
|
|
colorAndCode = ProcessColorAndCode(converter, colorAndCode, ref changed);
|
|
|
|
|
Settings.Default.ColorArrowClickDarkMode = colorAndCode.HtmlColorCode;
|
|
|
|
|
AppColors.ArrowClickDarkMode = colorAndCode.Color;
|
|
|
|
|
|
|
|
|
|
colorAndCode.HtmlColorCode = Settings.Default.ColorArrowClickBackgroundDarkMode;
|
|
|
|
|
colorAndCode.Color = Color.FromArgb(166, 166, 166);
|
|
|
|
|
colorAndCode = ProcessColorAndCode(converter, colorAndCode, ref changed);
|
|
|
|
|
Settings.Default.ColorArrowClickBackgroundDarkMode = colorAndCode.HtmlColorCode;
|
|
|
|
|
AppColors.ArrowClickBackgroundDarkMode = colorAndCode.Color;
|
|
|
|
|
|
|
|
|
|
colorAndCode.HtmlColorCode = Settings.Default.ColorSliderArrowsAndTrackHoverDarkMode;
|
|
|
|
|
colorAndCode.Color = Color.FromArgb(77, 77, 77);
|
|
|
|
|
colorAndCode = ProcessColorAndCode(converter, colorAndCode, ref changed);
|
|
|
|
|
Settings.Default.ColorSliderArrowsAndTrackHoverDarkMode = colorAndCode.HtmlColorCode;
|
|
|
|
|
AppColors.SliderArrowsAndTrackHoverDarkMode = colorAndCode.Color;
|
|
|
|
|
|
|
|
|
|
colorAndCode.HtmlColorCode = Settings.Default.ColorSliderDarkMode;
|
|
|
|
|
colorAndCode.Color = Color.FromArgb(77, 77, 77);
|
|
|
|
|
colorAndCode = ProcessColorAndCode(converter, colorAndCode, ref changed);
|
|
|
|
|
Settings.Default.ColorSliderDarkMode = colorAndCode.HtmlColorCode;
|
|
|
|
|
AppColors.SliderDarkMode = colorAndCode.Color;
|
|
|
|
|
|
|
|
|
|
colorAndCode.HtmlColorCode = Settings.Default.ColorSliderHoverDarkMode;
|
|
|
|
|
colorAndCode.Color = Color.FromArgb(122, 122, 122);
|
|
|
|
|
colorAndCode = ProcessColorAndCode(converter, colorAndCode, ref changed);
|
|
|
|
|
Settings.Default.ColorSliderHoverDarkMode = colorAndCode.HtmlColorCode;
|
|
|
|
|
AppColors.SliderHoverDarkMode = colorAndCode.Color;
|
|
|
|
|
|
|
|
|
|
colorAndCode.HtmlColorCode = Settings.Default.ColorSliderDraggingDarkMode;
|
|
|
|
|
colorAndCode.Color = Color.FromArgb(166, 166, 166);
|
|
|
|
|
colorAndCode = ProcessColorAndCode(converter, colorAndCode, ref changed);
|
|
|
|
|
Settings.Default.ColorSliderDraggingDarkMode = colorAndCode.HtmlColorCode;
|
|
|
|
|
AppColors.SliderDraggingDarkMode = colorAndCode.Color;
|
|
|
|
|
|
|
|
|
|
colorAndCode.HtmlColorCode = Settings.Default.ColorScrollbarBackgroundDarkMode;
|
|
|
|
|
colorAndCode.Color = Color.FromArgb(23, 23, 23);
|
|
|
|
|
colorAndCode = ProcessColorAndCode(converter, colorAndCode, ref changed);
|
|
|
|
|
Settings.Default.ColorScrollbarBackgroundDarkMode = colorAndCode.HtmlColorCode;
|
|
|
|
|
AppColors.ScrollbarBackgroundDarkMode = colorAndCode.Color;
|
|
|
|
|
|
|
|
|
|
if (save && changed)
|
|
|
|
|
{
|
|
|
|
|
Settings.Default.Save();
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
2021-06-26 23:24:56 +12:00
|
|
|
|
private static Bitmap ReadSvg(byte[] byteArray)
|
|
|
|
|
{
|
|
|
|
|
using (var stream = new MemoryStream(byteArray))
|
|
|
|
|
{
|
|
|
|
|
var svgDocument = SvgDocument.Open<SvgDocument>(stream);
|
|
|
|
|
return svgDocument.Draw();
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
2021-06-06 09:57:36 +12:00
|
|
|
|
private static bool IsRegistryValueThisValue(string keyName, string valueName, string value)
|
|
|
|
|
{
|
|
|
|
|
bool isRegistryValueThisValue = false;
|
|
|
|
|
|
|
|
|
|
try
|
|
|
|
|
{
|
|
|
|
|
object registryHideFileExt = Registry.GetValue(keyName, valueName, 1);
|
|
|
|
|
|
|
|
|
|
if (registryHideFileExt == null)
|
|
|
|
|
{
|
|
|
|
|
Log.Info($"Could not read registry keyName:{keyName} valueName:{valueName}");
|
|
|
|
|
}
|
|
|
|
|
else if (registryHideFileExt.ToString() == value)
|
|
|
|
|
{
|
|
|
|
|
isRegistryValueThisValue = true;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
catch (Exception ex)
|
|
|
|
|
{
|
|
|
|
|
if (ex is System.Security.SecurityException ||
|
|
|
|
|
ex is IOException)
|
|
|
|
|
{
|
|
|
|
|
Log.Warn($"Could not read registry keyName:{keyName} valueName:{valueName}", ex);
|
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
{
|
|
|
|
|
throw;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
return isRegistryValueThisValue;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
private static void UpgradeIfNotUpgraded()
|
|
|
|
|
{
|
|
|
|
|
var path = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.PerUserRoaming).FilePath;
|
|
|
|
|
path = Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData);
|
|
|
|
|
if (!Settings.Default.IsUpgraded)
|
2021-05-09 21:36:49 +12:00
|
|
|
|
{
|
2021-06-06 09:57:36 +12:00
|
|
|
|
Settings.Default.Upgrade();
|
|
|
|
|
Settings.Default.IsUpgraded = true;
|
2021-05-09 21:36:49 +12:00
|
|
|
|
Settings.Default.Save();
|
2021-06-06 09:57:36 +12:00
|
|
|
|
Log.Info($"Settings upgraded from {CustomSettingsProvider.UserConfigPath}");
|
2021-05-09 21:36:49 +12:00
|
|
|
|
}
|
2021-05-05 02:18:19 +12:00
|
|
|
|
}
|
|
|
|
|
|
2021-05-09 21:36:49 +12:00
|
|
|
|
private static ColorAndCode ProcessColorAndCode(
|
2021-05-05 02:18:19 +12:00
|
|
|
|
ColorConverter colorConverter,
|
2021-05-09 21:36:49 +12:00
|
|
|
|
ColorAndCode colorAndCode,
|
|
|
|
|
ref bool changedHtmlColorCode)
|
2021-05-05 02:18:19 +12:00
|
|
|
|
{
|
|
|
|
|
try
|
|
|
|
|
{
|
2021-05-09 21:36:49 +12:00
|
|
|
|
colorAndCode.Color = (Color)colorConverter.ConvertFromString(colorAndCode.HtmlColorCode);
|
2021-05-05 02:18:19 +12:00
|
|
|
|
}
|
|
|
|
|
catch (ArgumentException ex)
|
|
|
|
|
{
|
2021-05-09 21:36:49 +12:00
|
|
|
|
Log.Warn($"HtmlColorCode {colorAndCode.HtmlColorCode}", ex);
|
|
|
|
|
colorAndCode.HtmlColorCode = ColorTranslator.ToHtml(colorAndCode.Color);
|
|
|
|
|
changedHtmlColorCode = true;
|
2021-05-05 02:18:19 +12:00
|
|
|
|
}
|
|
|
|
|
|
2021-05-09 21:36:49 +12:00
|
|
|
|
return colorAndCode;
|
2021-05-05 02:18:19 +12:00
|
|
|
|
}
|
2020-03-28 08:43:16 +13:00
|
|
|
|
}
|
|
|
|
|
}
|