bool operator==(const compatibility_iterator& i) const \
{ \
wxASSERT_MSG( m_list && i.m_list, \
- _T("comparing invalid iterators is illegal") ); \
+ wxT("comparing invalid iterators is illegal") ); \
return (m_list == i.m_list) && (m_iter == i.m_iter); \
} \
bool operator!=(const compatibility_iterator& i) const \
iterator i = const_cast< liT* >(this)->end(); \
return compatibility_iterator( this, !empty() ? --i : i ); \
} \
- compatibility_iterator Member( elT e ) const \
+ bool Member( elT e ) const \
{ return Find( e ); } \
compatibility_iterator Nth( int n ) const \
{ return Item( n ); } \
wxListBase *m_list; // list we belong to
- DECLARE_NO_COPY_CLASS(wxNodeBase)
+ wxDECLARE_NO_COPY_CLASS(wxNodeBase);
};
// -----------------------------------------------------------------------------
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); \
+ insert(it, v); \
} \
void insert(const iterator& it, \
const_iterator first, const const_iterator& last) \
{ \
for(; first != last; ++first) \
- Insert(it.m_node, (const_base_reference)*first); \
+ insert(it, *first); \
} \
iterator erase(const iterator& it) \
{ \
} \
iterator erase(const iterator& first, const iterator& last) \
{ \
- iterator next = last; ++next; \
+ iterator next = last; \
+ if ( next != end() ) \
+ ++next; \
DeleteNodes(first.m_node, last.m_node); \
return next; \
} \
{ splice(it, l, l.begin(), l.end() ); } \
void splice(const iterator& it, name& l, const iterator& first) \
{ \
- iterator tmp = first; ++tmp; \
- if(it == first || it == tmp) return; \
- insert(it, *first); \
- l.erase(first); \
+ if ( it != first ) \
+ { \
+ insert(it, *first); \
+ l.erase(first); \
+ } \
} \
void remove(const_reference v) \
{ DeleteObject((const_base_reference)v); } \
// compatibility methods
void Sort(wxSortCompareFunction compfunc) { wxListBase::Sort(compfunc); }
-#endif
-
-#if wxUSE_STL
-#else
- wxNode *Member(wxObject *object) const { return (wxNode *)Find(object); }
-#endif
+ bool Member(wxObject *object) const { return Find(object) != NULL; }
+#endif // !wxUSE_STL
};
#if !wxUSE_STL
(list).clear(); \
}
+// append all element of one list to another one
+#define WX_APPEND_LIST(list, other) \
+ { \
+ wxList::compatibility_iterator node = other->GetFirst(); \
+ while ( node ) \
+ { \
+ (list)->push_back(node->GetData()); \
+ node = node->GetNext(); \
+ } \
+ }
+
#endif // _WX_LISTH__