]> git.saurik.com Git - wxWidgets.git/blobdiff - include/wx/arrstr.h
Applied patch [ 832096 ] Final separation for GUI and console for Open Watcom
[wxWidgets.git] / include / wx / arrstr.h
index 957361363235e0d1d980918b59b8a2094049b2eb..5eed53d2cca38a7e4ea5723f8d2ec984aacd960c 100644 (file)
 #include "wx/defs.h"
 #include "wx/string.h"
 
-int WXDLLIMPEXP_BASE wxStringSortAscending(wxString*, wxString*);
-int WXDLLIMPEXP_BASE wxStringSortDescending(wxString*, wxString*);
+WXDLLIMPEXP_BASE int wxCMPFUNC_CONV wxStringSortAscending(wxString*, wxString*);
+WXDLLIMPEXP_BASE int wxCMPFUNC_CONV wxStringSortDescending(wxString*, wxString*);
 
 #if wxUSE_STL
 
 #include "wx/dynarray.h"
 
-typedef int (*CMPFUNCwxString)(wxString*, wxString*);
-WX_DECLARE_EXPORTED_BASEARRAY(wxString, wxBaseArrayStringBase);
-WX_DEFINE_EXPORTED_TYPEARRAY(wxString, wxArrayStringBase, 
-                             wxBaseArrayStringBase);
+typedef int (wxCMPFUNC_CONV *CMPFUNCwxString)(wxString*, wxString*);
+typedef wxString _wxArraywxBaseArrayStringBase;
+_WX_DECLARE_BASEARRAY_2(_wxArraywxBaseArrayStringBase, wxBaseArrayStringBase,
+                        wxArray_SortFunction<wxString>,
+                        class WXDLLIMPEXP_BASE);
+WX_DEFINE_USER_EXPORTED_TYPEARRAY(wxString, wxArrayStringBase, 
+                                  wxBaseArrayStringBase, WXDLLIMPEXP_BASE);
 _WX_DEFINE_SORTED_TYPEARRAY_2(wxString, wxSortedArrayStringBase, 
                               wxBaseArrayStringBase, = wxStringSortAscending,
                               class WXDLLIMPEXP_BASE, CMPFUNCwxString);
@@ -35,6 +38,8 @@ class WXDLLIMPEXP_BASE wxArrayString : public wxArrayStringBase
 public:
     wxArrayString() { }
     wxArrayString(const wxArrayString& a) : wxArrayStringBase(a) { }
+
+    int Index(const wxChar* sz, bool bCase = true, bool bFromEnd = false) const;
 };
 
 class WXDLLIMPEXP_BASE wxSortedArrayString : public wxSortedArrayStringBase
@@ -53,6 +58,8 @@ public:
         for ( size_t n = 0; n < src.size(); n++ )
             Add(src[n]);
     }
+
+    int Index(const wxChar* sz, bool bCase = true, bool bFromEnd = false) const;
 };
 
 #else // if !wxUSE_STL
@@ -76,11 +83,11 @@ class WXDLLIMPEXP_BASE wxArrayString
 {
 public:
   // type of function used by wxArrayString::Sort()
-  typedef int (*CompareFunction)(const wxString& first,
+  typedef int (wxCMPFUNC_CONV *CompareFunction)(const wxString& first,
                                  const wxString& second);
   // type of function used by wxArrayString::Sort(), for compatibility with
   // wxArray
-  typedef int (*CompareFunction2)(wxString* first,
+  typedef int (wxCMPFUNC_CONV *CompareFunction2)(wxString* first,
                                   wxString* second);
 
   // constructors and destructor
@@ -144,13 +151,11 @@ public:
       return Item(Count() - 1);
   }
 
-#if WXWIN_COMPATIBILITY_2_4
     // return a wxString[], useful for the controls which
     // take one in their ctor.  You must delete[] it yourself
     // once you are done with it.  Will return NULL if the
     // ArrayString was empty.
   wxString* GetStringArray() const;
-#endif
 
   // item management
     // Search the element in the array, starting from the beginning if
@@ -201,9 +206,9 @@ public:
   // FIXME: same in dynarray.h
   class reverse_iterator
   {
-    typedef wxArrayString name;
-    typedef name::reference reference;
-    typedef name::pointer pointer;
+    typedef wxString value_type;
+    typedef value_type* pointer;
+    typedef value_type& reference;
     typedef reverse_iterator itor;
     friend itor operator+(int o, const itor& it);
     friend itor operator+(const itor& it, int o);
@@ -227,9 +232,9 @@ public:
 
   class const_reverse_iterator
   {
-    typedef wxArrayString name;
-    typedef name::const_reference reference;
-    typedef name::const_pointer pointer;
+    typedef wxString value_type;
+    typedef const value_type* pointer;
+    typedef const value_type& reference;
     typedef const_reverse_iterator itor;
     friend itor operator+(int o, const itor& it);
     friend itor operator+(const itor& it, int o);