Qt
Internal/Contributor docs for the Qt SDK. <b>Note:</b> These are NOT official API docs; those are found <a href='https://doc.qt.io/'>here</a>.
Loading...
Searching...
No Matches
qwindowstheme.h
Go to the documentation of this file.
1// Copyright (C) 2016 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
4#ifndef QWINDOWSTHEME_H
5#define QWINDOWSTHEME_H
6
7#include <qpa/qplatformtheme.h>
8
9#include <QtCore/qsharedpointer.h>
10#include <QtCore/qvariant.h>
11#include <QtCore/qlist.h>
12#include <QtCore/qsize.h>
13
15
16class QWindow;
17
19{
20 Q_DISABLE_COPY_MOVE(QWindowsTheme)
21public:
23 ~QWindowsTheme() override;
24
25 static QWindowsTheme *instance() { return m_instance; }
26
27 bool usePlatformNativeDialog(DialogType type) const override;
29#if QT_CONFIG(systemtrayicon)
31#endif
32 QVariant themeHint(ThemeHint) const override;
33
34 Qt::ColorScheme colorScheme() const override;
35 void requestColorScheme(Qt::ColorScheme scheme) override;
36 Qt::ColorScheme requestedColorScheme() const { return s_colorSchemeOverride; }
37
38 static void handleSettingsChanged();
39
40 const QPalette *palette(Palette type = SystemPalette) const override
41 { return m_palettes[type]; }
42 const QFont *font(Font type = SystemFont) const override
43 { return m_fonts[type]; }
44
45 QPixmap standardPixmap(StandardPixmap sp, const QSizeF &size) const override;
46
47 QIcon fileIcon(const QFileInfo &fileInfo, QPlatformTheme::IconOptions iconOptions = {}) const override;
48 QIconEngine *createIconEngine(const QString &iconName) const override;
49
51 void displayChanged() { refreshIconPixmapSizes(); }
52
53 QList<QSize> availableFileIconSizes() const { return m_fileIconSizes; }
54
56 QPlatformMenu *createPlatformMenu() const override;
58 void showPlatformMenuBar() override;
59
60 static bool useNativeMenus();
61
62 void refreshFonts();
63 void refresh();
64
65 static const char *name;
66
68
69private:
70 void clearPalettes();
71 void refreshPalettes();
72 void clearFonts();
73 void refreshIconPixmapSizes();
74
75 static void populateLightSystemBasePalette(QPalette &result);
76 static void populateDarkSystemBasePalette(QPalette &result);
77
78 static Qt::ColorScheme queryColorScheme();
79 static Qt::ColorScheme effectiveColorScheme();
80 static bool queryHighContrast();
81
82 static QWindowsTheme *m_instance;
83 static inline Qt::ColorScheme s_colorScheme = Qt::ColorScheme::Unknown;
84 static inline Qt::ColorScheme s_colorSchemeOverride = Qt::ColorScheme::Unknown;
85
86 QPalette *m_palettes[NPalettes];
87 QFont *m_fonts[NFonts];
88 QList<QSize> m_fileIconSizes;
89};
90
92
93#endif // QWINDOWSTHEME_H
\reentrant
Definition qfont.h:22
The QIconEngine class provides an abstract base class for QIcon renderers.
Definition qiconengine.h:15
The QIcon class provides scalable icons in different modes and states.
Definition qicon.h:20
The QPalette class contains color groups for each widget state.
Definition qpalette.h:19
Returns a copy of the pixmap that is transformed using the given transformation transform and transfo...
Definition qpixmap.h:27
The QPlatformDialogHelper class allows for platform-specific customization of dialogs.
The QPlatformTheme class allows customizing the UI based on themes.
virtual QPlatformSystemTrayIcon * createPlatformSystemTrayIcon() const
Factory function for QSystemTrayIcon.
ThemeHint
This enum describes the available theme hints.
\inmodule QtCore
Definition qsize.h:208
\macro QT_RESTRICTED_CAST_FROM_ASCII
Definition qstring.h:129
\inmodule QtCore
Definition qvariant.h:65
\inmodule QtGui
Definition qwindow.h:63
static bool useNativeMenus()
static void handleSettingsChanged()
void requestColorScheme(Qt::ColorScheme scheme) override
void windowsThemeChanged(QWindow *window)
void showPlatformMenuBar() override
QIconEngine * createIconEngine(const QString &iconName) const override
Factory function for the QIconEngine used by QIcon::fromTheme().
void displayChanged()
QPlatformMenuBar * createPlatformMenuBar() const override
bool usePlatformNativeDialog(DialogType type) const override
const QFont * font(Font type=SystemFont) const override
static const char * name
QList< QSize > availableFileIconSizes() const
QPlatformMenuItem * createPlatformMenuItem() const override
const QPalette * palette(Palette type=SystemPalette) const override
Qt::ColorScheme colorScheme() const override
static QPalette systemPalette(Qt::ColorScheme)
QVariant themeHint(ThemeHint) const override
~QWindowsTheme() override
Qt::ColorScheme requestedColorScheme() const
QIcon fileIcon(const QFileInfo &fileInfo, QPlatformTheme::IconOptions iconOptions={}) const override
Return an icon for fileInfo, observing iconOptions.
QPlatformDialogHelper * createPlatformDialogHelper(DialogType type) const override
static QWindowsTheme * instance()
QPixmap standardPixmap(StandardPixmap sp, const QSizeF &size) const override
QPlatformMenu * createPlatformMenu() const override
Combined button and popup list for selecting options.
ColorScheme
Definition qnamespace.h:50
GLenum GLuint GLintptr GLsizeiptr size
[1]
GLenum type
GLuint64EXT * result
[6]
#define sp
aWidget window() -> setWindowTitle("New Window Title")
[2]