mirror of
https://codeberg.org/armin/wavetable.git
synced 2026-09-01 14:00:47 +02:00
88 lines
2.7 KiB
C++
88 lines
2.7 KiB
C++
#include "PluginProcessor.h"
|
|
#include "PluginEditor.h"
|
|
|
|
using namespace gin;
|
|
|
|
//==============================================================================
|
|
WavetableAudioProcessorEditor::WavetableAudioProcessorEditor (WavetableAudioProcessor& p)
|
|
: ProcessorEditor (p, 50, 50 + 15), proc (p)
|
|
{
|
|
oscHeaders.addChildComponent (modOverview);
|
|
|
|
gin::addAndMakeVisible (*this, { &commonHeader, &common, &unisonHeader });
|
|
|
|
gin::addAndMakeVisible (*this, { &oscHeaders });
|
|
gin::addAndMakeVisible (*this, { &oscillators });
|
|
|
|
gin::addAndMakeVisible (*this, { &FiltersHeader });
|
|
gin::addAndMakeVisible (*this, { &Filters });
|
|
|
|
gin::addAndMakeVisible (*this, { &modulationHeader, &modulation });
|
|
gin::addAndMakeVisible (*this, { &effectsHeader, &effects });
|
|
|
|
oscHeaders.addAndMakeVisible ( usage );
|
|
|
|
setGridSize (14, 8, 0, 3 * 25);
|
|
}
|
|
|
|
WavetableAudioProcessorEditor::~WavetableAudioProcessorEditor()
|
|
{
|
|
}
|
|
|
|
//==============================================================================
|
|
void WavetableAudioProcessorEditor::paint (Graphics& g)
|
|
{
|
|
ProcessorEditor::paint (g);
|
|
|
|
g.setColour (Colours::white.withAlpha (0.2f));
|
|
|
|
auto rc = getFullGridArea();
|
|
g.drawRect (rc.expanded (1));
|
|
}
|
|
|
|
void WavetableAudioProcessorEditor::resized()
|
|
{
|
|
ProcessorEditor::resized ();
|
|
|
|
auto rc = getFullGridArea();
|
|
|
|
int hh = 25;
|
|
|
|
int gx = getGridWidth();
|
|
int gy = getGridHeight();
|
|
|
|
// Oscillators
|
|
{
|
|
auto rHeaders = rc.removeFromTop (hh);
|
|
oscHeaders.setBounds (rHeaders.removeFromLeft (gx * 14));
|
|
|
|
auto rOscs = rc.removeFromTop (gy * 4);
|
|
oscillators.setBounds (rOscs.removeFromLeft (gx * 14));
|
|
|
|
modOverview.setBounds (4, 4, 200, hh - 8);
|
|
|
|
usage.setBounds ( oscHeaders.getLocalBounds().removeFromRight (14 * 5 + 2).withSizeKeepingCentre (14 * 5 + 2, 16));
|
|
}
|
|
|
|
// ADSR and mod
|
|
{
|
|
auto rHeaders = rc.removeFromTop (hh);
|
|
ampFiltersHeader.setBounds (rHeaders.removeFromLeft (gx * 6));
|
|
modulationHeader.setBounds (rHeaders.removeFromLeft (gx * 8));
|
|
|
|
auto rFilters = rc.removeFromTop (gy * 2);
|
|
ampFilters.setBounds (rFilters.removeFromLeft (gx * 6));
|
|
modulation.setBounds (rFilters.removeFromLeft (gx * 8));
|
|
}
|
|
|
|
// Effects & Common
|
|
{
|
|
auto rHeaders = rc.removeFromTop (hh);
|
|
effectsHeader.setBounds (rHeaders.removeFromLeft (gx * 10));
|
|
commonHeader.setBounds (rHeaders.removeFromLeft (gx * 4));
|
|
|
|
auto rControls = rc.removeFromTop (gy * 2);
|
|
effects.setBounds (rControls.removeFromLeft (gx * 10));
|
|
common.setBounds (rControls.removeFromLeft (gx * 4));
|
|
}
|
|
}
|