#include "QtImGui.h" #include "ImGuiRenderer.h" #include #ifdef QT_WIDGETS_LIB #include #endif namespace QtImGui { #ifdef QT_WIDGETS_LIB namespace { class QWidgetWindowWrapper : public WindowWrapper { public: QWidgetWindowWrapper(QWidget *w) : w(w) {} void installEventFilter(QObject *object) override { return w->installEventFilter(object); } QSize size() const override { return w->size(); } qreal devicePixelRatio() const override { return w->devicePixelRatio(); } bool isActive() const override { return w->isActiveWindow(); } QPoint mapFromGlobal(const QPoint &p) const override { return w->mapFromGlobal(p); } private: QWidget *w; }; } void initialize(QWidget *window) { ImGuiRenderer::instance()->initialize(new QWidgetWindowWrapper(window)); } #endif namespace { class QWindowWindowWrapper : public WindowWrapper { public: QWindowWindowWrapper(QWindow *w) : w(w) {} void installEventFilter(QObject *object) override { return w->installEventFilter(object); } QSize size() const override { return w->size(); } qreal devicePixelRatio() const override { return w->devicePixelRatio(); } bool isActive() const override { return w->isActive(); } QPoint mapFromGlobal(const QPoint &p) const override { return w->mapFromGlobal(p); } private: QWindow *w; }; } void initialize(QWindow *window) { ImGuiRenderer::instance()->initialize(new QWindowWindowWrapper(window)); } void newFrame() { ImGuiRenderer::instance()->newFrame(); } }