WIP
This commit is contained in:
parent
d735c1d076
commit
26a2935e1c
52 changed files with 1513 additions and 107 deletions
|
|
@ -29,7 +29,6 @@ void Theme::setColour(ThemeColour index, Colour *colour) {
|
|||
}
|
||||
|
||||
void Theme::init() {
|
||||
setLEDTheme(this);
|
||||
getColourFromConfig(ThemeColour::bg);
|
||||
getColourFromConfig(ThemeColour::bg_two);
|
||||
getColourFromConfig(ThemeColour::accent);
|
||||
|
|
@ -45,6 +44,35 @@ void Theme::getColourFromConfig(ThemeColour index) {
|
|||
if (m_configFile->containsKey(key)) {
|
||||
auto baseColour = Colour::fromString(m_configFile->getValue(key));
|
||||
auto *colour = new Colour(baseColour.getRed(), baseColour.getGreen(), baseColour.getBlue());
|
||||
setColour(index, colour);
|
||||
delete m_colours[index];
|
||||
m_colours[index] = colour;
|
||||
} else {
|
||||
// should only trigger if config is broken or empty :)
|
||||
setLEDTheme(this);
|
||||
}
|
||||
}
|
||||
|
||||
Colour Theme::getColour(ThemeColour index) {
|
||||
if (m_colours[index] != nullptr) {
|
||||
return *m_colours[index];
|
||||
}
|
||||
return Colour(255, 255, 255);
|
||||
}
|
||||
|
||||
void Theme::setColourThemeById(int id) {
|
||||
switch (id) {
|
||||
case 1:
|
||||
setLEDTheme(this);
|
||||
break;
|
||||
case 2:
|
||||
setOrangeDreamTheme(this);
|
||||
break;
|
||||
case 3:
|
||||
setBloodTheme(this);
|
||||
break;
|
||||
case 4:
|
||||
setOceanTheme(this);
|
||||
default:
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -15,12 +15,14 @@ enum class ThemeColour {
|
|||
class Theme {
|
||||
private:
|
||||
public:
|
||||
Theme(std::shared_ptr<PropertiesFile> file);
|
||||
explicit Theme(std::shared_ptr<PropertiesFile> file);
|
||||
~Theme();
|
||||
|
||||
void setColour(ThemeColour index, Colour *colour);
|
||||
void setColourThemeById(int id);
|
||||
void init();
|
||||
void getColourFromConfig(ThemeColour index);
|
||||
Colour getColour(ThemeColour index);
|
||||
protected:
|
||||
std::map<ThemeColour, Colour*> m_colours;
|
||||
std::shared_ptr<PropertiesFile> m_configFile;
|
||||
|
|
|
|||
|
|
@ -20,18 +20,59 @@ void setLEDTheme(Theme *theme) {
|
|||
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));
|
||||
}
|
||||
|
||||
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));
|
||||
}
|
||||
|
||||
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));
|
||||
}
|
||||
|
||||
|
||||
std::string ThemeColourToString(ThemeColour index) {
|
||||
switch (index)
|
||||
{
|
||||
case ThemeColour::bg: return "colour_bg";
|
||||
case ThemeColour::bg_two: return "colour_bg_two";
|
||||
case ThemeColour::accent: return "colour_accent";
|
||||
case ThemeColour::accent_two: return "colour_accent_two";
|
||||
case ThemeColour::clip: return "colour_clip";
|
||||
case ThemeColour::warning: return "colour_warning";
|
||||
case ThemeColour::lcd_bg: return "colour_lcd_bg";
|
||||
case ThemeColour::lcd: return "colour_lcd";
|
||||
default: return "";
|
||||
switch (index) {
|
||||
case ThemeColour::bg:
|
||||
return "colour_bg";
|
||||
case ThemeColour::bg_two:
|
||||
return "colour_bg_two";
|
||||
case ThemeColour::accent:
|
||||
return "colour_accent";
|
||||
case ThemeColour::accent_two:
|
||||
return "colour_accent_two";
|
||||
case ThemeColour::clip:
|
||||
return "colour_clip";
|
||||
case ThemeColour::warning:
|
||||
return "colour_warning";
|
||||
case ThemeColour::lcd_bg:
|
||||
return "colour_lcd_bg";
|
||||
case ThemeColour::lcd:
|
||||
return "colour_lcd";
|
||||
default:
|
||||
return "";
|
||||
}
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue