X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/a236aa2058ccf3d36e9cafc20fa7375080c4be50..c220de0b393b5098c705c1a62ef7fc4698e2fa52:/include/wx/arrstr.h diff --git a/include/wx/arrstr.h b/include/wx/arrstr.h index a78d09e9dd..f54844459b 100644 --- a/include/wx/arrstr.h +++ b/include/wx/arrstr.h @@ -15,8 +15,18 @@ #include "wx/defs.h" #include "wx/string.h" -WXDLLIMPEXP_BASE int wxCMPFUNC_CONV wxStringSortAscending(wxString*, wxString*); -WXDLLIMPEXP_BASE int wxCMPFUNC_CONV wxStringSortDescending(wxString*, wxString*); +// 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); +} + +inline int wxCMPFUNC_CONV wxStringSortDescending(wxString* s1, wxString* s2) +{ + return wxStringSortAscending(s2, s1); +} #if wxUSE_STL @@ -177,7 +187,7 @@ public: // sort array elements in alphabetical order (or reversed alphabetical // order if reverseOrder parameter is true) void Sort(bool reverseOrder = false); - // sort array elements using specified comparaison function + // sort array elements using specified comparison function void Sort(CompareFunction compareFunction); void Sort(CompareFunction2 compareFunction); @@ -285,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 @@ -299,8 +318,6 @@ protected: private: void Grow(size_t nIncrement = 0); // makes array bigger if needed - void DoSort(); // common part of all Sort() variants - size_t m_nSize, // current size of the array m_nCount; // current number of elements @@ -340,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; @@ -404,7 +429,7 @@ public: // default copy constructor is ok // iteration interface - unsigned int GetCount() const { return m_size; } + size_t GetCount() const { return m_size; } bool IsEmpty() const { return GetCount() == 0; } const wxString& operator[] (unsigned int i) const { @@ -429,7 +454,7 @@ private: }; wxStringContainerType m_type; - unsigned int m_size; + size_t m_size; union { const wxString * ptr;