#include "NonAutomatableSandboxTestProcessorEditor.h" //============================================================================== NonAutomatableSandboxTestProcessorEditor::NonAutomatableSandboxTestProcessorEditor (NonAutomatableSandboxTestProcessor& p, juce::AudioProcessorValueTreeState& vts) : AudioProcessorEditor (&p), audioProcessor (p), valueTreeState(vts) { setSize (400, 300); testValueAttachment.reset(new juce::AudioProcessorValueTreeState::SliderAttachment(valueTreeState, "testValue", testValueSlider)); addAndMakeVisible(testValueSlider); } NonAutomatableSandboxTestProcessorEditor::~NonAutomatableSandboxTestProcessorEditor() {} //============================================================================== void NonAutomatableSandboxTestProcessorEditor::paint (juce::Graphics& g) { g.fillAll (getLookAndFeel().findColour (juce::ResizableWindow::backgroundColourId)); g.setColour(juce::Colours::white); auto b = getLocalBounds(); g.drawText("click background to change value & raise event", b.getX(), b.getY() + 20, b.getWidth(), 20, juce::Justification::centred); } void NonAutomatableSandboxTestProcessorEditor::resized() { testValueSlider.setBounds(getLocalBounds().reduced(25, 100)); } void NonAutomatableSandboxTestProcessorEditor::mouseUp(const juce::MouseEvent& event) { float value = (float)rand() / (float)RAND_MAX; auto* parameter = valueTreeState.getParameter("testValue"); parameter->setValueNotifyingHost(value); //audioProcessor.setTestValue(value); }