]> git.saurik.com Git - wxWidgets.git/blame - docs/doxygen/overviews/changes_since28.h
don't change brush settings in SetBackgroundMode(), it is only supposed to affect...
[wxWidgets.git] / docs / doxygen / overviews / changes_since28.h
CommitLineData
cc506697
VZ
1/////////////////////////////////////////////////////////////////////////////
2// Name: changes_since28.h
3// Purpose: topic overview
4// Author: Vadim Zeitlin
5// Created: 2008-05-08
6// RCS-ID: $Id$
7// Licence: wxWindows license
8/////////////////////////////////////////////////////////////////////////////
9
10/**
11
12@page overview_changes_since28 Changes Since wxWidgets 2.8
13
14This topic describes backwards-incompatible changes in wxWidgets 3.0 compared
15to the last stable release.
16
17The incompatible changes can be grouped into the following categories:
18
19@li @ref overview_changes_unicode
20@li @ref overview_changes_other
21
22
23<hr>
24
25@section overview_changes_unicode Unicode-related Changes
26
27If you used Unicode build of wxWidgets 2.8 or previous version, please read
28@ref overview_unicode for the details about how the API changed in 3.0 as a lot
29of the information which was correct before doesn't apply any longer.
30
31For example, the notorious (due to the confusion they created) macros @c wxT()
32and @c _T() are not needed at all any longer. Basically, you can remove them
33from any code which used them. On the other hand, there is no particular harm
34in leaving them neither as the code will still compile and work correctly --
35you only need to remove them if you think that your code looks tidier without
36them. You also don't need to use @c wxChar any longer but can directly use the
37standard @c wchar_t type even if, again, @c wxChar continues to work.
38
39The most serious backwards-incompatible change is related to the change of
40return type of wxString::c_str() method: it returns a special proxy object
41instead of a simple @c char* or @c wchar_t* now. Because of this, you cannot
42pass its result to any standard vararg functions such as @c printf() any more
43as described in @ref overview_unicode_compilation_errors. All wxWidgets
44functions, such as wxPrintf(), wxLogMessage() &c still work with it, but
45passing it to @c printf() will now result in a crash. It is strongly advised to
46recompile your code with a compiler warning about passing non-POD objects to
47vararg functions, such as g++.
48
49The other class of incompatible changes is due to modifying some virtual
50methods to use @c wxString parameters instead of @c const @c wxChar* ones to
51make them accept both narrow and wide strings. This is not a problem if you
52simply call these functions but you need to change the signature of the derived
53class versions if you override them as otherwise they wouldn't be called any
54more. Again, the best way to ensure that this problem doesn't arise is to
55rebuild your code using a compiler which warns about function signature
56mismatch (you can use @c -Woverloaded-virtual g++ option).
57
58Finally, a few structure fields, notable @c wxCmdLineEntryDesc::shortName,
59@c longName and @c description fields have been changed to be of type @c const
60@c char* instead of @c const @c wxChar* so you will need to remove @c wxT() or
61@c _T() if you used it with their initializers.
62
63@section overview_changes_other Miscellaneous Other Changes
64
65Please see @c docs/changes.txt for details of the other changes until they are
66described in more details here.
67
68*/
69