/*
  ==============================================================================

    This file was auto-generated by the Jucer!

    It contains the basic startup code for a Juce application.

  ==============================================================================
*/

#ifndef __PLUGINEDITOR_H_AE42FDA5__
#define __PLUGINEDITOR_H_AE42FDA5__

#include "JuceHeader.h"
#include "JucePluginCharacteristics.h"
#include "PluginProcessor.h"
#include "Headers/UI/Knob.h"
#include "Headers/UI/FancyButton.h"
#include "Headers/Binary Data/Backgrounds/thefunctionbackground.h"


//==============================================================================
/**
*/
class TheFunctionAudioProcessorEditor  : public AudioProcessorEditor,
                                         public SliderListener,
                                         public ButtonListener,
                                         public Timer
{
public:
    TheFunctionAudioProcessorEditor (TheFunctionAudioProcessor* ownerFilter);
    ~TheFunctionAudioProcessorEditor() override;

    //==============================================================================
    void paint (Graphics& g) override;
    void resized() override;
    void sliderValueChanged (Slider*) override;
    void buttonClicked (Button*) override;
    void timerCallback() override;

private:
    Knob gainSlider;
    Knob gainLSlider;
    Knob gainRSlider;
    Knob panLSlider;
    Knob panRSlider;

    FancyButton phaseButtonL;
    FancyButton phaseButtonR;

    Image backgroundGUI;

    TheFunctionAudioProcessor* getProcessor() const
    {
        return static_cast <TheFunctionAudioProcessor*> (getAudioProcessor());
    }

    JUCE_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR(TheFunctionAudioProcessorEditor);
};

#endif  // __PLUGINEDITOR_H_AE42FDA5__
