commit 83ce2f463e60f25d363d104bd1026d534704e09d
parent 64180151569adff31c012819e42cb8ae42a74a78
Author: dsp56300 <dsp56300@users.noreply.github.com>
Date: Sun, 20 Mar 2022 02:15:45 +0100
support disable/enable with alpha, defined by custom properties
Diffstat:
4 files changed, 25 insertions(+), 7 deletions(-)
diff --git a/source/jucePlugin/ui3/FxPage.cpp b/source/jucePlugin/ui3/FxPage.cpp
@@ -44,7 +44,7 @@ namespace genericVirusUI
const bool isReverb = (value > 1 && value < 5);
- m_delayContainer->setVisible(!isReverb);
- m_reverbContainer->setVisible(isReverb);
+ VirusEditor::setEnabled(*m_delayContainer, !isReverb);
+ VirusEditor::setEnabled(*m_reverbContainer, isReverb);
}
}
diff --git a/source/jucePlugin/ui3/Parts.cpp b/source/jucePlugin/ui3/Parts.cpp
@@ -145,15 +145,15 @@ namespace genericVirusUI
{
const bool visible = multiMode || !i;
- m_partSelect[i]->setVisible(visible);
- m_partPan[i]->setVisible(visible);
- m_partVolume[i]->setVisible(visible);
+ VirusEditor::setEnabled(*m_partSelect[i], visible);
+ VirusEditor::setEnabled(*m_partPan[i], visible);
+ VirusEditor::setEnabled(*m_partVolume[i], visible);
if(i < m_presetPrev.size())
- m_presetPrev[i]->setVisible(visible);
+ VirusEditor::setEnabled(*m_presetPrev[i], visible);
if(i < m_presetNext.size())
- m_presetNext[i]->setVisible(visible);
+ VirusEditor::setEnabled(*m_presetNext[i], visible);
m_presetName[i]->setVisible(visible);
}
diff --git a/source/jucePlugin/ui3/VirusEditor.cpp b/source/jucePlugin/ui3/VirusEditor.cpp
@@ -101,6 +101,21 @@ namespace genericVirusUI
return m_processor.getController();
}
+ void VirusEditor::setEnabled(juce::Component& _component, bool _enable)
+ {
+ if(_component.getProperties().contains("disabledAlpha"))
+ {
+ float a = _component.getProperties()["disabledAlpha"];
+
+ _component.setAlpha(_enable ? 1.0f : a);
+ _component.setEnabled(_enable);
+ }
+ else
+ {
+ _component.setVisible(_enable);
+ }
+ }
+
const char* VirusEditor::getResourceByFilename(const std::string& _name, uint32_t& _dataSize)
{
for(size_t i=0; i<BinaryData::namedResourceListSize; ++i)
diff --git a/source/jucePlugin/ui3/VirusEditor.h b/source/jucePlugin/ui3/VirusEditor.h
@@ -24,6 +24,9 @@ namespace genericVirusUI
VirusParameterBinding& getParameterBinding() const { return m_parameterBinding; }
Virus::Controller& getController() const;
+
+ static void setEnabled(juce::Component& _component, bool _enable);
+
private:
const char* getResourceByFilename(const std::string& _name, uint32_t& _dataSize) override;
int getParameterIndexByName(const std::string& _name) override;