2023-03-12 00:41:22 +03:00
|
|
|
using Eto.Drawing;
|
|
|
|
|
|
|
|
namespace NAPS2.EtoForms;
|
|
|
|
|
|
|
|
public class ColorScheme
|
|
|
|
{
|
2023-07-08 23:16:16 +03:00
|
|
|
private static readonly Color VeryDarkGray = Color.FromRgb(0x262626);
|
|
|
|
private static readonly Color MidGray = Color.FromRgb(0x606060);
|
|
|
|
private static readonly Color LightGray = Color.FromRgb(0xdddddd);
|
2023-07-08 23:21:49 +03:00
|
|
|
private static readonly Color HighlightBlue = Color.FromRgb(0x007bff);
|
2023-03-12 00:41:22 +03:00
|
|
|
|
|
|
|
private readonly IDarkModeProvider _darkModeProvider;
|
|
|
|
|
|
|
|
public ColorScheme(IDarkModeProvider darkModeProvider)
|
|
|
|
{
|
|
|
|
_darkModeProvider = darkModeProvider;
|
|
|
|
_darkModeProvider.DarkModeChanged += (_, _) => ColorSchemeChanged?.Invoke(this, EventArgs.Empty);
|
|
|
|
}
|
|
|
|
|
2023-07-09 00:27:37 +03:00
|
|
|
private bool DarkMode => _darkModeProvider.IsDarkModeEnabled;
|
2023-03-12 00:41:22 +03:00
|
|
|
|
2023-07-09 00:27:37 +03:00
|
|
|
public Color ForegroundColor => DarkMode ? Colors.White : Colors.Black;
|
2023-07-08 23:16:16 +03:00
|
|
|
|
2023-07-09 00:27:37 +03:00
|
|
|
public Color BackgroundColor => DarkMode ? VeryDarkGray : Colors.White;
|
2023-07-08 23:16:16 +03:00
|
|
|
|
2023-07-09 00:27:37 +03:00
|
|
|
public Color SeparatorColor => DarkMode ? MidGray : LightGray;
|
2023-03-12 00:41:22 +03:00
|
|
|
|
2023-07-09 00:27:37 +03:00
|
|
|
public Color BorderColor => DarkMode ? LightGray : Colors.Black;
|
|
|
|
|
|
|
|
public Color CropColor => DarkMode ? HighlightBlue : Colors.Black;
|
|
|
|
|
|
|
|
public Color NotificationBackgroundColor => DarkMode ? Color.FromRgb(0x323232) : Color.FromRgb(0xf2f2f2);
|
|
|
|
|
|
|
|
public Color NotificationBorderColor => DarkMode ? Color.FromRgb(0x606060) : Color.FromRgb(0xb2b2b2);
|
2023-07-08 23:21:49 +03:00
|
|
|
|
2023-03-12 00:41:22 +03:00
|
|
|
public event EventHandler? ColorSchemeChanged;
|
|
|
|
}
|