// 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);
+}
//
typedef int (* LINKAGEMODE wxListIterateFunction)(void *current);
{ wxListBase::Sort((wxSortCompareFunction)func); } \
\
protected: \
- wxNodeBase *CreateNode(wxNodeBase *prev, wxNodeBase *next, \
+ virtual wxNodeBase *CreateNode(wxNodeBase *prev, wxNodeBase *next, \
void *data, \
const wxListKey& key = wxDefaultListKey) \
{ \
typedef elementtype _WX_LIST_ITEM_TYPE_##listname; \
WX_DECLARE_LIST_2(elementtype, listname, wx##listname##Node, class WXDLLEXPORT)
+#define WX_DECLARE_USER_EXPORTED_LIST(elementtype, listname, usergoo) \
+ typedef elementtype _WX_LIST_ITEM_TYPE_##listname; \
+ WX_DECLARE_LIST_2(elementtype, listname, wx##listname##Node, class usergoo)
+
// this macro must be inserted in your program after
// #include <wx/listimpl.cpp>
#define WX_DEFINE_LIST(name) "don't forget to include listimpl.cpp!"
+#define WX_DEFINE_EXPORTED_LIST(name) WX_DEFINE_LIST(name)
+#define WX_DEFINE_USER_EXPORTED_LIST(name) WX_DEFINE_LIST(name)
+
+
// =============================================================================
// now we can define classes 100% compatible with the old ones
// =============================================================================
{
public:
wxList(int key_type = wxKEY_NONE) : wxObjectList((wxKeyType)key_type) { }
-#ifdef __DARWIN__
+ // this destructor is required for Darwin
~wxList() { }
-#endif
wxList& operator=(const wxList& list)
{ return (wxList&)wxListBase::operator=(list); }