This commit is contained in:
Maurice Grönwoldt 2020-06-14 21:14:28 +02:00
commit a27c62f062
49 changed files with 1171 additions and 385 deletions

View file

@ -4,6 +4,7 @@
#include "Theme.h"
#include "ThemePresets.cpp"
#include "../../Core/Config.h"
Theme::Theme (std::shared_ptr<PropertiesFile> file)
{
@ -12,8 +13,8 @@ Theme::Theme (std::shared_ptr<PropertiesFile> file)
Theme::~Theme ()
{
m_colours.clear ();
m_configFile.reset ();
m_colours.clear();
m_configFile.reset();
}
void Theme::setColour (ThemeColour index, Colour* colour)
@ -28,37 +29,37 @@ void Theme::setColour (ThemeColour index, Colour* colour)
{
m_colours[index] = colour;
}
m_configFile->setValue (ThemeColourToString (index), colour->toString ());
m_configFile->save ();
m_configFile->setValue(ThemeColourToString(index), colour->toString());
m_configFile->setNeedsToBeSaved(true);
}
void Theme::init ()
{
getColourFromConfig (ThemeColour::bg);
getColourFromConfig (ThemeColour::bg_two);
getColourFromConfig (ThemeColour::accent);
getColourFromConfig (ThemeColour::accent_two);
getColourFromConfig (ThemeColour::warning);
getColourFromConfig (ThemeColour::clip);
getColourFromConfig (ThemeColour::lcd_bg);
getColourFromConfig (ThemeColour::lcd);
getColourFromConfig(ThemeColour::bg);
getColourFromConfig(ThemeColour::bg_two);
getColourFromConfig(ThemeColour::accent);
getColourFromConfig(ThemeColour::accent_two);
getColourFromConfig(ThemeColour::warning);
getColourFromConfig(ThemeColour::clip);
getColourFromConfig(ThemeColour::lcd_bg);
getColourFromConfig(ThemeColour::lcd);
}
void Theme::getColourFromConfig (ThemeColour index)
{
std::string key = ThemeColourToString (index);
if (m_configFile->containsKey (key))
std::string key = ThemeColourToString(index);
if (m_configFile->containsKey(key))
{
auto baseColour = Colour::fromString (m_configFile->getValue (key));
auto* colour = new Colour (baseColour.getRed (), baseColour.getGreen (), baseColour.getBlue ());
auto baseColour = Colour::fromString(m_configFile->getValue(key));
auto* colour = new Colour(baseColour.getRed(), baseColour.getGreen(), baseColour.getBlue());
delete m_colours[index];
m_colours[index] = colour;
}
else
{
// should only trigger if config is broken or empty :)
setLEDTheme (this);
setLEDTheme(this);
}
}
@ -68,7 +69,7 @@ Colour Theme::getColour (ThemeColour index)
{
return *m_colours[index];
}
return Colour (255, 255, 255);
return Colour(255, 255, 255);
}
void Theme::setColourThemeById (int id)
@ -76,17 +77,38 @@ void Theme::setColourThemeById (int id)
switch (id)
{
case 1:
setLEDTheme (this);
setLEDTheme(this);
break;
case 2:
setOrangeDreamTheme (this);
setOrangeDreamTheme(this);
break;
case 3:
setBloodTheme (this);
setBloodTheme(this);
break;
case 4:
setOceanTheme (this);
setOceanTheme(this);
default:
break;
}
}
void Theme::setDefault (const std::string& value)
{
if (value == "LED")
{
setLEDTheme(this);
}
if (value == "Blood")
{
setBloodTheme(this);
}
if (value == "Orange Dream")
{
setOrangeDreamTheme(this);
}
if (value == "Ocean")
{
setOceanTheme(this);
}
Config::getInstance()->repaintAll();
}

View file

@ -21,6 +21,7 @@ public:
void setColour (ThemeColour index, Colour* colour);
void setColourThemeById (int id);
void init ();
void setDefault(const std::string& value);
void getColourFromConfig (ThemeColour index);
Colour getColour (ThemeColour index);
protected:

View file

