From 61cb997e4e9ebf50bcff835841fbd1ecc9499e49 Mon Sep 17 00:00:00 2001 From: Zhao Yuhang <2546789017@qq.com> Date: 周五, 22 12月 2023 21:14:31 +0800 Subject: [PATCH] add themechange notify on win --- src/core/shared/qwkwindowsextra_p.h | 12 ++++++++++++ 1 files changed, 12 insertions(+), 0 deletions(-) diff --git a/src/core/shared/qwkwindowsextra_p.h b/src/core/shared/qwkwindowsextra_p.h index c4b5002..d934c07 100644 --- a/src/core/shared/qwkwindowsextra_p.h +++ b/src/core/shared/qwkwindowsextra_p.h @@ -19,6 +19,9 @@ #include <QtCore/private/qsystemlibrary_p.h> #include <QtCore/private/qwinregistry_p.h> +#include <QtGui/QStyleHints> +#include <QtGui/QPalette> + // Don't include this header in any header files. namespace QWK { @@ -146,6 +149,7 @@ DYNAMIC_API_DECLARE(DwmGetWindowAttribute); DYNAMIC_API_DECLARE(DwmSetWindowAttribute); DYNAMIC_API_DECLARE(DwmExtendFrameIntoClientArea); + DYNAMIC_API_DECLARE(DwmEnableBlurBehindWindow); DYNAMIC_API_DECLARE(GetDpiForWindow); DYNAMIC_API_DECLARE(GetSystemMetricsForDpi); DYNAMIC_API_DECLARE(GetDpiForMonitor); @@ -177,6 +181,7 @@ DYNAMIC_API_RESOLVE(dwmapi, DwmGetWindowAttribute); DYNAMIC_API_RESOLVE(dwmapi, DwmSetWindowAttribute); DYNAMIC_API_RESOLVE(dwmapi, DwmExtendFrameIntoClientArea); + DYNAMIC_API_RESOLVE(dwmapi, DwmEnableBlurBehindWindow); QSystemLibrary winmm(QStringLiteral("winmm")); DYNAMIC_API_RESOLVE(winmm, timeGetDevCaps); @@ -322,6 +327,13 @@ return value.first; } + static inline bool isHighContrastModeEnabled() { + HIGHCONTRASTW hc{}; + hc.cbSize = sizeof(hc); + ::SystemParametersInfoW(SPI_GETHIGHCONTRAST, sizeof(hc), &hc, FALSE); + return (hc.dwFlags & HCF_HIGHCONTRASTON); + } + static inline bool isDarkThemeActive() { #if QT_VERSION >= QT_VERSION_CHECK(6, 5, 0) return QGuiApplication::styleHints()->colorScheme() == Qt::ColorScheme::Dark; -- Gitblit v1.9.1