This commit was manufactured by cvs2svn to create tag
'DEBIAN_2_4_3_1_SARGE_v_2_4_2_4'. git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/tags/DEBIAN_2_4_3_1_SARGE_v_2_4_2_4@34395 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
@@ -1,23 +1,23 @@
|
||||
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||
%% Name: tunicode.tex
|
||||
%% Purpose: Overview of the Unicode support in wxWindows
|
||||
%% Purpose: Overview of the Unicode support in wxWidgets
|
||||
%% Author: Vadim Zeitlin
|
||||
%% Modified by:
|
||||
%% Created: 22.09.99
|
||||
%% RCS-ID: $Id$
|
||||
%% Copyright: (c) 1999 Vadim Zeitlin <zeitlin@dptmaths.ens-cachan.fr>
|
||||
%% Licence: wxWindows license
|
||||
%% Licence: wxWidgets license
|
||||
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||
|
||||
\section{Unicode support in wxWindows}\label{unicode}
|
||||
\section{Unicode support in wxWidgets}\label{unicode}
|
||||
|
||||
This section briefly describes the state of the Unicode support in wxWindows.
|
||||
This section briefly describes the state of the Unicode support in wxWidgets.
|
||||
Read it if you want to know more about how to write programs able to work with
|
||||
characters from languages other than English.
|
||||
|
||||
\subsection{What is Unicode?}
|
||||
|
||||
Starting with release 2.1 wxWindows has support for compiling in Unicode mode
|
||||
Starting with release 2.1 wxWidgets has support for compiling in Unicode mode
|
||||
on the platforms which support it. Unicode is a standard for character
|
||||
encoding which addresses the shortcomings of the previous, 8 bit standards, by
|
||||
using at least 16 (and possibly 32) bits for encoding each character. This
|
||||
@@ -42,12 +42,12 @@ each time a system call is made.
|
||||
|
||||
\subsection{Unicode and ANSI modes}
|
||||
|
||||
As not all platforms supported by wxWindows support Unicode (fully) yet, in
|
||||
As not all platforms supported by wxWidgets support Unicode (fully) yet, in
|
||||
many cases it is unwise to write a program which can only work in Unicode
|
||||
environment. A better solution is to write programs in such way that they may
|
||||
be compiled either in ANSI (traditional) mode or in the Unicode one.
|
||||
|
||||
This can be achieved quite simply by using the means provided by wxWindows.
|
||||
This can be achieved quite simply by using the means provided by wxWidgets.
|
||||
Basically, there are only a few things to watch out for:
|
||||
|
||||
\begin{itemize}
|
||||
@@ -81,7 +81,7 @@ string").
|
||||
|
||||
And finally, the standard preprocessor tokens enumerated above expand to ANSI
|
||||
strings but it is more likely that Unicode strings are wanted in the Unicode
|
||||
build. wxWindows provides the macros {\tt \_\_TFILE\_\_}, {\tt \_\_TDATE\_\_}
|
||||
build. wxWidgets provides the macros {\tt \_\_TFILE\_\_}, {\tt \_\_TDATE\_\_}
|
||||
and {\tt \_\_TTIME\_\_} which behave exactly as the standard ones except that
|
||||
they produce ANSI strings in ANSI build and Unicode ones in the Unicode build.
|
||||
|
||||
@@ -109,9 +109,9 @@ be done this way (try to imagine the number of {\tt \#ifdef UNICODE} an average
|
||||
program would have had!). Luckily, there is another way - see the next
|
||||
section.
|
||||
|
||||
\subsection{Unicode support in wxWindows}
|
||||
\subsection{Unicode support in wxWidgets}
|
||||
|
||||
In wxWindows, the code fragment from above should be written instead:
|
||||
In wxWidgets, the code fragment from above should be written instead:
|
||||
|
||||
\begin{verbatim}
|
||||
wxChar ch = wxT('*');
|
||||
@@ -146,7 +146,7 @@ Just let us state once again the rules:
|
||||
\item Always use {\tt wxChar} instead of {\tt char}
|
||||
\item Always enclose literal string constants in {\tt wxT()} macro unless
|
||||
they're already converted to the right representation (another standard
|
||||
wxWindows macro {\tt \_()} does it, so there is no need for {\tt wxT()} in this
|
||||
wxWidgets macro {\tt \_()} does it, so there is no need for {\tt wxT()} in this
|
||||
case) or you intend to pass the constant directly to an external function
|
||||
which doesn't accept wide-character strings.
|
||||
\item Use {\tt wxString} instead of C style strings.
|
||||
@@ -154,13 +154,13 @@ which doesn't accept wide-character strings.
|
||||
|
||||
\subsection{Unicode and the outside world}
|
||||
|
||||
We have seen that it was easy to write Unicode programs using wxWindows types
|
||||
We have seen that it was easy to write Unicode programs using wxWidgets types
|
||||
and macros, but it has been also mentioned that it isn't quite enough.
|
||||
Although everything works fine inside the program, things can get nasty when
|
||||
it tries to communicate with the outside world which, sadly, often expects
|
||||
ANSI strings (a notable exception is the entire Win32 API which accepts either
|
||||
Unicode or ANSI strings and which thus makes it unnecessary to ever perform
|
||||
any conversions in the program).
|
||||
any conversions in the program). GTK 2.0 only accepts UTF-8 strings.
|
||||
|
||||
To get a ANSI string from a wxString, you may use the
|
||||
mb\_str() function which always returns an ANSI
|
||||
@@ -175,13 +175,14 @@ the Unicode string.
|
||||
\subsection{Unicode-related compilation settings}
|
||||
|
||||
You should define {\tt wxUSE\_UNICODE} to $1$ to compile your program in
|
||||
Unicode mode. Note that it currently only works in Win32 and that some parts of
|
||||
wxWindows are not Unicode-compliant yet (ODBC classes, for example). If you
|
||||
Unicode mode. Note that it currently only works in Win32 and GTK 2.0 and
|
||||
that some parts of
|
||||
wxWidgets are not Unicode-compliant yet (ODBC classes, for example). If you
|
||||
compile your program in ANSI mode you can still define {\tt wxUSE\_WCHAR\_T}
|
||||
to get some limited support for {\tt wchar\_t} type.
|
||||
|
||||
This will allow your program to perform conversions between Unicode strings and
|
||||
ANSI ones (\helpref{wxEncodingConverter}{wxencodingconverter} depends on this
|
||||
partially) and construct wxString objects from Unicode strings (presumably read
|
||||
ANSI ones (using \helpref{wxMBConv classes}{mbconvclasses})
|
||||
and construct wxString objects from Unicode strings (presumably read
|
||||
from some external file or elsewhere).
|
||||
|
||||
|
Reference in New Issue
Block a user