From 5f365b5c6badb7e3a485f91e8e4d186641994a9c Mon Sep 17 00:00:00 2001 From: SoftFever Date: Wed, 25 Mar 2026 11:26:32 +0800 Subject: [PATCH] Fix BitmapComboBox for wxWidgets 3.3 (wxBitmap -> wxBitmapBundle) In wxWidgets 3.3, wxBitmapComboBoxBase::OnAddBitmap changed its parameter from const wxBitmap& to const wxBitmapBundle&, and m_bitmaps was replaced by m_bitmapbundles. Update OnAddBitmap signature and OnDrawItem to use wxBitmapBundle, extracting wxBitmap via GetBitmap(GetDefaultSize()) where needed. --- src/slic3r/GUI/BitmapComboBox.cpp | 6 ++++-- src/slic3r/GUI/BitmapComboBox.hpp | 2 +- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/src/slic3r/GUI/BitmapComboBox.cpp b/src/slic3r/GUI/BitmapComboBox.cpp index 36c15343d3..c7911f4864 100644 --- a/src/slic3r/GUI/BitmapComboBox.cpp +++ b/src/slic3r/GUI/BitmapComboBox.cpp @@ -91,8 +91,9 @@ BitmapComboBox::~BitmapComboBox() } #ifdef __APPLE__ -bool BitmapComboBox::OnAddBitmap(const wxBitmap& bitmap) +bool BitmapComboBox::OnAddBitmap(const wxBitmapBundle& bundle) { + wxBitmap bitmap = bundle.GetBitmap(bundle.GetDefaultSize()); if (bitmap.IsOk()) { // we should use scaled! size values of bitmap @@ -131,7 +132,8 @@ void BitmapComboBox::OnDrawItem(wxDC& dc, int item, int flags) const { - const wxBitmap& bmp = *(static_cast(m_bitmaps[item])); + const wxBitmapBundle& bundle = m_bitmapbundles[item]; + wxBitmap bmp = bundle.GetBitmap(bundle.GetDefaultSize()); if (bmp.IsOk()) { // we should use scaled! size values of bitmap diff --git a/src/slic3r/GUI/BitmapComboBox.hpp b/src/slic3r/GUI/BitmapComboBox.hpp index a77bf401d6..14e7e74c93 100644 --- a/src/slic3r/GUI/BitmapComboBox.hpp +++ b/src/slic3r/GUI/BitmapComboBox.hpp @@ -47,7 +47,7 @@ protected: * For this purpose control drawing methods and * control size calculation methods (virtual) are overridden. **/ -bool OnAddBitmap(const wxBitmap& bitmap) override; +bool OnAddBitmap(const wxBitmapBundle& bitmap) override; void OnDrawItem(wxDC& dc, const wxRect& rect, int item, int flags) const override; #endif