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:
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 {