X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/4eb438cf7c42d5ceaa60b55048b5d0dc36c3986b..bb356c9ea78919fbc01e19c36bb925c80abb68a4:/include/wx/string.h diff --git a/include/wx/string.h b/include/wx/string.h index 24a6585e4d..ee258c42b9 100644 --- a/include/wx/string.h +++ b/include/wx/string.h @@ -63,7 +63,7 @@ #ifdef HAVE_STRINGS_H #include // for strcasecmp() -#endif // AIX +#endif // HAVE_STRINGS_H #include "wx/defs.h" // everybody should include this #include "wx/wxchar.h" // for wxChar @@ -139,6 +139,8 @@ inline int Stricmp(const char *psz1, const char *psz2) return stricmp(psz1, psz2); #elif defined(__WATCOMC__) return stricmp(psz1, psz2); +#elif defined(__DJGPP__) + return stricmp(psz1, psz2); #elif defined(__EMX__) return stricmp(psz1, psz2); #elif defined(__WXPM__) @@ -1024,6 +1026,12 @@ public: // get last item wxString& Last() const { wxASSERT( !IsEmpty() ); return Item(Count() - 1); } + // 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; + // 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 @@ -1035,6 +1043,8 @@ public: size_t Add(const wxString& str); // add new element at given position void Insert(const wxString& str, size_t uiIndex); + // expand the array to have count elements + void SetCount(size_t count); // remove first item matching this value void Remove(const wxChar *sz); // remove item by index @@ -1080,6 +1090,25 @@ public: { Copy(array); } }; +// ---------------------------------------------------------------------------- +// wxStringBuffer: a tiny class allowing to get a writable pointer into string +// ---------------------------------------------------------------------------- + +class WXDLLEXPORT wxStringBuffer +{ +public: + wxStringBuffer(wxString& str, size_t lenWanted = 1024) + : m_str(str) { m_buf = m_str.GetWriteBuf(lenWanted); } + + ~wxStringBuffer() { m_str.UngetWriteBuf(); } + + operator wxChar*() const { return m_buf; } + +private: + wxString& m_str; + wxChar *m_buf; +}; + // --------------------------------------------------------------------------- // wxString comparison functions: operator versions are always case sensitive // ---------------------------------------------------------------------------