X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/6788ecb8a99b15c454c345fb0dac9cd11a84cd6e..84dd58ce98d52362fabd7f83b1213cce95c5f87a:/include/wx/list.h diff --git a/include/wx/list.h b/include/wx/list.h index dd64fc5071..cfccbf371d 100644 --- a/include/wx/list.h +++ b/include/wx/list.h @@ -64,7 +64,10 @@ enum wxKeyType // 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); @@ -440,7 +443,7 @@ private: { wxListBase::Sort((wxSortCompareFunction)func); } \ \ protected: \ - wxNodeBase *CreateNode(wxNodeBase *prev, wxNodeBase *next, \ + virtual wxNodeBase *CreateNode(wxNodeBase *prev, wxNodeBase *next, \ void *data, \ const wxListKey& key = wxDefaultListKey) \ { \ @@ -461,10 +464,18 @@ private: 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 #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 // ============================================================================= @@ -485,9 +496,8 @@ class WXDLLEXPORT wxList : public wxObjectList { 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); }