3#include "color_handler.h"
5#include "model/ocpn_types.h"
7extern s52plib* ps52plib;
8extern wxColorHashMap* pcurrent_user_color_hash;
10wxColour GetGlobalColor(wxString colorName) {
14 if (ps52plib) ret_color = ps52plib->getwxColour(colorName);
15 if (!ret_color.Ok() && pcurrent_user_color_hash)
16 ret_color = (*pcurrent_user_color_hash)[colorName];
19 if (!ret_color.Ok()) {
20 ret_color.Set(128, 128, 128);
21 wxLogMessage(_T(
"Warning: Color not found ") + colorName);
23 if (pcurrent_user_color_hash)
24 (*pcurrent_user_color_hash)[colorName] = ret_color;
29wxColour GetDialogColor(DialogColor color) {
30 wxColour col = *wxRED;
32 bool bUseSysColors =
false;
33 bool bIsDarkMode =
false;
35 if (wxPlatformInfo::Get().CheckOSVersion(10, 14)) bUseSysColors =
true;
42 wxColour bg = wxSystemSettings::GetColour(wxSYS_COLOUR_APPWORKSPACE);
50 if (bUseSysColors && bIsDarkMode) {
51 col = wxSystemSettings::GetColour(wxSYS_COLOUR_APPWORKSPACE);
53 col = GetGlobalColor(
"DILG0");
56 case DLG_SELECTED_BACKGROUND:
57 if (bUseSysColors && bIsDarkMode) {
58 col = wxSystemSettings::GetColour(wxSYS_COLOUR_WINDOW);
60 col = GetGlobalColor(
"DILG1");
63 case DLG_UNSELECTED_BACKGROUND:
64 if (bUseSysColors && bIsDarkMode) {
65 col = wxSystemSettings::GetColour(wxSYS_COLOUR_APPWORKSPACE);
67 col = GetGlobalColor(
"DILG0");
71 case DLG_SELECTED_ACCENT:
72 if (bUseSysColors && bIsDarkMode) {
73 col = wxSystemSettings::GetColour(wxSYS_COLOUR_WINDOWTEXT);
75 col = GetGlobalColor(
"DILG3");
78 case DLG_UNSELECTED_ACCENT:
79 if (bUseSysColors && bIsDarkMode) {
80 col = wxSystemSettings::GetColour(wxSYS_COLOUR_WINDOWTEXT);
82 col = GetGlobalColor(
"DILG1");
86 if (bUseSysColors && bIsDarkMode) {
87 col = wxSystemSettings::GetColour(wxSYS_COLOUR_WINDOWTEXT);
89 col = GetGlobalColor(
"DILG3");
93 if (bUseSysColors && bIsDarkMode) {
94 col = wxSystemSettings::GetColour(wxSYS_COLOUR_HIGHLIGHT);
96 col = GetGlobalColor(
"UIBCK");