summaryrefslogtreecommitdiff
path: root/libs/dgl/ntk/NtkWindow.hpp
diff options
context:
space:
mode:
Diffstat (limited to 'libs/dgl/ntk/NtkWindow.hpp')
-rw-r--r--libs/dgl/ntk/NtkWindow.hpp215
1 files changed, 0 insertions, 215 deletions
diff --git a/libs/dgl/ntk/NtkWindow.hpp b/libs/dgl/ntk/NtkWindow.hpp
deleted file mode 100644
index 47e9f10..0000000
--- a/libs/dgl/ntk/NtkWindow.hpp
+++ /dev/null
@@ -1,215 +0,0 @@
-/*
- * DISTRHO Plugin Framework (DPF)
- * Copyright (C) 2012-2014 Filipe Coelho <falktx@falktx.com>
- *
- * 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,);
-
- if (fIdleCallbacks.size() == 0)
- Fl::add_idle(_idleHandler, this);
-
- fIdleCallbacks.push_back(callback);
- }
-
- void removeIdleCallback(IdleCallback* const callback)
- {
- DISTRHO_SAFE_ASSERT_RETURN(callback != nullptr,);
-
- fIdleCallbacks.remove(callback);
-
- if (fIdleCallbacks.size() == 0)
- Fl::remove_idle(_idleHandler, this);
- }
-
-private:
- NtkApp& fApp;
- bool fIsVisible;
- bool fUsingEmbed;
-
- // transient parent, may be null
- NtkWindow* const fParent;
-
- std::list<IdleCallback*> fIdleCallbacks;
-
- friend class NtkWidget;
-
- static void _idleHandler(void* data)
- {
- NtkWindow* const self((NtkWindow*)data);
-
- for (std::list<IdleCallback*>::iterator it=self->fIdleCallbacks.begin(), ite=self->fIdleCallbacks.end(); it != ite; ++it)
- {
- IdleCallback* const idleCallback(*it);
- idleCallback->idleCallback();
- }
- }
-
- DISTRHO_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR(NtkWindow)
-};
-
-// -----------------------------------------------------------------------
-
-END_NAMESPACE_DGL
-
-#endif // DGL_NTK_WINDOW_HPP_INCLUDED