BogaudioModules

BogaudioModules for VCV Rack
Log | Files | Refs | README | LICENSE

commit 5784583458366edad1e8bbd3a87dea41d367a19d
parent b2bc0d552d39c047d36eaaf34c382f608b73ab2b
Author: Matt Demanett <matt@demanett.net>
Date:   Mon, 20 May 2019 23:59:33 -0400

v1: fix background swap on LFOs.

Diffstat:
Msrc/EightFO.cpp | 6+-----
Msrc/LFO.cpp | 6+-----
Msrc/LLFO.cpp | 8++++----
Msrc/lfo_base.hpp | 15+++++++++++----
4 files changed, 17 insertions(+), 18 deletions(-)

diff --git a/src/EightFO.cpp b/src/EightFO.cpp @@ -165,14 +165,10 @@ struct EightFOWidget : LFOBaseWidget { EightFOWidget(EightFO* module) : LFOBaseWidget( module, - new SvgPanel(), + Vec(RACK_GRID_WIDTH * hp, RACK_GRID_HEIGHT), "res/EightFO-classic.svg", "res/EightFO.svg" ) { - box.size = Vec(RACK_GRID_WIDTH * hp, RACK_GRID_HEIGHT); - _panel->box.size = box.size; - addChild(_panel); - addChild(createWidget<ScrewSilver>(Vec(15, 0))); addChild(createWidget<ScrewSilver>(Vec(box.size.x - 30, 0))); addChild(createWidget<ScrewSilver>(Vec(15, 365))); diff --git a/src/LFO.cpp b/src/LFO.cpp @@ -107,14 +107,10 @@ struct LFOWidget : LFOBaseWidget { LFOWidget(LFO* module) : LFOBaseWidget( module, - new SvgPanel(), + Vec(RACK_GRID_WIDTH * hp, RACK_GRID_HEIGHT), "res/LFO-classic.svg", "res/LFO.svg" ) { - box.size = Vec(RACK_GRID_WIDTH * hp, RACK_GRID_HEIGHT); - _panel->box.size = box.size; - addChild(_panel); - addChild(createWidget<ScrewSilver>(Vec(0, 0))); addChild(createWidget<ScrewSilver>(Vec(box.size.x - 15, 0))); addChild(createWidget<ScrewSilver>(Vec(0, 365))); diff --git a/src/LLFO.cpp b/src/LLFO.cpp @@ -84,13 +84,13 @@ struct LLFOWidget : LFOBaseWidget { LLFOWidget(LLFO* module) : LFOBaseWidget( module, - new SvgPanel(), + Vec(RACK_GRID_WIDTH * hp, RACK_GRID_HEIGHT), "res/LLFO-classic.svg", "res/LLFO.svg" ) { - box.size = Vec(RACK_GRID_WIDTH * hp, RACK_GRID_HEIGHT); - _panel->box.size = box.size; - addChild(_panel); + // box.size = + // _panel->box.size = box.size; + // addChild(_panel); addChild(createWidget<ScrewSilver>(Vec(0, 0))); addChild(createWidget<ScrewSilver>(Vec(box.size.x - 15, 365))); diff --git a/src/lfo_base.hpp b/src/lfo_base.hpp @@ -59,23 +59,23 @@ struct PitchModeMenuItem : MenuItem { struct LFOBaseWidget : ModuleWidget, PitchModeListener { LFOBase* _module; - SvgPanel* _panel; + SvgPanel* _panel = NULL; const char* _classicSvgName; const char* _compliantSvgName; SvgKnob* _frequencyKnob = NULL; LFOBaseWidget( LFOBase* module, - SvgPanel* panel, + Vec size, const char* classicSvgName, const char* compliantSvgName ) : _module(module) - , _panel(panel) , _classicSvgName(classicSvgName) , _compliantSvgName(compliantSvgName) { setModule(module); + box.size = size; setSvg(); if (_module) { _module->setPitchModeListener(this); @@ -83,6 +83,14 @@ struct LFOBaseWidget : ModuleWidget, PitchModeListener { } void setSvg() { + if (_panel) { + removeChild(_panel); + delete _panel; + } + _panel = new SvgPanel(); + _panel->box.size = box.size; + addChildBottom(_panel); + if (_module && !_module->isCompliantPitchMode()) { _panel->setBackground(APP->window->loadSvg(asset::plugin(pluginInstance, _classicSvgName))); if (_frequencyKnob && _frequencyKnob->paramQuantity) { @@ -97,7 +105,6 @@ struct LFOBaseWidget : ModuleWidget, PitchModeListener { _frequencyKnob->paramQuantity->maxValue = 8.0f; } } - _panel->dirty = true; } void pitchModeChanged() override {