fix(stable): wx 3.3.2 wxComboPopup-Cast in combochecklist (dynamic_cast)

This commit is contained in:
viewit
2026-06-11 10:58:27 +02:00
parent cfd0e82985
commit b1d3e997df

View File

@@ -461,7 +461,9 @@ unsigned int combochecklist_get_flags(wxComboCtrl* comboCtrl)
{
unsigned int flags = 0;
wxCheckListBoxComboPopup* popup = wxDynamicCast(comboCtrl->GetPopupControl(), wxCheckListBoxComboPopup);
// wx 3.3.2: wxComboPopup no longer derives from wxObject, so wxDynamicCast
// (which static_casts to wxObject*) is invalid here — use C++ dynamic_cast.
wxCheckListBoxComboPopup* popup = dynamic_cast<wxCheckListBoxComboPopup*>(comboCtrl->GetPopupControl());
if (popup != nullptr) {
for (unsigned int i = 0; i < popup->GetCount(); ++i) {
if (popup->IsChecked(i))
@@ -474,7 +476,9 @@ unsigned int combochecklist_get_flags(wxComboCtrl* comboCtrl)
void combochecklist_set_flags(wxComboCtrl* comboCtrl, unsigned int flags)
{
wxCheckListBoxComboPopup* popup = wxDynamicCast(comboCtrl->GetPopupControl(), wxCheckListBoxComboPopup);
// wx 3.3.2: wxComboPopup no longer derives from wxObject, so wxDynamicCast
// (which static_casts to wxObject*) is invalid here — use C++ dynamic_cast.
wxCheckListBoxComboPopup* popup = dynamic_cast<wxCheckListBoxComboPopup*>(comboCtrl->GetPopupControl());
if (popup != nullptr) {
for (unsigned int i = 0; i < popup->GetCount(); ++i) {
popup->Check(i, (flags & (1 << i)) != 0);