X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/53a2db124c633f80bdb16336084262037d879a2c..87c0312a66f57b1d167e1f9454a80fe4b7b28e0b:/include/wx/list.h?ds=sidebyside diff --git a/include/wx/list.h b/include/wx/list.h index a09bc6158d..5f9b4d1fa0 100644 --- a/include/wx/list.h +++ b/include/wx/list.h @@ -45,21 +45,9 @@ // types // ---------------------------------------------------------------------------- -// type of compare function for list sort operation (as in 'qsort'): it should -// return a negative value, 0 or positive value if the first element is less -// than, equal or greater than the second - -extern "C" -{ -typedef int (* LINKAGEMODE wxSortCompareFunction)(const void *elem1, const void *elem2); -} - class WXDLLIMPEXP_FWD_BASE wxObjectListNode; typedef wxObjectListNode wxNode; -// -typedef int (* LINKAGEMODE wxListIterateFunction)(void *current); - #if wxUSE_STL #define wxLIST_COMPATIBILITY @@ -469,7 +457,7 @@ protected: virtual void DeleteData() { } public: // for wxList::iterator - void** GetDataPtr() const { return &(wx_const_cast(wxNodeBase*, this)->m_data); } + void** GetDataPtr() const { return &(const_cast(this)->m_data); } private: // optional key stuff wxListKeyValue m_key; @@ -1017,18 +1005,22 @@ private: for(size_type i = 0; i < n; ++i) \ Append((const_base_reference)v); \ } \ - iterator insert(const iterator& it, const_reference v = value_type())\ + iterator insert(const iterator& it, const_reference v) \ { \ - Insert(it.m_node, (const_base_reference)v); \ + if ( it == end() ) \ + Append((const_base_reference)v); \ + else \ + Insert(it.m_node, (const_base_reference)v); \ iterator itprev(it); \ return itprev--; \ } \ - void insert(const iterator& it, size_type n, const_reference v = value_type())\ + void insert(const iterator& it, size_type n, const_reference v) \ { \ for(size_type i = 0; i < n; ++i) \ Insert(it.m_node, (const_base_reference)v); \ } \ - void insert(const iterator& it, const_iterator first, const const_iterator& last)\ + void insert(const iterator& it, \ + const_iterator first, const const_iterator& last) \ { \ for(; first != last; ++first) \ Insert(it.m_node, (const_base_reference)*first); \