]> git.saurik.com Git - wxWidgets.git/commitdiff
1. NOT_FOUND -> wxNOT_FOUND
authorVadim Zeitlin <vadim@wxwidgets.org>
Thu, 14 Jan 1999 14:33:56 +0000 (14:33 +0000)
committerVadim Zeitlin <vadim@wxwidgets.org>
Thu, 14 Jan 1999 14:33:56 +0000 (14:33 +0000)
2. wxString::Left(), Right(), Before(), After() clean up
3. wxLocale updates

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@1406 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775

19 files changed:
include/wx/arrimpl.cpp
include/wx/defs.h
include/wx/dynarray.h
include/wx/fileconf.h
include/wx/filefn.h
include/wx/list.h
include/wx/msw/menu.h
include/wx/string.h
src/common/dynarray.cpp
src/common/fileconf.cpp
src/common/intl.cpp
src/common/list.cpp
src/common/mimetype.cpp
src/common/string.cpp
src/generic/treectrl.cpp
src/msw/iniconf.cpp
utils/wxMMedia/mmsolve.cpp
utils/wxPython/src/gtk/wx.cpp
utils/wxPython/src/msw/wx.cpp

index e52d81def300c47f7e1224c188c11082f14f0061..5131c7ac443f7b6916580b1699e54002e71e54a8 100644 (file)
@@ -99,7 +99,7 @@ int name::Index(const T& Item, bool bFromEnd) const                           \
     }                                                                         \
   }                                                                           \
                                                                               \
-  return NOT_FOUND;                                                           \
+  return wxNOT_FOUND;                                                           \
 }                                                                             
 
 // redefine the macro so that now it will generate the class implementation
index 06bf4df3f3c87e4a28900089b38c5f49d1c06804..41839c1cdcce4d3d7665c0dc04ab2db26d6a6797 100644 (file)
@@ -195,7 +195,7 @@ class WXDLLEXPORT wxEvent;
 
  /** symbolic constant used by all Find()-like functions returning positive
       integer on success as failure indicator */
-#define NOT_FOUND       (-1)
+#define wxNOT_FOUND       (-1)
 
 // ----------------------------------------------------------------------------
 // Error codes
index d1a4f020a6f642831c69d027a9ac6911ea61d705..ff8c4e735622f2c32afb9b11c3d626bda4d57550 100644 (file)
@@ -123,8 +123,8 @@ protected:
     /**
       Search the element in the array, starting from the either side
       @param bFromEnd if TRUE, start from the end
-      @return index of the first item matched or NOT_FOUND
-      @see NOT_FOUND
+      @return index of the first item matched or wxNOT_FOUND
+      @see wxNOT_FOUND
      */
   int Index(long lItem, bool bFromEnd = FALSE) const;
     /// search for an item using binary search in a sorted array
