From 152b5bb936cb9878e939721178cdc07624d56c2e Mon Sep 17 00:00:00 2001 From: vsonnier Date: Sat, 24 Aug 2019 11:13:24 +0200 Subject: [PATCH 1/3] Use Google Turbo Color for Default Theme WF colors --- src/util/Gradient.cpp | 8 ++++++++ src/util/Gradient.h | 2 ++ src/visual/ColorTheme.cpp | 16 ++++++++++++++-- 3 files changed, 24 insertions(+), 2 deletions(-) diff --git a/src/util/Gradient.cpp b/src/util/Gradient.cpp index 906b8b8a..2be174f0 100644 --- a/src/util/Gradient.cpp +++ b/src/util/Gradient.cpp @@ -12,6 +12,14 @@ void Gradient::addColor(GradientColor c) { colors.push_back(c); } +void Gradient::addColors(const std::vector& color_list) { + + for (auto single_color : color_list) { + + colors.push_back(single_color); + } +} + std::vector &Gradient::getRed() { return r_val; } diff --git a/src/util/Gradient.h b/src/util/Gradient.h index 1dac2038..5448cfaa 100644 --- a/src/util/Gradient.h +++ b/src/util/Gradient.h @@ -21,6 +21,8 @@ class Gradient { void addColor(GradientColor c); + void addColors(const std::vector& color_list); + std::vector &getRed(); std::vector &getGreen(); std::vector &getBlue(); diff --git a/src/visual/ColorTheme.cpp b/src/visual/ColorTheme.cpp index f2c77454..0fadadf9 100644 --- a/src/visual/ColorTheme.cpp +++ b/src/visual/ColorTheme.cpp @@ -1,4 +1,6 @@ // Copyright (c) Charles J. Cliffe +//Google Turbo color scheme: Copyright 2019 Google LLC. +//Author: Anton Mikhailov // SPDX-License-Identifier: GPL-2.0+ #include "ColorTheme.h" @@ -37,12 +39,22 @@ ThemeMgr::~ThemeMgr() { } DefaultColorTheme::DefaultColorTheme() { + name = "Default"; - waterfallGradient.addColor(GradientColor(0, 0, 0)); + //Google Turbo color scheme: https://ai.googleblog.com/2019/08/turbo-improved-rainbow-colormap-for.html + //Author: Anton Mikhailov + static std::vector turbo_srgb_floats = { {0.18995,0.07176,0.23217},{0.19483,0.08339,0.26149},{0.19956,0.09498,0.29024},{0.20415,0.10652,0.31844},{0.20860,0.11802,0.34607},{0.21291,0.12947,0.37314},{0.21708,0.14087,0.39964},{0.22111,0.15223,0.42558},{0.22500,0.16354,0.45096},{0.22875,0.17481,0.47578},{0.23236,0.18603,0.50004},{0.23582,0.19720,0.52373},{0.23915,0.20833,0.54686},{0.24234,0.21941,0.56942},{0.24539,0.23044,0.59142},{0.24830,0.24143,0.61286},{0.25107,0.25237,0.63374},{0.25369,0.26327,0.65406},{0.25618,0.27412,0.67381},{0.25853,0.28492,0.69300},{0.26074,0.29568,0.71162},{0.26280,0.30639,0.72968},{0.26473,0.31706,0.74718},{0.26652,0.32768,0.76412},{0.26816,0.33825,0.78050},{0.26967,0.34878,0.79631},{0.27103,0.35926,0.81156},{0.27226,0.36970,0.82624},{0.27334,0.38008,0.84037},{0.27429,0.39043,0.85393},{0.27509,0.40072,0.86692},{0.27576,0.41097,0.87936},{0.27628,0.42118,0.89123},{0.27667,0.43134,0.90254},{0.27691,0.44145,0.91328},{0.27701,0.45152,0.92347},{0.27698,0.46153,0.93309},{0.27680,0.47151,0.94214},{0.27648,0.48144,0.95064},{0.27603,0.49132,0.95857},{0.27543,0.50115,0.96594},{0.27469,0.51094,0.97275},{0.27381,0.52069,0.97899},{0.27273,0.53040,0.98461},{0.27106,0.54015,0.98930},{0.26878,0.54995,0.99303},{0.26592,0.55979,0.99583},{0.26252,0.56967,0.99773},{0.25862,0.57958,0.99876},{0.25425,0.58950,0.99896},{0.24946,0.59943,0.99835},{0.24427,0.60937,0.99697},{0.23874,0.61931,0.99485},{0.23288,0.62923,0.99202},{0.22676,0.63913,0.98851},{0.22039,0.64901,0.98436},{0.21382,0.65886,0.97959},{0.20708,0.66866,0.97423},{0.20021,0.67842,0.96833},{0.19326,0.68812,0.96190},{0.18625,0.69775,0.95498},{0.17923,0.70732,0.94761},{0.17223,0.71680,0.93981},{0.16529,0.72620,0.93161},{0.15844,0.73551,0.92305},{0.15173,0.74472,0.91416},{0.14519,0.75381,0.90496},{0.13886,0.76279,0.89550},{0.13278,0.77165,0.88580},{0.12698,0.78037,0.87590},{0.12151,0.78896,0.86581},{0.11639,0.79740,0.85559},{0.11167,0.80569,0.84525},{0.10738,0.81381,0.83484},{0.10357,0.82177,0.82437},{0.10026,0.82955,0.81389},{0.09750,0.83714,0.80342},{0.09532,0.84455,0.79299},{0.09377,0.85175,0.78264},{0.09287,0.85875,0.77240},{0.09267,0.86554,0.76230},{0.09320,0.87211,0.75237},{0.09451,0.87844,0.74265},{0.09662,0.88454,0.73316},{0.09958,0.89040,0.72393},{0.10342,0.89600,0.71500},{0.10815,0.90142,0.70599},{0.11374,0.90673,0.69651},{0.12014,0.91193,0.68660},{0.12733,0.91701,0.67627},{0.13526,0.92197,0.66556},{0.14391,0.92680,0.65448},{0.15323,0.93151,0.64308},{0.16319,0.93609,0.63137},{0.17377,0.94053,0.61938},{0.18491,0.94484,0.60713},{0.19659,0.94901,0.59466},{0.20877,0.95304,0.58199},{0.22142,0.95692,0.56914},{0.23449,0.96065,0.55614},{0.24797,0.96423,0.54303},{0.26180,0.96765,0.52981},{0.27597,0.97092,0.51653},{0.29042,0.97403,0.50321},{0.30513,0.97697,0.48987},{0.32006,0.97974,0.47654},{0.33517,0.98234,0.46325},{0.35043,0.98477,0.45002},{0.36581,0.98702,0.43688},{0.38127,0.98909,0.42386},{0.39678,0.99098,0.41098},{0.41229,0.99268,0.39826},{0.42778,0.99419,0.38575},{0.44321,0.99551,0.37345},{0.45854,0.99663,0.36140},{0.47375,0.99755,0.34963},{0.48879,0.99828,0.33816},{0.50362,0.99879,0.32701},{0.51822,0.99910,0.31622},{0.53255,0.99919,0.30581},{0.54658,0.99907,0.29581},{0.56026,0.99873,0.28623},{0.57357,0.99817,0.27712},{0.58646,0.99739,0.26849},{0.59891,0.99638,0.26038},{0.61088,0.99514,0.25280},{0.62233,0.99366,0.24579},{0.63323,0.99195,0.23937},{0.64362,0.98999,0.23356},{0.65394,0.98775,0.22835},{0.66428,0.98524,0.22370},{0.67462,0.98246,0.21960},{0.68494,0.97941,0.21602},{0.69525,0.97610,0.21294},{0.70553,0.97255,0.21032},{0.71577,0.96875,0.20815},{0.72596,0.96470,0.20640},{0.73610,0.96043,0.20504},{0.74617,0.95593,0.20406},{0.75617,0.95121,0.20343},{0.76608,0.94627,0.20311},{0.77591,0.94113,0.20310},{0.78563,0.93579,0.20336},{0.79524,0.93025,0.20386},{0.80473,0.92452,0.20459},{0.81410,0.91861,0.20552},{0.82333,0.91253,0.20663},{0.83241,0.90627,0.20788},{0.84133,0.89986,0.20926},{0.85010,0.89328,0.21074},{0.85868,0.88655,0.21230},{0.86709,0.87968,0.21391},{0.87530,0.87267,0.21555},{0.88331,0.86553,0.21719},{0.89112,0.85826,0.21880},{0.89870,0.85087,0.22038},{0.90605,0.84337,0.22188},{0.91317,0.83576,0.22328},{0.92004,0.82806,0.22456},{0.92666,0.82025,0.22570},{0.93301,0.81236,0.22667},{0.93909,0.80439,0.22744},{0.94489,0.79634,0.22800},{0.95039,0.78823,0.22831},{0.95560,0.78005,0.22836},{0.96049,0.77181,0.22811},{0.96507,0.76352,0.22754},{0.96931,0.75519,0.22663},{0.97323,0.74682,0.22536},{0.97679,0.73842,0.22369},{0.98000,0.73000,0.22161},{0.98289,0.72140,0.21918},{0.98549,0.71250,0.21650},{0.98781,0.70330,0.21358},{0.98986,0.69382,0.21043},{0.99163,0.68408,0.20706},{0.99314,0.67408,0.20348},{0.99438,0.66386,0.19971},{0.99535,0.65341,0.19577},{0.99607,0.64277,0.19165},{0.99654,0.63193,0.18738},{0.99675,0.62093,0.18297},{0.99672,0.60977,0.17842},{0.99644,0.59846,0.17376},{0.99593,0.58703,0.16899},{0.99517,0.57549,0.16412},{0.99419,0.56386,0.15918},{0.99297,0.55214,0.15417},{0.99153,0.54036,0.14910},{0.98987,0.52854,0.14398},{0.98799,0.51667,0.13883},{0.98590,0.50479,0.13367},{0.98360,0.49291,0.12849},{0.98108,0.48104,0.12332},{0.97837,0.46920,0.11817},{0.97545,0.45740,0.11305},{0.97234,0.44565,0.10797},{0.96904,0.43399,0.10294},{0.96555,0.42241,0.09798},{0.96187,0.41093,0.09310},{0.95801,0.39958,0.08831},{0.95398,0.38836,0.08362},{0.94977,0.37729,0.07905},{0.94538,0.36638,0.07461},{0.94084,0.35566,0.07031},{0.93612,0.34513,0.06616},{0.93125,0.33482,0.06218},{0.92623,0.32473,0.05837},{0.92105,0.31489,0.05475},{0.91572,0.30530,0.05134},{0.91024,0.29599,0.04814},{0.90463,0.28696,0.04516},{0.89888,0.27824,0.04243},{0.89298,0.26981,0.03993},{0.88691,0.26152,0.03753},{0.88066,0.25334,0.03521},{0.87422,0.24526,0.03297},{0.86760,0.23730,0.03082},{0.86079,0.22945,0.02875},{0.85380,0.22170,0.02677},{0.84662,0.21407,0.02487},{0.83926,0.20654,0.02305},{0.83172,0.19912,0.02131},{0.82399,0.19182,0.01966},{0.81608,0.18462,0.01809},{0.80799,0.17753,0.01660},{0.79971,0.17055,0.01520},{0.79125,0.16368,0.01387},{0.78260,0.15693,0.01264},{0.77377,0.15028,0.01148},{0.76476,0.14374,0.01041},{0.75556,0.13731,0.00942},{0.74617,0.13098,0.00851},{0.73661,0.12477,0.00769},{0.72686,0.11867,0.00695},{0.71692,0.11268,0.00629},{0.70680,0.10680,0.00571},{0.69650,0.10102,0.00522},{0.68602,0.09536,0.00481},{0.67535,0.08980,0.00449},{0.66449,0.08436,0.00424},{0.65345,0.07902,0.00408},{0.64223,0.07380,0.00401},{0.63082,0.06868,0.00401},{0.61923,0.06367,0.00410},{0.60746,0.05878,0.00427},{0.59550,0.05399,0.00453},{0.58336,0.04931,0.00486},{0.57103,0.04474,0.00529},{0.55852,0.04028,0.00579},{0.54583,0.03593,0.00638},{0.53295,0.03169,0.00705},{0.51989,0.02756,0.00780},{0.50664,0.02354,0.00863},{0.49321,0.01963,0.00955},{0.47960,0.01583,0.01055} }; + + waterfallGradient.addColors(turbo_srgb_floats); + + /* Original DefaultColorTheme: + waterfallGradient.addColor(GradientColor(0, 0, 0)); waterfallGradient.addColor(GradientColor(0, 0, 1.0)); waterfallGradient.addColor(GradientColor(0, 1.0, 0)); waterfallGradient.addColor(GradientColor(1.0, 1.0, 0)); - waterfallGradient.addColor(GradientColor(1.0, 0.2f, 0.0)); + waterfallGradient.addColor(GradientColor(1.0, 0.2f, 0.0)); + */ + waterfallGradient.generate(256); waterfallHighlight = RGBA4f(1, 1, 1); waterfallNew = RGBA4f(0, 1, 0); From 87499d4e374bffe86049c4e9a7fd9938059ef7e9 Mon Sep 17 00:00:00 2001 From: vsonnier Date: Tue, 17 Sep 2019 19:33:07 +0200 Subject: [PATCH 2/3] Added Default Jet Waterfall as the old WF color theme --- src/AppFrame.cpp | 6 +++++- src/AppFrame.h | 13 +++++++------ src/util/Gradient.cpp | 4 ++++ src/util/Gradient.h | 2 ++ src/visual/ColorTheme.cpp | 25 +++++++++++++++++-------- src/visual/ColorTheme.h | 20 +++++++++++++------- 6 files changed, 48 insertions(+), 22 deletions(-) diff --git a/src/AppFrame.cpp b/src/AppFrame.cpp index 1dc2c8a6..2dec8b28 100644 --- a/src/AppFrame.cpp +++ b/src/AppFrame.cpp @@ -603,6 +603,7 @@ wxMenu *AppFrame::makeDisplayMenu() { int themeId = wxGetApp().getConfig()->getTheme(); themeMenu->AppendRadioItem(wxID_THEME_DEFAULT, "Default")->Check(themeId==COLOR_THEME_DEFAULT); + themeMenu->AppendRadioItem(wxID_THEME_DEFAULT_JET, "Default (Jet Waterfall)")->Check(themeId == COLOR_THEME_DEFAULT_JET); themeMenu->AppendRadioItem(wxID_THEME_RADAR, "RADAR")->Check(themeId==COLOR_THEME_RADAR); themeMenu->AppendRadioItem(wxID_THEME_BW, "Black & White")->Check(themeId==COLOR_THEME_BW); themeMenu->AppendRadioItem(wxID_THEME_SHARP, "Sharp")->Check(themeId==COLOR_THEME_SHARP); @@ -1316,10 +1317,13 @@ bool AppFrame::actionOnMenuDisplay(wxCommandEvent& event) { //by default, is managed. bool bManaged = true; - + if (event.GetId() == wxID_THEME_DEFAULT) { ThemeMgr::mgr.setTheme(COLOR_THEME_DEFAULT); } + else if (event.GetId() == wxID_THEME_DEFAULT_JET) { + ThemeMgr::mgr.setTheme(COLOR_THEME_DEFAULT_JET); + } else if (event.GetId() == wxID_THEME_SHARP) { ThemeMgr::mgr.setTheme(COLOR_THEME_SHARP); } diff --git a/src/AppFrame.h b/src/AppFrame.h index 8a5f71b0..479e888f 100644 --- a/src/AppFrame.h +++ b/src/AppFrame.h @@ -338,12 +338,13 @@ class AppFrame: public wxFrame { #define wxID_BM_SPLITTER 2052 #define wxID_THEME_DEFAULT 2100 -#define wxID_THEME_SHARP 2101 -#define wxID_THEME_BW 2102 -#define wxID_THEME_RAD 2103 -#define wxID_THEME_TOUCH 2104 -#define wxID_THEME_HD 2105 -#define wxID_THEME_RADAR 2106 +#define wxID_THEME_DEFAULT_JET 2101 +#define wxID_THEME_SHARP 2102 +#define wxID_THEME_BW 2103 +#define wxID_THEME_RAD 2104 +#define wxID_THEME_TOUCH 2105 +#define wxID_THEME_HD 2106 +#define wxID_THEME_RADAR 2107 #define wxID_DISPLAY_BOOKMARKS 2107 diff --git a/src/util/Gradient.cpp b/src/util/Gradient.cpp index 2be174f0..babc15d8 100644 --- a/src/util/Gradient.cpp +++ b/src/util/Gradient.cpp @@ -5,7 +5,11 @@ #include Gradient::Gradient() { + //nothing +} +void Gradient::clear() { + colors.clear(); } void Gradient::addColor(GradientColor c) { diff --git a/src/util/Gradient.h b/src/util/Gradient.h index 5448cfaa..2a6a940e 100644 --- a/src/util/Gradient.h +++ b/src/util/Gradient.h @@ -21,6 +21,8 @@ class Gradient { void addColor(GradientColor c); + void clear(); + void addColors(const std::vector& color_list); std::vector &getRed(); diff --git a/src/visual/ColorTheme.cpp b/src/visual/ColorTheme.cpp index 0fadadf9..8cf73bc3 100644 --- a/src/visual/ColorTheme.cpp +++ b/src/visual/ColorTheme.cpp @@ -20,6 +20,7 @@ int ThemeMgr::getTheme() { ThemeMgr::ThemeMgr() { themes[COLOR_THEME_DEFAULT] = new DefaultColorTheme; + themes[COLOR_THEME_DEFAULT_JET] = new DefaultColorThemeJet; themes[COLOR_THEME_BW] = new BlackAndWhiteColorTheme; themes[COLOR_THEME_SHARP] = new SharpColorTheme; themes[COLOR_THEME_RAD] = new RadColorTheme; @@ -47,14 +48,6 @@ DefaultColorTheme::DefaultColorTheme() { waterfallGradient.addColors(turbo_srgb_floats); - /* Original DefaultColorTheme: - waterfallGradient.addColor(GradientColor(0, 0, 0)); - waterfallGradient.addColor(GradientColor(0, 0, 1.0)); - waterfallGradient.addColor(GradientColor(0, 1.0, 0)); - waterfallGradient.addColor(GradientColor(1.0, 1.0, 0)); - waterfallGradient.addColor(GradientColor(1.0, 0.2f, 0.0)); - */ - waterfallGradient.generate(256); waterfallHighlight = RGBA4f(1, 1, 1); waterfallNew = RGBA4f(0, 1, 0); @@ -79,6 +72,22 @@ DefaultColorTheme::DefaultColorTheme() { generalBackground = RGBA4f(0.1f, 0.1f, 0.1f); } +DefaultColorThemeJet::DefaultColorThemeJet() +{ + /* This is the original DefaultColorTheme: + waterfallGradient.addColor(GradientColor(0, 0, 0)); + waterfallGradient.addColor(GradientColor(0, 0, 1.0)); + waterfallGradient.addColor(GradientColor(0, 1.0, 0)); + waterfallGradient.addColor(GradientColor(1.0, 1.0, 0)); + waterfallGradient.addColor(GradientColor(1.0, 0.2f, 0.0)); + */ + name = "DefaultJet"; + // Original DefaultColorTheme of CubicSDR 0.25: + waterfallGradient.clear(); + waterfallGradient.addColors({ {0, 0, 0}, {0, 0, 1.0}, {0, 1.0, 0}, {1.0, 1.0, 0},{1.0, 0.2f, 0.0}}); + waterfallGradient.generate(256); +} + RadarColorTheme::RadarColorTheme() { name = "Radar"; diff --git a/src/visual/ColorTheme.h b/src/visual/ColorTheme.h index aac98a83..bb5bce76 100644 --- a/src/visual/ColorTheme.h +++ b/src/visual/ColorTheme.h @@ -11,13 +11,14 @@ #include #define COLOR_THEME_DEFAULT 0 -#define COLOR_THEME_BW 1 -#define COLOR_THEME_SHARP 2 -#define COLOR_THEME_RAD 3 -#define COLOR_THEME_TOUCH 4 -#define COLOR_THEME_HD 5 -#define COLOR_THEME_RADAR 6 -#define COLOR_THEME_MAX 7 +#define COLOR_THEME_DEFAULT_JET 1 +#define COLOR_THEME_BW 2 +#define COLOR_THEME_SHARP 3 +#define COLOR_THEME_RAD 4 +#define COLOR_THEME_TOUCH 5 +#define COLOR_THEME_HD 6 +#define COLOR_THEME_RADAR 7 +#define COLOR_THEME_MAX 8 class RGBA4f { public: @@ -101,6 +102,11 @@ class DefaultColorTheme: public ColorTheme { DefaultColorTheme(); }; +class DefaultColorThemeJet : public DefaultColorTheme { +public: + DefaultColorThemeJet(); +}; + class BlackAndWhiteColorTheme: public ColorTheme { public: BlackAndWhiteColorTheme(); From df37816ae2d357aa66b85ba838cca760ce9e0bb6 Mon Sep 17 00:00:00 2001 From: vsonnier Date: Thu, 19 Sep 2019 07:27:30 +0200 Subject: [PATCH 3/3] Oups duplicate IDs for widgets is wrong --- src/AppFrame.h | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/src/AppFrame.h b/src/AppFrame.h index 479e888f..6dde7de6 100644 --- a/src/AppFrame.h +++ b/src/AppFrame.h @@ -337,16 +337,16 @@ class AppFrame: public wxFrame { #define wxID_VIS_SPLITTER 2051 #define wxID_BM_SPLITTER 2052 -#define wxID_THEME_DEFAULT 2100 -#define wxID_THEME_DEFAULT_JET 2101 -#define wxID_THEME_SHARP 2102 -#define wxID_THEME_BW 2103 -#define wxID_THEME_RAD 2104 -#define wxID_THEME_TOUCH 2105 -#define wxID_THEME_HD 2106 -#define wxID_THEME_RADAR 2107 - -#define wxID_DISPLAY_BOOKMARKS 2107 +#define wxID_THEME_DEFAULT 2070 +#define wxID_THEME_DEFAULT_JET 2071 +#define wxID_THEME_SHARP 2072 +#define wxID_THEME_BW 2073 +#define wxID_THEME_RAD 2074 +#define wxID_THEME_TOUCH 2075 +#define wxID_THEME_HD 2076 +#define wxID_THEME_RADAR 2077 + +#define wxID_DISPLAY_BOOKMARKS 2100 #define wxID_BANDWIDTH_BASE 2150 #define wxID_BANDWIDTH_MANUAL_DIALOG 2199