| 
							- /*
 -  * Vector Juice Plugin
 -  * Copyright (C) 2014 Andre Sklenar <andre.sklenar@gmail.com>, www.juicelab.cz
 -  *
 -  * 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 2 of
 -  * the License, or 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.
 -  *
 -  * For a full copy of the GNU General Public License see the doc/GPL.txt file.
 -  */
 - 
 - #include "VectorJuiceUI.hpp"
 - 
 - using DGL::Point;
 - 
 - START_NAMESPACE_DISTRHO
 - 
 - // -----------------------------------------------------------------------
 - 
 - VectorJuiceUI::VectorJuiceUI()
 -     : UI(),
 -       fAboutWindow(this)
 - {
 -     // xy params
 -     paramX = paramY = 0.5f;
 - 
 -     // set the XY canvas area
 -     fDragging = false;
 -     fDragValid = false;
 -     fLastX = fLastY = 0;
 -     fCanvasArea.setPos(22+12, 49+12);
 -     fCanvasArea.setSize(368-24, 368-24);
 - 
 -     // background
 -     fImgBackground = Image(VectorJuiceArtwork::backgroundData, VectorJuiceArtwork::backgroundWidth, VectorJuiceArtwork::backgroundHeight, GL_BGR);
 - 
 -     //roundlet
 -     fImgRoundlet = Image(VectorJuiceArtwork::roundletData, VectorJuiceArtwork::roundletWidth, VectorJuiceArtwork::roundletHeight);
 - 
 -     //orbit
 -     fImgOrbit = Image(VectorJuiceArtwork::orbitData, VectorJuiceArtwork::orbitWidth, VectorJuiceArtwork::orbitHeight);
 - 
 -     //subOrbit
 -     fImgSubOrbit = Image(VectorJuiceArtwork::subOrbitData, VectorJuiceArtwork::subOrbitWidth, VectorJuiceArtwork::subOrbitHeight);
 - 
 -     // about
 -     Image imageAbout(VectorJuiceArtwork::aboutData, VectorJuiceArtwork::aboutWidth, VectorJuiceArtwork::aboutHeight, GL_BGR);
 -     fAboutWindow.setImage(imageAbout);
 - 
 -     // about button
 -     Image aboutImageNormal(VectorJuiceArtwork::aboutButtonNormalData, VectorJuiceArtwork::aboutButtonNormalWidth, VectorJuiceArtwork::aboutButtonNormalHeight);
 -     Image aboutImageHover(VectorJuiceArtwork::aboutButtonHoverData, VectorJuiceArtwork::aboutButtonHoverWidth, VectorJuiceArtwork::aboutButtonHoverHeight);
 -     fButtonAbout = new ImageButton(this, aboutImageNormal, aboutImageHover, aboutImageHover);
 -     fButtonAbout->setPos(599, 17);
 -     fButtonAbout->setCallback(this);
 - 
 -     // knobs
 -     Image knobImage(VectorJuiceArtwork::knobData, VectorJuiceArtwork::knobWidth, VectorJuiceArtwork::knobHeight);
 - 
 -     // knob KnobOrbitSpeedX
 -     fKnobOrbitSpeedX = new ImageKnob(this, knobImage);
 -     fKnobOrbitSpeedX->setPos(423, 185);
 -     fKnobOrbitSpeedX->setStep(1.0f);
 -     fKnobOrbitSpeedX->setRange(1.0f, 128.0f);
 -     fKnobOrbitSpeedX->setValue(4.0f);
 -     fKnobOrbitSpeedX->setRotationAngle(270);
 -     fKnobOrbitSpeedX->setCallback(this);
 - 
 -     // knob KnobOrbitSpeedY
 -     fKnobOrbitSpeedY = new ImageKnob(this, knobImage);
 -     fKnobOrbitSpeedY->setPos(516, 185);
 -     fKnobOrbitSpeedY->setStep(1.0f);
 -     fKnobOrbitSpeedY->setRange(1.0f, 128.0f);
 -     fKnobOrbitSpeedY->setValue(4.0f);
 -     fKnobOrbitSpeedY->setRotationAngle(270);
 -     fKnobOrbitSpeedY->setCallback(this);
 - 
 -     // knob KnobOrbitSizeX
 -     fKnobOrbitSizeX = new ImageKnob(this, knobImage);
 -     fKnobOrbitSizeX->setPos(423, 73);
 -     fKnobOrbitSizeX->setRange(0.0f, 1.0f);
 -     fKnobOrbitSizeX->setValue(0.5f);
 -     fKnobOrbitSizeX->setRotationAngle(270);
 -     fKnobOrbitSizeX->setCallback(this);
 - 
 -     // knob KnobOrbitSizeY
 -     fKnobOrbitSizeY = new ImageKnob(this, knobImage);
 -     fKnobOrbitSizeY->setPos(516, 73);
 -     fKnobOrbitSizeY->setRange(0.0f, 1.0f);
 -     fKnobOrbitSizeY->setValue(0.5f);
 -     fKnobOrbitSizeY->setRotationAngle(270);
 -     fKnobOrbitSizeY->setCallback(this);
 - 
 -     // knob KnobSubOrbitSpeed
 -     fKnobSubOrbitSpeed = new ImageKnob(this, knobImage);
 -     fKnobSubOrbitSpeed->setPos(620, 185);
 -     fKnobSubOrbitSpeed->setStep(1.0f);
 -     fKnobSubOrbitSpeed->setRange(1.0f, 128.0f);
 -     fKnobSubOrbitSpeed->setValue(32.0f);
 -     fKnobSubOrbitSpeed->setRotationAngle(270);
 -     fKnobSubOrbitSpeed->setCallback(this);
 - 
 -     // knob KnobSubOrbitSize
 -     fKnobSubOrbitSize = new ImageKnob(this, knobImage);
 -     fKnobSubOrbitSize->setPos(620, 73);
 -     fKnobSubOrbitSize->setRange(0.0f, 1.0f);
 -     fKnobSubOrbitSize->setValue(0.5f);
 -     fKnobSubOrbitSize->setRotationAngle(270);
 -     fKnobSubOrbitSize->setCallback(this);
 - 
 -     // knob KnobSubOrbitSmooth
 -     fKnobSubOrbitSmooth = new ImageKnob(this, knobImage);
 -     fKnobSubOrbitSmooth->setPos(620, 297);
 -     fKnobSubOrbitSmooth->setRange(0.0f, 1.0f);
 -     fKnobSubOrbitSmooth->setValue(0.5f);
 -     fKnobSubOrbitSmooth->setRotationAngle(270);
 -     fKnobSubOrbitSmooth->setCallback(this);
 - 
 -     // sliders
 -     Image sliderImage(VectorJuiceArtwork::sliderData, VectorJuiceArtwork::sliderWidth, VectorJuiceArtwork::sliderHeight);
 -     Point<int> sliderPosStart(410+48, 284);
 -     Point<int> sliderPosEnd(410, 284);
 - 
 -     // slider OrbitWaveX
 -     fSliderOrbitWaveX = new ImageSlider(this, sliderImage);
 -     fSliderOrbitWaveX->setStartPos(sliderPosStart);
 -     fSliderOrbitWaveX->setEndPos(sliderPosEnd);
 -     fSliderOrbitWaveX->setRange(1.0f, 4.0f);
 -     fSliderOrbitWaveX->setValue(3.0f);
 -     fSliderOrbitWaveX->setCallback(this);
 - 
 -     // slider OrbitWaveY
 -     sliderPosStart.setX(503+48);
 -     sliderPosEnd.setX(503);
 -     fSliderOrbitWaveY = new ImageSlider(this, sliderImage);
 -     fSliderOrbitWaveY->setStartPos(sliderPosStart);
 -     fSliderOrbitWaveY->setEndPos(sliderPosEnd);
 -     fSliderOrbitWaveY->setRange(1.0f, 4.0f);
 -     fSliderOrbitWaveY->setStep(1.0f);
 -     fSliderOrbitWaveY->setValue(3.0f);
 -     fSliderOrbitWaveY->setCallback(this);
 - 
 -     // slider OrbitPhaseX
 -     sliderPosStart.setX(410+48);
 -     sliderPosStart.setY(345);
 -     sliderPosEnd.setX(410);
 -     sliderPosEnd.setY(345);
 -     fSliderOrbitPhaseX = new ImageSlider(this, sliderImage);
 -     fSliderOrbitPhaseX->setStartPos(sliderPosStart);
 -     fSliderOrbitPhaseX->setEndPos(sliderPosEnd);
 -     fSliderOrbitPhaseX->setRange(0.0f, 1.0f);
 -     fSliderOrbitPhaseX->setStep(1.0f);
 -     fSliderOrbitPhaseX->setValue(0.0f);
 -     fSliderOrbitPhaseX->setCallback(this);
 - 
 -     // slider OrbitPhaseY
 -     sliderPosStart.setX(503+48);
 -     sliderPosEnd.setX(503);
 -     fSliderOrbitPhaseY = new ImageSlider(this, sliderImage);
 -     fSliderOrbitPhaseY->setStartPos(sliderPosStart);
 -     fSliderOrbitPhaseY->setEndPos(sliderPosEnd);
 -     fSliderOrbitPhaseY->setRange(0.0f, 1.0f);
 -     fSliderOrbitPhaseY->setStep(1.0f);
 -     fSliderOrbitPhaseY->setValue(0.0f);
 -     fSliderOrbitPhaseY->setCallback(this);
 - }
 - 
 - VectorJuiceUI::~VectorJuiceUI()
 - {
 -     delete fButtonAbout;
 - 
 -     //knobs
 -     delete fKnobOrbitSpeedX;
 -     delete fKnobOrbitSpeedY;
 -     delete fKnobOrbitSizeX;
 -     delete fKnobOrbitSizeY;
 -     delete fKnobSubOrbitSpeed;
 -     delete fKnobSubOrbitSize;
 -     delete fKnobSubOrbitSmooth;
 - 
 -     //sliders
 -     delete fSliderOrbitWaveX;
 -     delete fSliderOrbitWaveY;
 -     delete fSliderOrbitPhaseX;
 -     delete fSliderOrbitPhaseY;
 - }
 - 
 - // -----------------------------------------------------------------------
 - // DSP Callbacks
 - 
 - void VectorJuiceUI::d_parameterChanged(uint32_t index, float value)
 - {
 -     switch (index)
 -     {
 -     case VectorJuicePlugin::paramX:
 -         if (paramX != value)
 -         {
 -             paramX = value;
 -             fDragValid = false;
 -             repaint();
 -         }
 -         break;
 -     case VectorJuicePlugin::paramY:
 -         if (paramY != value)
 -         {
 -             paramY = value;
 -             fDragValid = false;
 -             repaint();
 -         }
 -         break;
 -     case VectorJuicePlugin::paramOrbitSizeX:
 -         fKnobOrbitSizeX->setValue(value);
 -         break;
 -     case VectorJuicePlugin::paramOrbitSizeY:
 -         fKnobOrbitSizeY->setValue(value);
 -         break;
 -     case VectorJuicePlugin::paramOrbitSpeedX:
 -         fKnobOrbitSpeedX->setValue(value);
 -         break;
 -     case VectorJuicePlugin::paramOrbitSpeedY:
 -         fKnobOrbitSpeedY->setValue(value);
 -         break;
 -     case VectorJuicePlugin::paramSubOrbitSize:
 -         fKnobSubOrbitSize->setValue(value);
 -         break;
 -     case VectorJuicePlugin::paramSubOrbitSpeed:
 -         fKnobSubOrbitSpeed->setValue(value);
 -         break;
 -     case VectorJuicePlugin::paramSubOrbitSmooth:
 -         fKnobSubOrbitSmooth->setValue(value);
 -         break;
 -     case VectorJuicePlugin::paramOrbitWaveX:
 -         fSliderOrbitWaveX->setValue(value);
 -         break;
 -     case VectorJuicePlugin::paramOrbitWaveY:
 -         fSliderOrbitWaveY->setValue(value);
 -         break;
 -     case VectorJuicePlugin::paramOrbitPhaseX:
 -         fSliderOrbitPhaseX->setValue(value);
 -         break;
 -     case VectorJuicePlugin::paramOrbitPhaseY:
 -         fSliderOrbitPhaseY->setValue(value);
 -         break;
 -     case VectorJuicePlugin::paramOrbitOutX:
 -         if (orbitX != value)
 -         {
 -             orbitX = value;
 -             repaint();
 -         }
 -         break;
 -     case VectorJuicePlugin::paramOrbitOutY:
 -         if (orbitY != value)
 -         {
 -             orbitY = value;
 -             repaint();
 -         }
 -         break;
 -     case VectorJuicePlugin::paramSubOrbitOutX:
 -         if (subOrbitX != value)
 -         {
 -             subOrbitX = value;
 -             repaint();
 -         }
 -         break;
 -     case VectorJuicePlugin::paramSubOrbitOutY:
 -         if (subOrbitY != value)
 -         {
 -             subOrbitY = value;
 -             repaint();
 -         }
 -         break;
 -     }
 - }
 - 
 - void VectorJuiceUI::d_programChanged(uint32_t index)
 - {
 -     if (index != 0)
 -         return;
 - 
 -     // Default values
 -     paramX = paramY = 0.5f;
 -     fKnobOrbitSpeedX->setValue(4.0f);
 -     fKnobOrbitSpeedY->setValue(4.0f);
 -     fKnobOrbitSizeX->setValue(1.0f);
 -     fKnobOrbitSizeY->setValue(1.0f);
 -     fKnobSubOrbitSize->setValue(1.0f);
 -     fKnobSubOrbitSpeed->setValue(32.0f);
 -     fKnobSubOrbitSmooth->setValue(0.5f);
 -     fSliderOrbitWaveX->setValue(3.0f);
 -     fSliderOrbitWaveY->setValue(3.0f);
 -     fSliderOrbitPhaseX->setValue(0.0f);
 -     fSliderOrbitPhaseY->setValue(0.0f);
 - }
 - 
 - // -----------------------------------------------------------------------
 - // Widget Callbacks
 - 
 - void VectorJuiceUI::imageButtonClicked(ImageButton* button, int)
 - {
 -     if (button != fButtonAbout)
 -         return;
 - 
 -     fAboutWindow.exec();
 - }
 - 
 - void VectorJuiceUI::imageKnobDragStarted(ImageKnob* knob)
 - {
 -     if (knob == fKnobOrbitSpeedX)
 -         d_editParameter(VectorJuicePlugin::paramOrbitSpeedX, true);
 -     else if (knob == fKnobOrbitSpeedY)
 -         d_editParameter(VectorJuicePlugin::paramOrbitSpeedY, true);
 -     else if (knob == fKnobOrbitSizeX)
 -         d_editParameter(VectorJuicePlugin::paramOrbitSizeX, true);
 -     else if (knob == fKnobOrbitSizeY)
 -         d_editParameter(VectorJuicePlugin::paramOrbitSizeY, true);
 -     else if (knob == fKnobSubOrbitSize)
 -         d_editParameter(VectorJuicePlugin::paramSubOrbitSize, true);
 -     else if (knob == fKnobSubOrbitSpeed)
 -         d_editParameter(VectorJuicePlugin::paramSubOrbitSpeed, true);
 -     else if (knob == fKnobSubOrbitSmooth)
 -         d_editParameter(VectorJuicePlugin::paramSubOrbitSmooth, true);
 - }
 - 
 - void VectorJuiceUI::imageKnobDragFinished(ImageKnob* knob)
 - {
 -     if (knob == fKnobOrbitSpeedX)
 -         d_editParameter(VectorJuicePlugin::paramOrbitSpeedX, false);
 -     else if (knob == fKnobOrbitSpeedY)
 -         d_editParameter(VectorJuicePlugin::paramOrbitSpeedY, false);
 -     else if (knob == fKnobOrbitSizeX)
 -         d_editParameter(VectorJuicePlugin::paramOrbitSizeX, false);
 -     else if (knob == fKnobOrbitSizeY)
 -         d_editParameter(VectorJuicePlugin::paramOrbitSizeY, false);
 -     else if (knob == fKnobSubOrbitSize)
 -         d_editParameter(VectorJuicePlugin::paramSubOrbitSize, false);
 -     else if (knob == fKnobSubOrbitSpeed)
 -         d_editParameter(VectorJuicePlugin::paramSubOrbitSpeed, false);
 -     else if (knob == fKnobSubOrbitSmooth)
 -         d_editParameter(VectorJuicePlugin::paramSubOrbitSmooth, false);
 - }
 - 
 - void VectorJuiceUI::imageKnobValueChanged(ImageKnob* knob, float value)
 - {
 -     if (knob == fKnobOrbitSpeedX)
 -         d_setParameterValue(VectorJuicePlugin::paramOrbitSpeedX, value);
 -     else if (knob == fKnobOrbitSpeedY)
 -         d_setParameterValue(VectorJuicePlugin::paramOrbitSpeedY, value);
 -     else if (knob == fKnobOrbitSizeX)
 -         d_setParameterValue(VectorJuicePlugin::paramOrbitSizeX, value);
 -     else if (knob == fKnobOrbitSizeY)
 -         d_setParameterValue(VectorJuicePlugin::paramOrbitSizeY, value);
 -     else if (knob == fKnobSubOrbitSize)
 -         d_setParameterValue(VectorJuicePlugin::paramSubOrbitSize, value);
 -     else if (knob == fKnobSubOrbitSpeed)
 -         d_setParameterValue(VectorJuicePlugin::paramSubOrbitSpeed, value);
 -     else if (knob == fKnobSubOrbitSmooth)
 -         d_setParameterValue(VectorJuicePlugin::paramSubOrbitSmooth, value);
 - }
 - 
 - void VectorJuiceUI::imageSliderDragStarted(ImageSlider* slider)
 - {
 -     if (slider == fSliderOrbitWaveX)
 -         d_editParameter(VectorJuicePlugin::paramOrbitWaveX, true);
 -     else if (slider == fSliderOrbitWaveY)
 -         d_editParameter(VectorJuicePlugin::paramOrbitWaveY, true);
 -     else if (slider == fSliderOrbitPhaseX)
 -         d_editParameter(VectorJuicePlugin::paramOrbitPhaseX, true);
 -     else if (slider == fSliderOrbitPhaseY)
 -         d_editParameter(VectorJuicePlugin::paramOrbitPhaseY, true);
 - }
 - 
 - void VectorJuiceUI::imageSliderDragFinished(ImageSlider* slider)
 - {
 -     if (slider == fSliderOrbitWaveX)
 -         d_editParameter(VectorJuicePlugin::paramOrbitWaveX, false);
 -     else if (slider == fSliderOrbitWaveY)
 -         d_editParameter(VectorJuicePlugin::paramOrbitWaveY, false);
 -     else if (slider == fSliderOrbitPhaseX)
 -         d_editParameter(VectorJuicePlugin::paramOrbitPhaseX, false);
 -     else if (slider == fSliderOrbitPhaseY)
 -         d_editParameter(VectorJuicePlugin::paramOrbitPhaseY, false);
 - }
 - 
 - void VectorJuiceUI::imageSliderValueChanged(ImageSlider* slider, float value)
 - {
 -     if (slider == fSliderOrbitWaveX)
 -         d_setParameterValue(VectorJuicePlugin::paramOrbitWaveX, value);
 -     else if (slider == fSliderOrbitWaveY)
 -         d_setParameterValue(VectorJuicePlugin::paramOrbitWaveY, value);
 -     else if (slider == fSliderOrbitPhaseX)
 -         d_setParameterValue(VectorJuicePlugin::paramOrbitPhaseX, value);
 -     else if (slider == fSliderOrbitPhaseY)
 -         d_setParameterValue(VectorJuicePlugin::paramOrbitPhaseY, value);
 - }
 - 
 - void VectorJuiceUI::onDisplay()
 - {
 -     fImgBackground.draw();
 - 
 -     /*
 -     // TESTING - remove later
 -     // this paints the 'fCanvasArea' so we can clearly see its bounds
 -     {
 -         const int x = fCanvasArea.getX();
 -         const int y = fCanvasArea.getY();
 -         const int w = fCanvasArea.getWidth();
 -         const int h = fCanvasArea.getHeight();
 - 
 -         glColor4f(0.0f, 1.0f, 0.0f, 0.1f);
 - 
 -         glBegin(GL_QUADS);
 -           glTexCoord2f(0.0f, 0.0f);
 -           glVertex2i(x, y);
 - 
 -           glTexCoord2f(1.0f, 0.0f);
 -           glVertex2i(x+w, y);
 - 
 -           glTexCoord2f(1.0f, 1.0f);
 -           glVertex2i(x+w, y+h);
 - 
 -           glTexCoord2f(0.0f, 1.0f);
 -           glVertex2i(x, y+h);
 -         glEnd();
 - 
 -         // reset color
 -         glColor4f(1.0f, 1.0f, 1.0f, 1.0f);
 -     }
 -     */
 - 
 -     // get x, y mapped to XY area
 -     int x = fCanvasArea.getX() + paramX*fCanvasArea.getWidth() - fImgRoundlet.getWidth()/2;
 -     int y = fCanvasArea.getY() + paramY*fCanvasArea.getHeight() - fImgRoundlet.getHeight()/2;
 -     int nOrbitX = fCanvasArea.getX()+((orbitX)*fCanvasArea.getWidth())-15;
 -     int nOrbitY = fCanvasArea.getY()+((orbitY)*fCanvasArea.getWidth())-15;
 -     int nSubOrbitX = fCanvasArea.getX()+(subOrbitX*fCanvasArea.getWidth())-15;
 -     int nSubOrbitY = fCanvasArea.getY()+(subOrbitY*fCanvasArea.getWidth())-14;
 - 
 -     //draw lines, just for fun
 -     glEnable(GL_BLEND);
 -     glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
 -     glColor4f(0.0f, 1.0f, 0.0f, 0.05f);
 -     glLineWidth(4);
 -     glBegin(GL_LINES);
 -         glVertex2i(x+ fImgRoundlet.getWidth()/2, y+ fImgRoundlet.getHeight()/2);
 -         glVertex2i(nOrbitX+15, nOrbitY+15);
 -     glEnd();
 -     glBegin(GL_LINES);
 -         glVertex2i(nOrbitX+15, nOrbitY+15);
 -         glVertex2i(nSubOrbitX+15, nSubOrbitY+14);
 -     glEnd();
 - 
 -     // reset color
 -     glColor4f(1.0f, 1.0f, 1.0f, 1.0f);
 - 
 -     // draw roundlet and orbits
 -     fImgRoundlet.draw(x, y);
 -     fImgOrbit.draw(nOrbitX, nOrbitY);
 -     fImgSubOrbit.draw(nSubOrbitX, nSubOrbitY);
 - }
 - 
 - bool VectorJuiceUI::onMouse(int button, bool press, int x, int y)
 - {
 -     if (button != 1)
 -         return false;
 - 
 -     if (press)
 -     {
 -         if (! fCanvasArea.contains(x, y))
 -             return false;
 - 
 -         fDragging = true;
 -         fDragValid = true;
 -         fLastX = x;
 -         fLastY = y;
 -         return true;
 -     }
 -     else if (fDragging)
 -     {
 -         fDragging = false;
 -         return true;
 -     }
 - 
 -     return false;
 - }
 - 
 - bool VectorJuiceUI::onMotion(int x, int y)
 - {
 -     if (! fDragging)
 -         return false;
 -     if (! fDragValid)
 -     {
 -         fDragValid = true;
 -         fLastX = x;
 -         fLastY = y;
 -     }
 - 
 -     const int movedX = fLastX - x;
 -     const int movedY = fLastY - y;
 -     fLastX = x;
 -     fLastY = y;
 - 
 -     float newX = paramX;
 -     float newY = paramY;
 - 
 -     newX -= float(movedX)/fCanvasArea.getWidth();
 -     newY -= float(movedY)/fCanvasArea.getHeight();
 - 
 -     if (newX < 0.0f)
 -         newX = 0.0f;
 -     else if (newX > 1.0f)
 -         newX = 1.0f;
 - 
 -     if (newY < 0.0f)
 -         newY = 0.0f;
 -     else if (newY > 1.0f)
 -         newY = 1.0f;
 - 
 -     if (newX != paramX)
 -     {
 -         paramX = newX;
 -         d_setParameterValue(VectorJuicePlugin::paramX, paramX);
 -         repaint();
 -     }
 - 
 -     if (newY != paramY)
 -     {
 -         paramY = newY;
 -         d_setParameterValue(VectorJuicePlugin::paramY, paramY);
 -         repaint();
 -     }
 - 
 -     return true;
 - }
 - 
 - // -----------------------------------------------------------------------
 - 
 - UI* createUI()
 - {
 -     return new VectorJuiceUI();
 - }
 - 
 - // -----------------------------------------------------------------------
 - 
 - END_NAMESPACE_DISTRHO
 
 
  |