X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/f03fc89fff2d6e823e7d4d14fbe14822ad6777b1..3f8e5072f7391db2158f44c6b9209bbb3db6eb06:/include/wx/list.h diff --git a/include/wx/list.h b/include/wx/list.h index 01eddf8190..f42942f442 100644 --- a/include/wx/list.h +++ b/include/wx/list.h @@ -65,10 +65,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 -typedef int (*wxSortCompareFunction)(const void *elem1, const void *elem2); +typedef int (* LINKAGEMODE wxSortCompareFunction)(const void *elem1, const void *elem2); // -typedef int (*wxListIterateFunction)(void *current); +typedef int (* LINKAGEMODE wxListIterateFunction)(void *current); // ----------------------------------------------------------------------------- // key stuff: a list may be optionally keyed on integer or string key @@ -186,7 +186,8 @@ private: // ----------------------------------------------------------------------------- class WXDLLEXPORT wxListBase : public wxObject { -friend class wxNodeBase; // should be able to call DetachNode() +friend class wxNodeBase; // should be able to call DetachNode() +friend class wxHashTableBase; // should be able to call untyped Find() public: // default ctor & dtor wxListBase(wxKeyType keyType = wxKEY_NONE) { Init(keyType); } @@ -267,6 +268,10 @@ protected: wxNodeBase *Append(void *object); // insert a new item at the beginning of the list wxNodeBase *Insert(void *object) { return Insert( (wxNodeBase*)NULL, object); } + // insert a new item at the given position + wxNodeBase *Insert(size_t pos, void *object) + { return pos == GetCount() ? Append(object) + : Insert(Item(pos), object); } // insert before given node or at front of list if prev == NULL wxNodeBase *Insert(wxNodeBase *prev, void *object); @@ -349,7 +354,7 @@ private: // retrieved from it. #define WX_DECLARE_LIST_3(T, Tbase, name, nodetype) \ - typedef int (*wxSortFuncFor_##name)(const T *, const T *); \ + typedef int (*wxSortFuncFor_##name)(const T **, const T **); \ \ class WXDLLEXPORT nodetype : public wxNodeBase \ { \ @@ -402,6 +407,8 @@ private: { return (nodetype *)wxListBase::Append(object); } \ nodetype *Insert(Tbase *object) \ { return (nodetype *)Insert((nodetype*)NULL, object); } \ + nodetype *Insert(size_t pos, Tbase *object) \ + { return (nodetype *)wxListBase::Insert(pos, object); } \ nodetype *Insert(nodetype *prev, Tbase *object) \ { return (nodetype *)wxListBase::Insert(prev, object); } \ \