]> git.saurik.com Git - wxWidgets.git/blame_incremental - docs/changes.txt
fixed memory leaks when reading invalid GIFs
[wxWidgets.git] / docs / changes.txt
... / ...
CommitLineData
1-------------------------------------------------------------------------------
2 wxWidgets Change Log
3-------------------------------------------------------------------------------
4
5INCOMPATIBLE CHANGES SINCE 2.8.x
6================================
7
8Changes in behaviour not resulting in compilation errors, please read this!
9---------------------------------------------------------------------------
10
11- Default location of wxFileConfig files has changed under Windows, you will
12 need to update your code if you access these files directly.
13
14- wxWindow::IsEnabled() now returns false if a window parent (and not
15 necessarily the window itself) is disabled, new function IsThisEnabled()
16 with the same behaviour as old IsEnabled() was added.
17
18- Generating wxNavigationKeyEvent events doesn't work any more under wxGTK (and
19 other platforms in the future), use wxWindow::Navigate() or NavigateIn()
20 instead.
21
22Changes in behaviour which may result in compilation errors
23-----------------------------------------------------------
24
25- WXWIN_COMPATIBILITY_2_4 doesn't exist any more, please update your code if
26 you still relied on features deprecated since version 2.4
27
28- Return type of wxString::operator[] and wxString::iterator::operator* is no
29 longer wxChar (i.e. char or wchar_t), but wxUniChar. This is not a problem
30 in vast majority of cases because of conversion operators, but it can break
31 code that depends on the result being wxChar.
32
33- The value returned by wxString::operator[] or wxString::iterator cannot be
34 used in switch statements anymore, because it's a class instance. Code like
35 this won't compile:
36 switch (str[i]) { ... }
37 and has to be replaced with this:
38 switch (str[i].GetValue()) { ... }
39
40- Return type of wxString::c_str() is now wxCStrData struct and not
41 const wxChar*. wxCStrData is implicitly convertible to const char* and
42 const wchar_t*, so this only presents a problem if the compiler cannot
43 convert the type. In particular, Borland C++ and DigitalMars compilers
44 don't correctly convert operator?: operands to the same type and fail with
45 compilation error instead. This can be worked around by explicitly casting
46 to const wxChar*:
47 wxLogError(_("error: %s"), !err.empty() ? (const wxChar*)err.c_str() : "")
48
49- DigitalMars compiler has a bug that prevents it from using
50 wxUniChar::operator bool in conditions and it erroneously reports type
51 conversion ambiguity in expressions such as this:
52 for ( wxString::const_iterator p = s.begin(); *p; ++p )
53 This can be worked around by explicitly casting to bool:
54 for ( wxString::const_iterator p = s.begin(); (bool)*p; ++p )
55
56Deprecated methods and their replacements
57-----------------------------------------
58
59- wxCreateGreyedImage() deprecated, use wxImage::ConvertToGreyscale() instead.
60- wxString::GetWriteBuf() and UngetWriteBuf() deprecated, using wxStringBuffer
61 or wxStringBufferLength instead.
62
63Major new features in this release
64----------------------------------
65
66
672.9.0
68-----
69
70All:
71
72- Added wxJoin() and wxSplit() functions (Francesco Montorsi)
73- Added wxMutex::LockTimeout() (Aleksandr Napylov)
74- Added wxMemoryInputStream(wxInputStream&) ctor (Stas Sergeev)
75- Implemented wxMemoryInputStream::CanRead()
76
77All (GUI):
78
79- Added wxDC::StretchBlit() for wxMac and wxMSW (Vince Harron)
80- Added support for labels for toolbar controls (Vince Harron)
81- Added wxEventBlocker class (Francesco Montorsi).
82- Added wxFile/DirPickerCtrl::Get/SetFile/DirName() (Francesco Montorsi).
83- Added wxSizerFlags::Top() and Bottom().
84- Slovak translation added.
85- Fixed tab-related drawing and hit-testing bugs in wxRichTextCtrl.
86- Implemented background colour in wxRichTextCtrl.
87- Fixed crashes in helpview when opening a file.
88- Set locale to the default in all ports, not just wxGTK
89- Added wxJoystick::GetButtonState/Position() (Frank C Szczerba)
90- Added wxGridUpdateLocker helper class (Evgeniy Tarassov)
91- Support wxGRID_AUTOSIZE in wxGrid::SetRow/ColLabelSize() (Evgeniy Tarassov)
92- Added wxWindow::NavigateIn() in addition to existing Navigate()
93- Add support for <data> tags to wxrc
94
95wxGTK:
96
97- Native implementation for wxHyperlinkCtrl (Francesco Montorsi)
98- Native keyboard navigation implementation
99- Implemented support for underlined fonts in wxStaticText.
100- wxTopLevelWindow::SetSizeHints size increments now work.
101- wxTopLevelWindow::GetSize() returns the size including the WM decorations.
102- wxTopLevelWindow::GetClientSize() returns 0x0 when the window is minimized.
103- Added support for colour cursors (Pascal Monasse).
104- Setting foreground colour of single line wxTextCtrl now works
105
106wxMac:
107
108- Fix duplicate (empty) help menu in non-English programs (Andreas Jacobs)
109
110wxMSW:
111
112- Fixed infinite loop in wxThread::Wait() in console applications.
113- Return the restored window size from GetSize() when window is minimized.
114
115
1162.8.4
117-----
118
119wxMSW:
120
121- Corrected wxStaticBox label appearance when its foreground colour was set:
122 it didn't respect font size nor background colour then (Juan Antonio Ortega)
123- Don't lose combobox text when it's opened and closed (Kolya Kosenko)
124- Corrected GetChecked() for events from checkable menu items (smanders)
125- Fixed popup menus under Windows NT 4
126- Fixed bug in wxThread::Wait() in console applications introduced in 2.8.3
127- Compilation fixed with WXWIN_COMPATIBILITY_2_6==0
128
129wxGTK:
130
131- Fix infinite loop when adding a wxStaticText control to a toolbar
132- Fix wxNO_BORDER style for wxRadioBox (David Hart)
133
134
1352.8.3
136-----
137
138All:
139
140- Shut down the sockets gracefully (Sergio Aguayo)
141- Fix extra indentation in wxHTML_ALIGN_JUSTIFY display (Chacal)
142
143wxMac:
144
145- Corrected top border size for wxStaticBox with empty label (nusi)
146
147wxMSW:
148
149- Fixed wxFileName::GetSize() for large files
150
151wxGTK:
152
153- Fixed handling of accelerators using PageUp/Down keys
154
155
1562.8.2
157-----
158
159All:
160
161- Added wxSizerFlags::Shaped() and FixedMinSize() methods.
162- Added wxCSConv::IsOk() (Manuel Martin).
163- Added wxDateTime::GetDateOnly().
164- Made wxTextFile work with unseekable files again (David Hart).
165- Added wxCONFIG_USE_SUBDIR flag to wxFileConfig (Giuseppe Bilotta).
166- Added wxSearchCtrl::[Get|Set]DescriptiveText.
167- Fixed detection of number of processors under Linux 2.6
168- Fixed Base64 computation in wxHTTP (p_michalczyk)
169- Fix handling of wxSOCKET_REUSEADDR in wxDatagramSocket (troelsk)
170
171Unix Ports:
172
173- Fixed crash in wxGetUserName() in Unicode build
174
175wxMSW
176
177- Fix lack of spin control update event when control lost focus.
178- Corrected drawing of bitmaps for disabled menu items.
179
180wxGTK
181
182- Fix hang on startup when using GTK+ options in Unicode build
183
184wxMac
185
186- Fix position of the centered windows (didn't take menu bar size into account)
187- Added support for the wxFRAME_FLOAT_ON_PARENT style.
188
189wxX11:
190
191- Don't crash in wxWindow dtor if the window hadn't been really Create()d.
192
193wxUniv:
194
195- Fixed wxComboBox always sorted.
196
197
1982.8.1
199-----
200
201All:
202
203- Fix compilation with wxUSE_STL=1.
204- wxGrid::GetBestSize() returns same size the grid would have after AutoSize().
205- Added wxTreeCtrl::CollapseAll[Children]() and IsEmpty() (Francesco Montorsi).
206- Several RTL-related positioning fixes (Diaa Sami).
207- Fix wxConfig::DeleteGroup() for arguments with trailing slash (David Hart).
208- Fix memory leak in wxGrid::ShowCellEditControl() (Christian Sturmlechner).
209
210wxMSW:
211
212- Fixed compilation with Borland C++ in Unicode mode but without MSLU.
213- Show taskbar icon menu on right button release, not press.
214
215wxGTK:
216
217- Don't crash if command line is not valid UTF-8 (Unicode build only).
218
219wxUniv:
220
221- It is now possible to set background colour of wxStaticText.
222
223
2242.8.0
225-----
226
227All:
228
229- Added wxSearchCtrl (Vince Harron).
230- wxCSConv("UTF-16/32") now behaves correctly, i.e. same as wxMBConvUTF16/32.
231- wxArrayString::Alloc() now works as reserve() and doesn't clear array contents.
232- Fixed long standing bug in wxFileConfig groups renaming (Antti Koivisto).
233- New option wxFS_READ | wxFS_SEEKABLE for wxFileSystem::OpenFile() to return
234 a stream that is seekable.
235- Fixed bug in wxCalendarCtrl::HitTest() when clicking on month change arrows.
236- Added wxWindow::GetWindowBorderSize() and corrected wxTreeCtrl::GetBestSize().
237 for a control with borders (Tim Kosse).
238
239wxMSW:
240
241- Fixed version script problems when using configure with cygwin/mingw32.
242- Use system default paper size for printing instead of A4.
243- Fix (harmless) assert in virtual list control under Vista.
244- Fix colours when converting wxBitmap with alpha to wxImage (nusi).
245
246wxGTK:
247
248- Allow dynamically changing most of text control styles.
249- Enable use of libgnomeprintui by default in configure.
250
251
2522.7.2
253-----
254
255All:
256
257- Added wxFFile overload to wxFileName::CreateTemporaryFileName().
258- Added GetTempDir() to wxFileName and wxStandardPaths.
259- Added wxTar streams.
260- Added wxFilterFSHandler and wxArchiveFSHandler.
261- Added wxString::ToLongLong() and ToULongLong().
262
263All (GUI):
264
265- wxMemoryDC constructor now optionally accepts a wxBitmap parameter,
266 calling SelectObject itself if a valid bitmap is passed.
267- Reverted wxBuffered[Paint]DC to pre 2.7.1 state, added
268 wxAutoBufferedPaintDC and wxAutoBufferedPaintDCFactory.
269- Renamed wxProgressDialog::UpdatePulse() to just Pulse().
270- Added wxCollapsiblePane (Francesco Montorsi).
271- Added wxSimpleHtmlListBox (Francesco Montorsi).
272- Printing framework fixes by Robert J. Lang. Bugs fixed,
273 wxPrinterDC::GetPaperRect() and other functions added to allow
274 easier printing implementation, and the documentation updated.
275- Many enhancements to wxRichTextCtrl including URL support,
276 formatting and symbol dialogs, print/preview, and better list
277 formatting.
278- Support for loading TGA files added (Seth Jackson).
279- Added wxTB_RIGHT style for right-aligned toolbars (Igor Korot).
280- wxHtmlWindow now generates events on link clicks (Francesco Montorsi).
281- wxHtmlWindow now also generates wxEVT_COMMAND_TEXT_COPY event.
282
283Unix Ports:
284
285- Added autopackage for wxGTK and an example of using autopackage for a wx
286 program (Francesco Montorsi).
287
288wxGTK:
289
290- More RTL work.
291- Support wxALWAYS_SHOW_SB.
292- Speed up MIME types loading. Only the GNOME database should be loaded under
293 GNOME etc. For this, the code queries the X11 session protocol.
294- wxCaret redraw problem during scrolling fixed.
295
296
2972.7.1
298-----
299
300All:
301
302- Added wxDir::FindFirst() (Francesco Montorsi).
303- Added wxPlatformInfo class (Francesco Montorsi).
304- Added wxLocale::IsAvailable() (Creighton).
305- Added Malay translations (Mahrazi Mohd Kamal).
306- Added reference counting for wxVariant.
307- For consistency, all classes having Ok() method now also have IsOk() one, use
308 of the latter form is preferred although the former hasn't been deprecated yet.
309- Added wxFileName::Is(Dir|File)(Writ|Read|Execut)able() (Francesco Montorsi).
310- Added wxFileName::GetSize() and GetHumanReadableSize() (Francesco Montorsi).
311- Added wxSizer::Replace (Francesco Montorsi).
312- wxXmlDocument can now optionally preserve whitespace (Francesco Montorsi).
313- Added wxBookCtrl::ChangeSelection() and wxTextCtrl::ChangeValue() to provide
314 event-free alternatives to SetSelection() and SetValue() functions; see the
315 "Events generated by the user vs programmatically generated events" paragraph
316 in the "Event handling overview" topic for more info.
317
318All (GUI):
319
320- Support for right-to-left text layout (started by Diaa Sami during Google Summer of
321 Code, with a lot of help from Tim Kosse and others).
322- wxAnimationCtrl added (Francesco Montorsi).
323- Added wxAboutBox() function for displaying the standard about dialog.
324- Added wxID_PAGE_SETUP standard id.
325- Added wxSize::IncBy() and DecBy() methods.
326- Added wxTextCtrl::IsEmpty().
327- Added file type parameter to wxTextCtrl::LoadFile, wxTextCtrl::SaveFile for
328 consistency with wxRichTextCtrl.
329- wxRichTextCtrl: fixed range out-by-one bug to be consistent with wxTextCtrl API,
330 fixed some attribute bugs and added wxRichTextStyleComboCtrl.
331- Added wxWindow::IsDoubleBuffered().
332- Added wxHL_ALIGN_* flags to wxHyperlinkCtrl (Francesco Montorsi).
333- Added wxGauge::Pulse() and wxProgressDialog::UpdatePulse() (Francesco Montorsi).
334
335wxMSW:
336
337- Implemented wxComboBox::SetEditable().
338- wxSemaphore::Post() returns wxSEMA_OVERFLOW as documented (Christian Walther)
339- Fixed a bug whereby static controls didn't use the correct text colour if the
340 parent's background colour had been set (most noticeable when switching to a
341 high-contrast theme).
342- Respect wxBU_EXACTFIT style in wxToggleButton (Alexander Borovsky).
343
344wxMac:
345
346- Add parameter to the --enable-universal_binary configure option for the path
347 to the SDK.
348
349wxGTK:
350
351- Automatically use stock items for menu items with standard ids.
352- Setting cursor now works for all controls.
353- Implemented right-to-left support.
354- Implemented left indentation and tab stops support in wxTextCtrl (Tim Kosse).
355- Fixed wxHTML rendering of underlined text of multiple words (Mart Raudsepp).
356
357wxUniv:
358
359- Added wxTLW::UseNativeDecorations() and UseNativeDecorationsByDefault().
360
361
3622.7.0
363-----
364
365All:
366
367- Added positional parameters support to wxVsnprintf() (Francesco Montorsi).
368- wx(F)File, wxTextFile and wxInputStreams recognize Unicode BOM now.
369- Many fixes for UTF-16/32 handling in Unicode builds.
370- wxLaunchDefaultBrowser() now supports wxBROWSER_NEW_WINDOW flag.
371- Added wxStandardPaths::GetResourcesDir() and GetLocalizedResourcesDir()
372- Added wxStandardPaths::GetDocumentsDir() (Ken Thomases).
373- Added wxStringTokenizer::GetLastDelimiter(); improved documentation.
374- Fixed wxTextFile in Unicode build.
375- Added possibility to specify dependencies for a wxModule.
376- Speed improvements to wxRegEx when matching is done in a loop such as
377 during a search and replace.
378- Fix regerror and regfree name conficts when built-in regex and system regex
379 are both used in the same program.
380- Basic authentication supported added to wxHTTP.
381- wxCondition::WaitTimeout() now returns correct value when timeout occurs.
382- Fixed occasional wxThread cleanup crash.
383- Bug in wxLogStream::DoLogString in Unicode builds fixed.
384- Added support for memo fields to wxODBC.
385- Fixed Unicode builds using SunPro compiler by defining__WCHAR_TYPE__.
386- wxFileName now also looks for TMPDIR on Unix.
387- Fixed build error in list.h with VC++ 2005.
388- Fixed wxODBC buffer overflow problem in Unicode builds.
389- Fixed wxSocketBase::InterruptWait on wxBase.
390- Important code cleanup (Paul Cornett).
391- Added support for wxLongLong in wx stream classes (Mark Junker).
392- wxSOCKET_REUSEADDR can be used with wxSocketClient.
393- Overloaded Connect() and SetLocal() methods for binding to local address/port.
394- Albanian translation added (Besnik Bleta).
395- Assert messages now show the function in which assert failed.
396- wxApp::OnAssertFailure() should now be used instead the old wxApp::OnAssert().
397- Fixed several bugs in wxDateTime::ParseDate().
398- The WXK*PRIOR and WXK*NEXT constants are now aliases for WXK*PAGEUP
399 and WXK*PAGEDOWN. If you have switch statements that use both
400 constants from a set then you need to remove the PRIOR/NEXT
401 versions in order to eliminate compiler errors.
402- Fixed bug where wxDateTime::Now() would sometimes return an incorrect value
403 the first time it was called.
404- Added wxString::rbegin() and rend().
405- Added wxString::EndsWith().
406- wxSocket::_Read continues reading from socket after exhausting pushback buffer.
407 Previously, only the buffer would be returned, even if more data was requested.
408- Added wxPowerEvent (currently MSW-only).
409- Make wx-config compatible with Bourne shells.
410- Fixed wxDb::Open(wxDbConnectInf) when using connection string (Hellwolf Misty).
411- Fixed crash in wxDb::Open() in Unicode build (Massimiliano Marretta).
412- Fixed wxTimeSpan::Format() for negative time spans.
413- Optionally count repeating wxLog messages instead of logging all (Lauri Nurmi).
414
415All (GUI):
416
417- New AUI (Advanced User Interface) library for docking windows and much more.
418- Added wxComboCtrl and wxOwnerDrawnComboBox (Jaakko Salli).
419- Added wxTreebook (uses a wxTreeCtrl to control pages).
420- Added wxColour/Dir/File/Font/PickerCtrls (Francesco Montorsi).
421- Added wxDC::GradientFillLinear/Concentric().
422- Added wxHyperlinkCtrl (Francesco Montorsi).
423- Added clipboard events (wxEVT_COMMAND_TEXT_COPY/CUT/PASTE).
424- Allow to reorder wxGrid columns by drag-and-drop (Santiago Palacios).
425- Added wxRadioBox::SetItemToolTip().
426- Added support for CMYK JPEG images loading (Robert Wruck).
427- Added wxListCtrl::GetSubItemRect() and subitem hit testing (Agron Selimaj).
428- Added wxKeyEvent::GetModifiers().
429- Added wxDialog::SetEscapeId().
430- wxItemContainerImmutable::FindString unified (affects wxRadioBox, wxListBox,
431 wxComboBox and wxChoice).
432- wxWindow::Fit() now works correctly for frames and dialogs too.
433- Added access to the border size between pages and controller in book
434 based controls (wxBookCtrlBase::Get/SetInternalBorder).
435- Added initial wxRichTextCtrl implementation.
436- All book based controls (notebook, treebook etc.) share now the same
437 options for orientation (wxBK_TOP, wxBK_DEFAULT, ...) instead of duplicated
438 wxLB_TOP, wxNB_TOP, wxCHB_TOP, wxTBK_TOP.
439- Added parent window parameter to wxHelpController constructor
440 and added SetParentWindow/GetParentWindow.
441- wxMultiChoiceDialog uses now wxCheckListBox if possible, wxListBox if not.
442- Added wxBitmapButton::SetHoverBitmap().
443- Access to titles through Get/SetTitle is available now only for top level
444 windows (wxDialog, wxFrame).
445- Fixed memory leak of pending events in wxEvtHandler.
446- Added wxRadioBox::IsItemEnabled/Shown().
447- Added space after list item number in wxHTML.
448- Implemented <sub> and <sup> handling in wxHTML (based on patch
449 by Sandro Sigala).
450- Added caption parameter to wxGetFontFromUser and wxGetColourFromUser.
451- Added wxGetMouseState function.
452- Added wxHtmlHelpWindow, wxHtmlHelpDialog and wxHtmlModalHelp classes,
453 allowing HTML help to be embedded in an application.
454- wxCalendarCtrl positioning and hit-testing fixes for dimensions other than
455 best size.
456- wxCalendarCtrl colour schema changed and adjusted to system settings.
457- wxImage::Mirror() and GetSubBitmap() now support alpha (Mickey Rose).
458- More checking of image validity before loading into wxImage.
459- Added wxImage::ConvertToGreyscale.
460- Added ability to use templates with static event tables
461 with BEGIN_EVENT_TABLE_TEMPLATEn() macros.
462- Added play, pause, and state change events to wxMediaCtrl.
463- Added double-buffering to wxVListBox and fixed a scrolling issue.
464- Added wxToolbook (uses a wxToolBar to control pages).
465- Added SetSheetStyle to wxPropertySheetDialog and allowed it to
466 behave like a Mac OS X settings dialog.
467- Added <disabled> XRC tag for wxToolBar elements and <bg> for wxToolBar itself.
468- Fixed centering of top level windows on secondary displays.
469- Implemented wxDisplay::GetFromWindow() for platforms other than MSW.
470- UpdateUI handler can now show/hide the window too (Ronald Weiss).
471- More than one filter allowed in in wxDocTemplate filter.
472- Added wxListBox::HitTest().
473- Added wxDisplay::GetClientArea().
474- Indices and counts in wxControlWithItems derived API are unsigned.
475- Added support for links to wxHtmlListBox; use code has to override
476 wxHtmlListBox::OnLinkClicked() to take advantage of it.
477- Added an easier to use wxMenu::AppendSubMenu().
478- wxString <-> wxColour conversions in wxColour class (Francesco Montorsi).
479- Fixed bug with ignoring blank lines in multiline wxGrid cell labels.
480- Added wxTextAttr::Merge() (Marcin Simonides).
481- Added wxTB_NO_TOOLTIPS style (Igor Korot).
482- Added wxGenericDirCtrl::CollapsePath() (Christian Buhtz).
483- Added wxTreeCtrl::ExpandAllChildren() (Christian Buhtz)
484- Fixed 64-bit issue in wxNotebook causing segfaults on Tru64 Unix.
485- Made it possible to associate context help to a region of a window.
486- Added support for tabs in wxRichTextCtrl (Ashish More).
487- Fixed problem with zoom setting in print preview.
488- Moved wxRichTextCtrl from the advanced library to its own.
489- wxNB_HITTEST_* flags renamed to wxBK_HITTEST_* to serve all book controls.
490- Added wxTopLevelWindow::SetTransparent and CanSetTransparent, with
491 implementations (so far) for wxMSW and wxMac.
492