@@ -62,6 +62,9 @@ public: | |||||
setWindowIcon(QIcon(":/scalable/distrho.svg")); | setWindowIcon(QIcon(":/scalable/distrho.svg")); | ||||
setWindowTitle(QString("%1 (GUI)").arg(fUi.name())); | setWindowTitle(QString("%1 (GUI)").arg(fUi.name())); | ||||
#ifdef DISTRHO_UI_OPENGL | |||||
fUi.fixSize(); | |||||
#endif | |||||
uiResize(fUi.width(), fUi.height()); | uiResize(fUi.width(), fUi.height()); | ||||
{ | { | ||||
@@ -110,7 +110,7 @@ DistrhoUINekobi::DistrhoUINekobi() | |||||
Image aboutImageNormal(DistrhoArtworkNekobi::aboutButtonNormalData, DistrhoArtworkNekobi::aboutButtonNormalWidth, DistrhoArtworkNekobi::aboutButtonNormalHeight); | Image aboutImageNormal(DistrhoArtworkNekobi::aboutButtonNormalData, DistrhoArtworkNekobi::aboutButtonNormalWidth, DistrhoArtworkNekobi::aboutButtonNormalHeight); | ||||
Image aboutImageHover(DistrhoArtworkNekobi::aboutButtonHoverData, DistrhoArtworkNekobi::aboutButtonHoverWidth, DistrhoArtworkNekobi::aboutButtonHoverHeight); | Image aboutImageHover(DistrhoArtworkNekobi::aboutButtonHoverData, DistrhoArtworkNekobi::aboutButtonHoverWidth, DistrhoArtworkNekobi::aboutButtonHoverHeight); | ||||
fButtonAbout = new ImageButton(this, aboutImageNormal, aboutImageHover, aboutImageHover); | fButtonAbout = new ImageButton(this, aboutImageNormal, aboutImageHover, aboutImageHover); | ||||
fButtonAbout->setPos(500, 5); | |||||
fButtonAbout->setPos(505, 5); | |||||
fButtonAbout->setCallback(this); | fButtonAbout->setCallback(this); | ||||
} | } | ||||
@@ -59,7 +59,7 @@ public: | |||||
void draw() | void draw() | ||||
{ | { | ||||
int x = fPos+110; | |||||
int x = fPos+108; | |||||
int y = -2; | int y = -2; | ||||
if (fCurImage == &fImages.claw1 || fCurImage == &fImages.claw2) | if (fCurImage == &fImages.claw1 || fCurImage == &fImages.claw2) | ||||
@@ -57,7 +57,7 @@ public: | |||||
: kApp(app), | : kApp(app), | ||||
kAppPriv(appPriv), | kAppPriv(appPriv), | ||||
kSelf(self), | kSelf(self), | ||||
kView(puglCreate(parentId, "Window", 600, 500, false, (parentId != 0))), | |||||
kView(puglCreate(parentId, "Window", 100, 100, false, (parentId != 0))), | |||||
fParent(parent), | fParent(parent), | ||||
fChildFocus(nullptr), | fChildFocus(nullptr), | ||||
fVisible((parentId != 0)), | fVisible((parentId != 0)), | ||||
@@ -292,6 +292,9 @@ public: | |||||
void setSize(unsigned int width, unsigned int height) | void setSize(unsigned int width, unsigned int height) | ||||
{ | { | ||||
kView->width = width; | |||||
kView->height = height; | |||||
#if DGL_OS_WINDOWS | #if DGL_OS_WINDOWS | ||||
int winFlags = WS_POPUPWINDOW | WS_CAPTION; | int winFlags = WS_POPUPWINDOW | WS_CAPTION; | ||||
@@ -304,18 +307,24 @@ 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 | #elif DGL_OS_MAC | ||||
puglImplSetSize(kView, width, height); | |||||
puglImplSetSize(kView, width, height); | |||||
#elif DGL_OS_LINUX | #elif DGL_OS_LINUX | ||||
// TODO - handle fResizable | |||||
XSizeHints sizeHints; | |||||
memset(&sizeHints, 0, sizeof(sizeHints)); | |||||
sizeHints.flags = PMinSize|PMaxSize; | |||||
sizeHints.min_width = width; | |||||
sizeHints.min_height = height; | |||||
sizeHints.max_width = width; | |||||
sizeHints.max_height = height; | |||||
XSetNormalHints(xDisplay, xWindow, &sizeHints); | |||||
XResizeWindow(xDisplay, xWindow, width, height); | |||||
if (! fResizable) | |||||
{ | |||||
XSizeHints sizeHints; | |||||
memset(&sizeHints, 0, sizeof(sizeHints)); | |||||
sizeHints.flags = PMinSize|PMaxSize; | |||||
sizeHints.min_width = width; | |||||
sizeHints.min_height = height; | |||||
sizeHints.max_width = width; | |||||
sizeHints.max_height = height; | |||||
XSetNormalHints(xDisplay, xWindow, &sizeHints); | |||||
} | |||||
XFlush(xDisplay); | XFlush(xDisplay); | ||||
#endif | #endif | ||||
@@ -133,12 +133,7 @@ public: | |||||
if (kUi == nullptr) | if (kUi == nullptr) | ||||
return; | return; | ||||
#ifdef DISTRHO_UI_OPENGL | |||||
//assert(winId != 0); | |||||
//if (winId == 0) | |||||
// return; | |||||
#else | |||||
#ifdef DISTRHO_UI_QT | |||||
assert(winId == 0); | assert(winId == 0); | ||||
if (winId != 0) | if (winId != 0) | ||||
@@ -251,6 +246,12 @@ public: | |||||
{ | { | ||||
return glWindow.getWindowId(); | return glWindow.getWindowId(); | ||||
} | } | ||||
void fixSize() | |||||
{ | |||||
assert(kUi != nullptr); | |||||
glWindow.setSize(kUi->d_width(), kUi->d_height()); | |||||
} | |||||
#else | #else | ||||
QtUI* getQtUI() const | QtUI* getQtUI() const | ||||
{ | { | ||||