UI: set CC knobs theme colors

This commit is contained in:
redtide 2021-04-12 19:01:33 +02:00
parent 327cf9332c
commit 8c09edeef1
5 changed files with 26 additions and 12 deletions

View file

@ -8,13 +8,15 @@
<color name="highlightedText">#fd9800</color>
<color name="titleBoxText">#ffffff</color>
<color name="titleBoxBackground">#2e3436</color>
<color name="icon">#000000</color>
<color name="iconHighlight">#fd9800</color>
<color name="valueText">#ffffff</color>
<color name="valueBackground">#2e3436</color>
<color name="knobActiveTrack">#00b62a</color>
<color name="icon">#000000</color>
<color name="iconHighlight">#fd9800</color>
<color name="knobActiveTrack">#006b0b</color>
<color name="knobInactiveTrack">#303030</color>
<color name="knobLineIndicator">#000000</color>
<color name="knobText">#000000</color>
<color name="knobLabelText">#ffffff</color>
</palette>
<palette name="inverted">
<color name="boxBackground">#2e3436</color>
@ -23,12 +25,14 @@
<color name="highlightedText">#fd9800</color>
<color name="titleBoxText">#000000</color>
<color name="titleBoxBackground">#babdb6</color>
<color name="icon">#b2b2b2</color>
<color name="iconHighlight">#fd9800</color>
<color name="valueText">#000000</color>
<color name="valueBackground">#9a9a9a</color>
<color name="knobActiveTrack">#00b62a</color>
<color name="icon">#b2b2b2</color>
<color name="iconHighlight">#fd9800</color>
<color name="knobActiveTrack">#006b0b</color>
<color name="knobInactiveTrack">#606060</color>
<color name="knobLineIndicator">#ffffff</color>
<color name="knobText">#ffffff</color>
<color name="knobLabelText">#ffffff</color>
</palette>
</sfizz-theme>

View file

@ -604,7 +604,6 @@ void Editor::Impl::createFrameContents()
backgroundBitmap_ = background;
{
// Try to load the Default theme from disk or hardcoded one as fallback
theme = new Theme;
theme_.reset(theme);
@ -876,12 +875,16 @@ void Editor::Impl::createFrameContents()
box->setNameLabelText(label);
box->setNameLabelFont(font);
box->setKnobFont(font);
box->setCCLabelText(label);
box->setCCLabelFont(font);
OnThemeChanged.push_back([box, palette]() {
box->setNameLabelFontColor(palette->text);
box->setCCLabelFontColor(palette->text);
box->setKnobFontColor(palette->text);
box->setNameLabelFontColor(palette->knobText);
box->setCCLabelFontColor(palette->knobLabelText);
box->setCCLabelBackColor(palette->knobActiveTrack);
box->setKnobFontColor(palette->knobText);
box->setKnobLineIndicatorColor(palette->knobLineIndicator);
box->setKnobActiveTrackColor(palette->knobActiveTrack);
box->setKnobInactiveTrackColor(palette->knobInactiveTrack);
});
box->setValueToStringFunction([](float value, std::string& text) -> bool {
text = std::to_string(std::lround(value * 127));
@ -1902,7 +1905,7 @@ void Editor::Impl::valueChanged(CControl* ctl)
{
currentThemeName_ = Theme::getAvailableNames()[int(value)];
Theme::storeCurrentName(currentThemeName_);
// TODO: live reload theme
theme_->load(currentThemeName_);
}
break;

View file

@ -264,6 +264,9 @@ public:
void setCCLabelFontColor(CColor color) { ccLabel_->setFontColor(color); ccLabel_->invalid(); }
CColor getCCLabelFontColor() const { return ccLabel_->getFontColor(); }
void setCCLabelBackColor(CColor color) { ccLabel_->setBackColor(color); ccLabel_->invalid(); }
CColor getCCLabelBackColor() const { return ccLabel_->getBackColor(); }
void setKnobActiveTrackColor(CColor color) { knob_->setActiveTrackColor(color); knob_->invalid(); }
CColor getKnobActiveTrackColor() const { return knob_->getActiveTrackColor(); }

View file

@ -154,7 +154,9 @@ CColor* Theme::getColorFromName(absl::string_view name, bool fromInvertedPalette
PALETTE_COLOR_CASE(inactiveText);
PALETTE_COLOR_CASE(knobActiveTrack);
PALETTE_COLOR_CASE(knobInactiveTrack);
PALETTE_COLOR_CASE(knobLabelText);
PALETTE_COLOR_CASE(knobLineIndicator);
PALETTE_COLOR_CASE(knobText);
PALETTE_COLOR_CASE(text);
PALETTE_COLOR_CASE(titleBoxBackground);
PALETTE_COLOR_CASE(titleBoxText);

View file

@ -29,6 +29,8 @@ struct Palette {
CColor knobActiveTrack;
CColor knobInactiveTrack;
CColor knobLineIndicator;
CColor knobText;
CColor knobLabelText;
};
struct Theme {
@ -58,7 +60,7 @@ struct Theme {
static std::string loadCurrentName();
static const std::vector<std::string>& getAvailableNames();
CColor* getColorFromName(absl::string_view name, bool fromInvertedPalette);
CColor* getColorFromName(absl::string_view name, bool fromInvertedPalette = false);
private:
static std::vector<std::string> extractAvailableNames();