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.
This commit is contained in:
SoftFever
2026-03-25 11:26:32 +08:00
parent 85390a9da0
commit 5f365b5c6b
2 changed files with 5 additions and 3 deletions

View File

@@ -91,8 +91,9 @@ BitmapComboBox::~BitmapComboBox()
} }
#ifdef __APPLE__ #ifdef __APPLE__
bool BitmapComboBox::OnAddBitmap(const wxBitmap& bitmap) bool BitmapComboBox::OnAddBitmap(const wxBitmapBundle& bundle)
{ {
wxBitmap bitmap = bundle.GetBitmap(bundle.GetDefaultSize());
if (bitmap.IsOk()) if (bitmap.IsOk())
{ {
// we should use scaled! size values of bitmap // we should use scaled! size values of bitmap
@@ -131,7 +132,8 @@ void BitmapComboBox::OnDrawItem(wxDC& dc,
int item, int item,
int flags) const int flags) const
{ {
const wxBitmap& bmp = *(static_cast<wxBitmap*>(m_bitmaps[item])); const wxBitmapBundle& bundle = m_bitmapbundles[item];
wxBitmap bmp = bundle.GetBitmap(bundle.GetDefaultSize());
if (bmp.IsOk()) if (bmp.IsOk())
{ {
// we should use scaled! size values of bitmap // we should use scaled! size values of bitmap

View File

@@ -47,7 +47,7 @@ protected:
* For this purpose control drawing methods and * For this purpose control drawing methods and
* control size calculation methods (virtual) are overridden. * 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; void OnDrawItem(wxDC& dc, const wxRect& rect, int item, int flags) const override;
#endif #endif