/* ============================================================================== this shit is held together by thoughts and prayers and i dont even pray ============================================================================== */ #include "BinaryData.h" #include "FilterButtonLook.h" #include "FilterView.h" #include "PluginProcessor.h" #include "juce_gui_basics/juce_gui_basics.h" #include "PluginEditor.h" //============================================================================== CrushFXAudioProcessorEditor::CrushFXAudioProcessorEditor (CrushFXAudioProcessor& p) : AudioProcessorEditor (&p), audioProcessor (p) { ctxC.setRenderer(&crushView); ctxC.attachTo(crushView); ctxV.setRenderer(&filterView); ctxV.attachTo(filterView); antialiasing.multisamplingLevel = 3; ctxC.setPixelFormat(antialiasing); ctxV.setPixelFormat(antialiasing); //images bg = juce::ImageCache::getFromMemory(BinaryData::BG_png, BinaryData::BG_pngSize); dialLookandFeel.setImage(); filterButtonLookAndFeel.setImages(); crushSliderLookAndFeel.setImages(); addAndMakeVisible(dial1); addAndMakeVisible(dial2); addAndMakeVisible(crushSlider); addAndMakeVisible(filterButton); addAndMakeVisible(filterView); addAndMakeVisible(crushView); //styling dial1.setLookAndFeel(&dialLookandFeel); dial1.setSliderStyle(juce::Slider::SliderStyle::Rotary); dial1.setTextBoxStyle(juce::Slider::TextEntryBoxPosition::NoTextBox, true, 0, 0); dial2.setLookAndFeel(&dialLookandFeel); dial2.setSliderStyle(juce::Slider::SliderStyle::Rotary); dial2.setTextBoxStyle(juce::Slider::TextEntryBoxPosition::NoTextBox, true, 0, 0); crushSlider.setLookAndFeel(&crushSliderLookAndFeel); crushSlider.setRange(juce::Range(0.0, 1.0), 0.0); crushSlider.setSliderStyle(juce::Slider::SliderStyle::LinearHorizontal); crushSlider.setTextBoxStyle(juce::Slider::TextEntryBoxPosition::NoTextBox, true, 0, 0); filterButton.setLookAndFeel(&filterButtonLookAndFeel); filterButton.setToggleable(true); filterButton.setClickingTogglesState(true); filterButton.setButtonText(""); //sizing setSize (812, 350); setResizable(false, false); } CrushFXAudioProcessorEditor::~CrushFXAudioProcessorEditor() { printf("detaching\n"); ctxC.detach(); ctxV.detach(); } //============================================================================== void CrushFXAudioProcessorEditor::paint (juce::Graphics& g) { g.drawImageAt(bg, 0,0); ctxC.triggerRepaint(); ctxV.triggerRepaint(); } void CrushFXAudioProcessorEditor::resized() { crushView.setBounds(408, 11, 393, 273); filterView.setBounds(11, 11, 393, 273); dial1.setBounds(269, 287, 55, 56); dial2.setBounds(331, 287, 55, 56); crushSlider.setBounds(578, 293, 205, 43); filterButton.setBounds(165, 300, 94, 29); }