| @@ -15,79 +15,7 @@ void loadThemeAndContrastFromDefault(int* panelTheme, float* panelContrast) { | |||
| } | |||
| void createPanelThemeMenu(ui::Menu* menu, int* panelTheme, float* panelContrast, SvgPanel* mainPanel) { | |||
| struct PanelThemeItem : MenuItem { | |||
| int* panelTheme = NULL; | |||
| float* panelContrast = NULL; | |||
| SvgPanel* mainPanel; | |||
| Menu *createChildMenu() override { | |||
| struct PanelThemeDarkItem : MenuItem { | |||
| int* panelTheme = NULL; | |||
| SvgPanel* mainPanel; | |||
| void onAction(const event::Action &e) override { | |||
| *panelTheme ^= 0x1; | |||
| mainPanel->fb->dirty = true; | |||
| e.unconsume(); | |||
| } | |||
| }; | |||
| struct PanelContrastQuantity : Quantity { | |||
| float* panelContrast; | |||
| SvgPanel* mainPanel; | |||
| PanelContrastQuantity(float* _panelContrast, SvgPanel* _mainPanel) { | |||
| panelContrast = _panelContrast; | |||
| mainPanel = _mainPanel; | |||
| } | |||
| void setValue(float value) override { | |||
| *panelContrast = math::clamp(value, getMinValue(), getMaxValue()); | |||
| mainPanel->fb->dirty = true; | |||
| } | |||
| float getValue() override { | |||
| return *panelContrast; | |||
| } | |||
| float getMinValue() override {return panelContrastMin;} | |||
| float getMaxValue() override {return panelContrastMax;} | |||
| float getDefaultValue() override {return panelContrastDefault;} | |||
| float getDisplayValue() override {return *panelContrast;} | |||
| std::string getDisplayValueString() override { | |||
| return string::f("%.1f", rescale(*panelContrast, getMinValue(), getMaxValue(), 0.0f, 100.0f)); | |||
| } | |||
| void setDisplayValue(float displayValue) override {setValue(displayValue);} | |||
| std::string getLabel() override {return "Panel contrast";} | |||
| std::string getUnit() override {return "";} | |||
| }; | |||
| struct PanelContrastSlider : ui::Slider { | |||
| PanelContrastSlider(float* panelContrast, SvgPanel* mainPanel) { | |||
| quantity = new PanelContrastQuantity(panelContrast, mainPanel); | |||
| } | |||
| ~PanelContrastSlider() { | |||
| delete quantity; | |||
| } | |||
| }; | |||
| Menu *menu = new Menu; | |||
| PanelThemeDarkItem *ptdItem = createMenuItem<PanelThemeDarkItem>("Dark", CHECKMARK(*panelTheme)); | |||
| ptdItem->panelTheme = panelTheme; | |||
| ptdItem->mainPanel = mainPanel; | |||
| menu->addChild(ptdItem); | |||
| PanelContrastSlider *cSlider = new PanelContrastSlider(panelContrast, mainPanel); | |||
| cSlider->box.size.x = 200.0f; | |||
| menu->addChild(cSlider); | |||
| return menu; | |||
| } | |||
| }; | |||
| PanelThemeItem *ptItem = createMenuItem<PanelThemeItem>("Panel theme", RIGHT_ARROW); | |||
| ptItem->panelTheme = panelTheme; | |||
| ptItem->panelContrast = panelContrast; | |||
| ptItem->mainPanel = mainPanel; | |||
| menu->addChild(ptItem); | |||
| } | |||
| void createPanelThemeMenu(ui::Menu*, int*, float*, SvgPanel*) {} | |||
| void PanelBaseWidget::draw(const DrawArgs& args) { | |||
| @@ -97,10 +25,7 @@ void PanelBaseWidget::draw(const DrawArgs& args) { | |||
| baseColor = nvgRGB(*panelContrastSrc, *panelContrastSrc, *panelContrastSrc); | |||
| } | |||
| else { | |||
| int themeDefault; | |||
| float contrastDefault; | |||
| loadThemeAndContrastFromDefault(&themeDefault, &contrastDefault); | |||
| baseColor = nvgRGB(contrastDefault, contrastDefault, contrastDefault); | |||
| baseColor = nvgRGB(panelContrastDefault, panelContrastDefault, panelContrastDefault); | |||
| } | |||
| nvgFillColor(args.vg, baseColor); | |||
| nvgRect(args.vg, 0, 0, box.size.x, box.size.y); | |||
| @@ -111,7 +36,7 @@ void PanelBaseWidget::draw(const DrawArgs& args) { | |||
| void InverterWidget::draw(const DrawArgs& args) { | |||
| TransparentWidget::draw(args); | |||
| if (isDark(panelThemeSrc)) { | |||
| { | |||
| // nvgSave(args.vg); | |||
| nvgBeginPath(args.vg); | |||
| nvgFillColor(args.vg, SCHEME_WHITE);// this is the source, the current framebuffer is the dest | |||