2023-07-02 17:47:04 +00:00
|
|
|
#pragma once
|
|
|
|
#include <JuceHeader.h>
|
|
|
|
#include "../PluginProcessor.h"
|
|
|
|
#include "../audio/Effect.h"
|
|
|
|
|
|
|
|
|
|
|
|
class EffectComponent : public juce::Component {
|
|
|
|
public:
|
|
|
|
EffectComponent(double min, double max, double step, double value, juce::String name, juce::String id);
|
2023-07-11 17:48:45 +00:00
|
|
|
EffectComponent(double min, double max, double step, EffectDetails details);
|
|
|
|
EffectComponent(double min, double max, double step, EffectDetails details, bool checkboxVisible);
|
2023-07-04 13:58:36 +00:00
|
|
|
EffectComponent(double min, double max, double step, Effect& effect);
|
2023-07-05 11:02:28 +00:00
|
|
|
EffectComponent(double min, double max, double step, Effect& effect, bool checkboxVisible);
|
2023-07-02 17:47:04 +00:00
|
|
|
~EffectComponent();
|
|
|
|
|
|
|
|
void resized() override;
|
|
|
|
void paint(juce::Graphics& g) override;
|
|
|
|
|
2023-07-05 11:02:28 +00:00
|
|
|
void setCheckboxVisible(bool visible);
|
2023-07-05 17:17:11 +00:00
|
|
|
void setComponent(std::shared_ptr<juce::Component> component);
|
2023-07-02 17:47:04 +00:00
|
|
|
|
|
|
|
juce::Slider slider;
|
|
|
|
juce::String id;
|
|
|
|
juce::String name;
|
|
|
|
juce::ToggleButton selected;
|
|
|
|
|
|
|
|
private:
|
2023-07-04 13:58:36 +00:00
|
|
|
void componentSetup();
|
2023-07-05 13:14:27 +00:00
|
|
|
bool checkboxVisible = true;
|
2023-07-02 17:47:04 +00:00
|
|
|
juce::Rectangle<int> textBounds;
|
2023-07-05 17:17:11 +00:00
|
|
|
std::shared_ptr<juce::Component> component;
|
2023-07-02 17:47:04 +00:00
|
|
|
|
|
|
|
JUCE_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR(EffectComponent)
|
|
|
|
};
|