#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 { #if defined(__APPLE__) return w->devicePixelRatio(); #else return w->devicePixelRatioF(); #endif } 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(); } }