]> git.saurik.com Git - wxWidgets.git/blobdiff - interface/wx/string.h
give better names to wxTextValidator::IsInCharIncludes and to wxTextValidator::IsNotI...
[wxWidgets.git] / interface / wx / string.h
index b42f6b8edd41d631742473079a3e85da94910aa8..6cb0dc695d14816b630b0846353e18186f2a38e8 100644 (file)
@@ -36,7 +36,7 @@
     for important warnings and advices for using it, please read
     the @ref overview_string.
 
-    In wxWidgets 3.0 wxString always stores Unicode strings, so you should
+    Since wxWidgets 3.0 wxString always stores Unicode strings, so you should
     be sure to read also @ref overview_unicode.
 
 
     @stdobjects
     ::wxEmptyString
 
-    @see @ref overview_string, @ref overview_unicode, wxUString
+    @see @ref overview_string, @ref overview_unicode, wxUString,
+         wxCharBuffer, wxUniChar, wxStringTokenizer, @ref group_funcmacro_string
 */
 class wxString
 {
@@ -539,7 +540,7 @@ public:
 
         @see FormatV(), Printf()
     */
-    static wxString Format(const wxChar format, ...);
+    static wxString Format(const wxString& format, ...);
 
     /**
         This static function returns the string containing the result of calling
@@ -547,7 +548,7 @@ public:
 
         @see Format(), PrintfV()
     */
-    static wxString FormatV(const wxChar format, va_list argptr);
+    static wxString FormatV(const wxString& format, va_list argptr);
 
     /**
         Returns the number of occurrences of @e ch in the string.
@@ -652,6 +653,8 @@ public:
 
     /**
         Returns @true if the string contains only ASCII characters.
+        See wxUniChar::IsAscii for more details.
+
         This is a wxWidgets 1.xx compatibility function; you should not use it in new
         code.
     */
@@ -1139,7 +1142,7 @@ public:
     //@{
     /**
         Assignment: the effect of each operation is the same as for the corresponding
-        constructor (see @ref wxString() "wxString constructors").
+        constructor (see wxString constructors).
     */
     wxString operator =(const wxString& str);
     wxString operator =(wxUniChar c);
@@ -1369,10 +1372,6 @@ inline bool operator==(const wxString& s1, const wxCharBuffer& s2);
 inline bool operator==(const wxCharBuffer& s1, const wxString& s2);
 inline bool operator!=(const wxString& s1, const wxCharBuffer& s2);
 inline bool operator!=(const wxCharBuffer& s1, const wxString& s2);
-inline wxString operator+(const wxString& string, const wxWCharBuffer& buf)
-inline wxString operator+(const wxWCharBuffer& buf, const wxString& string)
-inline wxString operator+(const wxString& string, const wxCharBuffer& buf)
-inline wxString operator+(const wxCharBuffer& buf, const wxString& string)
 
 /**
     Comparison operators with wxUniChar or wxUniCharRef.
@@ -1528,3 +1527,37 @@ public:
     */
     wxStringCharType* operator wxStringCharType *();
 };
+
+
+/** @addtogroup group_funcmacro_string */
+//@{
+
+/**
+    Allows to extend a function with the signature:
+    @code bool SomeFunc(const wxUniChar& c) @endcode
+    which operates on a single character, to an entire wxString.
+
+    E.g. if you want to check if an entire string contains only digits,
+    you can do:
+    @code
+        if (wxStringCheck<wxIsdigit>(myString))
+            ... // the entire string contains oly digits!
+        else
+            ... // at least one character of myString is not a digit
+    @endcode
+
+    @return @true if the given function returns a non-zero value for all
+            characters of the @a val string.
+*/
+template<bool (T)(const wxUniChar& c)>
+    inline bool wxStringCheck(const wxString& val)
+    {
+        for ( wxString::const_iterator i = val.begin();
+              i != val.end();
+              ++i )
+            if (T(*i) == 0)
+                return false;
+        return true;
+    }
+
+//@}