From 894861becbf69744afb1f508d2f05c335aff537c Mon Sep 17 00:00:00 2001 From: Vadim Zeitlin Date: Tue, 8 Jun 2021 22:40:29 +0200 Subject: [PATCH] Fix wxRTTI for wxAuiNotebook by deriving it from wxBookCtrlBase Otherwise wxDynamicCast-ing wxAuiNotebook to wxBookCtrlBase didn't work (even if the more usual and useful upcast did still work). Add a unit test for this. --- src/aui/auibook.cpp | 2 +- tests/controls/auitest.cpp | 8 ++++++++ 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/src/aui/auibook.cpp b/src/aui/auibook.cpp index a0d1a08359..e7b8272023 100644 --- a/src/aui/auibook.cpp +++ b/src/aui/auibook.cpp @@ -53,7 +53,7 @@ wxDEFINE_EVENT(wxEVT_AUINOTEBOOK_TAB_MIDDLE_DOWN, wxAuiNotebookEvent); wxDEFINE_EVENT(wxEVT_AUINOTEBOOK_TAB_RIGHT_UP, wxAuiNotebookEvent); wxDEFINE_EVENT(wxEVT_AUINOTEBOOK_TAB_RIGHT_DOWN, wxAuiNotebookEvent); -wxIMPLEMENT_CLASS(wxAuiNotebook, wxControl); +wxIMPLEMENT_CLASS(wxAuiNotebook, wxBookCtrlBase); wxIMPLEMENT_CLASS(wxAuiTabCtrl, wxControl); wxIMPLEMENT_DYNAMIC_CLASS(wxAuiNotebookEvent, wxBookCtrlEvent); diff --git a/tests/controls/auitest.cpp b/tests/controls/auitest.cpp index 2521710ba8..ef1a38321a 100644 --- a/tests/controls/auitest.cpp +++ b/tests/controls/auitest.cpp @@ -143,4 +143,12 @@ TEST_CASE_METHOD(AuiNotebookTestCase, "wxAuiNotebook::DoGetBestSize", "[aui]") } } +TEST_CASE_METHOD(AuiNotebookTestCase, "wxAuiNotebook::RTTI", "[aui][rtti]") +{ + wxBookCtrlBase* const book = nb; + CHECK( wxDynamicCast(book, wxAuiNotebook) == nb ); + + CHECK( wxDynamicCast(nb, wxBookCtrlBase) == book ); +} + #endif