summaryrefslogtreecommitdiffstats
path: root/src/plugins/platforms/windows/qwindowsnativeinterface.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/plugins/platforms/windows/qwindowsnativeinterface.cpp')
-rw-r--r--src/plugins/platforms/windows/qwindowsnativeinterface.cpp192
1 files changed, 4 insertions, 188 deletions
diff --git a/src/plugins/platforms/windows/qwindowsnativeinterface.cpp b/src/plugins/platforms/windows/qwindowsnativeinterface.cpp
index d1d181d66e..e709123097 100644
--- a/src/plugins/platforms/windows/qwindowsnativeinterface.cpp
+++ b/src/plugins/platforms/windows/qwindowsnativeinterface.cpp
@@ -1,67 +1,25 @@
-/****************************************************************************
-**
-** Copyright (C) 2016 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of the plugins of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl-3.0.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or (at your option) the GNU General
-** Public license version 3 or any later version approved by the KDE Free
-** Qt Foundation. The licenses are as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-2.0.html and
-** https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2016 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
#include "qwindowsnativeinterface.h"
-#include "qwindowsclipboard.h"
#include "qwindowswindow.h"
#include "qwindowsscreen.h"
#include "qwindowscontext.h"
#include "qwindowscursor.h"
#include "qwindowsopenglcontext.h"
-#include "qwindowsopengltester.h"
#include "qwindowsintegration.h"
-#include "qwindowsmime.h"
+#include "qwindowstheme.h"
#include "qwin10helpers.h"
#include <QtGui/qwindow.h>
#include <QtGui/qopenglcontext.h>
#include <QtGui/qscreen.h>
#include <qpa/qplatformscreen.h>
-#include <QtFontDatabaseSupport/private/qwindowsfontdatabase_p.h>
QT_BEGIN_NAMESPACE
enum ResourceType {
RenderingContextType,
- EglContextType,
- EglDisplayType,
- EglConfigType,
HandleType,
GlHandleType,
GetDCType,
@@ -73,9 +31,6 @@ static int resourceType(const QByteArray &key)
{
static const char *names[] = { // match ResourceType
"renderingcontext",
- "eglcontext",
- "egldisplay",
- "eglconfig",
"handle",
"glhandle",
"getdc",
@@ -89,9 +44,6 @@ static int resourceType(const QByteArray &key)
return int(result - names);
}
-QWindowsWindowFunctions::WindowActivationBehavior QWindowsNativeInterface::m_windowActivationBehavior =
- QWindowsWindowFunctions::DefaultActivateWindow;
-
void *QWindowsNativeInterface::nativeResourceForWindow(const QByteArray &resource, QWindow *window)
{
if (!window || !window->handle()) {
@@ -153,41 +105,10 @@ void *QWindowsNativeInterface::nativeResourceForCursor(const QByteArray &resourc
}
#endif // !QT_NO_CURSOR
-static const char customMarginPropertyC[] = "WindowsCustomMargins";
-
-QVariant QWindowsNativeInterface::windowProperty(QPlatformWindow *window, const QString &name) const
-{
- auto *platformWindow = static_cast<QWindowsWindow *>(window);
- if (name == QLatin1String(customMarginPropertyC))
- return QVariant::fromValue(platformWindow->customMargins());
- return QVariant();
-}
-
-QVariant QWindowsNativeInterface::windowProperty(QPlatformWindow *window, const QString &name, const QVariant &defaultValue) const
-{
- const QVariant result = windowProperty(window, name);
- return result.isValid() ? result : defaultValue;
-}
-
-void QWindowsNativeInterface::setWindowProperty(QPlatformWindow *window, const QString &name, const QVariant &value)
-{
- auto *platformWindow = static_cast<QWindowsWindow *>(window);
- if (name == QLatin1String(customMarginPropertyC))
- platformWindow->setCustomMargins(qvariant_cast<QMargins>(value));
-}
-
-QVariantMap QWindowsNativeInterface::windowProperties(QPlatformWindow *window) const
-{
- QVariantMap result;
- const QString customMarginProperty = QLatin1String(customMarginPropertyC);
- result.insert(customMarginProperty, windowProperty(window, customMarginProperty));
- return result;
-}
-
void *QWindowsNativeInterface::nativeResourceForIntegration(const QByteArray &resource)
{
#ifdef QT_NO_OPENGL
- Q_UNUSED(resource)
+ Q_UNUSED(resource);
#else
if (resourceType(resource) == GlHandleType) {
if (const QWindowsStaticOpenGLContext *sc = QWindowsIntegration::staticOpenGLContext())
@@ -206,114 +127,9 @@ void *QWindowsNativeInterface::nativeResourceForContext(const QByteArray &resour
return nullptr;
}
- auto *glcontext = static_cast<QWindowsOpenGLContext *>(context->handle());
- switch (resourceType(resource)) {
- case RenderingContextType: // Fall through.
- case EglContextType:
- return glcontext->nativeContext();
- case EglDisplayType:
- return glcontext->nativeDisplay();
- case EglConfigType:
- return glcontext->nativeConfig();
- default:
- break;
- }
-
qWarning("%s: Invalid key '%s' requested.", __FUNCTION__, resource.constData());
return nullptr;
}
#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);
-}
-
-void QWindowsNativeInterface::registerWindowsMime(void *mimeIn)
-{
- QWindowsContext::instance()->mimeConverter().registerMime(reinterpret_cast<QWindowsMime *>(mimeIn));
-}
-
-void QWindowsNativeInterface::unregisterWindowsMime(void *mimeIn)
-{
- QWindowsContext::instance()->mimeConverter().unregisterMime(reinterpret_cast<QWindowsMime *>(mimeIn));
-}
-
-int QWindowsNativeInterface::registerMimeType(const QString &mimeType)
-{
- return QWindowsMime::registerMimeType(mimeType);
-}
-
-QFont QWindowsNativeInterface::logFontToQFont(const void *logFont, int verticalDpi)
-{
- return QWindowsFontDatabase::LOGFONT_to_QFont(*reinterpret_cast<const LOGFONT *>(logFont), verticalDpi);
-}
-
-bool QWindowsNativeInterface::isTabletMode()
-{
-#if QT_CONFIG(clipboard)
- if (const QWindowsClipboard *clipboard = QWindowsClipboard::instance())
- return qt_windowsIsTabletMode(clipboard->clipboardViewer());
-#endif
- return false;
-}
-
-QFunctionPointer QWindowsNativeInterface::platformFunction(const QByteArray &function) const
-{
- if (function == QWindowsWindowFunctions::setTouchWindowTouchTypeIdentifier())
- return QFunctionPointer(QWindowsWindow::setTouchWindowTouchTypeStatic);
- if (function == QWindowsWindowFunctions::setHasBorderInFullScreenIdentifier())
- return QFunctionPointer(QWindowsWindow::setHasBorderInFullScreenStatic);
- if (function == QWindowsWindowFunctions::setHasBorderInFullScreenDefaultIdentifier())
- return QFunctionPointer(QWindowsWindow::setHasBorderInFullScreenDefault);
- if (function == QWindowsWindowFunctions::setWindowActivationBehaviorIdentifier())
- return QFunctionPointer(QWindowsNativeInterface::setWindowActivationBehavior);
- if (function == QWindowsWindowFunctions::isTabletModeIdentifier())
- return QFunctionPointer(QWindowsNativeInterface::isTabletMode);
- return nullptr;
-}
-
-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