From bbfea2c29b95af9c56ea018c3fc03309c2ec5c59 Mon Sep 17 00:00:00 2001 From: czy Date: Tue, 31 Oct 2023 10:55:53 +0800 Subject: [PATCH] fix #303 mingw compile error (#306) --- .../Core/framelesshelper_windows.h | 11 +++++++ .../private/framelesswidgetshelper_p.h | 2 +- .../Widgets/private/standardtitlebar_p.h | 2 +- src/core/utils_win.cpp | 30 +++++++++++++++++++ 4 files changed, 43 insertions(+), 2 deletions(-) diff --git a/include/FramelessHelper/Core/framelesshelper_windows.h b/include/FramelessHelper/Core/framelesshelper_windows.h index 25af2bb5..02a43245 100644 --- a/include/FramelessHelper/Core/framelesshelper_windows.h +++ b/include/FramelessHelper/Core/framelesshelper_windows.h @@ -79,11 +79,22 @@ # define NTDDI_VERSION NTDDI_WIN10_NI #endif +#if _WIN32_WINNT < _WIN32_WINNT_WIN10 +#undef _WIN32_WINNT +#define _WIN32_WINNT _WIN32_WINNT_WIN10 +#endif + +#if WINVER < _WIN32_WINNT_WIN10 +#undef WINVER +#define WINVER _WIN32_WINNT_WIN10 +#endif + #include #include #include #include + #include #ifndef SC_SIZE diff --git a/include/FramelessHelper/Widgets/private/framelesswidgetshelper_p.h b/include/FramelessHelper/Widgets/private/framelesswidgetshelper_p.h index f08063ed..f0146b9f 100644 --- a/include/FramelessHelper/Widgets/private/framelesswidgetshelper_p.h +++ b/include/FramelessHelper/Widgets/private/framelesswidgetshelper_p.h @@ -82,7 +82,7 @@ class FRAMELESSHELPER_WIDGETS_API FramelessWidgetsHelperPrivate : public QObject QColor savedWindowBackgroundColor = {}; bool blurBehindWindowEnabled = false; - QPointer window = nullptr; + QPointer window;//QPointer window = nullptr; can not compile under mingw bool qpaReady = false; QSizePolicy savedSizePolicy = {}; quint32 qpaWaitTime = 0; diff --git a/include/FramelessHelper/Widgets/private/standardtitlebar_p.h b/include/FramelessHelper/Widgets/private/standardtitlebar_p.h index a41f77a2..777cda58 100644 --- a/include/FramelessHelper/Widgets/private/standardtitlebar_p.h +++ b/include/FramelessHelper/Widgets/private/standardtitlebar_p.h @@ -80,7 +80,7 @@ class FRAMELESSHELPER_WIDGETS_API StandardTitleBarPrivate : public QObject StandardSystemButton *maximizeButton = nullptr; StandardSystemButton *closeButton = nullptr; #endif - QPointer window = nullptr; + QPointer window;////QPointer window = nullptr; can not compile under mingw bool extended = false; Qt::Alignment labelAlignment = {}; bool hideWhenClose = false; diff --git a/src/core/utils_win.cpp b/src/core/utils_win.cpp index e5511ed0..e783909b 100644 --- a/src/core/utils_win.cpp +++ b/src/core/utils_win.cpp @@ -388,8 +388,10 @@ static constexpr const std::array g_win32MessageMap = DEFINE_WIN32_MESSAGE(WM_VSCROLL) DEFINE_WIN32_MESSAGE(WM_INITMENU) DEFINE_WIN32_MESSAGE(WM_INITMENUPOPUP) +#if _WIN32_WINNT >= 0x0601 DEFINE_WIN32_MESSAGE(WM_GESTURE) DEFINE_WIN32_MESSAGE(WM_GESTURENOTIFY) +#endif /* _WIN32_WINNT >= 0x0601 */ DEFINE_WIN32_MESSAGE(WM_MENUSELECT) DEFINE_WIN32_MESSAGE(WM_MENUCHAR) DEFINE_WIN32_MESSAGE(WM_ENTERIDLE) @@ -447,10 +449,15 @@ static constexpr const std::array g_win32MessageMap = DEFINE_WIN32_MESSAGE(WM_EXITSIZEMOVE) DEFINE_WIN32_MESSAGE(WM_DROPFILES) DEFINE_WIN32_MESSAGE(WM_MDIREFRESHMENU) +#if WINVER >= 0x0602 DEFINE_WIN32_MESSAGE(WM_POINTERDEVICECHANGE) DEFINE_WIN32_MESSAGE(WM_POINTERDEVICEINRANGE) DEFINE_WIN32_MESSAGE(WM_POINTERDEVICEOUTOFRANGE) +#endif +#if WINVER >= 0x0601 DEFINE_WIN32_MESSAGE(WM_TOUCH) +#endif +#if WINVER >= 0x0602 DEFINE_WIN32_MESSAGE(WM_NCPOINTERUPDATE) DEFINE_WIN32_MESSAGE(WM_NCPOINTERDOWN) DEFINE_WIN32_MESSAGE(WM_NCPOINTERUP) @@ -464,9 +471,16 @@ static constexpr const std::array g_win32MessageMap = DEFINE_WIN32_MESSAGE(WM_TOUCHHITTESTING) DEFINE_WIN32_MESSAGE(WM_POINTERWHEEL) DEFINE_WIN32_MESSAGE(WM_POINTERHWHEEL) +#endif +#ifdef WM_POINTERROUTEDTO DEFINE_WIN32_MESSAGE(WM_POINTERROUTEDTO) +#endif +#ifdef WM_POINTERROUTEDAWAY DEFINE_WIN32_MESSAGE(WM_POINTERROUTEDAWAY) +#endif +#ifdef WM_POINTERROUTEDRELEASED DEFINE_WIN32_MESSAGE(WM_POINTERROUTEDRELEASED) +#endif DEFINE_WIN32_MESSAGE(WM_IME_SETCONTEXT) DEFINE_WIN32_MESSAGE(WM_IME_NOTIFY) DEFINE_WIN32_MESSAGE(WM_IME_CONTROL) @@ -484,8 +498,12 @@ static constexpr const std::array g_win32MessageMap = DEFINE_WIN32_MESSAGE(WM_TABLET_FIRST) DEFINE_WIN32_MESSAGE(WM_TABLET_LAST) DEFINE_WIN32_MESSAGE(WM_DPICHANGED) +#ifdef WM_DPICHANGED_BEFOREPARENT DEFINE_WIN32_MESSAGE(WM_DPICHANGED_BEFOREPARENT) +#endif +#ifdef WM_DPICHANGED_AFTERPARENT DEFINE_WIN32_MESSAGE(WM_DPICHANGED_AFTERPARENT) +#endif DEFINE_WIN32_MESSAGE(WM_GETDPISCALEDSIZE) DEFINE_WIN32_MESSAGE(WM_CUT) DEFINE_WIN32_MESSAGE(WM_COPY) @@ -512,12 +530,22 @@ static constexpr const std::array g_win32MessageMap = DEFINE_WIN32_MESSAGE(WM_THEMECHANGED) DEFINE_WIN32_MESSAGE(WM_CLIPBOARDUPDATE) DEFINE_WIN32_MESSAGE(WM_DWMCOMPOSITIONCHANGED) +#ifdef WM_DWMNCRENDERINGCHANGED DEFINE_WIN32_MESSAGE(WM_DWMNCRENDERINGCHANGED) +#endif DEFINE_WIN32_MESSAGE(WM_DWMCOLORIZATIONCOLORCHANGED) +#ifdef WM_DWMWINDOWMAXIMIZEDCHANGE DEFINE_WIN32_MESSAGE(WM_DWMWINDOWMAXIMIZEDCHANGE) +#endif +#ifdef WM_DWMSENDICONICTHUMBNAIL DEFINE_WIN32_MESSAGE(WM_DWMSENDICONICTHUMBNAIL) +#endif +#ifdef WM_DWMSENDICONICLIVEPREVIEWBITMAP DEFINE_WIN32_MESSAGE(WM_DWMSENDICONICLIVEPREVIEWBITMAP) +#endif +#ifdef WM_GETTITLEBARINFOEX DEFINE_WIN32_MESSAGE(WM_GETTITLEBARINFOEX) +#endif DEFINE_WIN32_MESSAGE(WM_HANDHELDFIRST) DEFINE_WIN32_MESSAGE(WM_HANDHELDLAST) DEFINE_WIN32_MESSAGE(WM_AFXFIRST) @@ -860,7 +888,9 @@ static constexpr const std::array g_win32MessageMap = if (((message >= WM_NCCREATE) && (message <= WM_NCACTIVATE)) || ((message >= WM_NCMOUSEMOVE) && (message <= WM_NCMBUTTONDBLCLK)) || ((message >= WM_NCXBUTTONDOWN) && (message <= WM_NCXBUTTONDBLCLK)) +#if WINVER >= 0x0602 || ((message >= WM_NCPOINTERUPDATE) && (message <= WM_NCPOINTERUP)) +#endif || ((message == WM_NCMOUSEHOVER) || (message == WM_NCMOUSELEAVE))) { return true; } else {