]> git.saurik.com Git - wxWidgets.git/blobdiff - include/wx/list.h
create the DIBs in correct (and not down up) line order
[wxWidgets.git] / include / wx / list.h
index 79a809ed59f31a7a79d32ca048e90a08c29327dd..42fd54b6ad1c0c1071a9fe2cb102c9283708471c 100644 (file)
@@ -6,7 +6,7 @@
 // Created:     29/01/98
 // RCS-ID:      $Id$
 // Copyright:   (c) 1998 Julian Smart
-// Licence:     wxWindows license
+// Licence:     wxWindows licence
 /////////////////////////////////////////////////////////////////////////////
 
 /*
@@ -25,7 +25,7 @@
 #ifndef _WX_LISTH__
 #define _WX_LISTH__
 
-#ifdef __GNUG__
+#if defined(__GNUG__) && !defined(__APPLE__)
 #pragma interface "list.h"
 #endif
 
@@ -155,10 +155,10 @@ public:
     void SetKeyInteger(long i) { m_key.integer = i; }
 
 #ifdef wxLIST_COMPATIBILITY
-    // compatibility methods
-    wxNode *Next() const { return (wxNode *)GetNext(); }
-    wxNode *Previous() const { return (wxNode *)GetPrevious(); }
-    wxObject *Data() const { return (wxObject *)GetData(); }
+    // compatibility methods, use Get* instead.
+    wxDEPRECATED( wxNode *Next() const );
+    wxDEPRECATED( wxNode *Previous() const );
+    wxDEPRECATED( wxObject *Data() const );
 #endif // wxLIST_COMPATIBILITY
 
 protected:
@@ -191,9 +191,11 @@ private:
 // a double-linked list class
 // -----------------------------------------------------------------------------
 
+class wxList;
+
 class WXDLLEXPORT wxListBase : public wxObject
 {
-friend class wxNodeBase;        // should be able to call DetachNode()
+friend class WXDLLEXPORT wxNodeBase; // should be able to call DetachNode()
 friend class wxHashTableBase;   // should be able to call untyped Find()
 private:
         // common part of all ctors
@@ -208,6 +210,9 @@ public:
         // count of items in the list
     size_t GetCount() const { return m_count; }
 
+        // return TRUE if this list is empty
+    bool IsEmpty() const { return m_count == 0; }
+
     // operations
 
         // delete all nodes
@@ -229,10 +234,14 @@ public:
         { wxASSERT( m_count==0 ); m_keyType = keyType; }
 
 #ifdef wxLIST_COMPATIBILITY
-    int Number() const { return GetCount(); }
-    wxNode *First() const { return (wxNode *)GetFirst(); }
-    wxNode *Last() const { return (wxNode *)GetLast(); }
-    wxNode *Nth(size_t index) const { return (wxNode *)Item(index); }
+    // compatibility methods from old wxList
+    wxDEPRECATED( int Number() const );             // use GetCount instead.
+    wxDEPRECATED( wxNode *First() const );          // use GetFirst
+    wxDEPRECATED( wxNode *Last() const );           // use GetLast
+    wxDEPRECATED( wxNode *Nth(size_t n) const );    // use Item
+
+    // kludge for typesafe list migration in core classes.
+    wxDEPRECATED( operator wxList&() const );
 #endif // wxLIST_COMPATIBILITY
 
 protected:
@@ -271,8 +280,12 @@ protected:
     wxNodeBase *Item(size_t index) const;
 
         // get the list item's data
-    void *operator[](size_t index) const
-        { wxNodeBase *node = Item(index); return node ? node->GetData() : (wxNodeBase*)NULL; }
+    void *operator[](size_t n) const
+    {
+        wxNodeBase *node = Item(n);
+
+        return node ? node->GetData() : (wxNodeBase *)NULL;
+    }
 
     // operations
         // append to end of list
@@ -495,6 +508,9 @@ private:
 
 #ifdef wxLIST_COMPATIBILITY
 
+// define this to make a lot of noise about use of the old wxList classes.
+//#define wxWARN_COMPAT_LIST_USE
+
 // -----------------------------------------------------------------------------
 // wxList compatibility class: in fact, it's a list of wxObjects
 // -----------------------------------------------------------------------------
@@ -504,7 +520,12 @@ WX_DECLARE_LIST_2(wxObject, wxObjectList, wxObjectListNode, class WXDLLEXPORT);
 class WXDLLEXPORT wxList : public wxObjectList
 {
 public:
-    wxList(int key_type = wxKEY_NONE) : wxObjectList((wxKeyType)key_type) { }
+#ifdef wxWARN_COMPAT_LIST_USE
+    wxDEPRECATED( wxList(int key_type = wxKEY_NONE) );
+#else
+    wxList(int key_type = wxKEY_NONE);
+#endif
+
     // this destructor is required for Darwin
    ~wxList() { }
 
@@ -531,8 +552,13 @@ class WXDLLEXPORT wxStringList : public wxStringListBase
 public:
     // ctors and such
         // default
-    wxStringList() { DeleteContents(TRUE); }
+#ifdef wxWARN_COMPAT_LIST_USE
+    wxDEPRECATED( wxStringList() );
+    wxDEPRECATED( wxStringList(const wxChar *first ...) );
+#else
+    wxStringList();
     wxStringList(const wxChar *first ...);
+#endif
 
         // copying the string list: the strings are copied, too (extremely
         // inefficient!)