/**************************************************************************
Copyright (C) 2019 Arnaud Champenois arthelion@free.fr
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
**************************************************************************/
#include "PluginProcessor.h"
#include "PluginEditor.h"
constexpr int WIDTH_MAX = 1280;
constexpr int HEIGHT_MAX = 800;
//==============================================================================
MolossIAudioProcessorEditor::MolossIAudioProcessorEditor (MolossI& p)
: AudioProcessorEditor (&p), processor (p), tooltipWin(this)
{
LookAndFeel::setDefaultLookAndFeel(&molossLNF);
setLookAndFeel(&molossLNF);
guiMain = std::make_unique<GuiMain>();
// Make sure that before the constructor has finished, you've set the
// editor's size to whatever you need it to be.
addAndMakeVisible(myViewport);
myViewport.setSize(WIDTH_MAX, HEIGHT_MAX);
myViewport.setViewedComponent(guiMain.get(), false);
guiMain->setSize(WIDTH_MAX, HEIGHT_MAX);
for(int i=0;i<VCO_NUMBER;i++) {
guiMain->setVCOParameters(i, p.getPitchParameters(i),p.getVCOParameters(i), p.getTVFParameters(i), p.getTVAParameters(i));
}
guiMain->setSynthParameters(p.getSynthParameters());
setResizable(true, true);
setResizeLimits(640, 480, WIDTH_MAX, HEIGHT_MAX);
setSize(WIDTH_MAX, HEIGHT_MAX);
}
MolossIAudioProcessorEditor::~MolossIAudioProcessorEditor()
{
setLookAndFeel(nullptr);
}
//==============================================================================
void MolossIAudioProcessorEditor::paint (Graphics& g)
{
// (Our component is opaque, so we must completely fill the background with a solid colour)
g.fillAll (getLookAndFeel().findColour (ResizableWindow::backgroundColourId));
}
void MolossIAudioProcessorEditor::resized()
{
// This is generally where you'll want to lay out the positions of any
// subcomponents in your editor..
myViewport.setSize(getWidth(), getHeight());
}
void MolossIAudioProcessorEditor::updateActivityGUI()
{
guiMain->updateActivity();
}
void MolossIAudioProcessorEditor::updateCurrentFileState()
{
guiMain->updateCurrentFileState();
}
void MolossIAudioProcessorEditor::updateCurrentFiles()
{
guiMain->updateCurrentFiles();
}