From 16c414676424f718872dc84b5f7b7ce4a07c7175 Mon Sep 17 00:00:00 2001 From: Joseph Lenox Date: Sun, 29 Apr 2018 14:38:56 -0500 Subject: [PATCH] Stubbed out Solarized, added ColorScheme for default (needed for plater) --- src/GUI/ColorScheme.hpp | 11 ++++++ src/GUI/ColorScheme/ColorSchemeBase.hpp | 47 +++++++++++++++++++++++++ src/GUI/ColorScheme/Default.hpp | 47 +++++++++++++++++++++++++ src/GUI/ColorScheme/Solarized.hpp | 44 +++++++++++++++++++++++ src/GUI/Settings.hpp | 7 ++-- 5 files changed, 151 insertions(+), 5 deletions(-) create mode 100644 src/GUI/ColorScheme.hpp create mode 100644 src/GUI/ColorScheme/ColorSchemeBase.hpp create mode 100644 src/GUI/ColorScheme/Default.hpp create mode 100644 src/GUI/ColorScheme/Solarized.hpp diff --git a/src/GUI/ColorScheme.hpp b/src/GUI/ColorScheme.hpp new file mode 100644 index 000000000..b0410a501 --- /dev/null +++ b/src/GUI/ColorScheme.hpp @@ -0,0 +1,11 @@ +#ifndef COLORSCHEME_HPP +#define COLORSCHEME_HPP + +/// Wrapper file to make the color schemes available to using applications +/// without the circular include headaches. + +#include "ColorScheme/ColorSchemeBase.hpp" +#include "ColorScheme/Default.hpp" +#include "ColorScheme/Solarized.hpp" + +#endif diff --git a/src/GUI/ColorScheme/ColorSchemeBase.hpp b/src/GUI/ColorScheme/ColorSchemeBase.hpp new file mode 100644 index 000000000..decac8d5d --- /dev/null +++ b/src/GUI/ColorScheme/ColorSchemeBase.hpp @@ -0,0 +1,47 @@ +#ifndef COLOR_SLIC3R_HPP +#define COLOR_SLIC3R_HPP + +namespace Slic3r { namespace GUI { + +class ColorScheme { +public: + virtual const std::string name() const = 0; + virtual const bool SOLID_BACKGROUNDCOLOR() const = 0; + virtual const wxColour SELECTED_COLOR() const = 0; + virtual const wxColour HOVER_COLOR() const = 0; + virtual const wxColour TOP_COLOR() const = 0; + virtual const wxColour BOTTOM_COLOR() const = 0; + virtual const wxColour BACKGROUND_COLOR() const = 0; + virtual const wxColour GRID_COLOR() const = 0; + virtual const wxColour GROUND_COLOR() const = 0; + virtual const wxColour COLOR_CUTPLANE() const = 0; + virtual const wxColour COLOR_PARTS() const = 0; + virtual const wxColour COLOR_INFILL() const = 0; + virtual const wxColour COLOR_SUPPORT() const = 0; + virtual const wxColour COLOR_UNKNOWN() const = 0; + virtual const wxColour BED_COLOR() const = 0; + virtual const wxColour BED_GRID() const = 0; + virtual const wxColour BED_SELECTED() const = 0; + virtual const wxColour BED_OBJECTS() const = 0; + virtual const wxColour BED_INSTANCE() const = 0; + virtual const wxColour BED_DRAGGED() const = 0; + virtual const wxColour BED_CENTER() const = 0; + virtual const wxColour BED_SKIRT() const = 0; + virtual const wxColour BED_CLEARANCE() const = 0; + virtual const wxColour BACKGROUND255() const = 0; + virtual const wxColour TOOL_DARK() const = 0; + virtual const wxColour TOOL_SUPPORT() const = 0; + virtual const wxColour TOOL_INFILL() const = 0; + virtual const wxColour TOOL_STEPPERIM() const = 0; + virtual const wxColour TOOL_SHADE() const = 0; + virtual const wxColour TOOL_COLOR() const = 0; + virtual const wxColour SPLINE_L_PEN() const = 0; + virtual const wxColour SPLINE_O_PEN() const = 0; + virtual const wxColour SPLINE_I_PEN() const = 0; + virtual const wxColour SPLINE_R_PEN() const = 0; + virtual const wxColour BED_DARK() const = 0; +}; + +}} // namespace Slic3r::GUI + +#endif diff --git a/src/GUI/ColorScheme/Default.hpp b/src/GUI/ColorScheme/Default.hpp new file mode 100644 index 000000000..47fd951e6 --- /dev/null +++ b/src/GUI/ColorScheme/Default.hpp @@ -0,0 +1,47 @@ +#ifndef COLOR_DEFAULT_HPP +#define COLOR_DEFAULT_HPP + +namespace Slic3r { namespace GUI { + +class DefaultColor : public ColorScheme { +public: + const std::string name() const { return "Default"; } + const bool SOLID_BACKGROUNDCOLOR() const { return false; }; + const wxColour SELECTED_COLOR() const { return wxColour(0, 1, 0); }; + const wxColour HOVER_COLOR() const { return wxColour(0.4, 0.9, 0); }; // + +#include "ColorScheme/ColorSchemeBase.hpp" + +namespace Slic3r { namespace GUI { + +/// S O L A R I Z E +/// http://ethanschoonover.com/solarized +/// +/// Implements a colorscheme lookup of wxColors +class Solarized : public ColorScheme { +public: + const wxColour SELECTED_COLOR() { return COLOR_MAGENTA; } + const wxColour HOVER_COLOR() { return COLOR_VIOLET; } + const wxColour SUPPORT_COLOR() { return COLOR_VIOLET; } + + const wxColour BACKGROUND_COLOR() { return COLOR_BASE3; } + + +private: + const wxColour COLOR_BASE0 {wxColour(0.51373,0.58039,0.58824)}; + const wxColour COLOR_BASE00 {wxColour(0.39608,0.48235,0.51373)}; + const wxColour COLOR_BASE01 {wxColour(0.34510,0.43137,0.45882)}; + const wxColour COLOR_BASE02 {wxColour(0.02745,0.21176,0.25882)}; + const wxColour COLOR_BASE03 {wxColour(0.00000,0.16863,0.21176)}; + const wxColour COLOR_BASE1 {wxColour(0.57647,0.63137,0.63137)}; + const wxColour COLOR_BASE2 {wxColour(0.93333,0.90980,0.83529)}; + const wxColour COLOR_BASE3 {wxColour(0.99216,0.96471,0.89020)}; + const wxColour COLOR_BLUE {wxColour(0.14902,0.54510,0.82353)}; + const wxColour COLOR_CYAN {wxColour(0.16471,0.63137,0.59608)}; + const wxColour COLOR_GREEN {wxColour(0.52157,0.60000,0.00000)}; + const wxColour COLOR_MAGENTA {wxColour(0.82745,0.21176,0.50980)}; + const wxColour COLOR_ORANGE {wxColour(0.79608,0.29412,0.08627)}; + const wxColour COLOR_RED {wxColour(0.86275,0.19608,0.18431)}; + const wxColour COLOR_VIOLET {wxColour(0.42353,0.44314,0.76863)}; + const wxColour COLOR_YELLOW {wxColour(0.70980,0.53725,0.00000)}; + +}; +}} // namespace Slic3r::GUI + + +#endif // SOLARIZED_HPP diff --git a/src/GUI/Settings.hpp b/src/GUI/Settings.hpp index bc391ae87..c74383084 100644 --- a/src/GUI/Settings.hpp +++ b/src/GUI/Settings.hpp @@ -9,6 +9,7 @@ #include #include "libslic3r.h" +#include "ColorScheme.hpp" namespace Slic3r { namespace GUI { @@ -16,10 +17,6 @@ enum class PathColor { role }; -enum class ColorScheme { - solarized, slic3r -}; - enum class ReloadBehavior { all, copy, discard }; @@ -40,7 +37,7 @@ class Settings { bool hide_reload_dialog {false}; ReloadBehavior reload {ReloadBehavior::all}; - ColorScheme color {ColorScheme::slic3r}; + std::unique_ptr color {new Slic3r::GUI::DefaultColor}; PathColor color_toolpaths_by {PathColor::role}; float nudge {1.0}; //< 2D plater nudge amount in mm