]> git.saurik.com Git - wxWidgets.git/blobdiff - interface/wx/chartype.h
undo the last change as it results in buildbot configuration error
[wxWidgets.git] / interface / wx / chartype.h
index af71092399929d06fe28edaa0b3130e9b32a4165..59c51e82324fec4b0080e96afe98d4bcf031ce29 100644 (file)
@@ -6,39 +6,47 @@
 // Licence:     wxWindows license
 /////////////////////////////////////////////////////////////////////////////
 
-/** @ingroup group_funcmacro_string */
+/** @addtogroup group_funcmacro_string */
 //@{
 
 /**
     This macro can be used with character and string literals (in other words,
-    @c 'x' or @c "foo") to automatically convert them to Unicode in Unicode
-    builds of wxWidgets. This macro is simply returns the value passed to it
+    @c 'x' or @c "foo") to automatically convert them to wide strings in Unicode
+    builds of wxWidgets. This macro simply returns the value passed to it
     without changes in ASCII build. In fact, its definition is:
 
-@code
-#ifdef UNICODE
-#   define wxT(x) L ## x
-#else // !Unicode
-#   define wxT(x) x
-#endif
-@endcode
+    @code
+    #ifdef UNICODE
+    #   define wxT(x)  L##x
+    #else // !Unicode
+    #   define wxT(x)  x
+    #endif
+    @endcode
 
-    @see @ref overview_unicode
+    Note that since wxWidgets 2.9.0 you shouldn't use wxT() anymore in your
+    program sources (it was previously required if you wanted to support Unicode).
+
+    @see @ref overview_unicode, wxS()
 
     @header{wx/chartype.h}
 */
 #define wxT(string)
 
 /**
-    wxS is macro which can be used with character and string literals to either
-    convert them to wide characters or strings in @c wchar_t-based Unicode
-    builds or keep them unchanged in UTF-8 builds. The use of this macro is
-    optional as the translation will always be done at run-time even if there
-    is a mismatch between the kind of the literal used and string or character
-    type used in the current build, but using it can be beneficial in
-    performance-sensitive code to do the conversion at compile-time instead.
+    wxS is macro which can be used with character and string literals (in other words,
+    @c 'x' or @c "foo") to either convert them to wide characters or wide strings
+    in @c wchar_t-based (UTF-16) builds or keep them unchanged in @c char-based
+    (UTF-8) builds.
+
+    Basically this macro produces characters or strings of type wxStringCharType.
+
+    The use of this macro is optional as the translation will always be done at
+    run-time even if there is a mismatch between the kind of the literal used
+    and the string or character type used in the current build.
+    However using it can be beneficial in <b>performance-sensitive code</b> to
+    do the conversion at compile-time instead.
 
-    @see wxT()
+    @see @ref overview_unicode, wxT()
 
     @header{wx/chartype.h}
 */
 
     Don't confuse this macro with _()!
 
+    Note that since wxWidgets 2.9.0 the use of _T() is discouraged just like for wxT().
+
     @header{wx/chartype.h}
 */
 #define _T(string)
 
+/**
+    wxChar is defined to be
+    - @c char when <tt>wxUSE_UNICODE==0</tt>
+    - @c wchar_t when <tt>wxUSE_UNICODE==1</tt> (the default).
+*/
+typedef wxUSE_UNICODE_dependent wxChar;
+
+/**
+    wxSChar is defined to be
+    - <tt>signed char</tt> when <tt>wxUSE_UNICODE==0</tt>
+    - @c wchar_t when <tt>wxUSE_UNICODE==1</tt> (the default).
+*/
+typedef wxUSE_UNICODE_dependent wxSChar;
+
+/**
+    wxUChar is defined to be
+    - <tt>unsigned char</tt> when <tt>wxUSE_UNICODE==0</tt>
+    - @c wchar_t when <tt>wxUSE_UNICODE==1</tt> (the default).
+*/
+typedef wxUSE_UNICODE_dependent wxUChar;
+
+/**
+    wxStringCharType is defined to be:
+    - @c char when <tt>wxUSE_UNICODE==0</tt>
+    - @c char when <tt>wxUSE_UNICODE_WCHAR==0</tt> and <tt>wxUSE_UNICODE==1</tt>
+    - @c wchar_t when <tt>wxUSE_UNICODE_WCHAR==1</tt> and <tt>wxUSE_UNICODE==1</tt>
+
+    The @c wxUSE_UNICODE_WCHAR symbol is defined to @c 1 when building on
+    Windows while it's defined to @c 0 when building on Unix, Linux or OS X.
+    (Note that @c wxUSE_UNICODE_UTF8 symbol is defined as the opposite of
+    @c wxUSE_UNICODE_WCHAR.)
+
+    Note that wxStringCharType (as the name says) is the type used by wxString
+    for internal storage of the characters.
+*/
+typedef wxUSE_UNICODE_WCHAR_dependent wxStringCharType;
+
 //@}