chore: 格式化ElaWidgetTools代码
This commit is contained in:
@@ -3,113 +3,98 @@
|
||||
#include "ElaDef.h"
|
||||
#include "ElaSingleton.h"
|
||||
#ifdef Q_OS_WIN
|
||||
#include <dwmapi.h>
|
||||
#include <windowsx.h>
|
||||
#include <dwmapi.h>
|
||||
#include <windowsx.h>
|
||||
|
||||
#define Win7_Origin "6.1.0"
|
||||
#define Win8_Origin "6.2.0"
|
||||
#define Win10_Origin "10.0.0"
|
||||
#define Win10_1809 "10.0.17763"
|
||||
#define Win10_1903 "10.0.18362"
|
||||
#define Win10_20H1 "10.0.19041"
|
||||
#define Win11_Origin "10.0.22000"
|
||||
#define Win11_22H2 "10.0.22621"
|
||||
#define Win7_Origin "6.1.0"
|
||||
#define Win8_Origin "6.2.0"
|
||||
#define Win10_Origin "10.0.0"
|
||||
#define Win10_1809 "10.0.17763"
|
||||
#define Win10_1903 "10.0.18362"
|
||||
#define Win10_20H1 "10.0.19041"
|
||||
#define Win11_Origin "10.0.22000"
|
||||
#define Win11_22H2 "10.0.22621"
|
||||
|
||||
#define eWinHelper ElaWinShadowHelper::getInstance()
|
||||
class ElaWinShadowHelper : public QObject
|
||||
{
|
||||
#define eWinHelper ElaWinShadowHelper::getInstance()
|
||||
class ElaWinShadowHelper : public QObject {
|
||||
Q_OBJECT
|
||||
Q_PRIVATE_CREATE(bool, IsWinVersionGreater10)
|
||||
Q_PRIVATE_CREATE(bool, IsWinVersionGreater11)
|
||||
Q_SINGLETON_CREATE(ElaWinShadowHelper)
|
||||
private:
|
||||
explicit ElaWinShadowHelper(QObject* parent = nullptr);
|
||||
explicit ElaWinShadowHelper(QObject *parent = nullptr);
|
||||
~ElaWinShadowHelper() override;
|
||||
|
||||
public:
|
||||
bool initWinAPI();
|
||||
|
||||
void setWindowShadow(quint64 hwnd);
|
||||
void setWindowThemeMode(quint64 hwnd, bool isLightMode);
|
||||
void setWindowDisplayMode(QWidget* widget, ElaApplicationType::WindowDisplayMode displayMode, ElaApplicationType::WindowDisplayMode lastDisplayMode);
|
||||
bool getIsCompositionEnabled() const;
|
||||
bool getIsFullScreen(const HWND hwnd);
|
||||
void setWindowShadow(quint64 hwnd);
|
||||
void setWindowThemeMode(quint64 hwnd, bool isLightMode);
|
||||
void setWindowDisplayMode(QWidget *widget, ElaApplicationType::WindowDisplayMode displayMode,
|
||||
ElaApplicationType::WindowDisplayMode lastDisplayMode);
|
||||
bool getIsCompositionEnabled() const;
|
||||
bool getIsFullScreen(const HWND hwnd);
|
||||
MONITORINFOEXW getMonitorForWindow(const HWND hwnd);
|
||||
quint32 getResizeBorderThickness(const HWND hwnd);
|
||||
quint32 getDpiForWindow(const HWND hwnd);
|
||||
int getSystemMetricsForDpi(const HWND hwnd, const int index);
|
||||
bool compareWindowsVersion(const QString& windowsVersion) const;
|
||||
quint32 getResizeBorderThickness(const HWND hwnd);
|
||||
quint32 getDpiForWindow(const HWND hwnd);
|
||||
int getSystemMetricsForDpi(const HWND hwnd, const int index);
|
||||
bool compareWindowsVersion(const QString &windowsVersion) const;
|
||||
|
||||
private:
|
||||
enum _DWM_SYSTEMBACKDROP_TYPE
|
||||
{
|
||||
_DWMSBT_AUTO,
|
||||
_DWMSBT_NONE,
|
||||
_DWMSBT_MAINWINDOW,
|
||||
_DWMSBT_TRANSIENTWINDOW,
|
||||
_DWMSBT_TABBEDWINDOW
|
||||
};
|
||||
enum _DWMWINDOWATTRIBUTE
|
||||
{
|
||||
_DWMWA_USE_HOSTBACKDROPBRUSH = 17,
|
||||
enum _DWM_SYSTEMBACKDROP_TYPE { _DWMSBT_AUTO, _DWMSBT_NONE, _DWMSBT_MAINWINDOW, _DWMSBT_TRANSIENTWINDOW, _DWMSBT_TABBEDWINDOW };
|
||||
enum _DWMWINDOWATTRIBUTE {
|
||||
_DWMWA_USE_HOSTBACKDROPBRUSH = 17,
|
||||
_DWMWA_USE_IMMERSIVE_DARK_MODE_BEFORE_20H1 = 19,
|
||||
_DWMWA_USE_IMMERSIVE_DARK_MODE = 20,
|
||||
_DWMWA_WINDOW_CORNER_PREFERENCE = 33,
|
||||
_DWMWA_VISIBLE_FRAME_BORDER_THICKNESS = 37,
|
||||
_DWMWA_SYSTEMBACKDROP_TYPE = 38,
|
||||
_DWMWA_MICA_EFFECT = 1029
|
||||
_DWMWA_USE_IMMERSIVE_DARK_MODE = 20,
|
||||
_DWMWA_WINDOW_CORNER_PREFERENCE = 33,
|
||||
_DWMWA_VISIBLE_FRAME_BORDER_THICKNESS = 37,
|
||||
_DWMWA_SYSTEMBACKDROP_TYPE = 38,
|
||||
_DWMWA_MICA_EFFECT = 1029
|
||||
};
|
||||
enum _WINDOWCOMPOSITIONATTRIB
|
||||
{
|
||||
_WCA_UNDEFINED = 0,
|
||||
_WCA_NCRENDERING_ENABLED = 1,
|
||||
_WCA_NCRENDERING_POLICY = 2,
|
||||
_WCA_TRANSITIONS_FORCEDISABLED = 3,
|
||||
_WCA_ALLOW_NCPAINT = 4,
|
||||
_WCA_CAPTION_BUTTON_BOUNDS = 5,
|
||||
_WCA_NONCLIENT_RTL_LAYOUT = 6,
|
||||
_WCA_FORCE_ICONIC_REPRESENTATION = 7,
|
||||
_WCA_EXTENDED_FRAME_BOUNDS = 8,
|
||||
_WCA_HAS_ICONIC_BITMAP = 9,
|
||||
_WCA_THEME_ATTRIBUTES = 10,
|
||||
_WCA_NCRENDERING_EXILED = 11,
|
||||
_WCA_NCADORNMENTINFO = 12,
|
||||
_WCA_EXCLUDED_FROM_LIVEPREVIEW = 13,
|
||||
_WCA_VIDEO_OVERLAY_ACTIVE = 14,
|
||||
enum _WINDOWCOMPOSITIONATTRIB {
|
||||
_WCA_UNDEFINED = 0,
|
||||
_WCA_NCRENDERING_ENABLED = 1,
|
||||
_WCA_NCRENDERING_POLICY = 2,
|
||||
_WCA_TRANSITIONS_FORCEDISABLED = 3,
|
||||
_WCA_ALLOW_NCPAINT = 4,
|
||||
_WCA_CAPTION_BUTTON_BOUNDS = 5,
|
||||
_WCA_NONCLIENT_RTL_LAYOUT = 6,
|
||||
_WCA_FORCE_ICONIC_REPRESENTATION = 7,
|
||||
_WCA_EXTENDED_FRAME_BOUNDS = 8,
|
||||
_WCA_HAS_ICONIC_BITMAP = 9,
|
||||
_WCA_THEME_ATTRIBUTES = 10,
|
||||
_WCA_NCRENDERING_EXILED = 11,
|
||||
_WCA_NCADORNMENTINFO = 12,
|
||||
_WCA_EXCLUDED_FROM_LIVEPREVIEW = 13,
|
||||
_WCA_VIDEO_OVERLAY_ACTIVE = 14,
|
||||
_WCA_FORCE_ACTIVEWINDOW_APPEARANCE = 15,
|
||||
_WCA_DISALLOW_PEEK = 16,
|
||||
_WCA_CLOAK = 17,
|
||||
_WCA_CLOAKED = 18,
|
||||
_WCA_ACCENT_POLICY = 19,
|
||||
_WCA_FREEZE_REPRESENTATION = 20,
|
||||
_WCA_EVER_UNCLOAKED = 21,
|
||||
_WCA_VISUAL_OWNER = 22,
|
||||
_WCA_HOLOGRAPHIC = 23,
|
||||
_WCA_EXCLUDED_FROM_DDA = 24,
|
||||
_WCA_PASSIVEUPDATEMODE = 25,
|
||||
_WCA_USEDARKMODECOLORS = 26,
|
||||
_WCA_CORNER_STYLE = 27,
|
||||
_WCA_PART_COLOR = 28,
|
||||
_WCA_DISABLE_MOVESIZE_FEEDBACK = 29,
|
||||
_WCA_LAST = 30
|
||||
_WCA_DISALLOW_PEEK = 16,
|
||||
_WCA_CLOAK = 17,
|
||||
_WCA_CLOAKED = 18,
|
||||
_WCA_ACCENT_POLICY = 19,
|
||||
_WCA_FREEZE_REPRESENTATION = 20,
|
||||
_WCA_EVER_UNCLOAKED = 21,
|
||||
_WCA_VISUAL_OWNER = 22,
|
||||
_WCA_HOLOGRAPHIC = 23,
|
||||
_WCA_EXCLUDED_FROM_DDA = 24,
|
||||
_WCA_PASSIVEUPDATEMODE = 25,
|
||||
_WCA_USEDARKMODECOLORS = 26,
|
||||
_WCA_CORNER_STYLE = 27,
|
||||
_WCA_PART_COLOR = 28,
|
||||
_WCA_DISABLE_MOVESIZE_FEEDBACK = 29,
|
||||
_WCA_LAST = 30
|
||||
};
|
||||
|
||||
enum _ACCENT_STATE
|
||||
{
|
||||
_ACCENT_DISABLED = 0,
|
||||
_ACCENT_ENABLE_GRADIENT = 1,
|
||||
enum _ACCENT_STATE {
|
||||
_ACCENT_DISABLED = 0,
|
||||
_ACCENT_ENABLE_GRADIENT = 1,
|
||||
_ACCENT_ENABLE_TRANSPARENTGRADIENT = 2,
|
||||
_ACCENT_ENABLE_BLURBEHIND = 3,
|
||||
_ACCENT_ENABLE_ACRYLICBLURBEHIND = 4,
|
||||
_ACCENT_ENABLE_HOST_BACKDROP = 5,
|
||||
_ACCENT_INVALID_STATE = 6
|
||||
};
|
||||
enum _ACCENT_FLAG
|
||||
{
|
||||
_ACCENT_NONE = 0,
|
||||
_ACCENT_ENABLE_ACRYLIC = 1,
|
||||
_ACCENT_ENABLE_ACRYLIC_WITH_LUMINOSITY = 482
|
||||
_ACCENT_ENABLE_BLURBEHIND = 3,
|
||||
_ACCENT_ENABLE_ACRYLICBLURBEHIND = 4,
|
||||
_ACCENT_ENABLE_HOST_BACKDROP = 5,
|
||||
_ACCENT_INVALID_STATE = 6
|
||||
};
|
||||
enum _ACCENT_FLAG { _ACCENT_NONE = 0, _ACCENT_ENABLE_ACRYLIC = 1, _ACCENT_ENABLE_ACRYLIC_WITH_LUMINOSITY = 482 };
|
||||
struct _ACCENT_POLICY {
|
||||
DWORD dwAccentState;
|
||||
DWORD dwAccentFlags;
|
||||
@@ -118,37 +103,31 @@ private:
|
||||
};
|
||||
struct _WINDOWCOMPOSITIONATTRIBDATA {
|
||||
_WINDOWCOMPOSITIONATTRIB Attrib;
|
||||
PVOID pvData;
|
||||
SIZE_T cbData;
|
||||
};
|
||||
enum _MONITOR_DPI_TYPE
|
||||
{
|
||||
MDT_EFFECTIVE_DPI = 0,
|
||||
MDT_ANGULAR_DPI = 1,
|
||||
MDT_RAW_DPI = 2,
|
||||
MDT_DEFAULT = MDT_EFFECTIVE_DPI
|
||||
PVOID pvData;
|
||||
SIZE_T cbData;
|
||||
};
|
||||
enum _MONITOR_DPI_TYPE { MDT_EFFECTIVE_DPI = 0, MDT_ANGULAR_DPI = 1, MDT_RAW_DPI = 2, MDT_DEFAULT = MDT_EFFECTIVE_DPI };
|
||||
|
||||
using DwmExtendFrameIntoClientAreaFunc = HRESULT(WINAPI*)(HWND hWnd, const MARGINS* pMarInset);
|
||||
using DwmSetWindowAttributeFunc = HRESULT(WINAPI*)(HWND hwnd, DWORD dwAttribute, LPCVOID pvAttribute, DWORD cbAttribute);
|
||||
using DwmIsCompositionEnabledFunc = HRESULT(WINAPI*)(BOOL* pfEnabled);
|
||||
using RtlGetVersionFunc = NTSTATUS(WINAPI*)(PRTL_OSVERSIONINFOW);
|
||||
using DwmEnableBlurBehindWindowFunc = HRESULT(WINAPI*)(HWND hWnd, const DWM_BLURBEHIND* pBlurBehind);
|
||||
using SetWindowCompositionAttributeFunc = BOOL(WINAPI*)(HWND hwnd, const _WINDOWCOMPOSITIONATTRIBDATA*);
|
||||
using GetDpiForWindowFunc = UINT(WINAPI*)(HWND hwnd);
|
||||
using GetDpiForMonitorFunc = HRESULT(WINAPI*)(HMONITOR hmonitor, _MONITOR_DPI_TYPE dpiType, UINT* dpiX, UINT* dpiY);
|
||||
using GetSystemMetricsForDpiFunc = int(WINAPI*)(int index, UINT dpi);
|
||||
using DwmExtendFrameIntoClientAreaFunc = HRESULT(WINAPI *)(HWND hWnd, const MARGINS *pMarInset);
|
||||
using DwmSetWindowAttributeFunc = HRESULT(WINAPI *)(HWND hwnd, DWORD dwAttribute, LPCVOID pvAttribute, DWORD cbAttribute);
|
||||
using DwmIsCompositionEnabledFunc = HRESULT(WINAPI *)(BOOL *pfEnabled);
|
||||
using RtlGetVersionFunc = NTSTATUS(WINAPI *)(PRTL_OSVERSIONINFOW);
|
||||
using DwmEnableBlurBehindWindowFunc = HRESULT(WINAPI *)(HWND hWnd, const DWM_BLURBEHIND *pBlurBehind);
|
||||
using SetWindowCompositionAttributeFunc = BOOL(WINAPI *)(HWND hwnd, const _WINDOWCOMPOSITIONATTRIBDATA *);
|
||||
using GetDpiForWindowFunc = UINT(WINAPI *)(HWND hwnd);
|
||||
using GetDpiForMonitorFunc = HRESULT(WINAPI *)(HMONITOR hmonitor, _MONITOR_DPI_TYPE dpiType, UINT *dpiX, UINT *dpiY);
|
||||
using GetSystemMetricsForDpiFunc = int(WINAPI *)(int index, UINT dpi);
|
||||
|
||||
DwmExtendFrameIntoClientAreaFunc _dwmExtendFrameIntoClientArea{nullptr};
|
||||
DwmSetWindowAttributeFunc _dwmSetWindowAttribute{nullptr};
|
||||
DwmIsCompositionEnabledFunc _dwmIsCompositionEnabled{nullptr};
|
||||
DwmEnableBlurBehindWindowFunc _dwmEnableBlurBehindWindow{nullptr};
|
||||
DwmExtendFrameIntoClientAreaFunc _dwmExtendFrameIntoClientArea{nullptr};
|
||||
DwmSetWindowAttributeFunc _dwmSetWindowAttribute{nullptr};
|
||||
DwmIsCompositionEnabledFunc _dwmIsCompositionEnabled{nullptr};
|
||||
DwmEnableBlurBehindWindowFunc _dwmEnableBlurBehindWindow{nullptr};
|
||||
SetWindowCompositionAttributeFunc _setWindowCompositionAttribute{nullptr};
|
||||
GetDpiForWindowFunc _getDpiForWindow{nullptr};
|
||||
GetDpiForMonitorFunc _getDpiForMonitor{nullptr};
|
||||
GetSystemMetricsForDpiFunc _getSystemMetricsForDpi{nullptr};
|
||||
RTL_OSVERSIONINFOW _windowsVersion{};
|
||||
void _externWindowMargins(HWND hwnd);
|
||||
GetDpiForWindowFunc _getDpiForWindow{nullptr};
|
||||
GetDpiForMonitorFunc _getDpiForMonitor{nullptr};
|
||||
GetSystemMetricsForDpiFunc _getSystemMetricsForDpi{nullptr};
|
||||
RTL_OSVERSIONINFOW _windowsVersion{};
|
||||
void _externWindowMargins(HWND hwnd);
|
||||
};
|
||||
|
||||
#endif
|
||||
|
||||
Reference in New Issue
Block a user