@ -1,5 +1,7 @@
#include "Theme.h"
#ifndef VENO_THEME_PRESETS
#define VENO_THEME_PRESETS
/*
* this file holds function that read some presets
* in the current Theme class
@ -11,50 +13,50 @@
void setLEDTheme (Theme* theme)
{
theme->setColour (ThemeColour::bg, new Colour (41, 47, 54));
theme->setColour (ThemeColour::bg_two, new Colour (217, 217, 217));
theme->setColour (ThemeColour::accent, new Colour (169, 208, 142));
theme->setColour (ThemeColour::accent_two, new Colour (139, 171, 117));
theme->setColour (ThemeColour::clip, new Colour (255, 23, 68));
theme->setColour (ThemeColour::warning, new Colour (255, 143, 0));
theme->setColour (ThemeColour::lcd_bg, new Colour (21, 21, 21));
theme->setColour (ThemeColour::lcd, new Colour (169, 208, 142));
theme->setColour(ThemeColour::bg, new Colour(41, 47, 54));
theme->setColour(ThemeColour::bg_two, new Colour(217, 217, 217));
theme->setColour(ThemeColour::accent, new Colour(169, 208, 142));
theme->setColour(ThemeColour::accent_two, new Colour(139, 171, 117));
theme->setColour(ThemeColour::clip, new Colour(255, 23, 68));
theme->setColour(ThemeColour::warning, new Colour(255, 143, 0));
theme->setColour(ThemeColour::lcd_bg, new Colour(21, 21, 21));
theme->setColour(ThemeColour::lcd, new Colour(169, 208, 142));
}
void setBloodTheme (Theme* theme)
{
theme->setColour (ThemeColour::bg, new Colour (41, 47, 54));
theme->setColour (ThemeColour::bg_two, new Colour (64, 67, 78));
theme->setColour (ThemeColour::accent, new Colour (180, 38, 50));
theme->setColour (ThemeColour::accent_two, new Colour (115, 47, 64));
theme->setColour (ThemeColour::clip, new Colour (255, 23, 68));
theme->setColour (ThemeColour::warning, new Colour (255, 143, 0));
theme->setColour (ThemeColour::lcd_bg, new Colour (0, 0, 0));
theme->setColour (ThemeColour::lcd, new Colour (180, 38, 78));
theme->setColour(ThemeColour::bg, new Colour(41, 47, 54));
theme->setColour(ThemeColour::bg_two, new Colour(64, 67, 78));
theme->setColour(ThemeColour::accent, new Colour(180, 38, 50));
theme->setColour(ThemeColour::accent_two, new Colour(115, 47, 64));
theme->setColour(ThemeColour::clip, new Colour(255, 23, 68));
theme->setColour(ThemeColour::warning, new Colour(255, 143, 0));
theme->setColour(ThemeColour::lcd_bg, new Colour(0, 0, 0));
theme->setColour(ThemeColour::lcd, new Colour(180, 38, 78));
}
void setOrangeDreamTheme (Theme* theme)
{
theme->setColour (ThemeColour::bg, new Colour (21, 21, 21));
theme->setColour (ThemeColour::bg_two, new Colour (42, 42, 42));
theme->setColour (ThemeColour::accent, new Colour (255, 160, 0));
theme->setColour (ThemeColour::accent_two, new Colour (255, 11, 0));
theme->setColour (ThemeColour::clip, new Colour (255, 23, 68));
theme->setColour (ThemeColour::warning, new Colour (255, 143, 0));
theme->setColour (ThemeColour::lcd_bg, new Colour (33, 33, 33));
theme->setColour (ThemeColour::lcd, new Colour (255, 160, 0));
theme->setColour(ThemeColour::bg, new Colour(21, 21, 21));
theme->setColour(ThemeColour::bg_two, new Colour(42, 42, 42));
theme->setColour(ThemeColour::accent, new Colour(255, 160, 0));
theme->setColour(ThemeColour::accent_two, new Colour(255, 11, 0));
theme->setColour(ThemeColour::clip, new Colour(255, 23, 68));
theme->setColour(ThemeColour::warning, new Colour(255, 143, 0));
theme->setColour(ThemeColour::lcd_bg, new Colour(33, 33, 33));
theme->setColour(ThemeColour::lcd, new Colour(255, 160, 0));
}
void setOceanTheme (Theme* theme)
{
theme->setColour (ThemeColour::bg, new Colour (55, 63, 81));
theme->setColour (ThemeColour::bg_two, new Colour (64, 67, 78));
theme->setColour (ThemeColour::accent, new Colour (0, 141, 213));
theme->setColour (ThemeColour::accent_two, new Colour (0, 129, 194));
theme->setColour (ThemeColour::clip, new Colour (255, 23, 68));
theme->setColour (ThemeColour::warning, new Colour (255, 143, 0));
theme->setColour (ThemeColour::lcd_bg, new Colour (21, 21, 21));
theme->setColour (ThemeColour::lcd, new Colour (0, 129, 194));
theme->setColour(ThemeColour::bg, new Colour(55, 63, 81));
theme->setColour(ThemeColour::bg_two, new Colour(64, 67, 78));
theme->setColour(ThemeColour::accent, new Colour(0, 141, 213));
theme->setColour(ThemeColour::accent_two, new Colour(0, 129, 194));
theme->setColour(ThemeColour::clip, new Colour(255, 23, 68));
theme->setColour(ThemeColour::warning, new Colour(255, 143, 0));
theme->setColour(ThemeColour::lcd_bg, new Colour(21, 21, 21));
theme->setColour(ThemeColour::lcd, new Colour(0, 129, 194));
}
std::string ThemeColourToString (ThemeColour index)
@ -80,4 +82,6 @@ std::string ThemeColourToString (ThemeColour index)
default:
return "";
}
}
}
#endif