@@ -193,7 +193,7 @@ public:                                                             \
   void Remove(size_t uiIndex) { wxBaseArray::Remove(uiIndex); }     \
   void Remove(T Item)                                               \
     { int iIndex = Index(Item);                                     \
-      wxCHECK2_MSG( iIndex != NOT_FOUND, return,                    \
+      wxCHECK2_MSG( iIndex != wxNOT_FOUND, return,                    \
         "removing inexisting element in wxArray::Remove" );         \
       wxBaseArray::Remove((size_t)iIndex); }                          \
                                                                     \
@@ -246,7 +246,7 @@ public:                                                             \
   void Remove(size_t uiIndex) { wxBaseArray::Remove(uiIndex); }     \
   void Remove(T Item)                                               \
     { int iIndex = Index(Item);                                     \
-      wxCHECK2_MSG( iIndex != NOT_FOUND, return,                    \
+      wxCHECK2_MSG( iIndex != wxNOT_FOUND, return,                    \
         "removing inexisting element in wxArray::Remove" );         \
       wxBaseArray::Remove((size_t)iIndex); }                        \
                                                                     \
index e9d45d9e1106b7d451e433cd94db6af01590f7a5..7788a31565080aaa8028cf2557c1e63016ae97db 100644 (file)
@@ -327,7 +327,7 @@ public:
 
     // create new entry/subgroup returning pointer to newly created element
     ConfigGroup *AddSubgroup(const wxString& strName);
-    ConfigEntry *AddEntry   (const wxString& strName, int nLine = NOT_FOUND);
+    ConfigEntry *AddEntry   (const wxString& strName, int nLine = wxNOT_FOUND);
 
     // will also recursively set parent's dirty flag
     void SetDirty();
index ba6b8c7f24090a544e9ac3f56c15af9051363ebc..ae1bf310325e9217694f99e5b1df117331291b10 100644 (file)
@@ -103,8 +103,9 @@ WXDLLEXPORT char* wxExpandPath(char *dest, const char *path);
 // Contract w.r.t environment (</usr/openwin/lib, OPENWHOME> -> ${OPENWINHOME}/lib)
 // and make (if under the home tree) relative to home
 // [caller must copy-- volatile]
-WXDLLEXPORT char* wxContractPath (const wxString& filename,
-   const wxString& envname = wxEmptyString, const wxString& user = wxEmptyString);
+WXDLLEXPORT char* wxContractPath(const wxString& filename,
+                                 const wxString& envname = "",
+                                 const wxString& user = "");
 
 // Destructive removal of /./ and /../ stuff
 WXDLLEXPORT char* wxRealPath(char *path);
index aa901935409924e497561c3c61bd85792bbacf38..9d49ed547cba0e57d68894ede5e77207c091b985 100644 (file)
@@ -165,7 +165,7 @@ protected:
     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() { }
@@ -276,7 +276,7 @@ protected:
         // 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
index a7ede6fe162cd1d48c4a14c6d9ddfe226437b169..6ca343d1afef8dab7996889cc05cc8fe5eaa9acf 100644 (file)
@@ -78,7 +78,7 @@ public:
   virtual wxString GetHelpString(int id) const ;
 
   // find item
-    // Finds the item id matching the given string, NOT_FOUND if not found.
+    // Finds the item id matching the given string, wxNOT_FOUND if not found.
   virtual int FindItem(const wxString& itemString) const ;
     // Find wxMenuItem by ID, and item's menu too if itemMenu is !NULL.
   wxMenuItem *FindItemForId(int itemId, wxMenu **itemMenu = NULL) const;
index 81c856c9e3ed252dea12945e5afa012512330a23..e88f2e992b91893b01c8f2dca04ba55b23e96bcd 100644 (file)
@@ -1,13 +1,13 @@
-/////////////////////////////////////////////////////////////////////////////
+///////////////////////////////////////////////////////////////////////////////
 // Name:        string.h
-// Purpose:     wxString class
+// Purpose:     wxString and wxArrayString classes
 // Author:      Vadim Zeitlin
 // Modified by:
 // Created:     29/01/98
 // RCS-ID:      $Id$
 // Copyright:   (c) 1998 Vadim Zeitlin <zeitlin@dptmaths.ens-cachan.fr>
 // Licence:     wxWindows license
-/////////////////////////////////////////////////////////////////////////////
+///////////////////////////////////////////////////////////////////////////////
 
 #ifndef _WX_WXSTRINGH__
 #define _WX_WXSTRINGH__
 
 #include "wx/debug.h"
 
-/** @name wxString library
-    @memo Efficient wxString class [more or less] compatible with MFC CString,
-          wxWindows wxString and std::string and some handy functions
-          missing from string.h.
-  */
-//@{
+/*
+    Efficient string class [more or less] compatible with MFC CString,
+    wxWindows version 1 wxString and std::string and some handy functions
+    missing from string.h.
+*/
 
 // ---------------------------------------------------------------------------
 // macros
 // ---------------------------------------------------------------------------
 
-/** @name Macros
-    @memo You can switch off wxString/std::string compatibility if desired
- */
-/// compile the std::string compatibility functions
-#define   STD_STRING_COMPATIBILITY
+// compile the std::string compatibility functions if defined
+#define   wxSTD_STRING_COMPATIBILITY
 
-/// define to derive wxString from wxObject
+// define to derive wxString from wxObject
 #undef    WXSTRING_IS_WXOBJECT
 
-/// maximum possible length for a string means "take all string" everywhere
+// maximum possible length for a string means "take all string" everywhere
 //  (as sizeof(StringData) is unknown here we substract 100)
 #define   STRING_MAXLEN     (UINT_MAX - 100)
 
 // 'naughty' cast
 #define   WXSTRINGCAST (char *)(const char *)
 
-// NB: works only inside wxString class
+// implementation only
 #define   ASSERT_VALID_INDEX(i) wxASSERT( (unsigned)(i) < Len() )
 
 // ---------------------------------------------------------------------------
-/** @name Global functions complementing standard C string library
-    @memo replacements for strlen() and portable strcasecmp()
- */
-// ---------------------------------------------------------------------------
-
-WXDLLEXPORT_DATA(extern const char*) wxEmptyString;
+// Global functions complementing standard C string library replacements for
+// strlen() and portable strcasecmp()
+//---------------------------------------------------------------------------
 
-/// checks whether the passed in pointer is NULL and if the string is empty
+// checks whether the passed in pointer is NULL and if the string is empty
 inline bool WXDLLEXPORT IsEmpty(const char *p) { return !p || !*p; }
 
-/// safe version of strlen() (returns 0 if passed NULL pointer)
-inline size_t  WXDLLEXPORT Strlen(const char *psz)
+// safe version of strlen() (returns 0 if passed NULL pointer)
+inline size_t WXDLLEXPORT Strlen(const char *psz)
   { return psz ? strlen(psz) : 0; }
 
-/// portable strcasecmp/_stricmp
+// portable strcasecmp/_stricmp
 inline int WXDLLEXPORT Stricmp(const char *psz1, const char *psz2)
 {
 #if     defined(_MSC_VER)
@@ -128,6 +121,8 @@ inline int WXDLLEXPORT Stricmp(const char *psz1, const char *psz2)
 // global data
 // ----------------------------------------------------------------------------
 
+WXDLLEXPORT_DATA(extern const char*) wxEmptyString;
+
 // global pointer to empty string
 WXDLLEXPORT_DATA(extern const char*) g_szNul;
 
@@ -163,46 +158,42 @@ struct WXDLLEXPORT wxStringData
 };
 
 // ---------------------------------------------------------------------------
-/**
-    This is (yet another one) String class for C++ programmers. It doesn't use
-    any of "advanced" C++ features (i.e. templates, exceptions, namespaces...)
-    thus you should be able to compile it with practicaly any C++ compiler.
-    This class uses copy-on-write technique, i.e. identical strings share the
-    same memory as long as neither of them is changed.
-
-    This class aims to be as compatible as possible with the new standard
-    std::string class, but adds some additional functions and should be
-    at least as efficient than the standard implementation.
-
-    Performance note: it's more efficient to write functions which take
-    "const String&" arguments than "const char *" if you assign the argument
-    to another string.
-
-    It was compiled and tested under Win32, Linux (libc 5 & 6), Solaris 5.5.
-
-    To do:
-      - ressource support (string tables in ressources)
-      - more wide character (UNICODE) support
-      - regular expressions support
-
-@memo     A non-template portable wxString class implementing copy-on-write.
-@author   VZ
-@version  1.3
-*/
+// This is (yet another one) String class for C++ programmers. It doesn't use
+// any of "advanced" C++ features (i.e. templates, exceptions, namespaces...)
+// thus you should be able to compile it with practicaly any C++ compiler.
+// This class uses copy-on-write technique, i.e. identical strings share the
+// same memory as long as neither of them is changed.
+//
+// This class aims to be as compatible as possible with the new standard
+// std::string class, but adds some additional functions and should be at
+// least as efficient than the standard implementation.
+//
+// Performance note: it's more efficient to write functions which take "const
+// String&" arguments than "const char *" if you assign the argument to
+// another string.
+//
+// It was compiled and tested under Win32, Linux (libc 5 & 6), Solaris 5.5.
+//
+// To do:
+//  - ressource support (string tables in ressources)
+//  - more wide character (UNICODE) support
+//  - regular expressions support
 // ---------------------------------------------------------------------------
+
 #ifdef  WXSTRING_IS_WXOBJECT
-  class WXDLLEXPORT wxString : public wxObject
-  {
+class WXDLLEXPORT wxString : public wxObject
+{
     DECLARE_DYNAMIC_CLASS(wxString)
 #else   //WXSTRING_IS_WXOBJECT
-  class WXDLLEXPORT wxString
-  {
+class WXDLLEXPORT wxString
+{
 #endif  //WXSTRING_IS_WXOBJECT
 
 friend class WXDLLEXPORT wxArrayString;
 
-  // NB: special care was taken in arrangin the member functions in such order
-  //     that all inline functions can be effectively inlined
+  // NB: special care was taken in arranging the member functions in such order
+  //     that all inline functions can be effectively inlined, verify that all
+  //     performace critical functions are still inlined if you change order!
 private:
   // points to data preceded by wxStringData structure with ref count info
   char *m_pchData;
@@ -236,11 +227,10 @@ private:
   void AllocBeforeWrite(size_t);
 
 public:
-  /** @name constructors & dtor */
-  //@{
-    /// ctor for an empty string
+  // constructors and destructor
+    // ctor for an empty string
   wxString() { Init(); }
-    /// copy ctor
+    // copy ctor
   wxString(const wxString& stringSrc)
   {
     wxASSERT( stringSrc.GetStringData()->IsValid() );
@@ -254,27 +244,25 @@ public:
       GetStringData()->Lock();                    // => one more copy
     }
   }
-    /// string containing nRepeat copies of ch
+    // string containing nRepeat copies of ch
   wxString(char ch, size_t nRepeat = 1);
-    /// ctor takes first nLength characters from C string
+    // ctor takes first nLength characters from C string
     // (default value of STRING_MAXLEN means take all the string)
   wxString(const char *psz, size_t nLength = STRING_MAXLEN)
     { InitWith(psz, 0, nLength); }
-    /// from C string (for compilers using unsigned char)
+    // from C string (for compilers using unsigned char)
   wxString(const unsigned char* psz, size_t nLength = STRING_MAXLEN);
-    /// from wide (UNICODE) string
+    // from wide (UNICODE) string
   wxString(const wchar_t *pwz);
-    /// dtor is not virtual, this class must not be inherited from!
+    // dtor is not virtual, this class must not be inherited from!
  ~wxString() { GetStringData()->Unlock(); }
-  //@}
 
-  /** @name generic attributes & operations */
-  //@{
-    /// as standard strlen()
+  // generic attributes & operations
+    // as standard strlen()
   size_t Len() const { return GetStringData()->nDataLength; }
-    /// string contains any characters?
+    // string contains any characters?
   bool IsEmpty() const { return Len() == 0; }
-    /// empty string contents
+    // empty string contents
   void Empty()
   {
     if ( !IsEmpty() )
@@ -283,7 +271,7 @@ public:
     // should be empty
     wxASSERT( GetStringData()->nDataLength == 0 );
   }
-    /// empty the string and free memory
+    // empty the string and free memory
   void Clear()
   {
     if ( !GetStringData()->IsEmpty() )
@@ -293,78 +281,74 @@ public:
     wxASSERT( GetStringData()->nAllocLength == 0 ); // and not own any memory
   }
 
-    /// Is an ascii value
+  // contents test
+    // Is an ascii value
   bool IsAscii() const;
-    /// Is a number
+    // Is a number
   bool IsNumber() const;
-    /// Is a word
+    // Is a word
   bool IsWord() const;
-  //@}
 
-  /** @name data access (all indexes are 0 based) */
-  //@{
-    /// read access
+  // data access (all indexes are 0 based)
+    // read access
     char  GetChar(size_t n) const
       { ASSERT_VALID_INDEX( n );  return m_pchData[n]; }
-    /// read/write access
+    // read/write access
     char& GetWritableChar(size_t n)
       { ASSERT_VALID_INDEX( n ); CopyBeforeWrite(); return m_pchData[n]; }
-    /// write access
+    // write access
     void  SetChar(size_t n, char ch)
       { ASSERT_VALID_INDEX( n ); CopyBeforeWrite(); m_pchData[n] = ch; }
 
-    /// get last character
+    // get last character
     char  Last() const
       { wxASSERT( !IsEmpty() ); return m_pchData[Len() - 1]; }
-    /// get writable last character
+    // get writable last character
     char& Last()
       { wxASSERT( !IsEmpty() ); CopyBeforeWrite(); return m_pchData[Len()-1]; }
 
     // on alpha-linux this gives overload problems:
     // Also on Solaris, so removing for now (JACS)
 #if ! defined(__ALPHA__)
-    /// operator version of GetChar
+    // operator version of GetChar
     char  operator[](size_t n) const
       { ASSERT_VALID_INDEX( n ); return m_pchData[n]; }
 #endif
 
-    /// operator version of GetChar
+    // operator version of GetChar
     char  operator[](int n) const
       { ASSERT_VALID_INDEX( n ); return m_pchData[n]; }
-    /// operator version of GetWritableChar
+    // operator version of GetWritableChar
     char& operator[](size_t n)
       { ASSERT_VALID_INDEX( n ); CopyBeforeWrite(); return m_pchData[n]; }
 
-    /// implicit conversion to C string
+    // implicit conversion to C string
     operator const char*() const { return m_pchData; }
-    /// explicit conversion to C string (use this with printf()!)
+    // explicit conversion to C string (use this with printf()!)
     const char* c_str()   const { return m_pchData; }
-    ///
+    //
     const char* GetData() const { return m_pchData; }
-  //@}
 
-  /** @name overloaded assignment */
-  //@{
-    ///
+  // overloaded assignment
+    // from another wxString
   wxString& operator=(const wxString& stringSrc);
-    ///
+    // from a character
   wxString& operator=(char ch);
-    ///
+    // from a C string
   wxString& operator=(const char *psz);
-    ///
+    // from another kind of C string
   wxString& operator=(const unsigned char* psz);
-    ///
+    // from a wide string
   wxString& operator=(const wchar_t *pwz);
-  //@}
-
-  /** @name string concatenation */
-  //@{
-    /** @name in place concatenation */
-    /** @name concatenate and return the result
-        left to right associativity of << allows to write
-        things like "str << str1 << str2 << ..."          */
-    //@{
-      /// as +=
+
+  // string concatenation
+    // in place concatenation
+    /*
+        Concatenate and return the result. Note that the left to right
+        associativity of << allows to write things like "str << str1 << str2
+        << ..." (unlike with +=)
+     */
+      // string += string
   wxString& operator<<(const wxString& s)
   {
     wxASSERT( s.GetStringData()->IsValid() );
@@ -372,172 +356,147 @@ public:
     ConcatSelf(s.Len(), s);
     return *this;
   }
-      /// as +=
+      // string += C string
   wxString& operator<<(const char *psz)
     { ConcatSelf(Strlen(psz), psz); return *this; }
-      /// as +=
+      // string += char
   wxString& operator<<(char ch) { ConcatSelf(1, &ch); return *this; }
-    //@}
 
-    //@{
-      /// string += string
+      // string += string
   void operator+=(const wxString& s) { (void)operator<<(s); }
-      /// string += C string
+      // string += C string
   void operator+=(const char *psz) { (void)operator<<(psz); }
-      /// string += char
+      // string += char
   void operator+=(char ch) { (void)operator<<(ch); }
-    //@}
 
-    /** @name return resulting string */
-    //@{
-      ///
+    // string += C string
+  wxString& Append(const char* psz)
+    { ConcatSelf(Strlen(psz), psz); return *this; }
+    // append count copies of given character
+  wxString& Append(char ch, size_t count = 1u)
+    { wxString str(ch, count); return *this << str; }
+
+    // prepend a string, return the string itself
+  wxString& Prepend(const wxString& str)
+    { *this = str + *this; return *this; }
+
+    // non-destructive concatenation
+      //
   friend wxString WXDLLEXPORT operator+(const wxString& string1,  const wxString& string2);
-      ///
+      //
   friend wxString WXDLLEXPORT operator+(const wxString& string, char ch);
-      ///
+      //
   friend wxString WXDLLEXPORT operator+(char ch, const wxString& string);
-      ///
+      //
   friend wxString WXDLLEXPORT operator+(const wxString& string, const char *psz);
-      ///
+      //
   friend wxString WXDLLEXPORT operator+(const char *psz, const wxString& string);
-    //@}
-  //@}
-
-  /** @name stream-like functions */
-  //@{
-        /// insert an int into string
-    wxString& operator<<(int i);
-        /// insert a float into string
-    wxString& operator<<(float f);
-        /// insert a double into string
-    wxString& operator<<(double d);
-  //@}
+
+  // stream-like functions
+      // insert an int into string
+  wxString& operator<<(int i);
+      // insert a float into string
+  wxString& operator<<(float f);
+      // insert a double into string
+  wxString& operator<<(double d);
   
-  /** @name string comparison */
-  //@{
-    /**
-    case-sensitive comparison
-    @return 0 if equal, +1 if greater or -1 if less
-    @see CmpNoCase, IsSameAs
-    */
+  // string comparison
+    // case-sensitive comparison: return 0 if =, +1 if > or -1 if <
   int  Cmp(const char *psz) const { return strcmp(c_str(), psz); }
-    /**
-    case-insensitive comparison, return code as for wxString::Cmp()
-    @see: Cmp, IsSameAs
-    */
+    // same as Cmp() but not case-sensitive
   int  CmpNoCase(const char *psz) const { return Stricmp(c_str(), psz); }
-    /**
-    test for string equality, case-sensitive (default) or not
-    @param   bCase is TRUE by default (case matters)
-    @return  TRUE if strings are equal, FALSE otherwise
-    @see     Cmp, CmpNoCase
-    */
-  bool IsSameAs(const char *psz, bool bCase = TRUE) const
-    { return !(bCase ? Cmp(psz) : CmpNoCase(psz)); }
-  //@}
-
-  /** @name other standard string operations */
-  //@{
-    /** @name simple sub-string extraction
-     */
-    //@{
-      /**
-      return substring starting at nFirst of length
-      nCount (or till the end if nCount = default value)
-      */
+    // test for the string equality, either considering case or not
+    // (if compareWithCase then the case matters)
+  bool IsSameAs(const char *psz, bool compareWithCase = TRUE) const
+    { return (compareWithCase ? Cmp(psz) : CmpNoCase(psz)) == 0; }
+
+  // simple sub-string extraction
+      // return substring starting at nFirst of length nCount (or till the end
+      // if nCount = default value)
   wxString Mid(size_t nFirst, size_t nCount = STRING_MAXLEN) const;
-      /// Compatibility with wxWindows 1.xx
-  wxString SubString(size_t from, size_t to) const
-  {
-      return Mid(from, (to - from + 1));
-  }
-      /// get first nCount characters
+
+    // operator version of Mid()
+  wxString  operator()(size_t start, size_t len) const
+    { return Mid(start, len); }
+
+      // get first nCount characters
   wxString Left(size_t nCount) const;
-      /// get all characters before the first occurence of ch
-      /// (returns the whole string if ch not found)
-  wxString Left(char ch) const;
-      /// get all characters before the last occurence of ch
-      /// (returns empty string if ch not found)
-  wxString Before(char ch) const;
-      /// get all characters after the first occurence of ch
-      /// (returns empty string if ch not found)
-  wxString After(char ch) const;
-      /// get last nCount characters
+      // get last nCount characters
   wxString Right(size_t nCount) const;
-      /// get all characters after the last occurence of ch
-      /// (returns the whole string if ch not found)
-  wxString Right(char ch) const;
-    //@}
-
-    /** @name case conversion */
-    //@{
-      ///
+      // get all characters before the first occurence of ch
+      // (returns the whole string if ch not found)
+  wxString BeforeFirst(char ch) const;
+      // get all characters before the last occurence of ch
+      // (returns empty string if ch not found)
+  wxString BeforeLast(char ch) const;
+      // get all characters after the first occurence of ch
+      // (returns empty string if ch not found)
+  wxString AfterFirst(char ch) const;
+      // get all characters after the last occurence of ch
+      // (returns the whole string if ch not found)
+  wxString AfterLast(char ch) const;
+
+    // for compatibility only, use more explicitly named functions above
+  wxString Before(char ch) const { return BeforeLast(ch); } 
+  wxString After(char ch) const { return AfterFirst(ch); } 
+
+  // case conversion
+      // convert to upper case, return the string itself
   wxString& MakeUpper();
-      ///
+      // convert to lower case, return the string itself
   wxString& MakeLower();
-    //@}
 
-    /** @name trimming/padding whitespace (either side) and truncating */
-    //@{
-      /// remove spaces from left or from right (default) side
+  // trimming/padding whitespace (either side) and truncating
+      // remove spaces from left or from right (default) side
   wxString& Trim(bool bFromRight = TRUE);
-      /// add nCount copies chPad in the beginning or at the end (default)
+      // add nCount copies chPad in the beginning or at the end (default)
   wxString& Pad(size_t nCount, char chPad = ' ', bool bFromRight = TRUE);
-      /// truncate string to given length
+      // truncate string to given length
   wxString& Truncate(size_t uiLen);
-    //@}
 
-    /** @name searching and replacing */
-    //@{
-      /// searching (return starting index, or -1 if not found)
+  // searching and replacing
+      // searching (return starting index, or -1 if not found)
   int Find(char ch, bool bFromEnd = FALSE) const;   // like strchr/strrchr
-      /// searching (return starting index, or -1 if not found)
+      // searching (return starting index, or -1 if not found)
   int Find(const char *pszSub) const;               // like strstr
-      /**
-      replace first (or all) occurences of substring with another one
-      @param  bReplaceAll: global replace (default) or only the first occurence
-      @return the number of replacements made
-      */
-  size_t Replace(const char *szOld, const char *szNew, bool bReplaceAll = TRUE);
-    //@}
-
-    /// check if the string contents matches a mask containing '*' and '?'
+      // replace first (or all of bReplaceAll) occurences of substring with
+      // another string, returns the number of replacements made
+  size_t Replace(const char *szOld,
+                 const char *szNew,
+                 bool bReplaceAll = TRUE);
+
+    // check if the string contents matches a mask containing '*' and '?'
   bool Matches(const char *szMask) const;
-  //@}
 
-  /** @name formated input/output */
-  //@{
-    /// as sprintf(), returns the number of characters written or < 0 on error
+  // formated input/output
+    // as sprintf(), returns the number of characters written or < 0 on error
   int Printf(const char *pszFormat, ...);
-    /// as vprintf(), returns the number of characters written or < 0 on error
+    // as vprintf(), returns the number of characters written or < 0 on error
   int PrintfV(const char* pszFormat, va_list argptr);
-  //@}
 
-  /** @name raw access to string memory */
-  //@{
-    /// ensure that string has space for at least nLen characters
+  // raw access to string memory
+    // ensure that string has space for at least nLen characters
     // only works if the data of this string is not shared
   void Alloc(size_t nLen);
-    /// minimize the string's memory
+    // minimize the string's memory
     // only works if the data of this string is not shared
   void Shrink();
-    /**
-        get writable buffer of at least nLen bytes.
-        Unget() *must* be called a.s.a.p. to put string back in a reasonable
-        state!
-     */
+    // get writable buffer of at least nLen bytes. Unget() *must* be called
+    // a.s.a.p. to put string back in a reasonable state!
   char *GetWriteBuf(size_t nLen);
-    /// call this immediately after GetWriteBuf() has been used
+    // call this immediately after GetWriteBuf() has been used
   void UngetWriteBuf();
-  //@}
 
-  /** @name wxWindows compatibility functions */
-  //@{
-    /// values for second parameter of CompareTo function
+  // wxWindows version 1 compatibility functions
+
+  // use Mid()
+  wxString SubString(size_t from, size_t to) const
+      { return Mid(from, (to - from + 1)); }
+    // values for second parameter of CompareTo function
   enum caseCompare {exact, ignoreCase};
-    /// values for first parameter of Strip function
+    // values for first parameter of Strip function
   enum stripType {leading = 0x1, trailing = 0x2, both = 0x3};
-    /// same as Printf()
+    // use Printf()
   inline int sprintf(const char *pszFormat, ...)
   {
     va_list argptr;
@@ -547,418 +506,337 @@ public:
     return iLen;
   }
 
-    /// same as Cmp
+    // use Cmp()
   inline int CompareTo(const char* psz, caseCompare cmp = exact) const
     { return cmp == exact ? Cmp(psz) : CmpNoCase(psz); }
 
-    /// same as Mid (substring extraction)
-  inline wxString  operator()(size_t start, size_t len) const
-    { return Mid(start, len); }
-
-    /// same as += or <<
-  inline wxString& Append(const char* psz) { return *this << psz; }
-  inline wxString& Append(char ch, int count = 1)
-    { wxString str(ch, count); (*this) += str; return *this; }
-
-    ///
-  wxString& Prepend(const wxString& str)
-    { *this = str + *this; return *this; }
-    /// same as Len
+    // use Len
   size_t Length() const { return Len(); }
-    /// Count the number of characters
+    // Count the number of characters
   int Freq(char ch) const;
-    /// same as MakeLower
+    // use MakeLower
   void LowerCase() { MakeLower(); }
-    /// same as MakeUpper
+    // use MakeUpper
   void UpperCase() { MakeUpper(); }
-    /// same as Trim except that it doesn't change this string
+    // use Trim except that it doesn't change this string
   wxString Strip(stripType w = trailing) const;
 
-    /// same as Find (more general variants not yet supported)
+    // use Find (more general variants not yet supported)
   size_t Index(const char* psz) const { return Find(psz); }
   size_t Index(char ch)         const { return Find(ch);  }
-    /// same as Truncate
+    // use Truncate
   wxString& Remove(size_t pos) { return Truncate(pos); }
   wxString& RemoveLast() { return Truncate(Len() - 1); }
 
   wxString& Remove(size_t nStart, size_t nLen) { return erase( nStart, nLen ); }
 
+    // use Find()
   int First( const char ch ) const { return Find(ch); }
   int First( const char* psz ) const { return Find(psz); }
   int First( const wxString &str ) const { return Find(str); }
-
   int Last( const char ch ) const { return Find(ch, TRUE); }
+  bool Contains(const wxString& str) const { return Find(str) != -1; }
 
-    /// same as IsEmpty
+    // use IsEmpty()
   bool IsNull() const { return IsEmpty(); }
-  //@}
 
-#ifdef  STD_STRING_COMPATIBILITY
-  /** @name std::string compatibility functions */
+#ifdef  wxSTD_STRING_COMPATIBILITY
+  // std::string compatibility functions
 
-  /// an 'invalid' value for string index
+  // an 'invalid' value for string index
   static const size_t npos;
 
-  //@{
-    /** @name constructors */
-    //@{
-      /// take nLen chars starting at nPos
-      wxString(const wxString& str, size_t nPos, size_t nLen)
-      {
-        wxASSERT( str.GetStringData()->IsValid() );
-        InitWith(str.c_str(), nPos, nLen == npos ? 0 : nLen);
-      }
-      /// take all characters from pStart to pEnd
-      wxString(const void *pStart, const void *pEnd);
-    //@}
-    /** @name lib.string.capacity */
-    //@{
-      /// return the length of the string
-      size_t size() const { return Len(); }
-      /// return the length of the string
-      size_t length() const { return Len(); }
-      /// return the maximum size of the string
-      size_t max_size() const { return STRING_MAXLEN; }
-      /// resize the string, filling the space with c if c != 0
-      void resize(size_t nSize, char ch = '\0');
-      /// delete the contents of the string
-      void clear() { Empty(); }
-      /// returns true if the string is empty
-      bool empty() const { return IsEmpty(); }
-    //@}
-    /** @name lib.string.access */
-    //@{
-      /// return the character at position n
-      char at(size_t n) const { return GetChar(n); }
-      /// returns the writable character at position n
-      char& at(size_t n) { return GetWritableChar(n); }
-    //@}
-    /** @name lib.string.modifiers */
-    //@{
-      /** @name append something to the end of this one */
-      //@{
-        /// append a string
-        wxString& append(const wxString& str)
-          { *this += str; return *this; }
-        /// append elements str[pos], ..., str[pos+n]
-        wxString& append(const wxString& str, size_t pos, size_t n)
-          { ConcatSelf(n, str.c_str() + pos); return *this; }
-        /// append first n (or all if n == npos) characters of sz
-        wxString& append(const char *sz, size_t n = npos)
-          { ConcatSelf(n == npos ? Strlen(sz) : n, sz); return *this; }
-
-        /// append n copies of ch
-        wxString& append(size_t n, char ch) { return Pad(n, ch); }
-      //@}
-
-      /** @name replaces the contents of this string with another one */
-      //@{
-        /// same as `this_string = str'
-        wxString& assign(const wxString& str) { return (*this) = str; }
-        /// same as ` = str[pos..pos + n]
-        wxString& assign(const wxString& str, size_t pos, size_t n)
-          { return *this = wxString((const char *)str + pos, n); }
-        /// same as `= first n (or all if n == npos) characters of sz'
-        wxString& assign(const char *sz, size_t n = npos)
-          { return *this = wxString(sz, n); }
-        /// same as `= n copies of ch'
-        wxString& assign(size_t n, char ch)
-          { return *this = wxString(ch, n); }
-
-      //@}
-
-      /** @name inserts something at position nPos into this one */
-      //@{
-        /// insert another string
-        wxString& insert(size_t nPos, const wxString& str);
-        /// insert n chars of str starting at nStart (in str)
-        wxString& insert(size_t nPos, const wxString& str, size_t nStart, size_t n)
-          { return insert(nPos, wxString((const char *)str + nStart, n)); }
-
-        /// insert first n (or all if n == npos) characters of sz
-        wxString& insert(size_t nPos, const char *sz, size_t n = npos)
-          { return insert(nPos, wxString(sz, n)); }
-        /// insert n copies of ch
-        wxString& insert(size_t nPos, size_t n, char ch)
-          { return insert(nPos, wxString(ch, n)); }
-
-      //@}
-
-      /** @name deletes a part of the string */
-      //@{
-        /// delete characters from nStart to nStart + nLen
-        wxString& erase(size_t nStart = 0, size_t nLen = npos);
-      //@}
-
-      /** @name replaces a substring of this string with another one */
-      //@{
-         /// replaces the substring of length nLen starting at nStart
-         wxString& replace(size_t nStart, size_t nLen, const char* sz);
-         /// replaces the substring with nCount copies of ch
-         wxString& replace(size_t nStart, size_t nLen, size_t nCount, char ch);
-         /// replaces a substring with another substring
-         wxString& replace(size_t nStart, size_t nLen,
-                         const wxString& str, size_t nStart2, size_t nLen2);
-         /// replaces the substring with first nCount chars of sz
-         wxString& replace(size_t nStart, size_t nLen,
-                         const char* sz, size_t nCount);
-      //@}
-    //@}
-
-    /// swap two strings
-    void swap(wxString& str);
-
-    /** @name string operations */
-    //@{
-      /** All find() functions take the nStart argument which specifies
-          the position to start the search on, the default value is 0.
-
-          All functions return npos if there were no match.
-
-          @name string search
-      */
-      //@{
-        /**
-            @name find a match for the string/character in this string
-        */
-        //@{
-          /// find a substring
-          size_t find(const wxString& str, size_t nStart = 0) const;
-
-          // VC++ 1.5 can't cope with this syntax.
-#if ! (defined(_MSC_VER) && !defined(__WIN32__))
-          /// find first n characters of sz
-          size_t find(const char* sz, size_t nStart = 0, size_t n = npos) const;
+  // constructors
+    // take nLen chars starting at nPos
+  wxString(const wxString& str, size_t nPos, size_t nLen)
+  {
+    wxASSERT( str.GetStringData()->IsValid() );
+    InitWith(str.c_str(), nPos, nLen == npos ? 0 : nLen);
+  }
+    // take all characters from pStart to pEnd
+  wxString(const void *pStart, const void *pEnd);
+
+  // lib.string.capacity
+    // return the length of the string
+  size_t size() const { return Len(); }
+    // return the length of the string
+  size_t length() const { return Len(); }
+    // return the maximum size of the string
+  size_t max_size() const { return STRING_MAXLEN; }
+    // resize the string, filling the space with c if c != 0
+  void resize(size_t nSize, char ch = '\0');
+    // delete the contents of the string
+  void clear() { Empty(); }
+    // returns true if the string is empty
+  bool empty() const { return IsEmpty(); }
+
+  // lib.string.access
+    // return the character at position n
+  char at(size_t n) const { return GetChar(n); }
+    // returns the writable character at position n
+  char& at(size_t n) { return GetWritableChar(n); }
+
+  // lib.string.modifiers
+    // append a string
+  wxString& append(const wxString& str)
+    { *this += str; return *this; }
+    // append elements str[pos], ..., str[pos+n]
+  wxString& append(const wxString& str, size_t pos, size_t n)
+    { ConcatSelf(n, str.c_str() + pos); return *this; }
+    // append first n (or all if n == npos) characters of sz
+  wxString& append(const char *sz, size_t n = npos)
+    { ConcatSelf(n == npos ? Strlen(sz) : n, sz); return *this; }
+
+    // append n copies of ch
+  wxString& append(size_t n, char ch) { return Pad(n, ch); }
+
+    // same as `this_string = str'
+  wxString& assign(const wxString& str) { return (*this) = str; }
+    // same as ` = str[pos..pos + n]
+  wxString& assign(const wxString& str, size_t pos, size_t n)
+    { return *this = wxString((const char *)str + pos, n); }
+    // same as `= first n (or all if n == npos) characters of sz'
+  wxString& assign(const char *sz, size_t n = npos)
+    { return *this = wxString(sz, n); }
+    // same as `= n copies of ch'
+  wxString& assign(size_t n, char ch)
+    { return *this = wxString(ch, n); }
+
+    // insert another string
+  wxString& insert(size_t nPos, const wxString& str);
+    // insert n chars of str starting at nStart (in str)
+  wxString& insert(size_t nPos, const wxString& str, size_t nStart, size_t n)
+    { return insert(nPos, wxString((const char *)str + nStart, n)); }
+
+    // insert first n (or all if n == npos) characters of sz
+  wxString& insert(size_t nPos, const char *sz, size_t n = npos)
+    { return insert(nPos, wxString(sz, n)); }
+    // insert n copies of ch
+  wxString& insert(size_t nPos, size_t n, char ch)
+    { return insert(nPos, wxString(ch, n)); }
+
+    // delete characters from nStart to nStart + nLen
+  wxString& erase(size_t nStart = 0, size_t nLen = npos);
+
+    // replaces the substring of length nLen starting at nStart
+  wxString& replace(size_t nStart, size_t nLen, const char* sz);
+    // replaces the substring with nCount copies of ch
+  wxString& replace(size_t nStart, size_t nLen, size_t nCount, char ch);
+    // replaces a substring with another substring
+  wxString& replace(size_t nStart, size_t nLen,
+                    const wxString& str, size_t nStart2, size_t nLen2);
+    // replaces the substring with first nCount chars of sz
+    wxString& replace(size_t nStart, size_t nLen,
+                      const char* sz, size_t nCount);
+
+    // swap two strings
+  void swap(wxString& str);
+
+    // All find() functions take the nStart argument which specifies the
+    // position to start the search on, the default value is 0. All functions
+    // return npos if there were no match.
+
+    // find a substring
+  size_t find(const wxString& str, size_t nStart = 0) const;
+
+  // VC++ 1.5 can't cope with this syntax.
+#if !(defined(_MSC_VER) && !defined(__WIN32__))
+    // find first n characters of sz
+  size_t find(const char* sz, size_t nStart = 0, size_t n = npos) const;
 #endif
-          // Gives a duplicate symbol (presumably a case-insensitivity problem)
+
+  // Gives a duplicate symbol (presumably a case-insensitivity problem)
 #if !defined(__BORLANDC__)
-          /// find the first occurence of character ch after nStart
-          size_t find(char ch, size_t nStart = 0) const;
+    // find the first occurence of character ch after nStart
+  size_t find(char ch, size_t nStart = 0) const;
 #endif
-          // wxWin compatibility
-          inline bool Contains(const wxString& str) const { return Find(str) != -1; }
-
-        //@}
-
-        /**
-          @name rfind() family is exactly like find() but works right to left
-        */
-        //@{
-        /// as find, but from the end
-        size_t rfind(const wxString& str, size_t nStart = npos) const;
-        /// as find, but from the end
-        // VC++ 1.5 can't cope with this syntax.
+    // rfind() family is exactly like find() but works right to left
+
+    // as find, but from the end
+  size_t rfind(const wxString& str, size_t nStart = npos) const;
+
+  // VC++ 1.5 can't cope with this syntax.
 #if ! (defined(_MSC_VER) && !defined(__WIN32__))
-        size_t rfind(const char* sz, size_t nStart = npos,
-                     size_t n = npos) const;
-        /// as find, but from the end
-        size_t rfind(char ch, size_t nStart = npos) const;
-#endif
-        //@}
-
-        /**
-          @name find first/last occurence of any character in the set
-        */
-        //@{
-          ///
-          size_t find_first_of(const wxString& str, size_t nStart = 0) const;
-          ///
-          size_t find_first_of(const char* sz, size_t nStart = 0) const;
-          /// same as find(char, size_t)
-          size_t find_first_of(char c, size_t nStart = 0) const;
-
-          ///
-          size_t find_last_of (const wxString& str, size_t nStart = npos) const;
-          ///
-          size_t find_last_of (const char* s, size_t nStart = npos) const;
-          /// same as rfind(char, size_t)
-          size_t find_last_of (char c, size_t nStart = npos) const;
-        //@}
-
-        /**
-          @name find first/last occurence of any character not in the set
-        */
-        //@{
-          ///
-          size_t find_first_not_of(const wxString& str, size_t nStart = 0) const;
-          ///
-          size_t find_first_not_of(const char* s, size_t nStart = 0) const;
-          ///
-          size_t find_first_not_of(char ch, size_t nStart = 0) const;
-
-          ///
-          size_t find_last_not_of(const wxString& str, size_t nStart=npos) const;
-          ///
-          size_t find_last_not_of(const char* s, size_t nStart = npos) const;
-          ///
-          size_t find_last_not_of(char ch, size_t nStart = npos) const;
-        //@}
-      //@}
-
-      /**
-        All compare functions return -1, 0 or 1 if the [sub]string
-        is less, equal or greater than the compare() argument.
-
-        @name comparison
-      */
-      //@{
-        /// just like strcmp()
-        int compare(const wxString& str) const { return Cmp(str); }
-        /// comparison with a substring
-        int compare(size_t nStart, size_t nLen, const wxString& str) const;
-        /// comparison of 2 substrings
-        int compare(size_t nStart, size_t nLen,
-                    const wxString& str, size_t nStart2, size_t nLen2) const;
-        /// just like strcmp()
-        int compare(const char* sz) const { return Cmp(sz); }
-        /// substring comparison with first nCount characters of sz
-        int compare(size_t nStart, size_t nLen,
-                    const char* sz, size_t nCount = npos) const;
-      //@}
-    wxString substr(size_t nStart = 0, size_t nLen = npos) const;
-  //@}
+    // as find, but from the end
+  size_t rfind(const char* sz, size_t nStart = npos,
+          size_t n = npos) const;
+    // as find, but from the end
+  size_t rfind(char ch, size_t nStart = npos) const;
 #endif
+
+    // find first/last occurence of any character in the set
+
+    //
+  size_t find_first_of(const wxString& str, size_t nStart = 0) const;
+    //
+  size_t find_first_of(const char* sz, size_t nStart = 0) const;
+    // same as find(char, size_t)
+  size_t find_first_of(char c, size_t nStart = 0) const;
+    //
+  size_t find_last_of (const wxString& str, size_t nStart = npos) const;
+    //
+  size_t find_last_of (const char* s, size_t nStart = npos) const;
+    // same as rfind(char, size_t)
+  size_t find_last_of (char c, size_t nStart = npos) const;
+
+    // find first/last occurence of any character not in the set
+
+    //
+  size_t find_first_not_of(const wxString& str, size_t nStart = 0) const;
+    //
+  size_t find_first_not_of(const char* s, size_t nStart = 0) const;
+    //
+  size_t find_first_not_of(char ch, size_t nStart = 0) const;
+    //
+  size_t find_last_not_of(const wxString& str, size_t nStart=npos) const;
+    //
+  size_t find_last_not_of(const char* s, size_t nStart = npos) const;
+    //
+  size_t find_last_not_of(char ch, size_t nStart = npos) const;
+
+    // All compare functions return -1, 0 or 1 if the [sub]string is less,
+    // equal or greater than the compare() argument.
+
+    // just like strcmp()
+  int compare(const wxString& str) const { return Cmp(str); }
+    // comparison with a substring
+  int compare(size_t nStart, size_t nLen, const wxString& str) const;
+    // comparison of 2 substrings
+  int compare(size_t nStart, size_t nLen,
+              const wxString& str, size_t nStart2, size_t nLen2) const;
+    // just like strcmp()
+  int compare(const char* sz) const { return Cmp(sz); }
+    // substring comparison with first nCount characters of sz
+  int compare(size_t nStart, size_t nLen,
+              const char* sz, size_t nCount = npos) const;
+
+  // substring extraction
+  wxString substr(size_t nStart = 0, size_t nLen = npos) const;
+#endif // wxSTD_STRING_COMPATIBILITY
 };
 
 // ----------------------------------------------------------------------------
-/** The string array uses it's knowledge of internal structure of the String
-    class to optimize string storage. Normally, we would store pointers to
-    string, but as String is, in fact, itself a pointer (sizeof(String) is
-    sizeof(char *)) we store these pointers instead. The cast to "String *"
-    is really all we need to turn such pointer into a string!
-
-    Of course, it can be called a dirty hack, but we use twice less memory
-    and this approach is also more speed efficient, so it's probably worth it.
-
-    Usage notes: when a string is added/inserted, a new copy of it is created,
-    so the original string may be safely deleted. When a string is retrieved
-    from the array (operator[] or Item() method), a reference is returned.
-
-    @name wxArrayString
-    @memo probably the most commonly used array type - array of strings
- */
+// The string array uses it's knowledge of internal structure of the wxString
+// class to optimize string storage. Normally, we would store pointers to
+// string, but as wxString is, in fact, itself a pointer (sizeof(wxString) is
+// sizeof(char *)) we store these pointers instead. The cast to "wxString *" is
+// really all we need to turn such pointer into a string!
+//
+// Of course, it can be called a dirty hack, but we use twice less memory and
+// this approach is also more speed efficient, so it's probably worth it.
+//
+// Usage notes: when a string is added/inserted, a new copy of it is created,
+// so the original string may be safely deleted. When a string is retrieved
+// from the array (operator[] or Item() method), a reference is returned.
 // ----------------------------------------------------------------------------
 class WXDLLEXPORT wxArrayString
 {
 public:
-  /** @name ctors and dtor */
-  //@{
-    /// default ctor
+  // constructors and destructor
+    // default ctor
   wxArrayString();
-    /// copy ctor
+    // copy ctor
   wxArrayString(const wxArrayString& array);
-    /// assignment operator
+    // assignment operator
   wxArrayString& operator=(const wxArrayString& src);
-    /// not virtual, this class can't be derived from
+    // not virtual, this class should not be derived from
  ~wxArrayString();
-  //@}
 
-  /** @name memory management */
-  //@{
-    /// empties the list, but doesn't release memory
+  // memory management
+    // empties the list, but doesn't release memory
   void Empty();
-    /// empties the list and releases memory
+    // empties the list and releases memory
   void Clear();
-    /// preallocates memory for given number of items
+    // preallocates memory for given number of items
   void Alloc(size_t nCount);
-    /// minimzes the memory usage (by freeing all extra memory)
+    // minimzes the memory usage (by freeing all extra memory)
   void Shrink();
-  //@}
-
-  /** @name simple accessors */
-  //@{
-    /// number of elements in the array
-  size_t  Count() const   { return m_nCount;      }
-    /// is it empty?
-  bool  IsEmpty() const { return m_nCount == 0; }
-  //@}
-
-  /** @name items access (range checking is done in debug version) */
-  //@{
-    /// get item at position uiIndex
+
+  // simple accessors
+    // number of elements in the array
+  size_t GetCount() const { return m_nCount; }
+    // is it empty?
+  bool IsEmpty() const { return m_nCount == 0; }
+    // number of elements in the array (GetCount is preferred API)
+  size_t Count() const { return m_nCount; }
+
+  // items access (range checking is done in debug version)
+    // get item at position uiIndex
   wxString& Item(size_t nIndex) const
     { wxASSERT( nIndex < m_nCount ); return *(wxString *)&(m_pItems[nIndex]); }
-    /// same as Item()
+    // same as Item()
   wxString& operator[](size_t nIndex) const { return Item(nIndex); }
-    /// get last item
+    // get last item
   wxString& Last() const { wxASSERT( !IsEmpty() ); return Item(Count() - 1); }
-  //@}
-
-  /** @name item management */
-  //@{
-    /**
-      Search the element in the array, starting from the either side
-      @param if bFromEnd reverse search direction
-      @param if bCase, comparison is case sensitive (default)
-      @return index of the first item matched or NOT_FOUND
-      @see NOT_FOUND
-     */
+
+  // item management
+    // Search the element in the array, starting from the beginning if
+    // bFromEnd is FALSE or from end otherwise. If bCase, comparison is case
+    // sensitive (default). Returns index of the first item matched or
+    // wxNOT_FOUND
   int  Index (const char *sz, bool bCase = TRUE, bool bFromEnd = FALSE) const;
-    /// add new element at the end
-  void Add   (const wxString& str);
-    /// add new element at given position
+    // add new element at the end
+  void Add(const wxString& str);
+    // add new element at given position
   void Insert(const wxString& str, size_t uiIndex);
-    /// remove first item matching this value
+    // remove first item matching this value
   void Remove(const char *sz);
-    /// remove item by index
+    // remove item by index
   void Remove(size_t nIndex);
-  //@}
 
-  /// sort array elements
+  // sort array elements
   void Sort(bool bCase = TRUE, bool bReverse = FALSE);
 
 private:
   void    Grow();     // makes array bigger if needed
   void    Free();     // free the string stored
 
-  size_t    m_nSize,    // current size of the array
+  size_t  m_nSize,    // current size of the array
           m_nCount;   // current number of elements
 
   char  **m_pItems;   // pointer to data
 };
 
 // ---------------------------------------------------------------------------
-/** @name wxString comparison functions
-    @memo Comparisons are case sensitive
- */
+// wxString comparison functions: operator versions are always case sensitive
 // ---------------------------------------------------------------------------
-//@{
+//
 inline bool operator==(const wxString& s1, const wxString& s2) { return s1.Cmp(s2) == 0; }
-///
+//
 inline bool operator==(const wxString& s1, const char  * s2) { return s1.Cmp(s2) == 0; }
-///
+//
 inline bool operator==(const char  * s1, const wxString& s2) { return s2.Cmp(s1) == 0; }
-///
+//
 inline bool operator!=(const wxString& s1, const wxString& s2) { return s1.Cmp(s2) != 0; }
-///
+//
 inline bool operator!=(const wxString& s1, const char  * s2) { return s1.Cmp(s2) != 0; }
-///
+//
 inline bool operator!=(const char  * s1, const wxString& s2) { return s2.Cmp(s1) != 0; }
-///
+//
 inline bool operator< (const wxString& s1, const wxString& s2) { return s1.Cmp(s2) <  0; }
-///
+//
 inline bool operator< (const wxString& s1, const char  * s2) { return s1.Cmp(s2) <  0; }
-///
+//
 inline bool operator< (const char  * s1, const wxString& s2) { return s2.Cmp(s1) >  0; }
-///
+//
 inline bool operator> (const wxString& s1, const wxString& s2) { return s1.Cmp(s2) >  0; }
-///
+//
 inline bool operator> (const wxString& s1, const char  * s2) { return s1.Cmp(s2) >  0; }
-///
+//
 inline bool operator> (const char  * s1, const wxString& s2) { return s2.Cmp(s1) <  0; }
-///
+//
 inline bool operator<=(const wxString& s1, const wxString& s2) { return s1.Cmp(s2) <= 0; }
-///
+//
 inline bool operator<=(const wxString& s1, const char  * s2) { return s1.Cmp(s2) <= 0; }
-///
+//
 inline bool operator<=(const char  * s1, const wxString& s2) { return s2.Cmp(s1) >= 0; }
-///
+//
 inline bool operator>=(const wxString& s1, const wxString& s2) { return s1.Cmp(s2) >= 0; }
-///
+//
 inline bool operator>=(const wxString& s1, const char  * s2) { return s1.Cmp(s2) >= 0; }
-///
+//
 inline bool operator>=(const char  * s1, const wxString& s2) { return s2.Cmp(s1) <= 0; }
-//@}
+
 wxString WXDLLEXPORT operator+(const wxString& string1,  const wxString& string2);
 wxString WXDLLEXPORT operator+(const wxString& string, char ch);
 wxString WXDLLEXPORT operator+(char ch, const wxString& string);
@@ -966,14 +844,12 @@ wxString WXDLLEXPORT operator+(const wxString& string, const char *psz);
 wxString WXDLLEXPORT operator+(const char *psz, const wxString& string);
 
 // ---------------------------------------------------------------------------
-/** @name Global functions complementing standard C string library
-    @memo replacements for strlen() and portable strcasecmp()
- */
+// Implementation only from here until the end of file
 // ---------------------------------------------------------------------------
 
-#ifdef  STD_STRING_COMPATIBILITY
+#ifdef wxSTD_STRING_COMPATIBILITY
 
-// fwd decl
+// forward declare iostream
 // Known not to work with wxUSE_IOSTREAMH set to 0, so
 // replacing with includes (on advice of ungod@pasdex.com.au)
 // class WXDLLEXPORT istream;
@@ -989,8 +865,6 @@ wxString WXDLLEXPORT operator+(const char *psz, const wxString& string);
 
 WXDLLEXPORT istream& operator>>(istream& is, wxString& str);
 
-#endif  //std::string compatibility
+#endif  // wxSTD_STRING_COMPATIBILITY
 
 #endif  // _WX_WXSTRINGH__
-
-//@}
index 4d13c80f0b72c45d03da839ae9827f027f8203ad..80f70067591e918411024e96968b0c06214e938c 100644 (file)
@@ -188,7 +188,7 @@ int wxBaseArray::Index(long lItem, bool bFromEnd) const
     }
   }
 
-  return NOT_FOUND;
+  return wxNOT_FOUND;
 }
 
 // search for an item in a sorted array (binary search)
@@ -211,7 +211,7 @@ int wxBaseArray::Index(long lItem, CMPFUNC fnCompare) const
       return i;
   }
 
