]> git.saurik.com Git - wxWidgets.git/blobdiff - include/wx/string.h
trying to fix memory leak in wxListCtrl (attributes not deleted)
[wxWidgets.git] / include / wx / string.h
index b0605d99a5bdd6427372d1a3b94c8ee4b03a72d4..1b0c138ea923d5d4a9958c548a04d6486f2357fc 100644 (file)
 // constants
 // ----------------------------------------------------------------------------
 
+#if defined(__VISAGECPP__) && __IBMCPP__ >= 400
+// must define this static for VA or else you get multiply defined symbols everywhere
+extern const unsigned int wxSTRING_MAXLEN;
+
+#else
 // maximum possible length for a string means "take all string" everywhere
 //  (as sizeof(StringData) is unknown here, we substract 100)
 const unsigned int wxSTRING_MAXLEN = UINT_MAX - 100;
 
+#endif
+
 // ----------------------------------------------------------------------------
 // global data
 // ----------------------------------------------------------------------------
@@ -280,7 +287,9 @@ private:
   //
   // try `s << i' or `s.Printf("%d", i)' instead
   wxString(int);
+  wxString(unsigned int);
   wxString(long);
+  wxString(unsigned long);
 
 public:
   // constructors and destructor
@@ -511,6 +520,8 @@ public:
     // append count copies of given character
   wxString& Append(wxChar ch, size_t count = 1u)
     { wxString str(ch, count); return *this << str; }
+  wxString& Append(const wxChar* psz, size_t nLen)
+    { ConcatSelf(nLen, psz); return *this; }
 
     // prepend a string, return the string itself
   wxString& Prepend(const wxString& str)
@@ -530,11 +541,23 @@ public:
 
   // stream-like functions
       // insert an int into string
-  wxString& operator<<(int i);
+  wxString& operator<<(int i)
+    { return (*this) << Format(_T("%d"), i); }
+      // insert an unsigned int into string
+  wxString& operator<<(unsigned int ui)
+    { return (*this) << Format(_T("%u"), ui); }
+      // insert a long into string
+  wxString& operator<<(long l)
+    { return (*this) << Format(_T("%ld"), l); }
+      // insert an unsigned long into string
+  wxString& operator<<(unsigned long ul)
+    { return (*this) << Format(_T("%lu"), ul); }
       // insert a float into string
-  wxString& operator<<(float f);
+  wxString& operator<<(float f)
+    { return (*this) << Format(_T("%f"), f); }
       // insert a double into string
-  wxString& operator<<(double d);
+  wxString& operator<<(double d)
+    { return (*this) << Format(_T("%g"), d); }
 
   // string comparison
     // case-sensitive comparison (returns a value < 0, = 0 or > 0)
@@ -630,6 +653,11 @@ public:
     // as vprintf(), returns the number of characters written or < 0 on error
   int PrintfV(const wxChar* pszFormat, va_list argptr);
 
+    // returns the string containing the result of Printf() to it
+  static wxString Format(const wxChar *pszFormat, ...);
+    // the same as above, but takes a va_list
+  static wxString FormatV(const wxChar *pszFormat, va_list argptr);
+
   // 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
@@ -642,6 +670,7 @@ public:
   wxChar *GetWriteBuf(size_t nLen);
     // call this immediately after GetWriteBuf() has been used
   void UngetWriteBuf();
+  void UngetWriteBuf(size_t nLen);
 
   // wxWindows version 1 compatibility functions