2023-07-02 17:47:04 +00:00
|
|
|
#pragma once
|
|
|
|
#include <JuceHeader.h>
|
|
|
|
#include "../PluginProcessor.h"
|
|
|
|
#include "../audio/Effect.h"
|
2023-07-17 13:37:36 +00:00
|
|
|
#include "LabelledTextBox.h"
|
2023-07-02 17:47:04 +00:00
|
|
|
|
|
|
|
|
|
|
|
class EffectComponent : public juce::Component {
|
|
|
|
public:
|
2023-07-17 13:37:36 +00:00
|
|
|
EffectComponent(Effect& effect, int index);
|
|
|
|
EffectComponent(Effect& effect, int index, bool checkboxVisible);
|
2023-07-16 19:54:41 +00:00
|
|
|
EffectComponent(Effect& effect);
|
|
|
|
EffectComponent(Effect& effect, bool checkboxVisible);
|
2023-07-02 17:47:04 +00:00
|
|
|
~EffectComponent();
|
|
|
|
|
|
|
|
void resized() override;
|
|
|
|
void paint(juce::Graphics& g) override;
|
2023-07-17 13:37:36 +00:00
|
|
|
void mouseDown(const juce::MouseEvent& event) override;
|
2023-07-02 17:47:04 +00:00
|
|
|
|
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;
|
2023-07-17 13:37:36 +00:00
|
|
|
Effect& effect;
|
|
|
|
int index;
|
2023-07-02 17:47:04 +00:00
|
|
|
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
|
|
|
|
2023-07-17 13:37:36 +00:00
|
|
|
juce::Label popupLabel;
|
|
|
|
LabelledTextBox min{"Min"};
|
|
|
|
LabelledTextBox max{"Max"};
|
|
|
|
|
2023-07-02 17:47:04 +00:00
|
|
|
JUCE_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR(EffectComponent)
|
|
|
|
};
|