PowerButton.h (1263B)
1 #ifndef POWERBUTTON_H_INCLUDED 2 #define POWERBUTTON_H_INCLUDED 3 4 #include <JuceHeader.h> 5 6 class PowerButton : public DrawableButton 7 { 8 public: 9 PowerButton(); 10 11 enum ColourIDs 12 { 13 buttonColourId, 14 buttonOnColourId, 15 }; 16 17 void mouseDown (const MouseEvent& e) override; 18 void mouseUp (const MouseEvent& e) override; 19 20 void updateColours(); 21 22 private: 23 JUCE_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR (PowerButton) 24 }; 25 26 //=============================================================== 27 class PowerButtonItem : public foleys::GuiItem 28 { 29 public: 30 FOLEYS_DECLARE_GUI_FACTORY (PowerButtonItem) 31 32 static const Identifier pOnClick; 33 34 PowerButtonItem (foleys::MagicGUIBuilder& builder, const juce::ValueTree& node); 35 36 void resized() override; 37 void update() override; 38 std::vector<foleys::SettableProperty> getSettableProperties() const override; 39 String getControlledParameterID (juce::Point<int>) override; 40 41 juce::Component* getWrappedComponent() override 42 { 43 return &button; 44 } 45 46 private: 47 PowerButton button; 48 std::unique_ptr<juce::AudioProcessorValueTreeState::ButtonAttachment> attachment; 49 50 JUCE_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR (PowerButtonItem) 51 }; 52 53 #endif // POWERBUTTON_H_INCLUDED