#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
#define wxLIST_COMPATIBILITY
#define WX_DECLARE_LIST_3(elT, dummy1, liT, dummy2, decl) \
- WX_DECLARE_LIST_X(elT, liT, decl)
+ WX_DECLARE_LIST_WITH_DECL(elT, liT, decl)
#define WX_DECLARE_LIST_PTR_3(elT, dummy1, liT, dummy2, decl) \
WX_DECLARE_LIST_3(elT, dummy1, liT, dummy2, decl)
#define WX_DECLARE_LIST_2(elT, liT, dummy, decl) \
- WX_DECLARE_LIST_X(elT, liT, decl)
+ WX_DECLARE_LIST_WITH_DECL(elT, liT, decl)
#define WX_DECLARE_LIST_PTR_2(elT, liT, dummy, decl) \
WX_DECLARE_LIST_2(elT, liT, dummy, decl) \
-#define WX_DECLARE_LIST_X(elT, liT, decl) \
+#define WX_DECLARE_LIST_WITH_DECL(elT, liT, decl) \
WX_DECLARE_LIST_XO(elT*, liT, decl)
#define WX_DECLARE_LIST_XO(elT, liT, decl) \
compatibility_iterator() : m_list( NULL ) { } \
dummy* operator->() { return (dummy*)this; } \
const dummy* operator->() const { return (const dummy*)this; } \
+ bool operator==(const compatibility_iterator& it) \
+ { return m_list == it.m_list && m_iter == it.m_iter; } \
+ bool operator!=(const compatibility_iterator& it) \
+ { return m_list != it.m_list || m_iter != it.m_iter; } \
}; \
typedef struct compatibility_iterator citer; \
\
{ \
citer* i = (citer*)this; \
it lit = i->m_iter; \
- return citer( i->m_list, ++lit ); \
+ return citer( i->m_list, --lit ); \
} \
void SetData( elT e ) \
{ \
}
#define WX_DECLARE_LIST(elementtype, listname) \
- WX_DECLARE_LIST_X(elementtype, listname, class)
+ WX_DECLARE_LIST_WITH_DECL(elementtype, listname, class)
#define WX_DECLARE_LIST_PTR(elementtype, listname) \
WX_DECLARE_LIST(elementtype, listname)
#define WX_DECLARE_EXPORTED_LIST(elementtype, listname) \
- WX_DECLARE_LIST_X(elementtype, listname, class WXDLLEXPORT)
+ WX_DECLARE_LIST_WITH_DECL(elementtype, listname, class WXDLLEXPORT)
#define WX_DECLARE_EXPORTED_LIST_PTR(elementtype, listname) \
WX_DECLARE_EXPORTED_LIST(elementtype, listname)
#define WX_DECLARE_USER_EXPORTED_LIST(elementtype, listname, usergoo) \
- WX_DECLARE_LIST_X(elementtype, listname, class usergoo)
+ WX_DECLARE_LIST_WITH_DECL(elementtype, listname, class usergoo)
#define WX_DECLARE_USER_EXPORTED_LIST_PTR(elementtype, listname, usergoo) \
WX_DECLARE_USER_EXPORTED_LIST(elementtype, listname, usergoo)
{ wxNodeBase::SetData(data); } \
\
virtual void DeleteData(); \
+ \
+ DECLARE_NO_COPY_CLASS(nodetype) \
}; \
\
classexp name : public wxListBase \
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)
{
public:
#if defined(wxWARN_COMPAT_LIST_USE) && !wxUSE_STL
- wxDEPRECATED( wxList(int key_type = wxKEY_NONE) );
+ wxList() { };
+ wxDEPRECATED( wxList(int key_type) );
#elif !wxUSE_STL
wxList(int key_type = wxKEY_NONE);
#endif
// ctors and such
// default
#ifdef wxWARN_COMPAT_LIST_USE
- wxDEPRECATED( wxStringList() );
+ wxStringList();
wxDEPRECATED( wxStringList(const wxChar *first ...) );
#else
wxStringList();