From d3fe0ec778625b27eadd754b39199b881e2ae18f Mon Sep 17 00:00:00 2001 From: falkTX Date: Thu, 20 Nov 2014 08:50:13 +0000 Subject: [PATCH] Remove NTK references, now in a separate repo --- dgl/ntk/NtkApp.hpp | 292 ------------------------------ dgl/ntk/NtkWidget.hpp | 202 --------------------- dgl/ntk/NtkWindow.hpp | 221 ---------------------- distrho/DistrhoUI.hpp | 22 +-- distrho/DistrhoUIMain.cpp | 27 --- distrho/src/DistrhoPluginChecks.h | 4 - distrho/src/DistrhoUI.cpp | 16 +- distrho/src/DistrhoUIInternal.hpp | 46 ++--- 8 files changed, 17 insertions(+), 813 deletions(-) delete mode 100644 dgl/ntk/NtkApp.hpp delete mode 100644 dgl/ntk/NtkWidget.hpp delete mode 100644 dgl/ntk/NtkWindow.hpp diff --git a/dgl/ntk/NtkApp.hpp b/dgl/ntk/NtkApp.hpp deleted file mode 100644 index e648a9c7..00000000 --- a/dgl/ntk/NtkApp.hpp +++ /dev/null @@ -1,292 +0,0 @@ -/* - * DISTRHO Plugin Framework (DPF) - * Copyright (C) 2012-2014 Filipe Coelho - * - * 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. - * - * THE 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. - */ - -#ifndef DGL_NTK_APP_HPP_INCLUDED -#define DGL_NTK_APP_HPP_INCLUDED - -#include "../Base.hpp" -#include "../../distrho/DistrhoUI.hpp" -#include "../../distrho/extra/d_thread.hpp" - -#ifdef override -# define override_defined -# undef override -#endif - -#include -#include -#include -#include -#include - -#ifdef override_defined -# define override -# undef override_defined -#endif - -// ----------------------------------------------------------------------- - -namespace DISTRHO_NAMESPACE { - class UI; -} - -struct FlScopedLock { - FlScopedLock() { Fl::lock(); } - ~FlScopedLock() { Fl::unlock(); } -}; - -// ----------------------------------------------------------------------- - -START_NAMESPACE_DGL - -class NtkWindow; - -typedef DISTRHO_NAMESPACE::Mutex d_Mutex; -typedef DISTRHO_NAMESPACE::MutexLocker d_MutexLocker; -typedef DISTRHO_NAMESPACE::Thread d_Thread; -typedef DISTRHO_NAMESPACE::UI d_UI; - -// ----------------------------------------------------------------------- - -/** - DGL compatible App class that uses NTK instead of OpenGL. - @see App - */ -class NtkApp : d_Thread -{ -public: - /** - Constructor. - */ - NtkApp() - : d_Thread("NtkApp"), - fWindows(), - fWindowMutex(), - fNextUI(), - fDoNextUI(false), - fThreadInitialized(false) - { -#ifdef DISTRHO_OS_LINUX - XInitThreads(); -#endif - - startThread(); - - for (; ! fThreadInitialized;) - d_msleep(10); - } - - /** - Destructor. - */ - ~NtkApp() - { - stopThread(-1); - fWindows.clear(); - } - - /** - Idle function. - This calls does nothing. - */ - void idle() {} - - /** - Run the application event-loop until all Windows are closed. - @note: This function is meant for standalones only, *never* call this from plugins. - */ - void exec() - { - while (isThreadRunning() && ! shouldThreadExit()) - d_sleep(1); - } - - /** - Quit the application. - This stops the event-loop and closes all Windows. - */ - void quit() - { - signalThreadShouldExit(); - } - - /** - Check if the application is about to quit. - Returning true means there's no event-loop running at the moment. - */ - bool isQuiting() const noexcept - { - if (isThreadRunning() && ! shouldThreadExit()) - return false; - return true; - } - - // ------------------------------------------------------------------- - - /** - Create UI on our separate thread. - Blocks until the UI is created and returns it. - */ - d_UI* createUI(void* const func) - { - DISTRHO_SAFE_ASSERT_RETURN(isThreadRunning(), nullptr); - DISTRHO_SAFE_ASSERT_RETURN(! fDoNextUI, nullptr); - - fNextUI.create = true; - fNextUI.func = (NextUI::UiFunc)func; - fDoNextUI = true; - - if (isThreadRunning() && ! shouldThreadExit()) - { - for (; fDoNextUI;) - d_msleep(10); - } - else - { - fNextUI.run(); - fDoNextUI = false; - } - - return fNextUI.ui; - } - - /** - Delete UI on our separate thread. - Blocks until the UI is deleted. - */ - void deleteUI(d_UI* const ui) - { - DISTRHO_SAFE_ASSERT_RETURN(! fDoNextUI,); - - fNextUI.create = false; - fNextUI.ui = ui; - fDoNextUI = true; - - if (isThreadRunning() && ! shouldThreadExit()) - { - for (; fDoNextUI;) - d_msleep(10); - } - else - { - fNextUI.run(); - fDoNextUI = false; - } - } - - // ------------------------------------------------------------------- - -private: - struct NextUI { - typedef d_UI* (*UiFunc)(); - - bool create; - - union { - UiFunc func; - d_UI* ui; - }; - - NextUI() - : create(false), - func(nullptr) {} - - void run(); - }; - - std::list fWindows; - d_Mutex fWindowMutex; - NextUI fNextUI; - volatile bool fDoNextUI; - volatile bool fThreadInitialized; - - /** @internal used by NtkWindow. */ - void addWindow(Fl_Double_Window* const window) - { - DISTRHO_SAFE_ASSERT_RETURN(window != nullptr,); - - if (fWindows.size() == 0 && ! isThreadRunning()) - startThread(); - - const d_MutexLocker cml(fWindowMutex); - fWindows.push_back(window); - } - - /** @internal used by NtkWindow. */ - void removeWindow(Fl_Double_Window* const window) - { - DISTRHO_SAFE_ASSERT_RETURN(window != nullptr,); - - const d_MutexLocker cml(fWindowMutex); - fWindows.remove(window); - - if (fWindows.size() == 0) - signalThreadShouldExit(); - } - - /** @internal */ - void run() override - { - static bool initialized = false; - - if (! initialized) - { - initialized = true; - fl_register_images(); -#ifdef DISTRHO_OS_LINUX - fl_open_display(); -#endif - } - - fThreadInitialized = true; - - for (; ! shouldThreadExit();) - { - { - const FlScopedLock csl; - - if (fDoNextUI) - { - fNextUI.run(); - fDoNextUI = false; - } - - Fl::check(); - Fl::flush(); - } - - d_msleep(20); - } - - const FlScopedLock csl; - const d_MutexLocker cml(fWindowMutex); - - for (std::list::reverse_iterator rit = fWindows.rbegin(), rite = fWindows.rend(); rit != rite; ++rit) - { - Fl_Double_Window* const window(*rit); - window->hide(); - } - } - - friend class NtkWindow; - - DISTRHO_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR(NtkApp) -}; -// ----------------------------------------------------------------------- - -END_NAMESPACE_DGL - -#endif // DGL_NTK_APP_HPP_INCLUDED diff --git a/dgl/ntk/NtkWidget.hpp b/dgl/ntk/NtkWidget.hpp deleted file mode 100644 index 2247be38..00000000 --- a/dgl/ntk/NtkWidget.hpp +++ /dev/null @@ -1,202 +0,0 @@ -/* - * DISTRHO Plugin Framework (DPF) - * Copyright (C) 2012-2014 Filipe Coelho - * - * 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. - * - * THE 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. - */ - -#ifndef DGL_NTK_WIDGET_HPP_INCLUDED -#define DGL_NTK_WIDGET_HPP_INCLUDED - -#include "NtkWindow.hpp" - -START_NAMESPACE_DGL - -// ----------------------------------------------------------------------- - -/** - DGL compatible Widget class that uses NTK instead of OpenGL. - @see Widget - */ -class NtkWidget : public Fl_Double_Window -{ -public: - /** - Constructor. - */ - explicit NtkWidget(NtkWindow& parent) - : Fl_Double_Window(100, 100), - fParent(parent) - { - fParent.add(this); - show(); - } - - /** - Destructor. - */ - ~NtkWidget() override - { - hide(); - fParent.remove(this); - } - - /** - Check if this widget is visible within its parent window. - Invisible widgets do not receive events except resize. - */ - bool isVisible() const - { - return visible(); - } - - /** - Set widget visible (or not) according to @a yesNo. - */ - void setVisible(bool yesNo) - { - if (yesNo) - show(); - else - hide(); - } - - /** - Get width. - */ - int getWidth() const - { - return w(); - } - - /** - Get height. - */ - int getHeight() const - { - return h(); - } - - /** - Set width. - */ - void setWidth(int width) - { - resize(x(), y(), width, h()); - } - - /** - Set height. - */ - void setHeight(int height) - { - resize(x(), y(), w(), height); - } - - /** - Set size using @a width and @a height values. - */ - void setSize(int width, int height) - { - resize(x(), y(), width, height); - } - - /** - Get absolute X. - */ - int getAbsoluteX() const - { - return x(); - } - - /** - Get absolute Y. - */ - int getAbsoluteY() const - { - return y(); - } - - /** - Set absolute X. - */ - void setAbsoluteX(int x) - { - resize(x, y(), w(), h()); - } - - /** - Set absolute Y. - */ - void setAbsoluteY(int y) - { - resize(x(), y, w(), h()); - } - - /** - Set absolute position using @a x and @a y values. - */ - void setAbsolutePos(int x, int y) - { - resize(x, y, w(), h()); - } - - /** - Get this widget's window application. - Same as calling getParentWindow().getApp(). - */ - NtkApp& getParentApp() const noexcept - { - return fParent.getApp(); - } - - /** - Get parent window, as passed in the constructor. - */ - NtkWindow& getParentWindow() const noexcept - { - return fParent; - } - - /** - Check if this widget contains the point defined by @a x and @a y. - */ - bool contains(int x, int y) const - { - return (x >= 0 && y >= 0 && x < w() && y < h()); - } - - /** - Tell this widget's window to repaint itself. - */ - void repaint() - { - redraw(); - } - -protected: - /** @internal used for DGL compatibility. */ - void setNeedsFullViewport(bool) noexcept {} - /** @internal used for DGL compatibility. */ - void setNeedsScaling(bool) noexcept {} - -private: - NtkWindow& fParent; - - DISTRHO_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR(NtkWidget) -}; - -// ----------------------------------------------------------------------- - -END_NAMESPACE_DGL - -#endif // DGL_NTK_WIDGET_HPP_INCLUDED diff --git a/dgl/ntk/NtkWindow.hpp b/dgl/ntk/NtkWindow.hpp deleted file mode 100644 index 2857ee45..00000000 --- a/dgl/ntk/NtkWindow.hpp +++ /dev/null @@ -1,221 +0,0 @@ -/* - * DISTRHO Plugin Framework (DPF) - * Copyright (C) 2012-2014 Filipe Coelho - * - * 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. - * - * THE 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. - */ - -#ifndef DGL_NTK_WINDOW_HPP_INCLUDED -#define DGL_NTK_WINDOW_HPP_INCLUDED - -#include "NtkApp.hpp" - -START_NAMESPACE_DGL - -class NtkWidget; - -// ----------------------------------------------------------------------- - -class NtkWindow : public Fl_Double_Window -{ -public: - explicit NtkWindow(NtkApp& app) - : Fl_Double_Window(100, 100), - fApp(app), - fIsVisible(false), - fUsingEmbed(false), - fParent(nullptr) {} - - explicit NtkWindow(NtkApp& app, NtkWindow& parent) - : Fl_Double_Window(100, 100), - fApp(app), - fIsVisible(false), - fUsingEmbed(false), - fParent(&parent) {} - - explicit NtkWindow(NtkApp& app, intptr_t parentId) - : Fl_Double_Window(100, 100), - fApp(app), - fIsVisible(parentId != 0), - fUsingEmbed(parentId != 0), - fParent(nullptr) - { - if (fUsingEmbed) - { - fl_embed(this, (Window)parentId); - Fl_Double_Window::show(); - fApp.addWindow(this); - } - } - - ~NtkWindow() override - { - if (fUsingEmbed) - { - fApp.removeWindow(this); - Fl_Double_Window::hide(); - } - } - - void show() override - { - if (fUsingEmbed || fIsVisible) - return; - - Fl_Double_Window::show(); - fApp.addWindow(this); - fIsVisible = true; - - if (fParent != nullptr) - setTransientWinId((intptr_t)fl_xid(fParent)); - } - - void hide() override - { - if (fUsingEmbed || ! fIsVisible) - return; - - fIsVisible = false; - fApp.removeWindow(this); - Fl_Double_Window::hide(); - } - - void close() - { - hide(); - } - - bool isVisible() const - { - return visible(); - } - - void setVisible(bool yesNo) - { - if (yesNo) - show(); - else - hide(); - } - - bool isResizable() const - { - // TODO - return false; - } - - void setResizable(bool /*yesNo*/) - { - // TODO - } - - int getWidth() const noexcept - { - return w(); - } - - int getHeight() const noexcept - { - return h(); - } - - void setSize(uint width, uint height) - { - resize(x(), y(), width, height); - } - - void setTitle(const char* title) - { - label(title); - } - - void setTransientWinId(intptr_t winId) - { - DISTRHO_SAFE_ASSERT_RETURN(winId != 0,); - -#ifdef DISTRHO_OS_LINUX - DISTRHO_SAFE_ASSERT_RETURN(fl_display != nullptr,); - - const ::Window ourWindow(fl_xid(this)); - DISTRHO_SAFE_ASSERT_RETURN(ourWindow != 0,); - - XSetTransientForHint(fl_display, ourWindow, winId); -#endif - } - - NtkApp& getApp() const noexcept - { - return fApp; - } - - intptr_t getWindowId() const - { - return (intptr_t)fl_xid(this); - } - - void addIdleCallback(IdleCallback* const callback) - { - DISTRHO_SAFE_ASSERT_RETURN(callback != nullptr,); - - fIdleCallbacks.push_back(callback); - - if (fIdleCallbacks.size() == 1) - Fl::add_timeout(0.030, _idleHandler, this); - } - - void removeIdleCallback(IdleCallback* const callback) - { - DISTRHO_SAFE_ASSERT_RETURN(callback != nullptr,); - - if (fIdleCallbacks.size() == 1) - Fl::remove_timeout(_idleHandler, this); - - fIdleCallbacks.remove(callback); - } - -private: - NtkApp& fApp; - bool fIsVisible; - bool fUsingEmbed; - - // transient parent, may be null - NtkWindow* const fParent; - - std::list fIdleCallbacks; - - friend class NtkWidget; - - void idleHandler() - { - for (std::list::iterator it=fIdleCallbacks.begin(), ite=fIdleCallbacks.end(); it != ite; ++it) - { - IdleCallback* const idleCallback(*it); - idleCallback->idleCallback(); - } - - if (fIdleCallbacks.size() > 0 && ! getApp().isQuiting()) - Fl::repeat_timeout(0.030, _idleHandler, this); - } - - static void _idleHandler(void* data) - { - ((NtkWindow*)data)->idleHandler(); - } - - DISTRHO_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR(NtkWindow) -}; - -// ----------------------------------------------------------------------- - -END_NAMESPACE_DGL - -#endif // DGL_NTK_WINDOW_HPP_INCLUDED diff --git a/distrho/DistrhoUI.hpp b/distrho/DistrhoUI.hpp index b6b2402e..e6c83110 100644 --- a/distrho/DistrhoUI.hpp +++ b/distrho/DistrhoUI.hpp @@ -20,13 +20,10 @@ #include "extra/d_leakdetector.hpp" #include "src/DistrhoPluginChecks.h" -#if DISTRHO_UI_USE_NTK -# include "../dgl/ntk/NtkWidget.hpp" -typedef DGL::NtkWidget UIWidget; -#elif DISTRHO_UI_USE_NANOVG +#if DISTRHO_UI_USE_NANOVG # include "../dgl/NanoVG.hpp" typedef DGL::NanoWidget UIWidget; -# else +#else # include "../dgl/Widget.hpp" typedef DGL::Widget UIWidget; #endif @@ -143,32 +140,22 @@ protected: */ virtual void d_uiIdle() {} -#if ! DISTRHO_UI_USE_NTK /** OpenGL window reshape function, called when parent window is resized. You can reimplement this function for a custom OpenGL state. @see Window::onReshape(uint,uint) */ virtual void d_uiReshape(uint width, uint height); -#endif /* -------------------------------------------------------------------------------------------------------- * UI Resize Handling, internal */ -#if DISTRHO_UI_USE_NTK - /** - NTK widget resize function, called when the widget is resized. - This is overriden here so the host knows when the UI is resized by you. - */ - void resize(int x, int y, int w, int h) override; -#else /** OpenGL widget resize function, called when the widget is resized. This is overriden here so the host knows when the UI is resized by you. @see Widget::onResize(const ResizeEvent&) */ void onResize(const ResizeEvent& ev) override; -#endif // ------------------------------------------------------------------------------------------------------- @@ -179,14 +166,11 @@ private: friend class UIExporterWindow; // these should not be used - void position(int, int) noexcept {} void setAbsoluteX(int) const noexcept {} void setAbsoluteY(int) const noexcept {} void setAbsolutePos(int, int) const noexcept {} - void setNeedsFullViewport(bool) const noexcept {} -#if ! DISTRHO_UI_USE_NTK void setAbsolutePos(const DGL::Point&) const noexcept {} -#endif + void setNeedsFullViewport(bool) const noexcept {} DISTRHO_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR(UI) }; diff --git a/distrho/DistrhoUIMain.cpp b/distrho/DistrhoUIMain.cpp index c3b4b4e1..cb1cb6e7 100644 --- a/distrho/DistrhoUIMain.cpp +++ b/distrho/DistrhoUIMain.cpp @@ -27,30 +27,3 @@ #elif defined(DISTRHO_PLUGIN_TARGET_VST) // nothing #endif - -#ifdef DGL_NTK_APP_HPP_INCLUDED - -START_NAMESPACE_DGL - -void NtkApp::NextUI::run() -{ - const FlScopedLock csl; - - if (create) - { - d_stdout("Creating NTK UI in separate thread..."); - d_UI* const ui2 = (func)(); - ui = ui2; - } - else - { - d_stdout("Destroying NTK UI in separate thread..."); - d_UI* const ui2 = ui; - ui = nullptr; - delete ui2; - } -} - -END_NAMESPACE_DGL - -#endif diff --git a/distrho/src/DistrhoPluginChecks.h b/distrho/src/DistrhoPluginChecks.h index f556c066..16d6b43e 100644 --- a/distrho/src/DistrhoPluginChecks.h +++ b/distrho/src/DistrhoPluginChecks.h @@ -93,10 +93,6 @@ # define DISTRHO_UI_USE_NANOVG 0 #endif -#ifndef DISTRHO_UI_USE_NTK -# define DISTRHO_UI_USE_NTK 0 -#endif - // ----------------------------------------------------------------------- // Define DISTRHO_UI_URI if needed diff --git a/distrho/src/DistrhoUI.cpp b/distrho/src/DistrhoUI.cpp index eda57b01..fa5c4499 100644 --- a/distrho/src/DistrhoUI.cpp +++ b/distrho/src/DistrhoUI.cpp @@ -21,9 +21,9 @@ START_NAMESPACE_DISTRHO /* ------------------------------------------------------------------------------------------------------------ * Static data, see DistrhoUIInternal.hpp */ -double d_lastUiSampleRate = 0.0; -void* d_lastUiDspPtr = nullptr; -UIWindow* d_lastUiWindow = nullptr; +double d_lastUiSampleRate = 0.0; +void* d_lastUiDspPtr = nullptr; +Window* d_lastUiWindow = nullptr; /* ------------------------------------------------------------------------------------------------------------ * UI */ @@ -90,7 +90,6 @@ void UI::d_sampleRateChanged(double) {} /* ------------------------------------------------------------------------------------------------------------ * UI Callbacks (optional) */ -#if ! DISTRHO_UI_USE_NTK void UI::d_uiReshape(uint width, uint height) { glEnable(GL_BLEND); @@ -102,23 +101,14 @@ void UI::d_uiReshape(uint width, uint height) glMatrixMode(GL_MODELVIEW); glLoadIdentity(); } -#endif /* ------------------------------------------------------------------------------------------------------------ * UI Resize Handling, internal */ -#if DISTRHO_UI_USE_NTK -void UI::resize(int x, int y, int w, int h) -{ - UIWidget::resize(x, y, w, h); - pData->setSizeCallback(w, h); -} -#else void UI::onResize(const ResizeEvent& ev) { pData->setSizeCallback(ev.size.getWidth(), ev.size.getHeight()); } -#endif // ----------------------------------------------------------------------------------------------------------- diff --git a/distrho/src/DistrhoUIInternal.hpp b/distrho/src/DistrhoUIInternal.hpp index 14b2fdd4..5092af33 100644 --- a/distrho/src/DistrhoUIInternal.hpp +++ b/distrho/src/DistrhoUIInternal.hpp @@ -18,29 +18,21 @@ #define DISTRHO_UI_INTERNAL_HPP_INCLUDED #include "../DistrhoUI.hpp" +#include "../../dgl/App.hpp" +#include "../../dgl/Window.hpp" -#if DISTRHO_UI_USE_NTK -# include "../../dgl/ntk/NtkApp.hpp" -# include "../../dgl/ntk/NtkWindow.hpp" -typedef DGL::NtkApp App; -typedef DGL::NtkWindow UIWindow; -#else -# include "../../dgl/App.hpp" -# include "../../dgl/Window.hpp" -typedef DGL::App App; -typedef DGL::Window UIWindow; -#endif - +using DGL::App; using DGL::IdleCallback; +using DGL::Window; START_NAMESPACE_DISTRHO // ----------------------------------------------------------------------- // Static data, see DistrhoUI.cpp -extern double d_lastUiSampleRate; -extern void* d_lastUiDspPtr; -extern UIWindow* d_lastUiWindow; +extern double d_lastUiSampleRate; +extern void* d_lastUiDspPtr; +extern Window* d_lastUiWindow; // ----------------------------------------------------------------------- // UI callbacks @@ -137,25 +129,21 @@ struct UI::PrivateData { // Plugin Window, needed to take care of resize properly static inline -UI* createUiWrapper(void* const dspPtr, UIWindow* const window) +UI* createUiWrapper(void* const dspPtr, Window* const window) { d_lastUiDspPtr = dspPtr; d_lastUiWindow = window; -#if DISTRHO_UI_USE_NTK - UI* const ret = window->getApp().createUI((void*)createUI); -#else UI* const ret = createUI(); -#endif d_lastUiDspPtr = nullptr; d_lastUiWindow = nullptr; return ret; } -class UIExporterWindow : public UIWindow +class UIExporterWindow : public Window { public: UIExporterWindow(App& app, const intptr_t winId, void* const dspPtr) - : UIWindow(app, winId), + : Window(app, winId), fUI(createUiWrapper(dspPtr, this)), fIsReady(false) { @@ -168,11 +156,7 @@ public: ~UIExporterWindow() { -#if DISTRHO_UI_USE_NTK - getApp().deleteUI(fUI); -#else delete fUI; -#endif } UI* getUI() const noexcept @@ -185,14 +169,7 @@ public: return fIsReady; } -//protected: -#if DISTRHO_UI_USE_NTK - void resize(int x, int y, int width, int height) override - { - UIWindow::resize(x, y, width, height); - fIsReady = true; - } -#else +protected: void onReshape(uint width, uint height) override { DISTRHO_SAFE_ASSERT_RETURN(fUI != nullptr,); @@ -202,7 +179,6 @@ public: fIsReady = true; } -#endif private: UI* const fUI;