// wxNodeBase class is a (base for) node in a double linked list
// -----------------------------------------------------------------------------
+WXDLLEXPORT_DATA(extern wxListKey) wxDefaultListKey;
+
class WXDLLEXPORT wxNodeBase
{
friend class wxListBase;
wxNodeBase *previous = (wxNodeBase *)NULL,
wxNodeBase *next = (wxNodeBase *)NULL,
void *data = NULL,
- const wxListKey& key = wxListKey());
+ const wxListKey& key = wxDefaultListKey);
virtual ~wxNodeBase();
void *GetData() const { return m_data; }
void SetData(void *data) { m_data = data; }
- // get 0-based index of this node within the list or NOT_FOUND
+ // get 0-based index of this node within the list or wxNOT_FOUND
int IndexOf() const;
virtual void DeleteData() { }
// create a node for the list of this type
virtual wxNodeBase *CreateNode(wxNodeBase *prev, wxNodeBase *next,
void *data,
- const wxListKey& key = wxListKey()) = 0;
+ const wxListKey& key = wxDefaultListKey) = 0;
// ctors
// from an array
// by key
wxNodeBase *Find(const wxListKey& key) const;
- // get 0-based index of object or NOT_FOUND
+ // get 0-based index of object or wxNOT_FOUND
int IndexOf( void *object ) const;
// this function allows the sorting of arbitrary lists by giving
nodetype *previous = (nodetype *)NULL, \
nodetype *next = (nodetype *)NULL, \
T *data = (T *)NULL, \
- const wxListKey& key = wxListKey()) \
+ const wxListKey& key = wxDefaultListKey) \
: wxNodeBase(list, previous, next, data, key) { } \
\
nodetype *GetNext() const \
class WXDLLEXPORT name : public wxListBase \
{ \
public: \
+ typedef nodetype Node; \
+ \
name(wxKeyType keyType = wxKEY_NONE) : wxListBase(keyType) \
{ } \
name(size_t count, T *elements[]) \
protected: \
wxNodeBase *CreateNode(wxNodeBase *prev, wxNodeBase *next, \
void *data, \
- const wxListKey& key = wxListKey()) \
+ const wxListKey& key = wxDefaultListKey) \
{ \
return new nodetype(this, \
(nodetype *)prev, (nodetype *)next, \