From 85390a9da022f6020f011a7349b86f36be63bf42 Mon Sep 17 00:00:00 2001 From: SoftFever Date: Tue, 24 Mar 2026 21:02:37 +0800 Subject: [PATCH] Guard wxToolTip::GetToolTipCtrl() for wx 3.3 and add explicit wx/utils.h includes - Wrap GetToolTipCtrl() call in GUI_App.cpp with #if wxVERSION_NUMBER < 3300 guard, as this API may not be accessible in wxWidgets 3.3. The dark tooltip theming is cosmetic and non-critical. - Add explicit #include to 7 source files that use functions from that header (wxGetMousePosition, wxLaunchDefaultBrowser, wxGetDisplaySize, wxBell) but relied on transitive includes. This preempts breakage from wxWidgets 3.3 reducing transitive includes. Files with wx/utils.h added: BBLTopbar.cpp, CreatePresetsDialog.cpp, CameraPopup.cpp, GLCanvas3D.cpp, GCodeViewer.cpp, GUI_ObjectList.cpp, FilamentMapPanel.cpp. Skipped BindDialog.cpp and FilamentPickerDialog.cpp as they already include wx/wx.h which provides wx/utils.h transitively. Part of wxWidgets 3.1.5 -> 3.3.2 upgrade. --- src/slic3r/GUI/BBLTopbar.cpp | 1 + src/slic3r/GUI/CameraPopup.cpp | 1 + src/slic3r/GUI/CreatePresetsDialog.cpp | 1 + src/slic3r/GUI/FilamentMapPanel.cpp | 1 + src/slic3r/GUI/GCodeViewer.cpp | 1 + src/slic3r/GUI/GLCanvas3D.cpp | 1 + src/slic3r/GUI/GUI_App.cpp | 2 ++ src/slic3r/GUI/GUI_ObjectList.cpp | 1 + 8 files changed, 9 insertions(+) diff --git a/src/slic3r/GUI/BBLTopbar.cpp b/src/slic3r/GUI/BBLTopbar.cpp index 65fcb2958c..38daf204fb 100644 --- a/src/slic3r/GUI/BBLTopbar.cpp +++ b/src/slic3r/GUI/BBLTopbar.cpp @@ -2,6 +2,7 @@ #include "wx/artprov.h" #include "wx/aui/framemanager.h" #include "wx/display.h" +#include #include "I18N.hpp" #include "GUI_App.hpp" #include "GUI.hpp" diff --git a/src/slic3r/GUI/CameraPopup.cpp b/src/slic3r/GUI/CameraPopup.cpp index 9b4908b045..84a70605c8 100644 --- a/src/slic3r/GUI/CameraPopup.cpp +++ b/src/slic3r/GUI/CameraPopup.cpp @@ -7,6 +7,7 @@ #include #include #include +#include #include "GUI_App.hpp" #include diff --git a/src/slic3r/GUI/CreatePresetsDialog.cpp b/src/slic3r/GUI/CreatePresetsDialog.cpp index c3bf6f660f..36d92b28ca 100644 --- a/src/slic3r/GUI/CreatePresetsDialog.cpp +++ b/src/slic3r/GUI/CreatePresetsDialog.cpp @@ -8,6 +8,7 @@ #include #include #include +#include #include #include "libslic3r/PresetBundle.hpp" #include "I18N.hpp" diff --git a/src/slic3r/GUI/FilamentMapPanel.cpp b/src/slic3r/GUI/FilamentMapPanel.cpp index 3727727a30..59f6e5be6e 100644 --- a/src/slic3r/GUI/FilamentMapPanel.cpp +++ b/src/slic3r/GUI/FilamentMapPanel.cpp @@ -1,6 +1,7 @@ #include "FilamentMapPanel.hpp" #include "GUI_App.hpp" #include +#include #include "wx/graphics.h" namespace Slic3r { namespace GUI { diff --git a/src/slic3r/GUI/GCodeViewer.cpp b/src/slic3r/GUI/GCodeViewer.cpp index fe47b581c3..4814548a10 100644 --- a/src/slic3r/GUI/GCodeViewer.cpp +++ b/src/slic3r/GUI/GCodeViewer.cpp @@ -39,6 +39,7 @@ #include #include #include +#include #include #include diff --git a/src/slic3r/GUI/GLCanvas3D.cpp b/src/slic3r/GUI/GLCanvas3D.cpp index b9becfa63c..ab034168b6 100644 --- a/src/slic3r/GUI/GLCanvas3D.cpp +++ b/src/slic3r/GUI/GLCanvas3D.cpp @@ -53,6 +53,7 @@ #include #include #include +#include #include // Print now includes tbb, and tbb includes Windows. This breaks compilation of wxWidgets if included before wx. #include "libslic3r/Print.hpp" diff --git a/src/slic3r/GUI/GUI_App.cpp b/src/slic3r/GUI/GUI_App.cpp index 9e5b43835c..47dcc64d78 100644 --- a/src/slic3r/GUI/GUI_App.cpp +++ b/src/slic3r/GUI/GUI_App.cpp @@ -4292,8 +4292,10 @@ void GUI_App::force_colors_update() #ifdef _MSW_DARK_MODE #ifdef __WINDOWS__ NppDarkMode::SetDarkMode(dark_mode()); +#if wxVERSION_NUMBER < 3300 if (WXHWND wxHWND = wxToolTip::GetToolTipCtrl()) NppDarkMode::SetDarkExplorerTheme((HWND)wxHWND); +#endif NppDarkMode::SetDarkTitleBar(mainframe->GetHWND()); diff --git a/src/slic3r/GUI/GUI_ObjectList.cpp b/src/slic3r/GUI/GUI_ObjectList.cpp index 7e4853d19f..b20e26653a 100644 --- a/src/slic3r/GUI/GUI_ObjectList.cpp +++ b/src/slic3r/GUI/GUI_ObjectList.cpp @@ -32,6 +32,7 @@ #include #include #include +#include #include #include "slic3r/Utils/FixModelByWin10.hpp"