X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/f794be6afe4e89ebd93ca5d78601e7a7ec44bb9f..7a5a5718592cb0873374e6ebc66d12a153d5acea:/include/wx/list.h diff --git a/include/wx/list.h b/include/wx/list.h index 492f193a3a..6be233d821 100644 --- a/include/wx/list.h +++ b/include/wx/list.h @@ -25,7 +25,7 @@ #ifndef _WX_LISTH__ #define _WX_LISTH__ -#if defined(__GNUG__) && !defined(__APPLE__) && \ +#if defined(__GNUG__) && !defined(NO_GCC_PRAGMA) && \ !(defined(__MINGW32__) && __GNUC__ == 3 && __GNUC_MINOR__ == 2) #pragma interface "list.h" #endif @@ -157,7 +157,7 @@ enum wxKeyType dummy(); \ }; \ protected: \ - iterator find( elT e ) \ + iterator find( const elT e ) \ { \ iterator it, en; \ for( it = begin(), en = end(); it != en; ++it ) \ @@ -188,7 +188,7 @@ enum wxKeyType { \ erase( it.m_iter ); \ } \ - citer Find( elT e ) const { return citer( this, ((liT*)this)->find( e ) ); } \ + citer Find( const elT e ) const { return citer( this, ((liT*)this)->find( e ) ); } \ citer Member( elT e ) const { return Find( e ); } \ citer Insert( elT e ) \ { push_front( e ); return citer( this, begin() ); } \ @@ -240,7 +240,9 @@ enum wxKeyType // due to circular header dependencies this function has to be declared here // (normally it's found in utils.h which includes itself list.h...) +#if WXWIN_COMPATIBILITY_2_4 extern WXDLLIMPEXP_BASE wxChar* copystring(const wxChar *s); +#endif class WXDLLEXPORT wxObjectListNode; typedef wxObjectListNode wxNode; @@ -495,7 +497,7 @@ protected: // search (all return NULL if item not found) // by data - wxNodeBase *Find(void *object) const; + wxNodeBase *Find(const void *object) const; // by key wxNodeBase *Find(const wxListKey& key) const; @@ -645,7 +647,7 @@ private: void Erase(compatibility_iterator it) \ { DeleteNode(it); } \ \ - nodetype *Find(Tbase *object) const \ + nodetype *Find(const Tbase *object) const \ { return (nodetype *)wxListBase::Find(object); } \ \ virtual nodetype *Find(const wxListKey& key) const \ @@ -859,10 +861,10 @@ private: { return const_reverse_iterator(NULL, GetFirst()); } \ void resize(size_type n, value_type v = value_type()) \ { \ - if(n < size()) \ - for(; n < size(); pop_back()); \ - else if(n > size()) \ - for(; n > size(); push_back(v)); \ + while (n < size()) \ + pop_back(); \ + while (n > size()) \ + push_back(v); \ } \ size_type size() const { return GetCount(); } \ size_type max_size() const { return INT_MAX; } \ @@ -963,9 +965,13 @@ private: typedef elementtype _WX_LIST_ITEM_TYPE_##listname; \ WX_DECLARE_LIST_PTR_2(elementtype, listname, wx##listname##Node, class) -#define WX_DECLARE_EXPORTED_LIST(elementtype, listname) \ +#define WX_DECLARE_LIST_WITH_DECL(elementtype, listname, decl) \ typedef elementtype _WX_LIST_ITEM_TYPE_##listname; \ - WX_DECLARE_LIST_2(elementtype, listname, wx##listname##Node, class WXDLLEXPORT) + WX_DECLARE_LIST_2(elementtype, listname, wx##listname##Node, decl) + +#define WX_DECLARE_EXPORTED_LIST(elementtype, listname) \ + WX_DECLARE_LIST_WITH_DECL(elementtype, listname, class WXDLLEXPORT) + #define WX_DECLARE_EXPORTED_LIST_PTR(elementtype, listname) \ typedef elementtype _WX_LIST_ITEM_TYPE_##listname; \ WX_DECLARE_LIST_PTR_2(elementtype, listname, wx##listname##Node, class WXDLLEXPORT)