-  return NOT_FOUND;
+  return wxNOT_FOUND;
 }
 // add item at the end
 void wxBaseArray::Add(long lItem)
@@ -275,7 +275,7 @@ void wxBaseArray::Remove(long lItem)
 {
   int iIndex = Index(lItem);
 
-  wxCHECK_RET( iIndex != NOT_FOUND,
+  wxCHECK_RET( iIndex != wxNOT_FOUND,
                "removing inexistent item in wxArray::Remove" );
 
   Remove((size_t)iIndex);
index 5366c66d4a41f2b8d8bbd721ffc749140f2569ae..1672eb46bb2576ba11878e84543d02c794bfc73d 100644 (file)
@@ -1228,7 +1228,7 @@ void wxFileConfig::ConfigEntry::SetValue(const wxString& strValue, bool bUser)
     }
     else {
       // add a new line to the file
-      wxASSERT( m_nLine == NOT_FOUND );   // consistency check
+      wxASSERT( m_nLine == wxNOT_FOUND );   // consistency check
 
       m_pLine = Group()->Config()->LineListInsert(strLine,
                                                   Group()->GetLastEntryLine());
index 9f6ef15ac439758cef760aa52fa69a93ffcbf5a9..3d3ca71c45883ce89d2ac134912436e1e4d1783b 100644 (file)
@@ -445,7 +445,7 @@ bool wxLocale::Init(const char *szName,
 
 void wxLocale::AddCatalogLookupPathPrefix(const wxString& prefix)
 {
-    if ( s_searchPrefixes.Index(prefix) == NOT_FOUND )
+    if ( s_searchPrefixes.Index(prefix) == wxNOT_FOUND )
     {
         s_searchPrefixes.Add(prefix);
     }
index 4eeacc5bb3f56023b76f295decb6c4ef4f2f9ea2..001e18d5930f5cb40d4b230e65be0b6dc217992c 100644 (file)
@@ -131,7 +131,7 @@ wxNodeBase::~wxNodeBase()
 
 int wxNodeBase::IndexOf() const
 {
-    wxCHECK_MSG( m_list, NOT_FOUND, "node doesn't belong to a list in IndexOf");
+    wxCHECK_MSG( m_list, wxNOT_FOUND, "node doesn't belong to a list in IndexOf");
 
     // It would be more efficient to implement IndexOf() completely inside
     // wxListBase (only traverse the list once), but this is probably a more
@@ -337,7 +337,7 @@ int wxListBase::IndexOf(void *object) const
 {
     wxNodeBase *node = Find( object );
 
-    return node ? node->IndexOf() : NOT_FOUND;
+    return node ? node->IndexOf() : wxNOT_FOUND;
 }
 
 void wxListBase::DoDeleteNode(wxNodeBase *node)
index 91941453210b9943c2efcc53c1699082736ffe8f..1e268d586d11ac160430a46bc9f3650c1afc592c 100644 (file)
@@ -560,11 +560,11 @@ bool wxFileTypeImpl::GetIcon(wxIcon *icon) const
             // the format is the following: <full path to file>, <icon index>
             // NB: icon index may be negative as well as positive and the full
             //     path may contain the environment variables inside '%'
-            wxString strFullPath = strIcon.Before(','),
-            strIndex = strIcon.Right(',');
+            wxString strFullPath = strIcon.BeforeLast(','),
+            strIndex = strIcon.AfterLast(',');
 
-            // index may be omitted, in which case Before(',') is empty and
-            // Right(',') is the whole string
+            // index may be omitted, in which case BeforeLast(',') is empty and
+            // AfterLast(',') is the whole string
             if ( strFullPath.IsEmpty() ) {
                 strFullPath = strIndex;
                 strIndex = "0";
@@ -810,23 +810,23 @@ wxMimeTypesManagerImpl::GetFileTypeFromMimeType(const wxString& mimeType)
 
     // first look for an exact match
     int index = m_aTypes.Index(mimetype);
-    if ( index == NOT_FOUND ) {
+    if ( index == wxNOT_FOUND ) {
         // then try to find "text/*" as match for "text/plain" (for example)
-        // NB: if mimeType doesn't contain '/' at all, Left() will return the
-        //     whole string - ok.
-        wxString strCategory = mimetype.Left('/');
+        // NB: if mimeType doesn't contain '/' at all, BeforeFirst() will return
+        //     the whole string - ok.
+        wxString strCategory = mimetype.BeforeFirst('/');
 
         size_t nCount = m_aTypes.Count();
         for ( size_t n = 0; n < nCount; n++ ) {
-            if ( (m_aTypes[n].Before('/') == strCategory ) &&
-                 m_aTypes[n].Right('/') == "*" ) {
+            if ( (m_aTypes[n].BeforeFirst('/') == strCategory ) &&
+                 m_aTypes[n].AfterFirst('/') == "*" ) {
                     index = n;
                     break;
             }
         }
     }
 
-    if ( index != NOT_FOUND ) {
+    if ( index != wxNOT_FOUND ) {
         wxFileType *fileType = new wxFileType;
         fileType->m_impl->Init(this, index);
 
@@ -955,7 +955,7 @@ void wxMimeTypesManagerImpl::ReadMimeTypes(const wxString& strFileName)
         }
 
         int index = m_aTypes.Index(strMimeType);
-        if ( index == NOT_FOUND ) {
+        if ( index == wxNOT_FOUND ) {
             // add a new entry
             m_aTypes.Add(strMimeType);
             m_aEntries.Add(NULL);
@@ -1055,7 +1055,7 @@ void wxMimeTypesManagerImpl::ReadMailcap(const wxString& strFileName)
                     switch ( currentToken ) {
                         case Field_Type:
                             strType = curField;
-                            if ( strType.Find('/') == NOT_FOUND ) {
+                            if ( strType.Find('/') == wxNOT_FOUND ) {
                                 // we interpret "type" as "type/*"
                                 strType += "/*";
                             }
@@ -1077,7 +1077,7 @@ void wxMimeTypesManagerImpl::ReadMailcap(const wxString& strFileName)
                                 // is this something of the form foo=bar?
                                 const char *pEq = strchr(curField, '=');
                                 if ( pEq != NULL ) {
-                                    wxString lhs = curField.Left('='),
+                                    wxString lhs = curField.Before('='),
                                              rhs = curField.After('=');
 
                                     lhs.Trim(TRUE);     // from right
@@ -1170,7 +1170,7 @@ void wxMimeTypesManagerImpl::ReadMailcap(const wxString& strFileName)
 
             strType.MakeLower();
             int nIndex = m_aTypes.Index(strType);
-            if ( nIndex == NOT_FOUND ) {
+            if ( nIndex == wxNOT_FOUND ) {
                 // new file type
                 m_aTypes.Add(strType);
 
@@ -1186,7 +1186,7 @@ void wxMimeTypesManagerImpl::ReadMailcap(const wxString& strFileName)
                 // before, thus we Append() the new entry to the list if it has
                 // already occured in _this_ file, but Prepend() it if it
                 // occured in some of the previous ones.
-                if ( aEntryIndices.Index(nIndex) == NOT_FOUND ) {
+                if ( aEntryIndices.Index(nIndex) == wxNOT_FOUND ) {
                     // first time in this file
                     aEntryIndices.Add(nIndex);
                     entry->Prepend(m_aEntries[nIndex]);
index c4101484cf9b94d1dda19abd536b1d5a70033d27..7e52adcda34852327d1358541c1b14485189a301 100644 (file)
@@ -672,11 +672,11 @@ wxString wxString::Right(size_t nCount) const
 
 // get all characters after the last occurence of ch
 // (returns the whole string if ch not found)
-wxString wxString::Right(char ch) const
+wxString wxString::AfterLast(char ch) const
 {
   wxString str;
   int iPos = Find(ch, TRUE);
-  if ( iPos == NOT_FOUND )
+  if ( iPos == wxNOT_FOUND )
     str = *this;
   else
     str = c_str() + iPos + 1;
@@ -697,7 +697,7 @@ wxString wxString::Left(size_t nCount) const
 
 // get all characters before the first occurence of ch
 // (returns the whole string if ch not found)
-wxString wxString::Left(char ch) const
+wxString wxString::BeforeFirst(char ch) const
 {
   wxString str;
   for ( const char *pc = m_pchData; *pc != '\0' && *pc != ch; pc++ )
@@ -708,11 +708,11 @@ wxString wxString::Left(char ch) const
 
 /// get all characters before the last occurence of ch
 /// (returns empty string if ch not found)
-wxString wxString::Before(char ch) const
+wxString wxString::BeforeLast(char ch) const
 {
   wxString str;
   int iPos = Find(ch, TRUE);
-  if ( iPos != NOT_FOUND && iPos != 0 )
+  if ( iPos != wxNOT_FOUND && iPos != 0 )
     str = wxString(c_str(), iPos);
 
   return str;
@@ -720,11 +720,11 @@ wxString wxString::Before(char ch) const
 
 /// get all characters after the first occurence of ch
 /// (returns empty string if ch not found)
-wxString wxString::After(char ch) const
+wxString wxString::AfterFirst(char ch) const
 {
   wxString str;
   int iPos = Find(ch);
-  if ( iPos != NOT_FOUND )
+  if ( iPos != wxNOT_FOUND )
     str = c_str() + iPos + 1;
 
   return str;
@@ -911,7 +911,7 @@ wxString& wxString::Truncate(size_t uiLen)
 }
 
 // ---------------------------------------------------------------------------
-// finding (return NOT_FOUND if not found and index otherwise)
+// finding (return wxNOT_FOUND if not found and index otherwise)
 // ---------------------------------------------------------------------------
 
 // find a character
@@ -919,7 +919,7 @@ int wxString::Find(char ch, bool bFromEnd) const
 {
   const char *psz = bFromEnd ? strrchr(m_pchData, ch) : strchr(m_pchData, ch);
 
-  return (psz == NULL) ? NOT_FOUND : psz - m_pchData;
+  return (psz == NULL) ? wxNOT_FOUND : psz - m_pchData;
 }
 
 // find a sub-string (like strstr)
@@ -927,7 +927,7 @@ int wxString::Find(const char *pszSub) const
 {
   const char *psz = strstr(m_pchData, pszSub);
 
-  return (psz == NULL) ? NOT_FOUND : psz - m_pchData;
+  return (psz == NULL) ? wxNOT_FOUND : psz - m_pchData;
 }
 
 // ---------------------------------------------------------------------------
@@ -1385,7 +1385,7 @@ int wxArrayString::Index(const char *sz, bool bCase, bool bFromEnd) const
     }
   }
 
-  return NOT_FOUND;
+  return wxNOT_FOUND;
 }
 
 // add item at the end
@@ -1436,7 +1436,7 @@ void wxArrayString::Remove(const char *sz)
 {
   int iIndex = Index(sz);
 
-  wxCHECK_RET( iIndex != NOT_FOUND,
+  wxCHECK_RET( iIndex != wxNOT_FOUND,
                _("removing inexistent element in wxArrayString::Remove") );
 
   Remove(iIndex);
index 5bcf080dc81ccb2e4bef79f14b4248aceb7f40d4..90284a5ee379cf81e76e6bb882df880e5e00dcaa 100644 (file)
@@ -579,7 +579,7 @@ wxTreeItemId wxTreeCtrl::GetNextSibling(const wxTreeItemId& item) const
 
   wxArrayTreeItems& siblings = parent->GetChildren();
   int index = siblings.Index(i);
-  wxASSERT( index != NOT_FOUND ); // I'm not a child of my parent?
+  wxASSERT( index != wxNOT_FOUND ); // I'm not a child of my parent?
 
   size_t n = (size_t)(index + 1);
   return n == siblings.Count() ? wxTreeItemId() : wxTreeItemId(siblings[n]);
@@ -599,7 +599,7 @@ wxTreeItemId wxTreeCtrl::GetPrevSibling(const wxTreeItemId& item) const
 
   wxArrayTreeItems& siblings = parent->GetChildren();
   int index = siblings.Index(i);
-  wxASSERT( index != NOT_FOUND ); // I'm not a child of my parent?
+  wxASSERT( index != wxNOT_FOUND ); // I'm not a child of my parent?
 
   return index == 0 ? wxTreeItemId()
                     : wxTreeItemId(siblings[(size_t)(index - 1)]);
@@ -707,7 +707,7 @@ wxTreeItemId wxTreeCtrl::InsertItem(const wxTreeItemId& parentId,
   }
 
   int index = parent->GetChildren().Index(idPrevious.m_pItem);
-  wxASSERT_MSG( index != NOT_FOUND,
+  wxASSERT_MSG( index != wxNOT_FOUND,
                 "previous item in wxTreeCtrl::InsertItem() is not a sibling" );
   return DoInsertItem(parentId, (size_t)index, text, image, selImage, data);
 }
index b8e524f7529e43091acb72208cc5c33a3fede8d5..6676582e63461786bb5679781d3d634473d2de11 100644 (file)
@@ -89,7 +89,7 @@ wxIniConfig::wxIniConfig(const wxString& strAppName, const wxString& strVendor,
     // append the extension if none given and it's not an absolute file name
     // (otherwise we assume that they know what they're doing)
     if ( !wxIsPathSeparator(m_strLocalFilename[0u]) &&
-        m_strLocalFilename.Find('.') == NOT_FOUND )
+        m_strLocalFilename.Find('.') == wxNOT_FOUND )
     {
         m_strLocalFilename << ".ini";
     }
index fd4fef2f0320ff3744a687427069d694642029f1..a8cc35eaa1a1f66d9e25fa75501b102944a9a657 100644 (file)
@@ -57,11 +57,11 @@ bool wxMatchMimeType(const wxString& mime_obj, const wxString& type)
   if (mime_obj.Find('*') != -1) {
     wxString part_str1[2], part_str2[2];
 
-    part_str1[0] = mime_obj.Left('/');
-    part_str1[1] = mime_obj.After('/');
+    part_str1[0] = mime_obj.BeforeFirst('/');
+    part_str1[1] = mime_obj.AfterFirst('/');
    
-    part_str2[0] = type.Left('/');
-    part_str2[1] = type.After('/');
+    part_str2[0] = type.BeforeFirst('/');
+    part_str2[1] = type.AfterFirst('/');
 
     if (part_str1[0] == "*" && part_str1[1] == "*")
       return TRUE;
index 48d99db0f089bdfeb70fb48fe06088edd821347d..30baca7f61eda0901c76925d148cddaf7a10a3ef 100644 (file)
  * and things like that.
  *
  * $Log$
+ * Revision 1.4  1999/01/14 14:33:39  VZ
+ * 1. NOT_FOUND -> wxNOT_FOUND
+ * 2. wxString::Left(), Right(), Before(), After() clean up
+ * 3. wxLocale updates
+ *
  * Revision 1.3  1998/12/17 17:53:31  RD
+ *
  * wxPython 0.5.2
  * Minor fixes and SWIG code generation for RR's changes.  MSW and GTK
  * versions are much closer now!
@@ -1172,7 +1178,7 @@ SWIGEXPORT(void,initwxc)() {
         PyDict_SetItemString(d,"wxMAJOR_VERSION", PyInt_FromLong((long) wxMAJOR_VERSION));
         PyDict_SetItemString(d,"wxMINOR_VERSION", PyInt_FromLong((long) wxMINOR_VERSION));
         PyDict_SetItemString(d,"wxRELEASE_NUMBER", PyInt_FromLong((long) wxRELEASE_NUMBER));
-        PyDict_SetItemString(d,"NOT_FOUND", PyInt_FromLong((long) NOT_FOUND));
+        PyDict_SetItemString(d,"wxNOT_FOUND", PyInt_FromLong((long) NOT_FOUND));
         PyDict_SetItemString(d,"wxVSCROLL", PyInt_FromLong((long) wxVSCROLL));
         PyDict_SetItemString(d,"wxHSCROLL", PyInt_FromLong((long) wxHSCROLL));
         PyDict_SetItemString(d,"wxCAPTION", PyInt_FromLong((long) wxCAPTION));
index 1232da33f75fed0c787d40236a7a880c6353761c..4e8a78529edbef445cab8b9c0e80dd6fe93bbe01 100644 (file)
  * and things like that.
  *
  * $Log$
+ * Revision 1.4  1999/01/14 14:33:56  VZ
+ * 1. NOT_FOUND -> wxNOT_FOUND
+ * 2. wxString::Left(), Right(), Before(), After() clean up
+ * 3. wxLocale updates
+ *
  * Revision 1.3  1998/12/21 19:59:01  RD
+ *
  * Now compiles with /GX- on MSW.
  *
  ************************************************************************/
@@ -1216,7 +1222,7 @@ SWIGEXPORT(void,initwxc)() {
         PyDict_SetItemString(d,"wxMAJOR_VERSION", PyInt_FromLong((long) wxMAJOR_VERSION));
         PyDict_SetItemString(d,"wxMINOR_VERSION", PyInt_FromLong((long) wxMINOR_VERSION));
         PyDict_SetItemString(d,"wxRELEASE_NUMBER", PyInt_FromLong((long) wxRELEASE_NUMBER));
-        PyDict_SetItemString(d,"NOT_FOUND", PyInt_FromLong((long) NOT_FOUND));
+        PyDict_SetItemString(d,"wxNOT_FOUND", PyInt_FromLong((long) NOT_FOUND));
         PyDict_SetItemString(d,"wxVSCROLL", PyInt_FromLong((long) wxVSCROLL));
         PyDict_SetItemString(d,"wxHSCROLL", PyInt_FromLong((long) wxHSCROLL));
         PyDict_SetItemString(d,"wxCAPTION", PyInt_FromLong((long) wxCAPTION));