X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/799ea01170e831c212320b0cb3038a91785e4789..19e30148e18cc99296b26503c155e5cef59045f4:/include/wx/list.h diff --git a/include/wx/list.h b/include/wx/list.h index 477e4fc48d..d2c4bf87fc 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() @@ -267,6 +273,9 @@ protected: // operations // append to end of list + wxNodeBase *Prepend(void *object) + { return (wxNodeBase *)wxListBase::Insert(object); } + // append to beginning of list wxNodeBase *Append(void *object); // insert a new item at the beginning of the list wxNodeBase *Insert(void *object) { return Insert( (wxNodeBase*)NULL, object); } @@ -503,6 +512,9 @@ public: void Sort(wxSortCompareFunction compfunc) { wxListBase::Sort(compfunc); } wxNode *Member(wxObject *object) const { return (wxNode *)Find(object); } + +private: + DECLARE_DYNAMIC_CLASS(wxList) }; // ----------------------------------------------------------------------------- @@ -529,6 +541,10 @@ public: // makes a copy of the string wxNode *Add(const wxChar *s) { return (wxNode *)wxStringListBase::Append(copystring(s)); } + + // Append to beginning of list + wxNode *Prepend(const wxChar *s) + { return (wxNode *)wxStringListBase::Insert(copystring(s)); } bool Delete(const wxChar *s); @@ -540,6 +556,8 @@ public: private: void DoCopy(const wxStringList&); // common part of copy ctor and operator= + + DECLARE_DYNAMIC_CLASS(wxStringList) }; #endif // wxLIST_COMPATIBILITY