X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/0b9ab0bd824b6b9c93849928d67de1ec71e7c167..e5ee4c908b9dbcf07f0441aa74d8635b7343be4d:/include/wx/list.h diff --git a/include/wx/list.h b/include/wx/list.h index 00d6126db2..791870083d 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); @@ -128,6 +131,8 @@ private: WXDLLEXPORT_DATA(extern wxListKey) wxDefaultListKey; +class WXDLLEXPORT wxListBase; + class WXDLLEXPORT wxNodeBase { friend class wxListBase; @@ -183,6 +188,7 @@ private: // ----------------------------------------------------------------------------- // a double-linked list class // ----------------------------------------------------------------------------- + class WXDLLEXPORT wxListBase : public wxObject { friend class wxNodeBase; // should be able to call DetachNode() @@ -440,7 +446,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) \ { \ @@ -493,9 +499,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); } @@ -504,6 +509,9 @@ public: void Sort(wxSortCompareFunction compfunc) { wxListBase::Sort(compfunc); } wxNode *Member(wxObject *object) const { return (wxNode *)Find(object); } + +private: + DECLARE_DYNAMIC_CLASS(wxList) }; // ----------------------------------------------------------------------------- @@ -541,6 +549,8 @@ public: private: void DoCopy(const wxStringList&); // common part of copy ctor and operator= + + DECLARE_DYNAMIC_CLASS(wxStringList) }; #endif // wxLIST_COMPATIBILITY