X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/17a1ebd101f0653e69736416a2a28d0ada423141..687b91d266990129fbbb8c21d92fa4298b458352:/include/wx/dynarray.h diff --git a/include/wx/dynarray.h b/include/wx/dynarray.h index a70982e87c..4c2584fb49 100644 --- a/include/wx/dynarray.h +++ b/include/wx/dynarray.h @@ -226,7 +226,8 @@ protected: \ void pop_back() { RemoveAt(size() - 1); } \ void push_back(const value_type& v) { Add(v); } \ void reserve(size_type n) { if(n > m_nSize) Realloc(n); } \ - void resize(size_type n, value_type v = value_type()); \ + void resize(size_type n, value_type v = value_type()) \ + { SetCount(n, v); } \ \ iterator begin() { return m_pItems; } \ iterator end() { return m_pItems + m_nCount; } \ @@ -472,7 +473,8 @@ public: \ reverse_iterator rend() { return reverse_iterator(begin() - 1); } \ const_reverse_iterator rend() const; \ void reserve(size_type n) { base::reserve(n); }; \ - void resize(size_type n, value_type v = value_type()); \ + void resize(size_type n, value_type v = value_type()) \ + { base::resize(n, v); } \ } #define _WX_PTROP pointer operator->() const { return m_ptr; } @@ -957,6 +959,7 @@ WX_DECLARE_USER_EXPORTED_BASEARRAY(double, wxBaseArrayDouble, WXDLLIMPEXP_BASE); WX_DEFINE_USER_EXPORTED_ARRAY_SHORT(short, wxArrayShort, class WXDLLIMPEXP_BASE); WX_DEFINE_USER_EXPORTED_ARRAY_INT(int, wxArrayInt, class WXDLLIMPEXP_BASE); +WX_DEFINE_USER_EXPORTED_ARRAY_DOUBLE(double, wxArrayDouble, class WXDLLIMPEXP_BASE); WX_DEFINE_USER_EXPORTED_ARRAY_LONG(long, wxArrayLong, class WXDLLIMPEXP_BASE); WX_DEFINE_USER_EXPORTED_ARRAY_PTR(void *, wxArrayPtrVoid, class WXDLLIMPEXP_BASE); @@ -964,6 +967,18 @@ WX_DEFINE_USER_EXPORTED_ARRAY_PTR(void *, wxArrayPtrVoid, class WXDLLIMPEXP_BASE // convenience macros // ----------------------------------------------------------------------------- +// prepend all element of one array to another one; e.g. if first array contains +// elements X,Y,Z and the second contains A,B,C (in those orders), then the +// first array will be result as A,B,C,X,Y,Z +#define WX_PREPEND_ARRAY(array, other) \ + { \ + size_t wxAAcnt = (other).size(); \ + for ( size_t wxAAn = 0; wxAAn < wxAAcnt; wxAAn++ ) \ + { \ + (array).Insert((other)[wxAAn], wxAAn); \ + } \ + } + // append all element of one array to another one #define WX_APPEND_ARRAY(array, other) \ { \