]> git.saurik.com Git - wxWidgets.git/blame - interface/wx/chartype.h
Better name for wxXmlResource::GetDirection() argument.
[wxWidgets.git] / interface / wx / chartype.h
CommitLineData
23324ae1 1/////////////////////////////////////////////////////////////////////////////
7c913512 2// Name: chartype.h
e54c96f1 3// Purpose: interface of global functions
7c913512 4// Author: wxWidgets team
526954c5 5// Licence: wxWindows licence
7c913512
FM
6/////////////////////////////////////////////////////////////////////////////
7
b21126db 8/** @addtogroup group_funcmacro_string */
7c913512 9//@{
3950d49c 10
23324ae1 11/**
3950d49c 12 This macro can be used with character and string literals (in other words,
fde96a2f
FM
13 @c 'x' or @c "foo") to automatically convert them to wide strings in Unicode
14 builds of wxWidgets. This macro simply returns the value passed to it
3950d49c 15 without changes in ASCII build. In fact, its definition is:
23324ae1 16
6ac7ddd3
FM
17 @code
18 #ifdef UNICODE
19 # define wxT(x) L##x
20 #else // !Unicode
21 # define wxT(x) x
22 #endif
23 @endcode
3950d49c 24
d5742c23 25 Note that since wxWidgets 2.9.0 you shouldn't use wxT() anymore in your
6ac7ddd3 26 program sources (it was previously required if you wanted to support Unicode).
d5742c23 27
fde96a2f 28 @see @ref overview_unicode, wxS()
3950d49c
BP
29
30 @header{wx/chartype.h}
31*/
32#define wxT(string)
23324ae1 33
9204fde6
VZ
34/**
35 Compatibility macro which expands to wxT() in wxWidgets 2 only.
36
c3b8a196
VZ
37 This macro can be used in code which needs to compile with both
38 wxWidgets 2 and 3 versions, in places where the wx2 API requires a Unicode string
39 (in Unicode build) but the wx3 API only accepts a standard narrow
40 string, as in e.g. wxCmdLineEntryDesc structure objects initializers.
9204fde6
VZ
41
42 Example of use:
43 @code
44 const wxCmdLineEntryDesc cmdLineDesc[] =
45 {
46 { wxCMD_LINE_SWITCH, wxT_2("q"), wxT_2("quiet"),
47 wxT_2("Don't output verbose messages") },
48 wxCMD_LINE_DESC_END
49 };
50 @endcode
51
c3b8a196
VZ
52 Without @c wxT_2 the code above wouldn't compile with wxWidgets 2, but using @c
53 wxT instead, it wouldn't compile with wxWidgets 3.
9204fde6
VZ
54
55 @see wxT()
56
c3b8a196
VZ
57 @since 2.8.12, 2.9.2
58
9204fde6
VZ
59 @header{wx/chartype.h}
60 */
c3b8a196 61#define wxT_2(string)
9204fde6 62
23324ae1 63/**
c3b8a196
VZ
64 wxS is a macro which can be used with character and string literals (in other words,
65 @c 'x' or @c "foo") to convert them either to wide characters or wide strings
66 in @c wchar_t-based (UTF-16) builds, or to keep them unchanged in @c char-based
fde96a2f 67 (UTF-8) builds.
7c913512 68
d5742c23
FM
69 Basically this macro produces characters or strings of type wxStringCharType.
70
fde96a2f
FM
71 The use of this macro is optional as the translation will always be done at
72 run-time even if there is a mismatch between the kind of the literal used
73 and the string or character type used in the current build.
74 However using it can be beneficial in <b>performance-sensitive code</b> to
75 do the conversion at compile-time instead.
76
77 @see @ref overview_unicode, wxT()
3950d49c
BP
78
79 @header{wx/chartype.h}
23324ae1 80*/
3950d49c
BP
81#define wxS(string)
82
83/**
84 This macro is exactly the same as wxT() and is defined in wxWidgets simply
85 because it may be more intuitive for Windows programmers as the standard
86 Win32 headers also define it (as well as yet another name for the same
87 macro which is _TEXT()).
88
89 Don't confuse this macro with _()!
23324ae1 90
9a83f860
VZ
91 Note that since wxWidgets 2.9.0 the use of _T() is discouraged just like
92 for wxT() and also that this macro may conflict with identifiers defined in
93 standard headers of some compilers (such as Sun CC) so its use should
94 really be avoided.
6ac7ddd3 95
3950d49c
BP
96 @header{wx/chartype.h}
97*/
98#define _T(string)
99
fde96a2f
FM
100/**
101 wxChar is defined to be
37467663
VZ
102 \- @c char when <tt>wxUSE_UNICODE==0</tt>
103 \- @c wchar_t when <tt>wxUSE_UNICODE==1</tt> (the default).
fde96a2f
FM
104*/
105typedef wxUSE_UNICODE_dependent wxChar;
106
107/**
108 wxSChar is defined to be
37467663
VZ
109 \- <tt>signed char</tt> when <tt>wxUSE_UNICODE==0</tt>
110 \- @c wchar_t when <tt>wxUSE_UNICODE==1</tt> (the default).
fde96a2f
FM
111*/
112typedef wxUSE_UNICODE_dependent wxSChar;
113
114/**
115 wxUChar is defined to be
37467663
VZ
116 \- <tt>unsigned char</tt> when <tt>wxUSE_UNICODE==0</tt>
117 \- @c wchar_t when <tt>wxUSE_UNICODE==1</tt> (the default).
fde96a2f
FM
118*/
119typedef wxUSE_UNICODE_dependent wxUChar;
120
121/**
122 wxStringCharType is defined to be:
37467663
VZ
123 \- @c char when <tt>wxUSE_UNICODE==0</tt>
124 \- @c char when <tt>wxUSE_UNICODE_WCHAR==0</tt> and <tt>wxUSE_UNICODE==1</tt>
125 \- @c wchar_t when <tt>wxUSE_UNICODE_WCHAR==1</tt> and <tt>wxUSE_UNICODE==1</tt>
fde96a2f
FM
126
127 The @c wxUSE_UNICODE_WCHAR symbol is defined to @c 1 when building on
128 Windows while it's defined to @c 0 when building on Unix, Linux or OS X.
d5742c23
FM
129 (Note that @c wxUSE_UNICODE_UTF8 symbol is defined as the opposite of
130 @c wxUSE_UNICODE_WCHAR.)
fde96a2f 131
d5742c23
FM
132 Note that wxStringCharType (as the name says) is the type used by wxString
133 for internal storage of the characters.
fde96a2f
FM
134*/
135typedef wxUSE_UNICODE_WCHAR_dependent wxStringCharType;
136
3950d49c 137//@}