controllerlink.h (1215B)
1 #pragma once 2 3 #include <string> 4 5 #include "juce_gui_basics/juce_gui_basics.h" 6 7 namespace genericUI 8 { 9 class Editor; 10 11 class ControllerLink : juce::Slider::Listener, juce::ComponentListener 12 { 13 public: 14 ControllerLink(ControllerLink&&) = delete; 15 ControllerLink(const ControllerLink&) = delete; 16 17 ControllerLink(std::string _source = std::string(), std::string _dest = std::string(), std::string _conditionParam = std::string()); 18 ~ControllerLink() override; 19 20 void create(const Editor& _editor); 21 22 void create(juce::Slider* _source, juce::Slider* _dest, juce::Button* _condition); 23 24 void operator = (const ControllerLink&) = delete; 25 void operator = (ControllerLink&&) = delete; 26 27 private: 28 void sliderValueChanged(juce::Slider* _slider) override; 29 void sliderDragStarted(juce::Slider*) override; 30 void sliderDragEnded(juce::Slider*) override; 31 32 void componentBeingDeleted(juce::Component& component) override; 33 34 const std::string m_sourceName; 35 const std::string m_destName; 36 const std::string m_conditionParam; 37 38 juce::Slider* m_source = nullptr; 39 juce::Slider* m_dest = nullptr; 40 juce::Button* m_condition = nullptr; 41 double m_lastSourceValue = 0; 42 bool m_sourceIsBeingDragged = false; 43 }; 44 }