From 7af3eba50047c4b5f852f2ac3814243543a5019a Mon Sep 17 00:00:00 2001 From: "zhou.xu" Date: Sun, 23 Mar 2025 16:59:44 +0800 Subject: [PATCH] ENH:Text not centered on mac15 jira: STUDIO-11056 Change-Id: I1c651421f8914a25707ad5b5c1d3e3d56c2df959 --- src/libslic3r/MacUtils.hpp | 2 +- src/libslic3r/MacUtils.mm | 16 ++++++++++++---- src/slic3r/GUI/GUI_ObjectList.cpp | 2 -- src/slic3r/GUI/Widgets/Button.cpp | 9 ++++++++- src/slic3r/GUI/Widgets/SwitchButton.cpp | 19 +++++++++++++++++-- 5 files changed, 38 insertions(+), 10 deletions(-) diff --git a/src/libslic3r/MacUtils.hpp b/src/libslic3r/MacUtils.hpp index 388baa119..29366ee3f 100644 --- a/src/libslic3r/MacUtils.hpp +++ b/src/libslic3r/MacUtils.hpp @@ -4,7 +4,7 @@ namespace Slic3r { bool is_macos_support_boost_add_file_log(); - +int is_mac_version_15(); } #endif diff --git a/src/libslic3r/MacUtils.mm b/src/libslic3r/MacUtils.mm index bb9ecd1e4..f5fa82fe3 100644 --- a/src/libslic3r/MacUtils.mm +++ b/src/libslic3r/MacUtils.mm @@ -6,10 +6,18 @@ namespace Slic3r { bool is_macos_support_boost_add_file_log() { if (@available(macOS 12.0, *)) { - return true; - } else { - return false; - } + return true; + } else { + return false; + } } +int is_mac_version_15() +{ + if (@available(macOS 15.0, *)) {//This code runs on macOS 15 or later. + return true; + } else { + return false; + } +} }; // namespace Slic3r diff --git a/src/slic3r/GUI/GUI_ObjectList.cpp b/src/slic3r/GUI/GUI_ObjectList.cpp index 4fc525eb9..5df9547d8 100644 --- a/src/slic3r/GUI/GUI_ObjectList.cpp +++ b/src/slic3r/GUI/GUI_ObjectList.cpp @@ -558,8 +558,6 @@ MeshErrorsInfo ObjectList::get_mesh_errors_info(wxString* sidebar_info /*= nullp else return { "", "" }; } - assert(obj_idx >= 0); - return get_mesh_errors_info(obj_idx, vol_idx, sidebar_info, non_manifold_edges); } diff --git a/src/slic3r/GUI/Widgets/Button.cpp b/src/slic3r/GUI/Widgets/Button.cpp index 41f4fd0a5..2c8cba910 100644 --- a/src/slic3r/GUI/Widgets/Button.cpp +++ b/src/slic3r/GUI/Widgets/Button.cpp @@ -3,7 +3,9 @@ #include #include - +#ifdef __APPLE__ +#include "libslic3r/MacUtils.hpp" +#endif BEGIN_EVENT_TABLE(Button, StaticBox) EVT_LEFT_DOWN(Button::mouseDown) @@ -272,6 +274,11 @@ void Button::render(wxDC& dc) #endif #ifdef __WXOSX__ pt.y -= this->textSize.x / 2; +#endif +#ifdef __APPLE__ + if (Slic3r::is_mac_version_15()) { + pt.y -= FromDIP(1); + } #endif dc.DrawText(text, pt); } diff --git a/src/slic3r/GUI/Widgets/SwitchButton.cpp b/src/slic3r/GUI/Widgets/SwitchButton.cpp index aa755cb0f..099bf31b3 100644 --- a/src/slic3r/GUI/Widgets/SwitchButton.cpp +++ b/src/slic3r/GUI/Widgets/SwitchButton.cpp @@ -5,6 +5,9 @@ #include "../wxExtensions.hpp" #include "../Utils/MacDarkMode.hpp" #include "../Utils/WxFontUtils.hpp" +#ifdef __APPLE__ +#include "libslic3r/MacUtils.hpp" +#endif #include #include @@ -140,9 +143,21 @@ void SwitchButton::Rescale() dc2.DrawRoundedRectangle(wxRect({ i == 0 ? BS : (trackSize.x - thumbSize.x - BS), BS}, thumbSize), thumbSize.y / 2); } memdc.SetTextForeground(text_color.colorForStates(state ^ StateColor::Checked)); - memdc.DrawText(labels[0], {BS + (thumbSize.x - textSize[0].x) / 2, BS + (thumbSize.y - textSize[0].y) / 2}); + auto text_y = BS + (thumbSize.y - textSize[0].y) / 2; +#ifdef __APPLE__ + if (Slic3r::is_mac_version_15()) { + text_y -= FromDIP(2); + } +#endif + memdc.DrawText(labels[0], {BS + (thumbSize.x - textSize[0].x) / 2, text_y}); memdc.SetTextForeground(text_color2.count() == 0 ? text_color.colorForStates(state) : text_color2.colorForStates(state)); - memdc.DrawText(labels[1], {trackSize.x - thumbSize.x - BS + (thumbSize.x - textSize[1].x) / 2, BS + (thumbSize.y - textSize[1].y) / 2}); + auto text_y_1 = BS + (thumbSize.y - textSize[1].y) / 2; +#ifdef __APPLE__ + if (Slic3r::is_mac_version_15()) { + text_y_1 -= FromDIP(2); + } +#endif + memdc.DrawText(labels[1], {trackSize.x - thumbSize.x - BS + (thumbSize.x - textSize[1].x) / 2, text_y_1}); memdc.SelectObject(wxNullBitmap); #ifdef __WXOSX__ bmp = wxBitmap(bmp.ConvertToImage(), -1, scale);