@@ -74,8 +74,24 @@ def png2rgba(namespace, filenames): | |||||
fdC.write(" %3u, %3u, %3u," % (b, g, r)) | fdC.write(" %3u, %3u, %3u," % (b, g, r)) | ||||
else: | else: | ||||
r, g, b, a = data | r, g, b, a = data | ||||
#a -= 100 | |||||
#if a < 0: a = 0 | |||||
if filename in ("artwork/claw1.png", | |||||
"artwork/claw2.png", | |||||
"artwork/run1.png", | |||||
"artwork/run2.png", | |||||
"artwork/run3.png", | |||||
"artwork/run4.png", | |||||
"artwork/scratch1.png", | |||||
"artwork/scratch2.png", | |||||
"artwork/sit.png", | |||||
"artwork/tail.png"): | |||||
if r == 255: | |||||
a -= 38 | |||||
if a < 0: a = 0 | |||||
#a = 0 | |||||
#else: | |||||
#r = g = b = 255 | |||||
fdC.write(" %3u, %3u, %3u, %3u," % (b, g, r, a)) | fdC.write(" %3u, %3u, %3u, %3u," % (b, g, r, a)) | ||||
if curColumn > 20: | if curColumn > 20: | ||||
@@ -24,18 +24,20 @@ DistrhoUI3BandEQ::DistrhoUI3BandEQ() | |||||
: OpenGLUI(), | : OpenGLUI(), | ||||
fAboutWindow(this) | fAboutWindow(this) | ||||
{ | { | ||||
Window* win = getParent(); | |||||
// background | // background | ||||
fImgBackground = Image(DistrhoArtwork3BandEQ::backgroundData, DistrhoArtwork3BandEQ::backgroundWidth, DistrhoArtwork3BandEQ::backgroundHeight, GL_BGR); | fImgBackground = Image(DistrhoArtwork3BandEQ::backgroundData, DistrhoArtwork3BandEQ::backgroundWidth, DistrhoArtwork3BandEQ::backgroundHeight, GL_BGR); | ||||
// about | |||||
Image imageAbout(DistrhoArtwork3BandEQ::aboutData, DistrhoArtwork3BandEQ::aboutWidth, DistrhoArtwork3BandEQ::aboutHeight, GL_BGR); | |||||
fAboutWindow.setImage(imageAbout); | |||||
// sliders | // sliders | ||||
Image sliderImage(DistrhoArtwork3BandEQ::sliderData, DistrhoArtwork3BandEQ::sliderWidth, DistrhoArtwork3BandEQ::sliderHeight); | Image sliderImage(DistrhoArtwork3BandEQ::sliderData, DistrhoArtwork3BandEQ::sliderWidth, DistrhoArtwork3BandEQ::sliderHeight); | ||||
Point<int> sliderPosStart(57, 43); | Point<int> sliderPosStart(57, 43); | ||||
Point<int> sliderPosEnd(57, 43 + 160); | Point<int> sliderPosEnd(57, 43 + 160); | ||||
// slider Low | // slider Low | ||||
fSliderLow = new ImageSlider(win, sliderImage); | |||||
fSliderLow = new ImageSlider(this, sliderImage); | |||||
fSliderLow->setStartPos(sliderPosStart); | fSliderLow->setStartPos(sliderPosStart); | ||||
fSliderLow->setEndPos(sliderPosEnd); | fSliderLow->setEndPos(sliderPosEnd); | ||||
fSliderLow->setRange(-24.0f, 24.0f); | fSliderLow->setRange(-24.0f, 24.0f); | ||||
@@ -67,14 +69,14 @@ DistrhoUI3BandEQ::DistrhoUI3BandEQ() | |||||
Image knobImage(DistrhoArtwork3BandEQ::knobData, DistrhoArtwork3BandEQ::knobWidth, DistrhoArtwork3BandEQ::knobHeight); | Image knobImage(DistrhoArtwork3BandEQ::knobData, DistrhoArtwork3BandEQ::knobWidth, DistrhoArtwork3BandEQ::knobHeight); | ||||
// knob Low-Mid | // knob Low-Mid | ||||
fKnobLowMid = new ImageKnob(win, knobImage); | |||||
fKnobLowMid = new ImageKnob(this, knobImage); | |||||
fKnobLowMid->setPos(66, 270); | fKnobLowMid->setPos(66, 270); | ||||
fKnobLowMid->setRange(0.0f, 1000.0f); | fKnobLowMid->setRange(0.0f, 1000.0f); | ||||
fKnobLowMid->setValue(220.0f); | fKnobLowMid->setValue(220.0f); | ||||
fKnobLowMid->setCallback(this); | fKnobLowMid->setCallback(this); | ||||
// knob Mid-High | // knob Mid-High | ||||
fKnobMidHigh = new ImageKnob(win, knobImage); | |||||
fKnobMidHigh = new ImageKnob(this, knobImage); | |||||
fKnobMidHigh->setPos(160, 270); | fKnobMidHigh->setPos(160, 270); | ||||
fKnobMidHigh->setRange(1000.0f, 20000.0f); | fKnobMidHigh->setRange(1000.0f, 20000.0f); | ||||
fKnobMidHigh->setValue(2000.0f); | fKnobMidHigh->setValue(2000.0f); | ||||
@@ -83,7 +85,7 @@ DistrhoUI3BandEQ::DistrhoUI3BandEQ() | |||||
// about button | // about button | ||||
Image aboutImageNormal(DistrhoArtwork3BandEQ::aboutButtonNormalData, DistrhoArtwork3BandEQ::aboutButtonNormalWidth, DistrhoArtwork3BandEQ::aboutButtonNormalHeight); | Image aboutImageNormal(DistrhoArtwork3BandEQ::aboutButtonNormalData, DistrhoArtwork3BandEQ::aboutButtonNormalWidth, DistrhoArtwork3BandEQ::aboutButtonNormalHeight); | ||||
Image aboutImageHover(DistrhoArtwork3BandEQ::aboutButtonHoverData, DistrhoArtwork3BandEQ::aboutButtonHoverWidth, DistrhoArtwork3BandEQ::aboutButtonHoverHeight); | Image aboutImageHover(DistrhoArtwork3BandEQ::aboutButtonHoverData, DistrhoArtwork3BandEQ::aboutButtonHoverWidth, DistrhoArtwork3BandEQ::aboutButtonHoverHeight); | ||||
fButtonAbout = new ImageButton(win, aboutImageNormal, aboutImageHover, aboutImageHover); | |||||
fButtonAbout = new ImageButton(this, aboutImageNormal, aboutImageHover, aboutImageHover); | |||||
fButtonAbout->setPos(264, 300); | fButtonAbout->setPos(264, 300); | ||||
fButtonAbout->setCallback(this); | fButtonAbout->setCallback(this); | ||||
} | } | ||||
@@ -149,8 +151,6 @@ void DistrhoUI3BandEQ::imageButtonClicked(ImageButton* button, int) | |||||
if (button != fButtonAbout) | if (button != fButtonAbout) | ||||
return; | return; | ||||
Image imageAbout(DistrhoArtwork3BandEQ::aboutData, DistrhoArtwork3BandEQ::aboutWidth, DistrhoArtwork3BandEQ::aboutHeight, GL_BGR); | |||||
fAboutWindow.setImage(imageAbout); | |||||
fAboutWindow.exec(); | fAboutWindow.exec(); | ||||
} | } | ||||
@@ -18,6 +18,7 @@ | |||||
#define __DISTRHO_UI_3BANDEQ_HPP__ | #define __DISTRHO_UI_3BANDEQ_HPP__ | ||||
#include "DistrhoUIOpenGL.hpp" | #include "DistrhoUIOpenGL.hpp" | ||||
#include "dgl/ImageAboutWindow.hpp" | #include "dgl/ImageAboutWindow.hpp" | ||||
#include "dgl/ImageButton.hpp" | #include "dgl/ImageButton.hpp" | ||||
#include "dgl/ImageKnob.hpp" | #include "dgl/ImageKnob.hpp" | ||||
@@ -37,18 +38,18 @@ class DistrhoUI3BandEQ : public OpenGLUI, | |||||
{ | { | ||||
public: | public: | ||||
DistrhoUI3BandEQ(); | DistrhoUI3BandEQ(); | ||||
~DistrhoUI3BandEQ(); | |||||
~DistrhoUI3BandEQ() override; | |||||
protected: | protected: | ||||
// --------------------------------------------- | // --------------------------------------------- | ||||
// Information | // Information | ||||
unsigned int d_width() const | |||||
unsigned int d_width() const override | |||||
{ | { | ||||
return DistrhoArtwork3BandEQ::backgroundWidth; | return DistrhoArtwork3BandEQ::backgroundWidth; | ||||
} | } | ||||
unsigned int d_height() const | |||||
unsigned int d_height() const override | |||||
{ | { | ||||
return DistrhoArtwork3BandEQ::backgroundHeight; | return DistrhoArtwork3BandEQ::backgroundHeight; | ||||
} | } | ||||
@@ -56,21 +57,21 @@ protected: | |||||
// --------------------------------------------- | // --------------------------------------------- | ||||
// DSP Callbacks | // DSP Callbacks | ||||
void d_parameterChanged(uint32_t index, float value); | |||||
void d_programChanged(uint32_t index); | |||||
void d_parameterChanged(uint32_t index, float value) override; | |||||
void d_programChanged(uint32_t index) override; | |||||
// --------------------------------------------- | // --------------------------------------------- | ||||
// Widget Callbacks | // Widget Callbacks | ||||
void imageButtonClicked(ImageButton* button, int); | |||||
void imageKnobDragStarted(ImageKnob* knob); | |||||
void imageKnobDragFinished(ImageKnob* knob); | |||||
void imageKnobValueChanged(ImageKnob* knob, float value); | |||||
void imageSliderDragStarted(ImageSlider* slider); | |||||
void imageSliderDragFinished(ImageSlider* slider); | |||||
void imageSliderValueChanged(ImageSlider* slider, float value); | |||||
void imageButtonClicked(ImageButton* button, int) override; | |||||
void imageKnobDragStarted(ImageKnob* knob) override; | |||||
void imageKnobDragFinished(ImageKnob* knob) override; | |||||
void imageKnobValueChanged(ImageKnob* knob, float value) override; | |||||
void imageSliderDragStarted(ImageSlider* slider) override; | |||||
void imageSliderDragFinished(ImageSlider* slider) override; | |||||
void imageSliderValueChanged(ImageSlider* slider, float value) override; | |||||
void onDisplay(); | |||||
void onDisplay() override; | |||||
private: | private: | ||||
Image fImgBackground; | Image fImgBackground; | ||||
@@ -16,27 +16,28 @@ | |||||
#include "DistrhoUI3BandSplitter.hpp" | #include "DistrhoUI3BandSplitter.hpp" | ||||
#include "dgl/ImageAboutWindow.hpp" | |||||
START_NAMESPACE_DISTRHO | START_NAMESPACE_DISTRHO | ||||
// ------------------------------------------------- | // ------------------------------------------------- | ||||
DistrhoUI3BandSplitter::DistrhoUI3BandSplitter() | DistrhoUI3BandSplitter::DistrhoUI3BandSplitter() | ||||
: OpenGLUI() | |||||
: OpenGLUI(), | |||||
fAboutWindow(this) | |||||
{ | { | ||||
Window* win = getParent(); | |||||
// background | // background | ||||
fImgBackground = Image(DistrhoArtwork3BandSplitter::backgroundData, DistrhoArtwork3BandSplitter::backgroundWidth, DistrhoArtwork3BandSplitter::backgroundHeight, GL_BGR); | fImgBackground = Image(DistrhoArtwork3BandSplitter::backgroundData, DistrhoArtwork3BandSplitter::backgroundWidth, DistrhoArtwork3BandSplitter::backgroundHeight, GL_BGR); | ||||
// about | |||||
Image imageAbout(DistrhoArtwork3BandSplitter::aboutData, DistrhoArtwork3BandSplitter::aboutWidth, DistrhoArtwork3BandSplitter::aboutHeight, GL_BGR); | |||||
fAboutWindow.setImage(imageAbout); | |||||
// sliders | // sliders | ||||
Image sliderImage(DistrhoArtwork3BandSplitter::sliderData, DistrhoArtwork3BandSplitter::sliderWidth, DistrhoArtwork3BandSplitter::sliderHeight); | Image sliderImage(DistrhoArtwork3BandSplitter::sliderData, DistrhoArtwork3BandSplitter::sliderWidth, DistrhoArtwork3BandSplitter::sliderHeight); | ||||
Point<int> sliderPosStart(57, 43); | Point<int> sliderPosStart(57, 43); | ||||
Point<int> sliderPosEnd(57, 43 + 160); | Point<int> sliderPosEnd(57, 43 + 160); | ||||
// slider Low | // slider Low | ||||
fSliderLow = new ImageSlider(win, sliderImage); | |||||
fSliderLow = new ImageSlider(this, sliderImage); | |||||
fSliderLow->setStartPos(sliderPosStart); | fSliderLow->setStartPos(sliderPosStart); | ||||
fSliderLow->setEndPos(sliderPosEnd); | fSliderLow->setEndPos(sliderPosEnd); | ||||
fSliderLow->setRange(-24.0f, 24.0f); | fSliderLow->setRange(-24.0f, 24.0f); | ||||
@@ -68,14 +69,14 @@ DistrhoUI3BandSplitter::DistrhoUI3BandSplitter() | |||||
Image knobImage(DistrhoArtwork3BandSplitter::knobData, DistrhoArtwork3BandSplitter::knobWidth, DistrhoArtwork3BandSplitter::knobHeight); | Image knobImage(DistrhoArtwork3BandSplitter::knobData, DistrhoArtwork3BandSplitter::knobWidth, DistrhoArtwork3BandSplitter::knobHeight); | ||||
// knob Low-Mid | // knob Low-Mid | ||||
fKnobLowMid = new ImageKnob(win, knobImage); | |||||
fKnobLowMid = new ImageKnob(this, knobImage); | |||||
fKnobLowMid->setPos(66, 270); | fKnobLowMid->setPos(66, 270); | ||||
fKnobLowMid->setRange(0.0f, 1000.0f); | fKnobLowMid->setRange(0.0f, 1000.0f); | ||||
fKnobLowMid->setValue(220.0f); | fKnobLowMid->setValue(220.0f); | ||||
fKnobLowMid->setCallback(this); | fKnobLowMid->setCallback(this); | ||||
// knob Mid-High | // knob Mid-High | ||||
fKnobMidHigh = new ImageKnob(win, knobImage); | |||||
fKnobMidHigh = new ImageKnob(this, knobImage); | |||||
fKnobMidHigh->setPos(160, 270); | fKnobMidHigh->setPos(160, 270); | ||||
fKnobMidHigh->setRange(1000.0f, 20000.0f); | fKnobMidHigh->setRange(1000.0f, 20000.0f); | ||||
fKnobMidHigh->setValue(2000.0f); | fKnobMidHigh->setValue(2000.0f); | ||||
@@ -84,7 +85,7 @@ DistrhoUI3BandSplitter::DistrhoUI3BandSplitter() | |||||
// about button | // about button | ||||
Image aboutImageNormal(DistrhoArtwork3BandSplitter::aboutButtonNormalData, DistrhoArtwork3BandSplitter::aboutButtonNormalWidth, DistrhoArtwork3BandSplitter::aboutButtonNormalHeight); | Image aboutImageNormal(DistrhoArtwork3BandSplitter::aboutButtonNormalData, DistrhoArtwork3BandSplitter::aboutButtonNormalWidth, DistrhoArtwork3BandSplitter::aboutButtonNormalHeight); | ||||
Image aboutImageHover(DistrhoArtwork3BandSplitter::aboutButtonHoverData, DistrhoArtwork3BandSplitter::aboutButtonHoverWidth, DistrhoArtwork3BandSplitter::aboutButtonHoverHeight); | Image aboutImageHover(DistrhoArtwork3BandSplitter::aboutButtonHoverData, DistrhoArtwork3BandSplitter::aboutButtonHoverWidth, DistrhoArtwork3BandSplitter::aboutButtonHoverHeight); | ||||
fButtonAbout = new ImageButton(win, aboutImageNormal, aboutImageHover, aboutImageHover); | |||||
fButtonAbout = new ImageButton(this, aboutImageNormal, aboutImageHover, aboutImageHover); | |||||
fButtonAbout->setPos(264, 300); | fButtonAbout->setPos(264, 300); | ||||
fButtonAbout->setCallback(this); | fButtonAbout->setCallback(this); | ||||
} | } | ||||
@@ -150,9 +151,7 @@ void DistrhoUI3BandSplitter::imageButtonClicked(ImageButton* button, int) | |||||
if (button != fButtonAbout) | if (button != fButtonAbout) | ||||
return; | return; | ||||
Image imageAbout(DistrhoArtwork3BandSplitter::aboutData, DistrhoArtwork3BandSplitter::aboutWidth, DistrhoArtwork3BandSplitter::aboutHeight, GL_BGR); | |||||
ImageAboutWindow aboutWindow(getApp(), getParent(), imageAbout); | |||||
aboutWindow.exec(); | |||||
fAboutWindow.exec(); | |||||
} | } | ||||
void DistrhoUI3BandSplitter::imageKnobDragStarted(ImageKnob* knob) | void DistrhoUI3BandSplitter::imageKnobDragStarted(ImageKnob* knob) | ||||
@@ -171,7 +170,6 @@ void DistrhoUI3BandSplitter::imageKnobDragFinished(ImageKnob* knob) | |||||
d_editParameter(DistrhoPlugin3BandSplitter::paramMidHighFreq, false); | d_editParameter(DistrhoPlugin3BandSplitter::paramMidHighFreq, false); | ||||
} | } | ||||
void DistrhoUI3BandSplitter::imageKnobValueChanged(ImageKnob* knob, float value) | void DistrhoUI3BandSplitter::imageKnobValueChanged(ImageKnob* knob, float value) | ||||
{ | { | ||||
if (knob == fKnobLowMid) | if (knob == fKnobLowMid) | ||||
@@ -18,6 +18,8 @@ | |||||
#define __DISTRHO_UI_3BANDSPLITTER_HPP__ | #define __DISTRHO_UI_3BANDSPLITTER_HPP__ | ||||
#include "DistrhoUIOpenGL.hpp" | #include "DistrhoUIOpenGL.hpp" | ||||
#include "dgl/ImageAboutWindow.hpp" | |||||
#include "dgl/ImageButton.hpp" | #include "dgl/ImageButton.hpp" | ||||
#include "dgl/ImageKnob.hpp" | #include "dgl/ImageKnob.hpp" | ||||
#include "dgl/ImageSlider.hpp" | #include "dgl/ImageSlider.hpp" | ||||
@@ -36,19 +38,18 @@ class DistrhoUI3BandSplitter : public OpenGLUI, | |||||
{ | { | ||||
public: | public: | ||||
DistrhoUI3BandSplitter(); | DistrhoUI3BandSplitter(); | ||||
~DistrhoUI3BandSplitter(); | |||||
~DistrhoUI3BandSplitter() override; | |||||
protected: | protected: | ||||
// --------------------------------------------- | // --------------------------------------------- | ||||
// Information | // Information | ||||
unsigned int d_width() const | |||||
unsigned int d_width() const override | |||||
{ | { | ||||
return DistrhoArtwork3BandSplitter::backgroundWidth; | return DistrhoArtwork3BandSplitter::backgroundWidth; | ||||
} | } | ||||
unsigned int d_height() const | |||||
unsigned int d_height() const override | |||||
{ | { | ||||
return DistrhoArtwork3BandSplitter::backgroundHeight; | return DistrhoArtwork3BandSplitter::backgroundHeight; | ||||
} | } | ||||
@@ -56,24 +57,25 @@ protected: | |||||
// --------------------------------------------- | // --------------------------------------------- | ||||
// DSP Callbacks | // DSP Callbacks | ||||
void d_parameterChanged(uint32_t index, float value); | |||||
void d_programChanged(uint32_t index); | |||||
void d_parameterChanged(uint32_t index, float value) override; | |||||
void d_programChanged(uint32_t index) override; | |||||
// --------------------------------------------- | // --------------------------------------------- | ||||
// Widget Callbacks | // Widget Callbacks | ||||
void imageButtonClicked(ImageButton* button, int); | |||||
void imageKnobDragStarted(ImageKnob* knob); | |||||
void imageKnobDragFinished(ImageKnob* knob); | |||||
void imageKnobValueChanged(ImageKnob* knob, float value); | |||||
void imageSliderDragStarted(ImageSlider* slider); | |||||
void imageSliderDragFinished(ImageSlider* slider); | |||||
void imageSliderValueChanged(ImageSlider* slider, float value); | |||||
void imageButtonClicked(ImageButton* button, int) override; | |||||
void imageKnobDragStarted(ImageKnob* knob) override; | |||||
void imageKnobDragFinished(ImageKnob* knob) override; | |||||
void imageKnobValueChanged(ImageKnob* knob, float value) override; | |||||
void imageSliderDragStarted(ImageSlider* slider) override; | |||||
void imageSliderDragFinished(ImageSlider* slider) override; | |||||
void imageSliderValueChanged(ImageSlider* slider, float value) override; | |||||
void onDisplay(); | |||||
void onDisplay() override; | |||||
private: | private: | ||||
Image fImgBackground; | Image fImgBackground; | ||||
ImageAboutWindow fAboutWindow; | |||||
ImageSlider* fSliderLow; | ImageSlider* fSliderLow; | ||||
ImageSlider* fSliderMid; | ImageSlider* fSliderMid; | ||||
@@ -5,6 +5,16 @@ | |||||
namespace DistrhoArtworkNekobi | namespace DistrhoArtworkNekobi | ||||
{ | { | ||||
extern const char* aboutButtonHoverData; | |||||
const unsigned int aboutButtonHoverDataSize = 7600; | |||||
const unsigned int aboutButtonHoverWidth = 95; | |||||
const unsigned int aboutButtonHoverHeight = 20; | |||||
extern const char* aboutButtonNormalData; | |||||
const unsigned int aboutButtonNormalDataSize = 7600; | |||||
const unsigned int aboutButtonNormalWidth = 95; | |||||
const unsigned int aboutButtonNormalHeight = 20; | |||||
extern const char* backgroundData; | extern const char* backgroundData; | ||||
const unsigned int backgroundDataSize = 206064; | const unsigned int backgroundDataSize = 206064; | ||||
const unsigned int backgroundWidth = 636; | const unsigned int backgroundWidth = 636; | ||||
@@ -21,9 +31,9 @@ namespace DistrhoArtworkNekobi | |||||
const unsigned int claw2Height = 32; | const unsigned int claw2Height = 32; | ||||
extern const char* knobData; | extern const char* knobData; | ||||
const unsigned int knobDataSize = 288444; | |||||
const unsigned int knobWidth = 43; | |||||
const unsigned int knobHeight = 1677; | |||||
const unsigned int knobDataSize = 390000; | |||||
const unsigned int knobWidth = 50; | |||||
const unsigned int knobHeight = 1950; | |||||
extern const char* run1Data; | extern const char* run1Data; | ||||
const unsigned int run1DataSize = 4096; | const unsigned int run1DataSize = 4096; | ||||
@@ -61,9 +71,9 @@ namespace DistrhoArtworkNekobi | |||||
const unsigned int sitHeight = 32; | const unsigned int sitHeight = 32; | ||||
extern const char* sliderData; | extern const char* sliderData; | ||||
const unsigned int sliderDataSize = 4624; | |||||
const unsigned int sliderWidth = 34; | |||||
const unsigned int sliderHeight = 34; | |||||
const unsigned int sliderDataSize = 6084; | |||||
const unsigned int sliderWidth = 39; | |||||
const unsigned int sliderHeight = 39; | |||||
extern const char* tailData; | extern const char* tailData; | ||||
const unsigned int tailDataSize = 4096; | const unsigned int tailDataSize = 4096; | ||||
@@ -24,21 +24,25 @@ START_NAMESPACE_DISTRHO | |||||
// ------------------------------------------------- | // ------------------------------------------------- | ||||
DistrhoUINekobi::DistrhoUINekobi() | DistrhoUINekobi::DistrhoUINekobi() | ||||
: OpenGLUI() | |||||
: OpenGLUI(), | |||||
fAboutWindow(this) | |||||
{ | { | ||||
Window* win = getParent(); | |||||
// FIXME | |||||
fNeko.setTimerSpeed(4); | fNeko.setTimerSpeed(4); | ||||
// background | // background | ||||
fImgBackground = Image(DistrhoArtworkNekobi::backgroundData, DistrhoArtworkNekobi::backgroundWidth, DistrhoArtworkNekobi::backgroundHeight, GL_BGR); | fImgBackground = Image(DistrhoArtworkNekobi::backgroundData, DistrhoArtworkNekobi::backgroundWidth, DistrhoArtworkNekobi::backgroundHeight, GL_BGR); | ||||
// TODO - about png | |||||
Image imageAbout(DistrhoArtworkNekobi::aboutButtonHoverData, DistrhoArtworkNekobi::aboutButtonHoverWidth, DistrhoArtworkNekobi::aboutButtonHoverHeight, GL_BGRA); | |||||
fAboutWindow.setImage(imageAbout); | |||||
// slider | // slider | ||||
Image sliderImage(DistrhoArtworkNekobi::sliderData, DistrhoArtworkNekobi::sliderWidth, DistrhoArtworkNekobi::sliderHeight); | Image sliderImage(DistrhoArtworkNekobi::sliderData, DistrhoArtworkNekobi::sliderWidth, DistrhoArtworkNekobi::sliderHeight); | ||||
fSliderWaveform = new ImageSlider(win, sliderImage); | |||||
fSliderWaveform->setStartPos(135, 39); | |||||
fSliderWaveform->setEndPos(135, 65); | |||||
fSliderWaveform = new ImageSlider(this, sliderImage); | |||||
fSliderWaveform->setStartPos(133, 38); | |||||
fSliderWaveform->setEndPos(133, 64); | |||||
fSliderWaveform->setRange(0.0f, 1.0f); | fSliderWaveform->setRange(0.0f, 1.0f); | ||||
fSliderWaveform->setValue(0.0f); | fSliderWaveform->setValue(0.0f); | ||||
fSliderWaveform->setCallback(this); | fSliderWaveform->setCallback(this); | ||||
@@ -47,53 +51,60 @@ DistrhoUINekobi::DistrhoUINekobi() | |||||
Image knobImage(DistrhoArtworkNekobi::knobData, DistrhoArtworkNekobi::knobWidth, DistrhoArtworkNekobi::knobHeight); | Image knobImage(DistrhoArtworkNekobi::knobData, DistrhoArtworkNekobi::knobWidth, DistrhoArtworkNekobi::knobHeight); | ||||
// knob Tuning | // knob Tuning | ||||
fKnobTuning = new ImageKnob(win, knobImage); | |||||
fKnobTuning->setPos(44, 46); | |||||
fKnobTuning = new ImageKnob(this, knobImage); | |||||
fKnobTuning->setPos(42, 45); | |||||
fKnobTuning->setRange(-12.0f, 12.0f); | fKnobTuning->setRange(-12.0f, 12.0f); | ||||
fKnobTuning->setValue(0.0f); | fKnobTuning->setValue(0.0f); | ||||
fKnobTuning->setCallback(this); | fKnobTuning->setCallback(this); | ||||
// knob Cutoff | // knob Cutoff | ||||
fKnobCutoff = new ImageKnob(win, knobImage); | |||||
fKnobCutoff->setPos(187, 46); | |||||
fKnobCutoff = new ImageKnob(this, knobImage); | |||||
fKnobCutoff->setPos(185, 45); | |||||
fKnobCutoff->setRange(0.0f, 100.0f); | fKnobCutoff->setRange(0.0f, 100.0f); | ||||
fKnobCutoff->setValue(25.0f); | fKnobCutoff->setValue(25.0f); | ||||
fKnobCutoff->setCallback(this); | fKnobCutoff->setCallback(this); | ||||
// knob Resonance | // knob Resonance | ||||
fKnobResonance = new ImageKnob(win, knobImage); | |||||
fKnobResonance->setPos(260, 46); | |||||
fKnobResonance = new ImageKnob(this, knobImage); | |||||
fKnobResonance->setPos(258, 45); | |||||
fKnobResonance->setRange(0.0f, 95.0f); | fKnobResonance->setRange(0.0f, 95.0f); | ||||
fKnobResonance->setValue(25.0f); | fKnobResonance->setValue(25.0f); | ||||
fKnobResonance->setCallback(this); | fKnobResonance->setCallback(this); | ||||
// knob Env Mod | // knob Env Mod | ||||
fKnobEnvMod = new ImageKnob(win, knobImage); | |||||
fKnobEnvMod->setPos(332, 46); | |||||
fKnobEnvMod = new ImageKnob(this, knobImage); | |||||
fKnobEnvMod->setPos(330, 45); | |||||
fKnobEnvMod->setRange(0.0f, 100.0f); | fKnobEnvMod->setRange(0.0f, 100.0f); | ||||
fKnobEnvMod->setValue(50.0f); | fKnobEnvMod->setValue(50.0f); | ||||
fKnobEnvMod->setCallback(this); | fKnobEnvMod->setCallback(this); | ||||
// knob Decay | // knob Decay | ||||
fKnobDecay = new ImageKnob(win, knobImage); | |||||
fKnobDecay->setPos(404, 46); | |||||
fKnobDecay = new ImageKnob(this, knobImage); | |||||
fKnobDecay->setPos(402, 45); | |||||
fKnobDecay->setRange(0.0f, 100.0f); | fKnobDecay->setRange(0.0f, 100.0f); | ||||
fKnobDecay->setValue(75.0f); | fKnobDecay->setValue(75.0f); | ||||
fKnobDecay->setCallback(this); | fKnobDecay->setCallback(this); | ||||
// knob Accent | // knob Accent | ||||
fKnobAccent = new ImageKnob(win, knobImage); | |||||
fKnobAccent->setPos(476, 46); | |||||
fKnobAccent = new ImageKnob(this, knobImage); | |||||
fKnobAccent->setPos(474, 45); | |||||
fKnobAccent->setRange(0.0f, 100.0f); | fKnobAccent->setRange(0.0f, 100.0f); | ||||
fKnobAccent->setValue(25.0f); | fKnobAccent->setValue(25.0f); | ||||
fKnobAccent->setCallback(this); | fKnobAccent->setCallback(this); | ||||
// knob Volume | // knob Volume | ||||
fKnobVolume = new ImageKnob(win, knobImage); | |||||
fKnobVolume->setPos(548, 46); | |||||
fKnobVolume = new ImageKnob(this, knobImage); | |||||
fKnobVolume->setPos(546, 45); | |||||
fKnobVolume->setRange(0.0f, 100.0f); | fKnobVolume->setRange(0.0f, 100.0f); | ||||
fKnobVolume->setValue(75.0f); | fKnobVolume->setValue(75.0f); | ||||
fKnobVolume->setCallback(this); | fKnobVolume->setCallback(this); | ||||
// about button | |||||
Image aboutImageNormal(DistrhoArtworkNekobi::aboutButtonNormalData, DistrhoArtworkNekobi::aboutButtonNormalWidth, DistrhoArtworkNekobi::aboutButtonNormalHeight); | |||||
Image aboutImageHover(DistrhoArtworkNekobi::aboutButtonHoverData, DistrhoArtworkNekobi::aboutButtonHoverWidth, DistrhoArtworkNekobi::aboutButtonHoverHeight); | |||||
fButtonAbout = new ImageButton(this, aboutImageNormal, aboutImageHover, aboutImageHover); | |||||
fButtonAbout->setPos(500, 5); | |||||
fButtonAbout->setCallback(this); | |||||
} | } | ||||
DistrhoUINekobi::~DistrhoUINekobi() | DistrhoUINekobi::~DistrhoUINekobi() | ||||
@@ -106,6 +117,7 @@ DistrhoUINekobi::~DistrhoUINekobi() | |||||
delete fKnobDecay; | delete fKnobDecay; | ||||
delete fKnobAccent; | delete fKnobAccent; | ||||
delete fKnobVolume; | delete fKnobVolume; | ||||
delete fButtonAbout; | |||||
} | } | ||||
// ------------------------------------------------- | // ------------------------------------------------- | ||||
@@ -155,7 +167,7 @@ void DistrhoUINekobi::d_programChanged(uint32_t index) | |||||
fKnobEnvMod->setValue(50.0f); | fKnobEnvMod->setValue(50.0f); | ||||
fKnobDecay->setValue(75.0f); | fKnobDecay->setValue(75.0f); | ||||
fKnobAccent->setValue(25.0f); | fKnobAccent->setValue(25.0f); | ||||
fKnobVolume->setValue(50.0f); | |||||
fKnobVolume->setValue(75.0f); | |||||
} | } | ||||
void DistrhoUINekobi::d_noteReceived(bool onOff, uint8_t, uint8_t note, uint8_t) | void DistrhoUINekobi::d_noteReceived(bool onOff, uint8_t, uint8_t note, uint8_t) | ||||
@@ -180,7 +192,10 @@ void DistrhoUINekobi::d_uiIdle() | |||||
void DistrhoUINekobi::imageButtonClicked(ImageButton* button, int) | void DistrhoUINekobi::imageButtonClicked(ImageButton* button, int) | ||||
{ | { | ||||
(void)button; | |||||
if (button != fButtonAbout) | |||||
return; | |||||
fAboutWindow.exec(); | |||||
} | } | ||||
void DistrhoUINekobi::imageKnobDragStarted(ImageKnob* knob) | void DistrhoUINekobi::imageKnobDragStarted(ImageKnob* knob) | ||||
@@ -19,6 +19,8 @@ | |||||
#define __DISTRHO_UI_3BANDEQ_HPP__ | #define __DISTRHO_UI_3BANDEQ_HPP__ | ||||
#include "DistrhoUIOpenGL.hpp" | #include "DistrhoUIOpenGL.hpp" | ||||
#include "dgl/ImageAboutWindow.hpp" | |||||
#include "dgl/ImageButton.hpp" | #include "dgl/ImageButton.hpp" | ||||
#include "dgl/ImageKnob.hpp" | #include "dgl/ImageKnob.hpp" | ||||
#include "dgl/ImageSlider.hpp" | #include "dgl/ImageSlider.hpp" | ||||
@@ -91,7 +93,9 @@ private: | |||||
ImageKnob* fKnobAccent; | ImageKnob* fKnobAccent; | ||||
ImageKnob* fKnobVolume; | ImageKnob* fKnobVolume; | ||||
ImageButton* fButtonAbout; | |||||
ImageSlider* fSliderWaveform; | ImageSlider* fSliderWaveform; | ||||
ImageAboutWindow fAboutWindow; | |||||
}; | }; | ||||
// ------------------------------------------------- | // ------------------------------------------------- | ||||
@@ -46,23 +46,23 @@ class DistrhoUINotes : public QtUI | |||||
public: | public: | ||||
DistrhoUINotes(); | DistrhoUINotes(); | ||||
~DistrhoUINotes(); | |||||
~DistrhoUINotes() override; | |||||
protected: | protected: | ||||
// --------------------------------------------- | // --------------------------------------------- | ||||
// Information | // Information | ||||
bool d_resizable() | |||||
bool d_resizable() const override | |||||
{ | { | ||||
return true; | return true; | ||||
} | } | ||||
uint d_minimumWidth() | |||||
uint d_minimumWidth() const override | |||||
{ | { | ||||
return 180; | return 180; | ||||
} | } | ||||
uint d_minimumHeight() | |||||
uint d_minimumHeight() const override | |||||
{ | { | ||||
return 150; | return 150; | ||||
} | } | ||||
@@ -70,18 +70,18 @@ protected: | |||||
// --------------------------------------------- | // --------------------------------------------- | ||||
// DSP Callbacks | // DSP Callbacks | ||||
void d_parameterChanged(uint32_t index, float value); | |||||
void d_stateChanged(const char* key, const char* value); | |||||
void d_parameterChanged(uint32_t index, float value) override; | |||||
void d_stateChanged(const char* key, const char* value) override; | |||||
// --------------------------------------------- | // --------------------------------------------- | ||||
// UI Callbacks | // UI Callbacks | ||||
void d_uiIdle(); | |||||
void d_uiIdle() override; | |||||
// --------------------------------------------- | // --------------------------------------------- | ||||
// listen for resize events | // listen for resize events | ||||
void resizeEvent(QResizeEvent*); | |||||
void resizeEvent(QResizeEvent*) override; | |||||
private slots: | private slots: | ||||
void buttonClicked(bool click); | void buttonClicked(bool click); | ||||
@@ -21,14 +21,14 @@ namespace DistrhoArtworkPingPongPan | |||||
const unsigned int aboutButtonNormalHeight = 20; | const unsigned int aboutButtonNormalHeight = 20; | ||||
extern const char* backgroundData; | extern const char* backgroundData; | ||||
const unsigned int backgroundDataSize = 150552; | |||||
const unsigned int backgroundWidth = 369; | |||||
const unsigned int backgroundHeight = 136; | |||||
const unsigned int backgroundDataSize = 157080; | |||||
const unsigned int backgroundWidth = 308; | |||||
const unsigned int backgroundHeight = 170; | |||||
extern const char* knobData; | extern const char* knobData; | ||||
const unsigned int knobDataSize = 721344; | |||||
const unsigned int knobWidth = 68; | |||||
const unsigned int knobHeight = 2652; | |||||
const unsigned int knobDataSize = 700284; | |||||
const unsigned int knobWidth = 67; | |||||
const unsigned int knobHeight = 2613; | |||||
} | } | ||||
#endif // BINARY_DISTRHOARTWORKPINGPONGPAN_HPP | #endif // BINARY_DISTRHOARTWORKPINGPONGPAN_HPP | ||||
@@ -23,26 +23,29 @@ START_NAMESPACE_DISTRHO | |||||
// ------------------------------------------------- | // ------------------------------------------------- | ||||
DistrhoUIPingPongPan::DistrhoUIPingPongPan() | DistrhoUIPingPongPan::DistrhoUIPingPongPan() | ||||
: OpenGLUI() | |||||
: OpenGLUI(), | |||||
fAboutWindow(this) | |||||
{ | { | ||||
Window* win = getParent(); | |||||
// background | // background | ||||
fImgBackground = Image(DistrhoArtworkPingPongPan::backgroundData, DistrhoArtworkPingPongPan::backgroundWidth, DistrhoArtworkPingPongPan::backgroundHeight, GL_BGR); | fImgBackground = Image(DistrhoArtworkPingPongPan::backgroundData, DistrhoArtworkPingPongPan::backgroundWidth, DistrhoArtworkPingPongPan::backgroundHeight, GL_BGR); | ||||
// TODO - about png | |||||
Image imageAbout(DistrhoArtworkPingPongPan::aboutButtonHoverData, DistrhoArtworkPingPongPan::aboutButtonHoverWidth, DistrhoArtworkPingPongPan::aboutButtonHoverHeight, GL_BGRA); | |||||
fAboutWindow.setImage(imageAbout); | |||||
// knobs | // knobs | ||||
Image knobImage(DistrhoArtworkPingPongPan::knobData, DistrhoArtworkPingPongPan::knobWidth, DistrhoArtworkPingPongPan::knobHeight); | Image knobImage(DistrhoArtworkPingPongPan::knobData, DistrhoArtworkPingPongPan::knobWidth, DistrhoArtworkPingPongPan::knobHeight); | ||||
// knob Low-Mid | // knob Low-Mid | ||||
fKnobFreq = new ImageKnob(win, knobImage); | |||||
fKnobFreq->setPos(136, 30); | |||||
fKnobFreq = new ImageKnob(this, knobImage); | |||||
fKnobFreq->setPos(61, 59); | |||||
fKnobFreq->setRange(0.0f, 100.0f); | fKnobFreq->setRange(0.0f, 100.0f); | ||||
fKnobFreq->setValue(50.0f); | fKnobFreq->setValue(50.0f); | ||||
fKnobFreq->setCallback(this); | fKnobFreq->setCallback(this); | ||||
// knob Mid-High | // knob Mid-High | ||||
fKnobWidth = new ImageKnob(win, knobImage); | |||||
fKnobWidth->setPos(258, 30); | |||||
fKnobWidth = new ImageKnob(this, knobImage); | |||||
fKnobWidth->setPos(183, 59); | |||||
fKnobWidth->setRange(0.0f, 100.0f); | fKnobWidth->setRange(0.0f, 100.0f); | ||||
fKnobWidth->setValue(75.0f); | fKnobWidth->setValue(75.0f); | ||||
fKnobWidth->setCallback(this); | fKnobWidth->setCallback(this); | ||||
@@ -50,8 +53,8 @@ DistrhoUIPingPongPan::DistrhoUIPingPongPan() | |||||
// about button | // about button | ||||
Image aboutImageNormal(DistrhoArtworkPingPongPan::aboutButtonNormalData, DistrhoArtworkPingPongPan::aboutButtonNormalWidth, DistrhoArtworkPingPongPan::aboutButtonNormalHeight); | Image aboutImageNormal(DistrhoArtworkPingPongPan::aboutButtonNormalData, DistrhoArtworkPingPongPan::aboutButtonNormalWidth, DistrhoArtworkPingPongPan::aboutButtonNormalHeight); | ||||
Image aboutImageHover(DistrhoArtworkPingPongPan::aboutButtonHoverData, DistrhoArtworkPingPongPan::aboutButtonHoverWidth, DistrhoArtworkPingPongPan::aboutButtonHoverHeight); | Image aboutImageHover(DistrhoArtworkPingPongPan::aboutButtonHoverData, DistrhoArtworkPingPongPan::aboutButtonHoverWidth, DistrhoArtworkPingPongPan::aboutButtonHoverHeight); | ||||
fButtonAbout = new ImageButton(win, aboutImageNormal, aboutImageHover, aboutImageHover); | |||||
fButtonAbout->setPos(25, 23); | |||||
fButtonAbout = new ImageButton(this, aboutImageNormal, aboutImageHover, aboutImageHover); | |||||
fButtonAbout->setPos(183, 8); | |||||
fButtonAbout->setCallback(this); | fButtonAbout->setCallback(this); | ||||
} | } | ||||
@@ -96,9 +99,7 @@ void DistrhoUIPingPongPan::imageButtonClicked(ImageButton* button, int) | |||||
if (button != fButtonAbout) | if (button != fButtonAbout) | ||||
return; | return; | ||||
Image imageAbout(DistrhoArtworkPingPongPan::aboutData, DistrhoArtworkPingPongPan::aboutWidth, DistrhoArtworkPingPongPan::aboutHeight, GL_BGR); | |||||
ImageAboutWindow aboutWindow(getApp(), getParent(), imageAbout); | |||||
aboutWindow.exec(); | |||||
fAboutWindow.exec(); | |||||
} | } | ||||
void DistrhoUIPingPongPan::imageKnobDragStarted(ImageKnob* knob) | void DistrhoUIPingPongPan::imageKnobDragStarted(ImageKnob* knob) | ||||
@@ -18,6 +18,8 @@ | |||||
#define __DISTRHO_UI_PINGPONGPAN_HPP__ | #define __DISTRHO_UI_PINGPONGPAN_HPP__ | ||||
#include "DistrhoUIOpenGL.hpp" | #include "DistrhoUIOpenGL.hpp" | ||||
#include "dgl/ImageAboutWindow.hpp" | |||||
#include "dgl/ImageButton.hpp" | #include "dgl/ImageButton.hpp" | ||||
#include "dgl/ImageKnob.hpp" | #include "dgl/ImageKnob.hpp" | ||||
@@ -34,19 +36,19 @@ class DistrhoUIPingPongPan : public OpenGLUI, | |||||
{ | { | ||||
public: | public: | ||||
DistrhoUIPingPongPan(); | DistrhoUIPingPongPan(); | ||||
~DistrhoUIPingPongPan(); | |||||
~DistrhoUIPingPongPan() override; | |||||
protected: | protected: | ||||
// --------------------------------------------- | // --------------------------------------------- | ||||
// Information | // Information | ||||
unsigned int d_width() const | |||||
unsigned int d_width() const override | |||||
{ | { | ||||
return DistrhoArtworkPingPongPan::backgroundWidth; | return DistrhoArtworkPingPongPan::backgroundWidth; | ||||
} | } | ||||
unsigned int d_height() const | |||||
unsigned int d_height() const override | |||||
{ | { | ||||
return DistrhoArtworkPingPongPan::backgroundHeight; | return DistrhoArtworkPingPongPan::backgroundHeight; | ||||
} | } | ||||
@@ -54,21 +56,22 @@ protected: | |||||
// --------------------------------------------- | // --------------------------------------------- | ||||
// DSP Callbacks | // DSP Callbacks | ||||
void d_parameterChanged(uint32_t index, float value); | |||||
void d_programChanged(uint32_t index); | |||||
void d_parameterChanged(uint32_t index, float value) override; | |||||
void d_programChanged(uint32_t index) override; | |||||
// --------------------------------------------- | // --------------------------------------------- | ||||
// Widget Callbacks | // Widget Callbacks | ||||
void imageButtonClicked(ImageButton* button, int); | |||||
void imageKnobDragStarted(ImageKnob* knob); | |||||
void imageKnobDragFinished(ImageKnob* knob); | |||||
void imageKnobValueChanged(ImageKnob* knob, float value); | |||||
void imageButtonClicked(ImageButton* button, int) override; | |||||
void imageKnobDragStarted(ImageKnob* knob) override; | |||||
void imageKnobDragFinished(ImageKnob* knob) override; | |||||
void imageKnobValueChanged(ImageKnob* knob, float value) override; | |||||
void onDisplay(); | |||||
void onDisplay() override; | |||||
private: | private: | ||||
Image fImgBackground; | Image fImgBackground; | ||||
ImageAboutWindow fAboutWindow; | |||||
ImageKnob* fKnobFreq; | ImageKnob* fKnobFreq; | ||||
ImageKnob* fKnobWidth; | ImageKnob* fKnobWidth; | ||||
@@ -23,29 +23,32 @@ START_NAMESPACE_DISTRHO | |||||
// ------------------------------------------------- | // ------------------------------------------------- | ||||
DistrhoUIStereoEnhancer::DistrhoUIStereoEnhancer() | DistrhoUIStereoEnhancer::DistrhoUIStereoEnhancer() | ||||
: OpenGLUI() | |||||
: OpenGLUI(), | |||||
fAboutWindow(this) | |||||
{ | { | ||||
Window* win = getParent(); | |||||
// background | // background | ||||
fImgBackground = Image(DistrhoArtworkStereoEnhancer::backgroundData, DistrhoArtworkStereoEnhancer::backgroundWidth, DistrhoArtworkStereoEnhancer::backgroundHeight, GL_BGR); | fImgBackground = Image(DistrhoArtworkStereoEnhancer::backgroundData, DistrhoArtworkStereoEnhancer::backgroundWidth, DistrhoArtworkStereoEnhancer::backgroundHeight, GL_BGR); | ||||
// TODO - about png | |||||
Image imageAbout(DistrhoArtworkStereoEnhancer::aboutButtonHoverData, DistrhoArtworkStereoEnhancer::aboutButtonHoverWidth, DistrhoArtworkStereoEnhancer::aboutButtonHoverHeight, GL_BGRA); | |||||
fAboutWindow.setImage(imageAbout); | |||||
// knobs | // knobs | ||||
Image knobImage(DistrhoArtworkStereoEnhancer::knobData, DistrhoArtworkStereoEnhancer::knobWidth, DistrhoArtworkStereoEnhancer::knobHeight); | Image knobImage(DistrhoArtworkStereoEnhancer::knobData, DistrhoArtworkStereoEnhancer::knobWidth, DistrhoArtworkStereoEnhancer::knobHeight); | ||||
fKnobWidthLows = new ImageKnob(win, knobImage); | |||||
fKnobWidthLows = new ImageKnob(this, knobImage); | |||||
fKnobWidthLows->setPos(140, 35); | fKnobWidthLows->setPos(140, 35); | ||||
fKnobWidthLows->setRange(0.0f, 200.0f); | fKnobWidthLows->setRange(0.0f, 200.0f); | ||||
fKnobWidthLows->setValue(100.0f); | fKnobWidthLows->setValue(100.0f); | ||||
fKnobWidthLows->setCallback(this); | fKnobWidthLows->setCallback(this); | ||||
fKnobWidthHighs = new ImageKnob(win, knobImage); | |||||
fKnobWidthHighs = new ImageKnob(this, knobImage); | |||||
fKnobWidthHighs->setPos(362, 35); | fKnobWidthHighs->setPos(362, 35); | ||||
fKnobWidthHighs->setRange(0.0f, 200.0f); | fKnobWidthHighs->setRange(0.0f, 200.0f); | ||||
fKnobWidthHighs->setValue(100.0f); | fKnobWidthHighs->setValue(100.0f); | ||||
fKnobWidthHighs->setCallback(this); | fKnobWidthHighs->setCallback(this); | ||||
fKnobCrossover = new ImageKnob(win, knobImage); | |||||
fKnobCrossover = new ImageKnob(this, knobImage); | |||||
fKnobCrossover->setPos(253, 35); | fKnobCrossover->setPos(253, 35); | ||||
fKnobCrossover->setRange(0.0f, 100.0f); | fKnobCrossover->setRange(0.0f, 100.0f); | ||||
fKnobCrossover->setValue(27.51604f); | fKnobCrossover->setValue(27.51604f); | ||||
@@ -54,7 +57,7 @@ DistrhoUIStereoEnhancer::DistrhoUIStereoEnhancer() | |||||
// about button | // about button | ||||
Image aboutImageNormal(DistrhoArtworkStereoEnhancer::aboutButtonNormalData, DistrhoArtworkStereoEnhancer::aboutButtonNormalWidth, DistrhoArtworkStereoEnhancer::aboutButtonNormalHeight); | Image aboutImageNormal(DistrhoArtworkStereoEnhancer::aboutButtonNormalData, DistrhoArtworkStereoEnhancer::aboutButtonNormalWidth, DistrhoArtworkStereoEnhancer::aboutButtonNormalHeight); | ||||
Image aboutImageHover(DistrhoArtworkStereoEnhancer::aboutButtonHoverData, DistrhoArtworkStereoEnhancer::aboutButtonHoverWidth, DistrhoArtworkStereoEnhancer::aboutButtonHoverHeight); | Image aboutImageHover(DistrhoArtworkStereoEnhancer::aboutButtonHoverData, DistrhoArtworkStereoEnhancer::aboutButtonHoverWidth, DistrhoArtworkStereoEnhancer::aboutButtonHoverHeight); | ||||
fButtonAbout = new ImageButton(win, aboutImageNormal, aboutImageHover, aboutImageHover); | |||||
fButtonAbout = new ImageButton(this, aboutImageNormal, aboutImageHover, aboutImageHover); | |||||
fButtonAbout->setPos(346, 3); | fButtonAbout->setPos(346, 3); | ||||
fButtonAbout->setCallback(this); | fButtonAbout->setCallback(this); | ||||
} | } | ||||
@@ -105,10 +108,7 @@ void DistrhoUIStereoEnhancer::imageButtonClicked(ImageButton* button, int) | |||||
if (button != fButtonAbout) | if (button != fButtonAbout) | ||||
return; | return; | ||||
// TODO | |||||
//Image imageAbout(DistrhoArtworkStereoEnhancer::aboutData, DistrhoArtworkStereoEnhancer::aboutWidth, DistrhoArtworkStereoEnhancer::aboutHeight, GL_BGR); | |||||
//ImageAboutWindow aboutWindow(getApp(), getParent(), imageAbout); | |||||
//aboutWindow.exec(); | |||||
fAboutWindow.exec(); | |||||
} | } | ||||
void DistrhoUIStereoEnhancer::imageKnobDragStarted(ImageKnob* knob) | void DistrhoUIStereoEnhancer::imageKnobDragStarted(ImageKnob* knob) | ||||
@@ -18,6 +18,8 @@ | |||||
#define __DISTRHO_UI_3BANDEQ_HPP__ | #define __DISTRHO_UI_3BANDEQ_HPP__ | ||||
#include "DistrhoUIOpenGL.hpp" | #include "DistrhoUIOpenGL.hpp" | ||||
#include "dgl/ImageAboutWindow.hpp" | |||||
#include "dgl/ImageButton.hpp" | #include "dgl/ImageButton.hpp" | ||||
#include "dgl/ImageKnob.hpp" | #include "dgl/ImageKnob.hpp" | ||||
@@ -34,18 +36,18 @@ class DistrhoUIStereoEnhancer : public OpenGLUI, | |||||
{ | { | ||||
public: | public: | ||||
DistrhoUIStereoEnhancer(); | DistrhoUIStereoEnhancer(); | ||||
~DistrhoUIStereoEnhancer(); | |||||
~DistrhoUIStereoEnhancer() override; | |||||
protected: | protected: | ||||
// --------------------------------------------- | // --------------------------------------------- | ||||
// Information | // Information | ||||
unsigned int d_width() const | |||||
unsigned int d_width() const override | |||||
{ | { | ||||
return DistrhoArtworkStereoEnhancer::backgroundWidth; | return DistrhoArtworkStereoEnhancer::backgroundWidth; | ||||
} | } | ||||
unsigned int d_height() const | |||||
unsigned int d_height() const override | |||||
{ | { | ||||
return DistrhoArtworkStereoEnhancer::backgroundHeight; | return DistrhoArtworkStereoEnhancer::backgroundHeight; | ||||
} | } | ||||
@@ -53,21 +55,22 @@ protected: | |||||
// --------------------------------------------- | // --------------------------------------------- | ||||
// DSP Callbacks | // DSP Callbacks | ||||
void d_parameterChanged(uint32_t index, float value); | |||||
void d_programChanged(uint32_t index); | |||||
void d_parameterChanged(uint32_t index, float value) override; | |||||
void d_programChanged(uint32_t index) override; | |||||
// --------------------------------------------- | // --------------------------------------------- | ||||
// Widget Callbacks | // Widget Callbacks | ||||
void imageButtonClicked(ImageButton* button, int); | |||||
void imageKnobDragStarted(ImageKnob* knob); | |||||
void imageKnobDragFinished(ImageKnob* knob); | |||||
void imageKnobValueChanged(ImageKnob* knob, float value); | |||||
void imageButtonClicked(ImageButton* button, int) override; | |||||
void imageKnobDragStarted(ImageKnob* knob) override; | |||||
void imageKnobDragFinished(ImageKnob* knob) override; | |||||
void imageKnobValueChanged(ImageKnob* knob, float value) override; | |||||
void onDisplay(); | |||||
void onDisplay() override; | |||||
private: | private: | ||||
Image fImgBackground; | Image fImgBackground; | ||||
ImageAboutWindow fAboutWindow; | |||||
ImageKnob* fKnobWidthLows; | ImageKnob* fKnobWidthLows; | ||||
ImageKnob* fKnobWidthHighs; | ImageKnob* fKnobWidthHighs; | ||||
@@ -48,9 +48,9 @@ protected: | |||||
// --------------------------------------------- | // --------------------------------------------- | ||||
// Information | // Information | ||||
virtual bool d_resizable() { return false; } | |||||
virtual uint d_minimumWidth() { return 100; } | |||||
virtual uint d_minimumHeight() { return 100; } | |||||
virtual bool d_resizable() const { return false; } | |||||
virtual uint d_minimumWidth() const { return 100; } | |||||
virtual uint d_minimumHeight() const { return 100; } | |||||
// --------------------------------------------- | // --------------------------------------------- | ||||
// DSP Callbacks | // DSP Callbacks | ||||
@@ -41,9 +41,9 @@ public: | |||||
void setImage(const Image& image); | void setImage(const Image& image); | ||||
protected: | protected: | ||||
void onDisplay(); | |||||
bool onMouse(int button, bool press, int x, int y); | |||||
bool onKeyboard(bool press, uint32_t key); | |||||
void onDisplay() override; | |||||
bool onMouse(int button, bool press, int x, int y) override; | |||||
bool onKeyboard(bool press, uint32_t key) override; | |||||
private: | private: | ||||
Image fImgBackground; | Image fImgBackground; | ||||
@@ -35,15 +35,17 @@ public: | |||||
}; | }; | ||||
ImageButton(Window* parent, const Image& image); | ImageButton(Window* parent, const Image& image); | ||||
ImageButton(Widget* widget, const Image& image); | |||||
ImageButton(Window* parent, const Image& imageNormal, const Image& imageHover, const Image& imageDown); | ImageButton(Window* parent, const Image& imageNormal, const Image& imageHover, const Image& imageDown); | ||||
ImageButton(Widget* widget, const Image& imageNormal, const Image& imageHover, const Image& imageDown); | |||||
ImageButton(const ImageButton& imageButton); | ImageButton(const ImageButton& imageButton); | ||||
void setCallback(Callback* callback); | void setCallback(Callback* callback); | ||||
protected: | protected: | ||||
void onDisplay(); | |||||
bool onMouse(int button, bool press, int x, int y); | |||||
bool onMotion(int x, int y); | |||||
void onDisplay() override; | |||||
bool onMouse(int button, bool press, int x, int y) override; | |||||
bool onMotion(int x, int y) override; | |||||
private: | private: | ||||
Image fImageNormal; | Image fImageNormal; | ||||
@@ -42,6 +42,7 @@ public: | |||||
}; | }; | ||||
ImageKnob(Window* parent, const Image& image, Orientation orientation = Vertical); | ImageKnob(Window* parent, const Image& image, Orientation orientation = Vertical); | ||||
ImageKnob(Widget* widget, const Image& image, Orientation orientation = Vertical); | |||||
ImageKnob(const ImageKnob& imageKnob); | ImageKnob(const ImageKnob& imageKnob); | ||||
float getValue() const; | float getValue() const; | ||||
@@ -53,9 +54,9 @@ public: | |||||
void setCallback(Callback* callback); | void setCallback(Callback* callback); | ||||
protected: | protected: | ||||
void onDisplay(); | |||||
bool onMouse(int button, bool press, int x, int y); | |||||
bool onMotion(int x, int y); | |||||
void onDisplay() override; | |||||
bool onMouse(int button, bool press, int x, int y) override; | |||||
bool onMotion(int x, int y) override; | |||||
private: | private: | ||||
Image fImage; | Image fImage; | ||||
@@ -37,6 +37,7 @@ public: | |||||
}; | }; | ||||
ImageSlider(Window* parent, const Image& image); | ImageSlider(Window* parent, const Image& image); | ||||
ImageSlider(Widget* widget, const Image& image); | |||||
ImageSlider(const ImageSlider& imageSlider); | ImageSlider(const ImageSlider& imageSlider); | ||||
float getValue() const; | float getValue() const; | ||||
@@ -52,9 +53,9 @@ public: | |||||
void setCallback(Callback* callback); | void setCallback(Callback* callback); | ||||
protected: | protected: | ||||
void onDisplay(); | |||||
bool onMouse(int button, bool press, int x, int y); | |||||
bool onMotion(int x, int y); | |||||
void onDisplay() override; | |||||
bool onMouse(int button, bool press, int x, int y) override; | |||||
bool onMotion(int x, int y) override; | |||||
private: | private: | ||||
Image fImage; | Image fImage; | ||||
@@ -22,10 +22,6 @@ OBJS = \ | |||||
src/Widget.cpp.o \ | src/Widget.cpp.o \ | ||||
src/Window.cpp.o | src/Window.cpp.o | ||||
ifeq ($(MACOS),true) | |||||
OBJS += src/pugl/pugl_osx.m.o | |||||
endif | |||||
OBJS_posix32 = \ | OBJS_posix32 = \ | ||||
src/App.cpp.posix32.o \ | src/App.cpp.posix32.o \ | ||||
src/Image.cpp.posix32.o \ | src/Image.cpp.posix32.o \ | ||||
@@ -70,6 +66,12 @@ OBJS_win64 = \ | |||||
src/Widget.cpp.win64.o \ | src/Widget.cpp.win64.o \ | ||||
src/Window.cpp.win64.o | src/Window.cpp.win64.o | ||||
ifeq ($(MACOS),true) | |||||
OBJS += src/pugl/pugl_osx_extended.m.o | |||||
OBJS_posix32 += src/pugl/pugl_osx_extended.m.posix32.o | |||||
OBJS_posix64 += src/pugl/pugl_osx_extended.m.posix64.o | |||||
endif | |||||
# -------------------------------------------------------------- | # -------------------------------------------------------------- | ||||
all: ../../dgl.a | all: ../../dgl.a | ||||
@@ -100,10 +102,10 @@ win64: ../../dgl.win64.a | |||||
$(CXX) $^ -shared $(LINK_FLAGS) -lopengl32 -lgdi32 -o $@ | $(CXX) $^ -shared $(LINK_FLAGS) -lopengl32 -lgdi32 -o $@ | ||||
../../dgl.dylib: $(OBJS) | ../../dgl.dylib: $(OBJS) | ||||
$(CXX) $^ -shared $(LINK_FLAGS) -framework Cocoa -framework OpenGL -o $@ | |||||
$(CXX) $^ -shared $(LINK_FLAGS) -framework OpenGL -framework Cocoa -o $@ | |||||
../../dgl.so: $(OBJS) | ../../dgl.so: $(OBJS) | ||||
$(CXX) $^ -shared $(LINK_FLAGS) -lX11 -lGL -lGLU -o $@ | |||||
$(CXX) $^ -shared $(LINK_FLAGS) -lGL -lX11 -o $@ | |||||
# -------------------------------------------------------------- | # -------------------------------------------------------------- | ||||
@@ -33,6 +33,17 @@ ImageButton::ImageButton(Window* parent, const Image& image) | |||||
{ | { | ||||
} | } | ||||
ImageButton::ImageButton(Widget* widget, const Image& image) | |||||
: Widget(widget->getParent()), | |||||
fImageNormal(image), | |||||
fImageHover(image), | |||||
fImageDown(image), | |||||
fCurImage(&fImageNormal), | |||||
fCurButton(-1), | |||||
fCallback(nullptr) | |||||
{ | |||||
} | |||||
ImageButton::ImageButton(Window* parent, const Image& imageNormal, const Image& imageHover, const Image& imageDown) | ImageButton::ImageButton(Window* parent, const Image& imageNormal, const Image& imageHover, const Image& imageDown) | ||||
: Widget(parent), | : Widget(parent), | ||||
fImageNormal(imageNormal), | fImageNormal(imageNormal), | ||||
@@ -47,6 +58,20 @@ ImageButton::ImageButton(Window* parent, const Image& imageNormal, const Image& | |||||
setSize(fCurImage->getSize()); | setSize(fCurImage->getSize()); | ||||
} | } | ||||
ImageButton::ImageButton(Widget* widget, const Image& imageNormal, const Image& imageHover, const Image& imageDown) | |||||
: Widget(widget->getParent()), | |||||
fImageNormal(imageNormal), | |||||
fImageHover(imageHover), | |||||
fImageDown(imageDown), | |||||
fCurImage(&fImageNormal), | |||||
fCurButton(-1), | |||||
fCallback(nullptr) | |||||
{ | |||||
assert(fImageNormal.getSize() == fImageHover.getSize() && fImageHover.getSize() == fImageDown.getSize()); | |||||
setSize(fCurImage->getSize()); | |||||
} | |||||
ImageButton::ImageButton(const ImageButton& imageButton) | ImageButton::ImageButton(const ImageButton& imageButton) | ||||
: Widget(imageButton.getParent()), | : Widget(imageButton.getParent()), | ||||
fImageNormal(imageButton.fImageNormal), | fImageNormal(imageButton.fImageNormal), | ||||
@@ -39,6 +39,25 @@ ImageKnob::ImageKnob(Window* parent, const Image& image, Orientation orientation | |||||
setSize(fImgLayerSize, fImgLayerSize); | setSize(fImgLayerSize, fImgLayerSize); | ||||
} | } | ||||
ImageKnob::ImageKnob(Widget* widget, const Image& image, Orientation orientation) | |||||
: Widget(widget->getParent()), | |||||
fImage(image), | |||||
fMinimum(0.0f), | |||||
fMaximum(1.0f), | |||||
fValue(0.5f), | |||||
fOrientation(orientation), | |||||
fDragging(false), | |||||
fLastX(0), | |||||
fLastY(0), | |||||
fCallback(nullptr), | |||||
fIsImgVertical(image.getHeight() > image.getWidth()), | |||||
fImgLayerSize(fIsImgVertical ? image.getWidth() : image.getHeight()), | |||||
fImgLayerCount(fIsImgVertical ? image.getHeight()/fImgLayerSize : image.getWidth()/fImgLayerSize), | |||||
fKnobArea(0, 0, fImgLayerSize, fImgLayerSize) | |||||
{ | |||||
setSize(fImgLayerSize, fImgLayerSize); | |||||
} | |||||
ImageKnob::ImageKnob(const ImageKnob& imageKnob) | ImageKnob::ImageKnob(const ImageKnob& imageKnob) | ||||
: Widget(imageKnob.getParent()), | : Widget(imageKnob.getParent()), | ||||
fImage(imageKnob.fImage), | fImage(imageKnob.fImage), | ||||
@@ -34,6 +34,20 @@ ImageSlider::ImageSlider(Window* parent, const Image& image) | |||||
setSize(fImage.getSize()); | setSize(fImage.getSize()); | ||||
} | } | ||||
ImageSlider::ImageSlider(Widget* widget, const Image& image) | |||||
: Widget(widget->getParent()), | |||||
fImage(image), | |||||
fMinimum(0.0f), | |||||
fMaximum(1.0f), | |||||
fValue(0.5f), | |||||
fDragging(false), | |||||
fStartedX(0), | |||||
fStartedY(0), | |||||
fCallback(nullptr) | |||||
{ | |||||
setSize(fImage.getSize()); | |||||
} | |||||
ImageSlider::ImageSlider(const ImageSlider& imageSlider) | ImageSlider::ImageSlider(const ImageSlider& imageSlider) | ||||
: Widget(imageSlider.getParent()), | : Widget(imageSlider.getParent()), | ||||
fImage(imageSlider.fImage), | fImage(imageSlider.fImage), | ||||
@@ -24,7 +24,9 @@ | |||||
#if DGL_OS_WINDOWS | #if DGL_OS_WINDOWS | ||||
# include "pugl/pugl_win.cpp" | # include "pugl/pugl_win.cpp" | ||||
#elif DGL_OS_MAC | #elif DGL_OS_MAC | ||||
// compiled separately | |||||
extern "C" { | |||||
# include "pugl/pugl_osx_extended.h" | |||||
} | |||||
#elif DGL_OS_LINUX | #elif DGL_OS_LINUX | ||||
extern "C" { | extern "C" { | ||||
# include "pugl/pugl_x11.c" | # include "pugl/pugl_x11.c" | ||||
@@ -191,6 +193,8 @@ public: | |||||
SetForegroundWindow(hwnd); | SetForegroundWindow(hwnd); | ||||
SetActiveWindow(hwnd); | SetActiveWindow(hwnd); | ||||
SetFocus(hwnd); | SetFocus(hwnd); | ||||
#elif DGL_OS_MAC | |||||
puglImplFocus(kView); | |||||
#elif DGL_OS_LINUX | #elif DGL_OS_LINUX | ||||
XRaiseWindow(xDisplay, xWindow); | XRaiseWindow(xDisplay, xWindow); | ||||
XSetInputFocus(xDisplay, xWindow, RevertToPointerRoot, CurrentTime); | XSetInputFocus(xDisplay, xWindow, RevertToPointerRoot, CurrentTime); | ||||
@@ -261,6 +265,8 @@ public: | |||||
} | } | ||||
UpdateWindow(hwnd); | UpdateWindow(hwnd); | ||||
#elif DGL_OS_MAC | |||||
puglImplSetVisible(kView, yesNo); | |||||
#elif DGL_OS_LINUX | #elif DGL_OS_LINUX | ||||
if (yesNo) | if (yesNo) | ||||
XMapRaised(xDisplay, xWindow); | XMapRaised(xDisplay, xWindow); | ||||
@@ -297,6 +303,8 @@ public: | |||||
SetWindowPos(hwnd, 0, 0, 0, wr.right-wr.left, wr.bottom-wr.top, SWP_NOACTIVATE|SWP_NOMOVE|SWP_NOOWNERZORDER|SWP_NOZORDER); | SetWindowPos(hwnd, 0, 0, 0, wr.right-wr.left, wr.bottom-wr.top, SWP_NOACTIVATE|SWP_NOMOVE|SWP_NOOWNERZORDER|SWP_NOZORDER); | ||||
UpdateWindow(hwnd); | UpdateWindow(hwnd); | ||||
#elif DGL_OS_MAC | |||||
puglImplSetSize(kView, width, height); | |||||
#elif DGL_OS_LINUX | #elif DGL_OS_LINUX | ||||
// TODO - handle fResizable | // TODO - handle fResizable | ||||
XSizeHints sizeHints; | XSizeHints sizeHints; | ||||
@@ -318,6 +326,8 @@ public: | |||||
{ | { | ||||
#if DGL_OS_WINDOWS | #if DGL_OS_WINDOWS | ||||
SetWindowTextA(hwnd, title); | SetWindowTextA(hwnd, title); | ||||
#elif DGL_OS_MAC | |||||
puglImplSetTitle(kView, title); | |||||
#elif DGL_OS_LINUX | #elif DGL_OS_LINUX | ||||
XStoreName(xDisplay, xWindow, title); | XStoreName(xDisplay, xWindow, title); | ||||
XFlush(xDisplay); | XFlush(xDisplay); | ||||
@@ -0,0 +1,29 @@ | |||||
/* | |||||
Copyright 2012 David Robillard <http://drobilla.net> | |||||
Copyright 2013 Fil... | |||||
Permission to use, copy, modify, and/or distribute this software for any | |||||
purpose with or without fee is hereby granted, provided that the above | |||||
copyright notice and this permission notice appear in all copies. | |||||
THIS SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES | |||||
WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF | |||||
MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR | |||||
ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES | |||||
WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN | |||||
ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF | |||||
OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. | |||||
*/ | |||||
/** | |||||
@file pugl_osx_extended.h Extended OSX/Cocoa Pugl Implementation. | |||||
*/ | |||||
#include <stdbool.h> | |||||
#include "pugl.h" | |||||
void puglImplFocus(PuglView* view); | |||||
void puglImplSetSize(PuglView* view, unsigned int width, unsigned int height); | |||||
void puglImplSetTitle(PuglView* view, const char* title); | |||||
void puglImplSetVisible(PuglView* view, bool yesNo); |
@@ -0,0 +1,65 @@ | |||||
/* | |||||
Copyright 2012 David Robillard <http://drobilla.net> | |||||
Copyright 2013 Fil... | |||||
Permission to use, copy, modify, and/or distribute this software for any | |||||
purpose with or without fee is hereby granted, provided that the above | |||||
copyright notice and this permission notice appear in all copies. | |||||
THIS SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES | |||||
WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF | |||||
MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR | |||||
ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES | |||||
WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN | |||||
ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF | |||||
OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. | |||||
*/ | |||||
/** | |||||
@file pugl_osx_extended.m Extended OSX/Cocoa Pugl Implementation. | |||||
*/ | |||||
#import "pugl_osx.m" | |||||
#include "pugl_osx_extended.h" | |||||
void puglImplFocus(PuglView* view) | |||||
{ | |||||
// TODO | |||||
} | |||||
void puglImplSetSize(PuglView* view, unsigned int width, unsigned int height) | |||||
{ | |||||
id window = view->impl->window; | |||||
// TODO | |||||
// NSRect frame = [window frame]; | |||||
// frame.size.width = width; | |||||
// frame.size.height = height; | |||||
// display:NO ? | |||||
// [window setFrame:frame display:YES animate:NO]; | |||||
} | |||||
void puglImplSetTitle(PuglView* view, const char* title) | |||||
{ | |||||
id window = view->impl->window; | |||||
NSString* titleString = [[NSString alloc] | |||||
initWithBytes:title | |||||
length:strlen(title) | |||||
encoding:NSUTF8StringEncoding]; | |||||
[window setTitle:titleString]; | |||||
} | |||||
void puglImplSetVisible(PuglView* view, bool yesNo) | |||||
{ | |||||
id window = view->impl->window; | |||||
if (yesNo) { | |||||
[window setIsVisible:YES]; | |||||
} else { | |||||
[window setIsVisible:NO]; | |||||
} | |||||
} |