From bc23b1f4f0fc5c14dccdd0941d553023a6e2fd1c Mon Sep 17 00:00:00 2001 From: Vadim Zeitlin Date: Tue, 11 Apr 2023 15:19:37 +0200 Subject: [PATCH] Use wxBaseArray instead of object array for wxAuiToolBarItemArray This class is part of the public API, as it is used by the public wxAuiToolBar functions, so we can't make it just a vector, but we can still make it a wxBaseArray instead of using the old macro-based object array for it. Also document it. --- include/wx/aui/auibar.h | 4 +--- interface/wx/aui/auibar.h | 11 +++++++++++ src/aui/auibar.cpp | 6 +----- 3 files changed, 13 insertions(+), 8 deletions(-) diff --git a/include/wx/aui/auibar.h b/include/wx/aui/auibar.h index e9cd006a1b..08485ac771 100644 --- a/include/wx/aui/auibar.h +++ b/include/wx/aui/auibar.h @@ -254,9 +254,7 @@ private: int m_alignment; // sizer alignment flag, defaults to wxCENTER, may be wxEXPAND or any other }; -#ifndef SWIG -WX_DECLARE_USER_EXPORTED_OBJARRAY(wxAuiToolBarItem, wxAuiToolBarItemArray, WXDLLIMPEXP_AUI); -#endif +using wxAuiToolBarItemArray = wxBaseArray; diff --git a/interface/wx/aui/auibar.h b/interface/wx/aui/auibar.h index c21706bb7f..a820a0311a 100644 --- a/interface/wx/aui/auibar.h +++ b/interface/wx/aui/auibar.h @@ -454,6 +454,17 @@ public: bool CanBeToggled() const; }; +/** + A vector of AUI toolbar items. + + This class is actually a legacy container (see @ref overview_container for + more details), but it can, and should be, handled as just a vector of + wxAuiToolBarItem objects in the application code. +*/ +class wxAuiToolBarItemArray : public std::vector +{ +}; + /** @class wxAuiToolBarArt diff --git a/src/aui/auibar.cpp b/src/aui/auibar.cpp index 3e6e687a69..5c4e8069d1 100644 --- a/src/aui/auibar.cpp +++ b/src/aui/auibar.cpp @@ -36,10 +36,6 @@ #include "wx/osx/private.h" #endif -#include "wx/arrimpl.cpp" -WX_DEFINE_OBJARRAY(wxAuiToolBarItemArray) - - wxDEFINE_EVENT( wxEVT_AUITOOLBAR_TOOL_DROPDOWN, wxAuiToolBarEvent ); wxDEFINE_EVENT( wxEVT_AUITOOLBAR_OVERFLOW_CLICK, wxAuiToolBarEvent ); wxDEFINE_EVENT( wxEVT_AUITOOLBAR_RIGHT_CLICK, wxAuiToolBarEvent ); @@ -1258,7 +1254,7 @@ wxAuiToolBarItem* wxAuiToolBar::FindToolByIndex(int idx) const if (idx >= (int)m_items.size()) return nullptr; - return &(m_items[idx]); + return const_cast(&(m_items[idx])); } void wxAuiToolBar::SetToolClientData (int tool_id, wxObject *client_data)