Qt
Internal/Contributor docs for the Qt SDK. Note: These are NOT official API docs; those are found at https://doc.qt.io/
Loading...
Searching...
No Matches
qwindowsapplication.cpp
Go to the documentation of this file.
1// Copyright (C) 2020 The Qt Company Ltd.
2// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
3
5#if QT_CONFIG(clipboard)
6#include "qwindowsclipboard.h"
7#endif
10#include "qwin10helpers.h"
12#include "qwindowswindow.h"
14#include "qwindowstheme.h"
15
16#include <QtCore/qvariant.h>
17#include <QtCore/private/qfunctions_win_p.h>
18
19#include <QtGui/qpalette.h>
20
22
23void QWindowsApplication::setTouchWindowTouchType(QWindowsApplication::TouchWindowTouchTypes type)
24{
25 if (m_touchWindowTouchTypes == type)
26 return;
27 m_touchWindowTouchTypes = type;
28 if (auto ctx = QWindowsContext::instance())
30}
31
33{
34 return m_touchWindowTouchTypes;
35}
36
38{
39 return m_windowActivationBehavior;
40}
41
42void QWindowsApplication::setWindowActivationBehavior(WindowActivationBehavior behavior)
43{
44 m_windowActivationBehavior = behavior;
45}
46
51
53{
54#if QT_CONFIG(clipboard)
55 if (const QWindowsClipboard *clipboard = QWindowsClipboard::instance())
56 return qt_windowsIsTabletMode(clipboard->clipboardViewer());
57#endif
58 return false;
59}
60
62{
64 return ctx != nullptr && ctx->tabletSupport() != nullptr;
65}
66
68{
69 if (enabled == isWinTabEnabled())
70 return true;
72 if (!ctx)
73 return false;
74 return enabled ? ctx->initTablet() : ctx->disposeTablet();
75}
76
78{
79 return m_darkModeHandling;
80}
81
82void QWindowsApplication::setDarkModeHandling(QWindowsApplication::DarkModeHandling handling)
83{
84 m_darkModeHandling = handling;
85}
86
87void QWindowsApplication::registerMime(QWindowsMimeConverter *mime)
88{
89 if (auto ctx = QWindowsContext::instance())
90 ctx->mimeConverter().registerMime(mime);
91}
92
93void QWindowsApplication::unregisterMime(QWindowsMimeConverter *mime)
94{
95 if (auto ctx = QWindowsContext::instance())
96 ctx->mimeConverter().unregisterMime(mime);
97}
98
99int QWindowsApplication::registerMimeType(const QString &mime)
100{
101 return QWindowsMimeRegistry::registerMimeType(mime);
102}
103
104HWND QWindowsApplication::createMessageWindow(const QString &classNameTemplate,
105 const QString &windowName,
106 QFunctionPointer eventProc) const
107{
109 if (!ctx)
110 return nullptr;
111 auto wndProc = eventProc ? reinterpret_cast<WNDPROC>(eventProc) : DefWindowProc;
112 return ctx->createDummyWindow(classNameTemplate,
113 reinterpret_cast<const wchar_t*>(windowName.utf16()),
114 wndProc);
115}
116
118{
120 return ctx && ctx->asyncExpose();
121}
122
128
129QVariant QWindowsApplication::gpu() const
130{
132}
133
135{
136 QVariantList result;
137 const auto gpus = GpuDescription::detectAll();
138 for (const auto &gpu : gpus)
139 result.append(gpu.toVariant());
140 return result;
141}
142
144{
145 result = QWindowsTheme::systemPalette(Qt::ColorScheme::Light);
146}
147
148QT_END_NAMESPACE
TouchWindowTouchTypes touchWindowTouchType() const override
void setWindowActivationBehavior(WindowActivationBehavior behavior) override
void populateLightSystemPalette(QPalette &palette) const override
void registerMime(QWindowsMimeConverter *mime) override
int registerMimeType(const QString &mime) override
bool isTabletMode() const override
void setAsyncExpose(bool value) override
bool setWinTabEnabled(bool enabled) override
DarkModeHandling darkModeHandling() const override
HWND createMessageWindow(const QString &classNameTemplate, const QString &windowName, QFunctionPointer eventProc=nullptr) const override
QVariant gpu() const override
WindowActivationBehavior windowActivationBehavior() const override
void setHasBorderInFullScreenDefault(bool border) override
QVariant gpuList() const override
bool isWinTabEnabled() const override
void setTouchWindowTouchType(TouchWindowTouchTypes type) override
bool asyncExpose() const override
void unregisterMime(QWindowsMimeConverter *mime) override
void setDarkModeHandling(DarkModeHandling handling) override
Singleton container for all relevant information.
bool asyncExpose() const
QWindowsTabletSupport * tabletSupport() const
void setAsyncExpose(bool value)
QWindowsMimeRegistry & mimeConverter() const
static QWindowsContext * instance()
Raster or OpenGL Window.
static void setHasBorderInFullScreenDefault(bool border)
static GpuDescription detect()
QVariant toVariant() const