X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/9c7c6fa27baa34d0be4cdfcb4ffd579598c80767..613de0e89efab1cbf8463ea06e0cf0b2914fbce9:/include/wx/arrstr.h?ds=sidebyside diff --git a/include/wx/arrstr.h b/include/wx/arrstr.h index 306af0c54c..f54844459b 100644 --- a/include/wx/arrstr.h +++ b/include/wx/arrstr.h @@ -15,10 +15,9 @@ #include "wx/defs.h" #include "wx/string.h" -#if wxUSE_STL - -#include "wx/dynarray.h" - +// these functions are only used in STL build now but we define them in any +// case for compatibility with the existing code outside of the library which +// could be using them inline int wxCMPFUNC_CONV wxStringSortAscending(wxString* s1, wxString* s2) { return s1->Cmp(*s2); @@ -29,6 +28,10 @@ inline int wxCMPFUNC_CONV wxStringSortDescending(wxString* s1, wxString* s2) return wxStringSortAscending(s2, s1); } +#if wxUSE_STL + +#include "wx/dynarray.h" + typedef int (wxCMPFUNC_CONV *CMPFUNCwxString)(wxString*, wxString*); typedef wxString _wxArraywxBaseArrayStringBase; _WX_DECLARE_BASEARRAY_2(_wxArraywxBaseArrayStringBase, wxBaseArrayStringBase, @@ -292,12 +295,21 @@ public: void pop_back() { RemoveAt(GetCount() - 1); } void push_back(const_reference v) { Add(v); } reverse_iterator rbegin() { return reverse_iterator(end() - 1); } - const_reverse_iterator rbegin() const; + const_reverse_iterator rbegin() const + { return const_reverse_iterator(end() - 1); } reverse_iterator rend() { return reverse_iterator(begin() - 1); } - const_reverse_iterator rend() const; + const_reverse_iterator rend() const + { return const_reverse_iterator(begin() - 1); } void reserve(size_type n) /* base::reserve*/; void resize(size_type n, value_type v = value_type()); size_type size() const { return GetCount(); } + void swap(wxArrayString& other) + { + wxSwap(m_nSize, other.m_nSize); + wxSwap(m_nCount, other.m_nCount); + wxSwap(m_pItems, other.m_pItems); + wxSwap(m_autoSort, other.m_autoSort); + } protected: void Init(bool autoSort); // common part of all ctors @@ -345,6 +357,14 @@ public: m_strings[i] = m_array[i]; return m_strings; } + + wxString* Release() + { + wxString *r = GetStrings(); + m_strings = NULL; + return r; + } + private: const wxArrayString& m_array; wxString* m_strings;