diff options
Diffstat (limited to 'src/plugins/platforms/windows')
4 files changed, 51 insertions, 71 deletions
diff --git a/src/plugins/platforms/windows/qwindowsapplication.cpp b/src/plugins/platforms/windows/qwindowsapplication.cpp index 83f42a8c86..fc495d999f 100644 --- a/src/plugins/platforms/windows/qwindowsapplication.cpp +++ b/src/plugins/platforms/windows/qwindowsapplication.cpp @@ -42,7 +42,9 @@ #include "qwindowscontext.h" #include "qwindowsmime.h" #include "qwin10helpers.h" +#include "qwindowsopengltester.h" +#include <QtCore/QVariant> QT_BEGIN_NAMESPACE @@ -127,4 +129,43 @@ int QWindowsApplication::registerMimeType(const QString &mime) return QWindowsMimeConverter::registerMimeType(mime); } +HWND QWindowsApplication::createMessageWindow(const QString &classNameTemplate, + const QString &windowName, + QFunctionPointer eventProc) const +{ + QWindowsContext *ctx = QWindowsContext::instance(); + if (!ctx) + return nullptr; + auto wndProc = eventProc ? reinterpret_cast<WNDPROC>(eventProc) : DefWindowProc; + return ctx->createDummyWindow(classNameTemplate, + reinterpret_cast<const wchar_t*>(windowName.utf16()), + wndProc); +} + +bool QWindowsApplication::asyncExpose() const +{ + QWindowsContext *ctx = QWindowsContext::instance(); + return ctx && ctx->asyncExpose(); +} + +void QWindowsApplication::setAsyncExpose(bool value) +{ + if (QWindowsContext *ctx = QWindowsContext::instance()) + ctx->setAsyncExpose(value); +} + +QVariant QWindowsApplication::gpu() const +{ + return GpuDescription::detect().toVariant(); +} + +QVariant QWindowsApplication::gpuList() const +{ + QVariantList result; + const auto gpus = GpuDescription::detectAll(); + for (const auto &gpu : gpus) + result.append(gpu.toVariant()); + return result; +} + QT_END_NAMESPACE diff --git a/src/plugins/platforms/windows/qwindowsapplication.h b/src/plugins/platforms/windows/qwindowsapplication.h index 6e488e3ed0..25a0cc7437 100644 --- a/src/plugins/platforms/windows/qwindowsapplication.h +++ b/src/plugins/platforms/windows/qwindowsapplication.h @@ -67,6 +67,16 @@ public: int registerMimeType(const QString &mime) override; + HWND createMessageWindow(const QString &classNameTemplate, + const QString &windowName, + QFunctionPointer eventProc = nullptr) const override; + + bool asyncExpose() const override; + void setAsyncExpose(bool value) override; + + QVariant gpu() const override; + QVariant gpuList() const override; + private: WindowActivationBehavior m_windowActivationBehavior = DefaultActivateWindow; TouchWindowTouchTypes m_touchWindowTouchTypes = NormalTouch; diff --git a/src/plugins/platforms/windows/qwindowsnativeinterface.cpp b/src/plugins/platforms/windows/qwindowsnativeinterface.cpp index fe0da98a47..a971cdae0b 100644 --- a/src/plugins/platforms/windows/qwindowsnativeinterface.cpp +++ b/src/plugins/platforms/windows/qwindowsnativeinterface.cpp @@ -43,7 +43,6 @@ #include "qwindowscontext.h" #include "qwindowscursor.h" #include "qwindowsopenglcontext.h" -#include "qwindowsopengltester.h" #include "qwindowsintegration.h" #include "qwindowstheme.h" #include "qwin10helpers.h" @@ -52,7 +51,6 @@ #include <QtGui/qopenglcontext.h> #include <QtGui/qscreen.h> #include <qpa/qplatformscreen.h> -#include <QtGui/private/qwindowsfontdatabase_p.h> QT_BEGIN_NAMESPACE @@ -170,57 +168,4 @@ void *QWindowsNativeInterface::nativeResourceForContext(const QByteArray &resour } #endif // !QT_NO_OPENGL -/*! - \brief Creates a non-visible window handle for filtering messages. -*/ - -void *QWindowsNativeInterface::createMessageWindow(const QString &classNameTemplate, - const QString &windowName, - void *eventProc) const -{ - QWindowsContext *ctx = QWindowsContext::instance(); - const HWND hwnd = ctx->createDummyWindow(classNameTemplate, - (wchar_t*)windowName.utf16(), - (WNDPROC)eventProc); - return hwnd; -} - -/*! - \brief Registers a unique window class with a callback function based on \a classNameIn. -*/ - -QString QWindowsNativeInterface::registerWindowClass(const QString &classNameIn, void *eventProc) const -{ - return QWindowsContext::instance()->registerWindowClass(classNameIn, (WNDPROC)eventProc); -} - -bool QWindowsNativeInterface::asyncExpose() const -{ - return QWindowsContext::instance()->asyncExpose(); -} - -void QWindowsNativeInterface::setAsyncExpose(bool value) -{ - QWindowsContext::instance()->setAsyncExpose(value); -} - -QFont QWindowsNativeInterface::logFontToQFont(const void *logFont, int verticalDpi) -{ - return QWindowsFontDatabase::LOGFONT_to_QFont(*reinterpret_cast<const LOGFONT *>(logFont), verticalDpi); -} - -QVariant QWindowsNativeInterface::gpu() const -{ - return GpuDescription::detect().toVariant(); -} - -QVariant QWindowsNativeInterface::gpuList() const -{ - QVariantList result; - const auto gpus = GpuDescription::detectAll(); - for (const auto &gpu : gpus) - result.append(gpu.toVariant()); - return result; -} - QT_END_NAMESPACE diff --git a/src/plugins/platforms/windows/qwindowsnativeinterface.h b/src/plugins/platforms/windows/qwindowsnativeinterface.h index 68a795f466..8ef14e8603 100644 --- a/src/plugins/platforms/windows/qwindowsnativeinterface.h +++ b/src/plugins/platforms/windows/qwindowsnativeinterface.h @@ -62,9 +62,6 @@ QT_BEGIN_NAMESPACE class QWindowsNativeInterface : public QPlatformNativeInterface { Q_OBJECT - Q_PROPERTY(bool asyncExpose READ asyncExpose WRITE setAsyncExpose) - Q_PROPERTY(QVariant gpu READ gpu STORED false) - Q_PROPERTY(QVariant gpuList READ gpuList STORED false) public: void *nativeResourceForIntegration(const QByteArray &resource) override; @@ -76,19 +73,6 @@ public: #ifndef QT_NO_CURSOR void *nativeResourceForCursor(const QByteArray &resource, const QCursor &cursor) override; #endif - Q_INVOKABLE void *createMessageWindow(const QString &classNameTemplate, - const QString &windowName, - void *eventProc) const; - - Q_INVOKABLE QString registerWindowClass(const QString &classNameIn, void *eventProc) const; - - Q_INVOKABLE QFont logFontToQFont(const void *logFont, int verticalDpi); - - bool asyncExpose() const; - void setAsyncExpose(bool value); - - QVariant gpu() const; - QVariant gpuList() const; }; QT_END_NAMESPACE |