// 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;
+
//@}