]> git.saurik.com Git - wxWidgets.git/blame - docs/changes.txt
Script updates
[wxWidgets.git] / docs / changes.txt
Content-type: text/html ]> git.saurik.com Git - wxWidgets.git/blame - docs/changes.txt


500 - Internal Server Error

Malformed UTF-8 character (fatal) at /usr/lib/x86_64-linux-gnu/perl5/5.40/HTML/Entities.pm line 485, <$fd> line 2449.
CommitLineData
c4839ccf
JS
1------------------------
2wxWidgets 2.5 Change Log
3------------------------
d643b80e
VZ
4
5INCOMPATIBLE CHANGES SINCE 2.4.x
6================================
7
e441e1f4
VZ
8 Please take a few minutes to read the following list, especially
9 paying attention to the most important changes which are marked
10 with '!' in the first column.
11
12 Also please note that you should ensure that WXWIN_COMPATIBILITY_2_4
13 is defined to 1 if you wish to retain maximal compatibility with 2.4
14 series.
15
16! windows are no longer fully repainted when resized, use new style
44db04e4 17 wxFULL_REPAINT_ON_RESIZE to force this (wxNO_FULL_REPAINT_ON_RESIZE still
e441e1f4
VZ
18 exists but doesn't do anything any more, this behaviour is default now)
19
a2bd1520 20! wxWindow::m_font and m_backgroundColour/m_foregroundColour are no longer
495f877d
RD
21 always set, use GetFont(), GetBack/ForegroundColour() to access
22 them, and they will be dynamically determined if necessary.
23
24
25! The Sizers have had some fundamental internal changes in the 2.5.2
26 and 2.5.3 releases intended to make them do more of the "Right
27 Thing" but also be as backwards compatible as possible. First a bit
28 about how things used to work:
29
30 * The size that a window had when Add()ed to the sizer was assumed
31 to be its minimal size, and that size would always be used by
32 default when calculating layout size and positions, and the
33 sizer itself would keep track of that minimal size.
34
35 * If the window item was Add()ed with the wxADJUST_MINSIZE flag
36 then when layout was calculated the item's GetBestSize would be
37 used to reset the minimal size that the sizer used.
38
39 The main thrust of the new Sizer changes was to make behaviour like
40 wxADJUST_MINSIZE be the default, and also to push the tracking of
41 the minimal size to the window itself (since it knows its own needs)
42 instead of having the sizer take care of it. Consequently these
43 changes were made:
44
45 * The wxFIXED_MINSIZE flag was added to allow for the old
46 behaviour. When this flag is used the size a window has when
47 Add()ed to the sizer will be treated as its minimal size and it
48 will not be readjusted on each layout.
49
50 * The min size stored in wxWindow and settable with SetSizeHints or
51 SetMinSize will by default be used by the sizer (if it was set)
52 as the minimal size of the sizer item. If the minsize was not
53 set (or was only partially set) then the window's best size is
54 fetched and it is used instead of (or blended with) the minsize.
55 wxWindow:GetBestFittingSize was added to facilitate getting the
56 size to be used by the sizers.
57
58 * The best size of a window is cached so it doesn't need to
59 recaculated on every layout. wxWindow::InvalidateBestSize was
60 added and should be called (usually just internally in control
61 methods) whenever something is done that would make the best
62 size change.
63
64 * All wxControls were changed to set the minsize to what is passed
65 to the constructor or Create method, and also to set the real
66 size of the control to the blending of the minsize and bestsize.
67 wxWindow::SetBestFittingSize was added to help with this,
68 although most controls don't need to call it directly because it
69 is called indirectly via the SetInitialSize called in the base
70 classes.
71
72 At this time, the only situation known not to work the same as
73 before is the following:
74
f5e0b4bc
WS
75 win = new SomeWidget(parent);
76 win->SetSize(SomeNonDefaultSize);
77 sizer->Add(win);
495f877d
RD
78
79 In this case the old code would have used the new size as the
80 minimum, but now the sizer will use the default size as the minimum
81 rather than the size set later. It is an easy fix though, just move
82 the specification of the size to the constructor (assuming that
83 SomeWidget will set its minsize there like the rest of the controls
84 do) or call SetMinSize instead of SetSize.
85
86 In order to fit well with this new scheme of things, all wxControls
87 or custom controls should do the following things. (Depending on
88 how they are used you may also want to do the same thing for
89 non-control custom windows.)
90
91 * Either override or inherit a meaningful DoGetBestSize method
92 that calculates whatever size is "best" for the control. Once
93 that size is calculated then there should normally be a call to
94 CacheBestSize to save it for later use, unless for some reason
95 you want the best size to be recalculated on every layout.
96
97 * Any method that changes the attributes of the control such that
98 the best size will change should call InvalidateBestSize so it
99 will be recalculated the next time it is needed.
100
101 * The control's constructor and/or Create method should ensure
102 that the minsize is set to the size passed in, and that the
103 control is sized to a blending of the min size and best size.
104 This can be done by calling SetBestFittingSize.
105
a2bd1520 106
e441e1f4 107
9b9d4651
VZ
108- no initialization/cleanup can be done in wxApp/~wxApp because they are
109 now called much earlier/later than before; please move any exiting code
110 from there to wxApp::OnInit()/OnExit()
fba61bdf 111- also, OnExit() is not called if OnInit() fails
527bbb39 112- finally the program exit code is OnRun() return value, not OnExit() one
26ab89ad 113- wxTheApp can't be assigned to any longer, use wxApp::SetInstance() instead
32b38f99 114- wxFileType::GetIcon() returns wxIconLocation, not wxIcon
bfdc04a9 115- wxColourDatabase is not a wxList any more, use AddColour to add new colours
5da0803c 116- wxWindow::Clear() is now called ClearBackground()
480e5897 117- pointer returned by wxFont::GetNativeFontInfo() must not be deleted now
bfdc04a9 118- wxMouseEvent::Moving() doesn't return true if mouse is being dragged any more
bfdc04a9
VZ
119- (most) controls now inherit parents colours by default, override
120 ShouldInheritColours() to return false if you don't want this to happen
dfcb9d7c 121- wxApp::SendIdleEvent() now takes 2 arguments
d366db96
MB
122- wxTabView::GetLayers() changed return type from wxList& to wxTabLayerList&
123 (when WXWIN_COMPATIBILITY_2_4 == 0)
6e76b35d 124- wxID_SEPARATOR (id used for the menu separators) value changed from -1 to -2
25959b95 125- wxGetNumberFromUser() is now in separate wx/numdlg.h, not wx/textdlg.h
d99957b6
VZ
126- wxChoice and wxCombobox now handle their size in the same way as in all the
127 other ports under MSW, new code is actually correct but different from weird
128 stuff they were doing before so the behaviour of your programs might change
1e6d9c20
VS
129- wxTaskBarIcon objects must now be destroyed before the application can exit.
130 Previously, the application terminated if there were no top level windows;
131 now it terminates if there are no top level windows or taskbar icons left.
4c68a102
VS
132- wxZlibInputStream is not by default compatible with the output of the
133 2.4.x version of wxZlibOutputStream. However, there is a compatibilty mode,
134 switched on by passing wxZLIB_24COMPATIBLE to the constructor.
6e86701b
MB
135- when WXWIN_COMPATIBILITY_2_4 == 0 wxHashTable uses a new implementation
136 not using wxList keyed interface (the same used when wxUSE_STL == 1),
137 the only incompatibility being that Next() returns a wxHashTable::Node*
138 instead of a wxNode*.
55e9fa68 139- non-const wxDC methods GetBackground(), GetBrush(), GetFont() and GetPen()
90287048
VS
140 as well as wxWindow methods GetFont() and GetCursor() don't exist any more,
141 please fix your code -- it never worked correctly anyhow if you modified the
142 objects returned by these methods so you should simply switch to using const
143 methods.
87fb0be4 144- wxWindow::GetFont() now returns wxFont object instead of reference
e1633ef9
VS
145- EVT_XXX macros are now type-safe; code that uses wrong type for event
146 handler's argument will no longer compile.
daf32463
WS
147- Identical functionality of wxFileDialog::ParseWildcard,
148 wxGenericDirCtrl::ParseFilter, Motif and MSW parsing native dialogs
149 is now accessible in ::wxParseCommonDialogsFilter
0f9dff88 150- wxNotebookSizer and wxBookCtrlSizer are now deprecated -- they are no longer
adbf2d73
VS
151 needed, you can treat wxNotebook as any other control and put it directly
152 into the sizer that was wxNotebookSizer's parent sizer in old code.
6294ac2e
VZ
153- wxFile methods now return wxFileOffset which may be a 64 bit integer type,
154 even on 32 bit platforms, instead of off_t and so the return value of
155 wxFile::Length(), for example, shouldn't be assigned to off_t variable any
156 more (the compiler might warn you about this).
0d01dd51
VZ
157- wxListItem::m_data is now of type wxUIntPtr, not long, for compatibility
158 with 64 bit systems
5e2ab1ea 159
09c6a817 160
9b9d4651
VZ
161DEPRECATED METHODS SINCE 2.4.x
162==============================
09c6a817 163
fc2171bd 164Deprecated methods may still be used but will disappear in future wxWidgets
09c6a817
VZ
165versions, please update your code to not use them.
166
7af6b69e 167- wxDocManager::GetNoHistoryFiles() renamed to GetHistoryFilesCount()
09c6a817
VZ
168- wxSizer::Remove(wxWindow *), use Detach() instead [it is more clear]
169- wxSizer::Set/GetOption(): use Set/GetProportion() instead
170- wxKeyEvent::KeyCode(): use GetKeyCode instead
171- wxList::Number, First, Last, Nth: use GetCount, GetFirst/Last, Item instead
172- wxNode::Next, Previous, Data: use GetNext, GetPrevious, GetData instead
173- wxListBase::operator wxList&(): use typesafe lists instead
ba8c1601
MB
174- wxTheFontMapper: use wxFontMapper::Get() instead
175- wxStringHashTable: use wxHashMap instead
176- wxHashTableLong: use wxHashMap instead
fc2171bd 177- wxArrayString::GetStringArray: use wxCArrayString or alternative wxWidgets
584ad2a3 178 methods taking wxArrayString
ba8c1601 179- wxArrayString::Remove(index, count): use RemoveAt instead
df3b5898 180- wxTreeItemId conversion to long is deprecated and shouldn't be used
207e6243
VZ
181- wxTreeCtrl::GetFirst/NextChild() 2nd argument now has type wxTreeItemIdValue
182 and not long, please change declarations of "cookie"s in your code
183 accordingly -- otherwise your code won't work on 64 bit platforms
35821d8f
VZ
184- [MSW only] wxWindow::GetUseCtl3D(), GetTransparentBackground() and
185 SetTransparent() as well as wxNO_3D and wxUSER_COLOURS styles
080a7b20 186- wxList keyed interface: use wxHashMap instead
dfcb9d7c 187- wxColourDatabase::FindColour(): use Find() instead (NB: different ret type)
d366db96
MB
188- wxHashTable::Next: use wxHashTable::Node* or
189 wxHashTable::compatibility_iterator to store the return
190 value
4a3990e2 191- wxWave class; use wxSound instead
ba443432
JS
192- The wxHIDE_READONLY flag for wxFileDialog was not implemented
193 and has now been removed
6bba4b8a 194- wxTaskBarIcon::OnXXX() virtual methods: use events instead
8e254d94 195- obsolete and not used wxUSE_GENERIC_DIALOGS_IN_MSW has been removed
b4e0b521 196- wxDbTable::wxDbTable with wxChar* deprecated, same with wxString& instead
dfcb9d7c 197
7af6b69e 198
d643b80e
VZ
199OTHER CHANGES
200=============
201
19b65a30
VZ
2022.5.4
203-----
204
205Unix:
206
207- wxPuts() now correctly outputs trailing new line in Unicode build
208
33d4eef0
VS
2092.5.3
210-----
211
00bcc185
VS
212All:
213
6294ac2e 214- support for huge (>2 Gb) files (Tim Kosse)
00bcc185 215- number of fixes to wxPluginManager (Rick Brice, Hans Van Leemputten)
0c2a5de2 216- fixed memory leak in wxURL when using a proxy (Steven Van Ingelgem)
8cc00d5f 217- fixed bug in wxDateTime::Set(jdn) when DST was in effect
051aa330 218- fixed fatal bug in wxString when wxUSE_STL==1 (Kurt Granroth)
dbea9b70
VS
219- support msgids in charsets other than C and languages other than English
220 (based on patch by Stefan Kowski)
08873d36 221- added wxMicroSleep() and wxMilliSleep() replacing deprecated wxUsleep()
bfa7bf7d 222- basic UDP sockets support (Lenny Maiorani)
2c622d71 223- fixed wxDateTime::GetWeekDayName() for some dates (Daniel Kaps)
14236c1b 224- deprecated wxDateTime::SetToTheWeek() in favour of SetToWeekOfYear()
e2454588
VZ
225- active mode support in wxFTP (Randall Fox)
226- sped up wxHTTP and wxFTP
121fa06a 227- added wxStringInput/OutputStreams
a121d720 228- added wxFileConfig::Save(wxOutputStream)
06386448 229- fixed wxString's behavior with inserted null characters
00bcc185 230
dae73d74
VS
231All (GUI):
232
a24de76b 233- added wxWindow::MoveBefore/AfterInTabOrder() to change tab navigation order
607667fd
RN
234- added wxTaskBarIcon::CreatePopupMenu which is now the recommended way
235 of showing a popup menu; calling wxTaskBarIcon::PopupMenu directly
dae73d74 236 is discouraged
a24de76b 237- added ..._CMD_...(id) variants for wxGrid event table entry macros
857069f0 238- added wxWindow::Navigate for programmatic navigation to the next control
0d9b2c16
VZ
239- wxTextCtrl::OnChar now inserts a tab character if wxTE_PROCESS_TAB is set
240- added wxKeyEvent::GetUnicodeKey()
a2bd1520 241- added wxKeyEvent::CmdDown() and wxMouseEvent::CmdDown()
8158e0e1 242- implemented wxListCtrl::FindItem() for non-MSW (Robin Stoll)
c2919ab3 243- added status bar fields styles support (Tim Kosse)
857069f0
DS
244- added convenience functions wxSizer::AddSpacer() and
245 wxSizer::AddStretchSpacer() (as well as Prepend and Insert variants)
fd945da0 246- added samples/splash
401e3b6e 247- added support for stock buttons
dc92adaf 248- added wxTopLevelWindow::RequestUserAttention()
8b2bac62
WS
249- support for comma in contrib gizmo wxLEDNumberCtrl (Grant Likely)
250- recursive wxSizer::Show for subsizer and return value if element was found
f5e0b4bc 251- added wxChoicebook control
2c5ef4e2 252- smoother time estimation updates in wxProgressDialog (Christian Sturmlechner)
f5de33e9 253- the XRC contrib library was moved to the core
1f30c176 254- wx(Choice/List/Note)book controls send CHANG(ED/ING) events in SetSelection
544229d1 255- it is now possible to create a wxFont with given size in pixels (d2walter)
6b30a44e 256- added wxTopLevelWindow::IsActive()
a121d720
VZ
257- wxSystemSettings::GetMetric now returns -1 for metrics that are not
258 supported, instead of zero.
dae73d74 259
33d4eef0
VS
260Unix:
261
262- wxTaskBarIcon now supports freedesktop.org System Tray protocol
0a8d9df6 263- security fixes to wxSingleInstanceChecker
8708fa76 264- wx-config script was modified to allow choosing from multiple installed
224bf05c
VZ
265 builds of wxWidgets and to return flags/libs for selected libraries only
266- wx-config has new --version-full option
33d4eef0 267
06386448 268wxCocoa:
3da9181e 269
06386448
RN
270- added Unicode compatability layer for OSX 10.2
271- fixed so that wxCocoa runs in OSX 10.2
272- Tooltips now supported
273- wxSound now supported
274- wxDisplay now supported
275- Some stock cursors now supported
3da9181e 276
2006289b 277wxMac:
607667fd 278
06386448
RN
279- fixed MLTE text control GetLineText and GetLineLength on OSX
280- added OSX wxTaskBarIcon implementation for the OSX Dock
281- added Unicode compatability layer for OSX 10.2
282- wxGetKeyState now works with nearly all wx key codes
607667fd 283
bbce0c0c
VS
284wxGTK:
285
692c9b86
VZ
286- wxGTK uses GTK+ 2.x by default now, you have to pass --disable-gtk2 to
287 configure if you want to use GTK+ 1.2
f40fdaa3 288- fixed many rendering artifacts and wrong colours with lots of GTK+ themes
dae73d74 289- implemented wxColourDialog as native dialog
692c9b86 290- implemented wxTextCtrl::HitTest() (GTK+ >= 2)
1ce52aa6 291- implemented wxTextCtrl::ScrollLines() and ScrollPages for GTK+ 2.x
1a4088e1 292- wxTreeCtrl::GetCount() counts root as well now (compatible with MSW)
4dcccda6 293- added support for wxCHK_3STATE style (GTK2 only)
1dbeee57 294- implemented text underlining under GTK2
2be125e6 295- implemented wxFRAME_NO_TASKBAR style (GTK >= 2.2)
44fd6f72
VS
296- implemented support for wxSYS_DCLICK_?, wxSYS_DRAG_? and wxSYS_CURSOR_?
297 in wxSystemSettings::GetMetric (Mart Raudsepp)
d8e1fe80
VS
298- implemented wxTopLevel::IsMaximized() for GTK+2 and WMs that implement
299 freedesktop.org's wm-spec (Mart Raudsepp)
fe51e08c 300- wxEVT_CONTEXT_MENU is now generated for right mouse press, not release
feac7937 301- implemented alpha channel support in wxBitmap
b5ab476a
VS
302- added native GTK+2 wxArtProvider implementation with ability to load
303 icons from icon theme in addition to recognized stock art
e1ff9329 304- fixed crash on 64 bit platforms (Paul Cornett)
bbce0c0c 305
f8ab089a
MB
306wxMotif:
307
0d9b2c16 308- added support for wxCHK_3STATE style (3 state checkbox)
f8ab089a 309
60c315ca
VS
310wxMSW:
311
312- fixed UNC paths handling in wxFileSystem (Daniel Nash)
0d9b2c16 313- set wxKeyEvent::m_uniChar in Unicode build
92661f97 314- support for alpha channel in toolbar bitmaps (Jurgen Doornik)
0b11099d 315- wxFileDialog can now be moved and centered (Randall Fox)
885ebd2b 316- restored (and improved) possibility to use wx with MFC broken in 2.5.2
4a82116e 317- fixed wxTextCtrl::SetMaxLength for rich edit controls
4bd1f746 318- fixed flat style for toolbars under XP, Windows Classic style
b61d8079 319- fixed truncation of transferred data in wxConnection under unicode build
f499e614 320- wxChoice and wxComboBox dropdown background can be set now too (Adrian Lupei)
4bc0f25e 321- fixed wxMaximizeEvent generation in wxFrame
13bcc348 322- don't send duplicate EVT_COMBOBOX events whenever selection changes any more
60090256 323- implemented support for selecting printer bin (Steven Van Ingelgem)
6e2fef03 324- fixed wxListCtrl::SetSingleStyle() which was broken since a few releases
2006289b 325- fixed print setup problem (always uses default printer) in Unicode build
60c315ca 326
3cd2f0bd
VZ
327wxUniv/X11:
328
329- fixed fatal crash when opening a menu
330
a0f428c6
WS
331wxWinCE:
332
5b33ae84
WS
333- added native WinCE driven smartphone wxTextCtrl implementation using spinners
334- added native WinCE driven smartphone wxChoice implementation using spinners
335- added automatized but customizable handling of native WinCE driven smartphone menus
4a82116e 336- fixed wxRadioBox and wxStaticBox
a0f428c6 337
91fa114d
VS
338wxHTML:
339
340- added support for nested index entries and index entries pointing to more
341 than one page to wxHtmlHelpController
342
33d4eef0 343
a1037371
VZ
3442.5.2
345-----
346
3c2544bb
JS
347All:
348
dcbb88f0
VZ
349- Hindi translation added (Dhananjaya Sharma)
350- Brazilian Portuguese translation added (E. A. Tacao)
5232d996
VZ
351- wxDynamicCast() now uses static_cast<wxObject *> internally and so using it
352 with anything not deriving from wxObject will fail at compile time (instead
353 of run-time) now
bdcade0a
MB
354- when wxUSE_STL == 1 and STL provides quasi-standard hash_map/hash_set,
355 wxHashMap/wxHashSet are just typedefs for them. This makes impossible
356 to forward declare these classes.
f6d74279 357
3c2544bb
JS
358All (GUI):
359
360- wxHtmlWindow now delays image scaling until rendering,
361 resulting in much better display of scaled images
e1983ab5
VZ
362- Added UpdateSize to wxSplitterWindow to allow layout while hidden
363- implemented Freeze/Thaw() for wxGenericTreeCtrl (Kevin Hock)
15ad38c3 364- support for KOI8-U encoding added (Yuriy Tkachenko)
8f61ba28 365- The old wxADJUST_MINSIZE behaviour is now the default behaviour for
ec5cadfe
RD
366 sizer items that are windows. This means that GetAdjustedBestSize
367 will now be called by default to determine the minimum size that a
368 window in a sizer should have. If you want to still use the initial
369 size (and not the BestSize) then use the wxFIXED_MINSIZE flag. When
370 windows are added to a sizer their initial size is made the window's
371 min size using SetSizeHints, and calls to wxSizer::SetItemMinSize
372 are also forwarded to SetSizeHints for window items.
8f61ba28 373- added wxRegEx::GetMatchCount()
2d814c19 374- it is now possible to display images in wxHtmlListBox
3c2544bb 375
a1037371 376wxMSW:
3c2544bb 377
a1037371 378- wxWindow::Freeze()/Thaw() can now be nested
3c2544bb
JS
379- Added wxSP_NO_XP_THEME style to wxSplitterWindow to switch off
380 XP theming (some applications look bad without 3D borders)
4e86e9cd 381- wxMenuBar::GetLabelTop() doesn't include '&'s in the label any more
9a85c87d
VZ
382- wxRegConf couldn't read global settings without admin privileges and didn't
383 even try to do it by default -- now it does
1e6d9c20
VS
384- wxTaskBarIcon must be explicitly destroyed now, otherwise the application
385 won't exit even though there are no top level windows
54bcff35 386- wxFileName::GetModificationTime() works with opened files too now
bf5d9fa4
VZ
387- wxDC::GetClippingBox() now works even for clipping regions created by Windows
388- fixed wxFileDataObject in Unicode build (Alex D)
89b67477 389- subdindented paragraphs support (Tim Kosse)
a1037371 390
c663fbea
VS
391wxGTK:
392
393- added support for wxTE_RIGHT and wxTE_CENTRE styles under GTK2 (Mart Raudsepp)
394
cf9df191
VZ
395wxMotif:
396
397- removed wxMenuItem::DeleteSubMenu()
e04b7e8e
MB
398- wxButtons use Motif default size, which is smaller than it used to be
399 and closer to wxMSW/wxGTK look. This can be disabled by setting
400 motif.largebuttons system option to 1 (see wxSystemOptions).
cf9df191 401
e8ba218b
VZ
402wxUniv/X11:
403
404- implemented DrawRoundedRectangle() (clawghoul)
405
ca16b7a9
VS
406wxHTML:
407
5b2b456f 408- improved tables and lists layout algorithms (Tim Kosse)
c5448f38 409- <div> handling fix (Xavier Nodet)
ca16b7a9 410
a9a76b2f 411Unix:
33d4eef0 412
a9a76b2f 413- fixed priorities of mailcap entries (David Hart)
1d8864ac 414- added "wx-config --libs=std,<extra>" syntax (i.e. support for "std")
a9a76b2f 415
a21c0aaa 416wxODBC:
33d4eef0 417
c4839ccf 418- Full Unicode support is now available
a21c0aaa
GT
419- BLOB support is working
420
a1037371 421
1d95f44a
JS
4222.5.1
423-----
11ebea16 424
2e622163 425All:
de07d200 426
3a818b15 427