From 7658e1df8110872eebc1c8ae5eaea73c98ae583e Mon Sep 17 00:00:00 2001 From: thysson2701 Date: Fri, 12 Jun 2026 21:28:15 +0200 Subject: [PATCH] fix(stable): wx 3.3 private Header kopieren + GetToolTipCtrl-Guard MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - deps/wxWidgets: copy_private_headers-Step ergänzt (markuptext.h, jsscriptwrapper.h etc. fehlen im wx-3.3-cmake-Install) - GUI_App: wxToolTip::GetToolTipCtrl() ist in wx 3.3 private -> mit wxVERSION_NUMBER < 3300 guarden (wie 2.4) --- deps/wxWidgets/wxWidgets.cmake | 22 ++++++++++++++++++++++ src/slic3r/GUI/GUI_App.cpp | 3 +++ 2 files changed, 25 insertions(+) diff --git a/deps/wxWidgets/wxWidgets.cmake b/deps/wxWidgets/wxWidgets.cmake index 1770ad15f00..bb7a2d0400b 100644 --- a/deps/wxWidgets/wxWidgets.cmake +++ b/deps/wxWidgets/wxWidgets.cmake @@ -68,6 +68,28 @@ orcaslicer_add_cmake_project( -DwxUSE_EXPAT=sys ) +# wxWidgets 3.3 cmake install doesn't include private headers. +# OrcaSlicer uses some of the private headers (markuptext, jsscriptwrapper, +# accessibility support). Copy the private headers directory after install. +if(MSVC) + set(_wx_inc_dest ${DESTDIR}/include/wx) +else() + set(_wx_inc_dest ${DESTDIR}/include/wx-3.3/wx) +endif() +ExternalProject_Add_Step(dep_wxWidgets copy_private_headers + DEPENDEES install + COMMENT "Copying wxWidgets private headers" + COMMAND ${CMAKE_COMMAND} -E copy_directory + /include/wx/private + ${_wx_inc_dest}/private + COMMAND ${CMAKE_COMMAND} -E copy_directory + /include/wx/generic/private + ${_wx_inc_dest}/generic/private + COMMAND ${CMAKE_COMMAND} -E copy_directory + /include/wx/gtk/private + ${_wx_inc_dest}/gtk/private +) + if (MSVC) add_debug_dep(dep_wxWidgets) endif () diff --git a/src/slic3r/GUI/GUI_App.cpp b/src/slic3r/GUI/GUI_App.cpp index fe7cfbd2551..002f286f6d4 100644 --- a/src/slic3r/GUI/GUI_App.cpp +++ b/src/slic3r/GUI/GUI_App.cpp @@ -4313,8 +4313,11 @@ void GUI_App::force_colors_update() #ifdef _MSW_DARK_MODE #ifdef __WINDOWS__ NppDarkMode::SetDarkMode(dark_mode()); +#if wxVERSION_NUMBER < 3300 + // wxToolTip::GetToolTipCtrl() became private in wxWidgets 3.3. if (WXHWND wxHWND = wxToolTip::GetToolTipCtrl()) NppDarkMode::SetDarkExplorerTheme((HWND)wxHWND); +#endif NppDarkMode::SetDarkTitleBar(mainframe->GetHWND());