- wxDocument::OnNewDocument() doesn't call OnCloseDocument() any more.
+- If you use wxScrolledWindow::SetTargetWindow() you must implement its
+ GetSizeAvailableForScrollTarget() method, please see its documentation for
+ more details.
+
+
Changes in behaviour which may result in compilation errors
-----------------------------------------------------------
need to review them as wxDC doesn't have any virtual methods any longer and
uses delegation instead of inheritance to present different behaviours.
+- wxWindow::ProcessEvent() has been made protected to prevent wrongly using it
+ instead of correct GetEventHandler()->ProcessEvent(). New ProcessWindowEvent()
+ was added for convenience.
+
- Return type of wxString::operator[] and wxString::iterator::operator* is no
longer wxChar (i.e. char or wchar_t), but wxUniChar. This is not a problem
in vast majority of cases because of conversion operators, but it can break
derives from wxObject; instead of using wxDynamicCast with wxVariantData you
can use the macro wxDynamicCastVariantData with the same arguments.
-- wxWindow::Next/PrevControlId() don't exist any more as they can't be
+- wxWindow::Next/PrevControlId() don't exist any more as they couldn't be
implemented correctly any longer because automatically generated ids are not
- necessarily allocated consecutively any more. Use GetChildren() to find the
+ necessarily allocated consecutively now. Use GetChildren() to find the
next/previous control sibling instead.
- Calling wxConfig::Write() with an enum value will fail to compile because
have been changed to accept "wxBitmapType bitmaptype", please use enum
wxBitmapType in your code.
+- wxGridCellEditor::EndEdit() signature has changed and it was split in two
+ functions, one still called EndEdit() and ApplyEdit(). See the documentation
+ of the new functions for more details about how grid editors should be
+ written now.
+
+- wxEVT_GRID_CELL_CHANGE event renamed to wxEVT_GRID_CELL_CHANGED and shouldn't
+ be vetoed any more, use the new wxEVT_GRID_CELL_CHANGING event to do it.
+
+
Deprecated methods and their replacements
-----------------------------------------
respectively a wxBrushStyle and a wxPenStyle value instead of a plain "int style";
use the new wxBrush/wxPen style names (wxBRUSHSTYLE_XXX and wxPENSTYLE_XXX) instead
of the old deprecated wxXXX styles (which however are still available).
+- EVT_GRID_CELL_CHANGE was deprecated, use EVT_GRID_CELL_CHANGED instead if you
+ don't veto the event in its handler and EVT_GRID_CELL_CHANGING if you do.
- EVT_CALENDAR_DAY event has been deprecated, use EVT_CALENDAR_SEL_CHANGED.
- EVT_CALENDAR_MONTH and EVT_CALENDAR_YEAR events are deprecated,
use EVT_CALENDAR_PAGE_CHANGED which replaces both of them.
it with SetDeviceClippingRegion() if this was the correct thing to do in your
code.
- wxTE_AUTO_SCROLL style is deprecated as it's always on by default anyhow.
+- wxThreadHelper::Create() has been deprecated in favour of wxThreadHelper::CreateThread
+ which has a better name for a mix-in class, and allows setting the thread type.
Major new features in this release
- wxWidgets may now use either wchar_t (UTF-16/32) or UTF-8 internally,
depending on what is optimal for the target platform.
-- New propgrid library containing wxPropertyGrid and related classes, many
- enhancements to wxDataViewCtrl.
+- New propgrid library containing wxPropertyGrid and related classes.
+
+- Many enhancements to wxDataViewCtrl.
+
+- Event loops, timers and sockets can now be used in wxBase, without GUI.
+
+- Events can now be connected to any functor, not necessarily a method of
+ wxEvtHandler-derived class. The compile-time safety was also improved.
-- Events loops, timers and sockets can now be used in wxBase, without GUI.
+- Documentation for wxWidgets has been converted from LaTex to C++ headers
+ with Doxygen comments and significantly improved in the process (screenshots
+ of various controls were added, more identifiers are now linked to their
+ definition &c). Any reports about inaccuracies in the documentation are
+ welcome (and due to using the simple Doxygen syntax it is now easier than
+ ever to submit patches correcting them! :-)
2.9.0
- Added wxMutex::LockTimeout() (Aleksandr Napylov).
- Added wxMemoryInputStream(wxInputStream&) ctor (Stas Sergeev).
- Implemented wxMemoryInputStream::CanRead().
+- Implemented wxMemoryFSHandler::FindFirst/Next().
+- Added wxEventLoop::DispatchTimeout().
- Added wxEXEC_BLOCK flag (Hank Schultz).
- Add support for wxStream-derived classes to wxRTTI (Stas Sergeev).
- Added wxStreamBuffer::Truncate() (Stas Sergeev).
Linnakangas).
- wxVariant::Unshare allows exclusive allocation of data that must be shared,
if the wxVariantData::Clone function is implemented.
-- Added wxWeakRef<T>, wxScopedPtr<T>, wxSharedPtr<T> class templates
+- Added wxWeakRef<T>, wxScopedPtr<T>, wxScopedArray<T>, wxSharedPtr<T> templates.
- Added wxVector<T> class templates
- Added wxON_BLOCK_EXIT_SET() and wxON_BLOCK_EXIT_NULL() to wx/scopeguard.h.
- Added wxEvtHandler::QueueEvent() replacing AddPendingEvent() and
- Added wxString::Capitalize() and MakeCapitalized().
- Added wxArray::swap().
- Added wxSHUTDOWN_LOGOFF and wxSHUTDOWN_FORCE wxShutdown() flags (troelsk).
+- Added wxSocket::ShutdownOutput().
+- Handle exceptions thrown from overridden wxView::OnCreate() gracefully.
+- Added wxPATH_RMDIR_FULL/RECURSIVE wxFileName::Rmdir() flags (Marcin Malich).
+- Added wxStandardPaths::GetAppDocumentsDir().
All (Unix):
- Added wx-config --optional-libs command line option (John Labenski).
+- Noticeably (by a factor of ~150) improve wxIPC classes performance.
All (GUI):
- Added wxDataViewCtrl class and helper classes.
- Integrated wxPropertyGrid in wxWidgets itself (Jaakko Salli).
- Provide native implementation of wxCalendarCtrl under wxMSW and wxGTK.
+- Added wxHeaderCtrl and allow using it in wxGrid.
+- Added wxRearrangeList, wxRearrangeCtrl and wxRearrangeDialog.
- Added {wxTextCtrl,wxComboBox}::AutoComplete() and AutoCompleteFileNames().
- Added wxH[V]ScrolledWindow (Brad Anderson, Bryan Petty).
- Added wxNotificationMessage class for non-intrusive notifications.
- Added wxWrapSizer (Arne Steinarson).
- Added wxSpinCtrlDouble (John Labenski).
- Support custom labels in wxMessageDialog (Gareth Simpson for wxMac version).
+- Added wxScrolledWindow::ShowScrollbars().
- Also added wxCANCEL_DEFAULT to wxMessageDialog.
- Allow copying text in the log dialogs.
- Added multisample (anti-aliasing) support to wxGLCanvas (Olivier Playez).
+- Added wxCAL_SHOW_WEEK_NUMBERS wxCalendarCtrl style (Sören Meyer-Eppler).
- Initialize wx{Client,Paint,Window}DC with fonts/colours of its window.
- Added wxNativeContainerWindow to allow embedding wx into native windows.
- Added custom controls support to wxFileDialog (Diaa Sami and Marcin Wojdyr).
- Added wxWindow::AlwaysShowScrollbars() (Julian Scheid).
- Added wxMouseEvent::GetClickCount() (Julian Scheid).
- Added wxBG_STYLE_TRANSPARENT background style (Julian Scheid).
+- Added support for drop-down toolbar buttons to XRC.
- Added XRCSIZERITEM() macro for obtaining sizers from XRC (Brian Vanderburg II).
- New and improved wxFileCtrl (Diaa Sami and Marcin Wojdyr).
- Added wxEventBlocker class (Francesco Montorsi).
- Added "enabled" and "hidden" attributes to radio box items in XRC.
- wxWindow::IsBeingDeleted() now returns true not only if the window itself is
marked for destruction but also if any of its parent windows are.
-- Improved drawing of the hint during column move in wxGrid.
+- Improved drawing of the hint during column move in wxGrid (Santo Pfingsten).
- Add wxGridSelectRowsOrColumns selection mode to wxGrid.
+- Add wxEVT_GRID_CELL_CHANGING event matching wxEVT_GRID_CELL_CHANGED.
- Get/HasModifiers() of wxKeyEvent are now also available in wxMouseEvent.
+- Provide new/old cell value in wxEVT_GRID_CELL_CHANGING/CHANGED events.
+- Added wxArtProvider::GetNativeSizeHint(); GetSizeHint() as well as
+ GetNativeSizeHint() now return more sensible values in wxMSW and wxMac and
+ no longer return bogus values.
+- Added wxControl::SetLabelText() and EscapeMnemonics().
wxGTK:
- Fixed infinite loop in wxThread::Wait() in console applications.
- Return the restored window size from GetSize() when window is minimized.
- wxCheckListBox now looks more native, especially under XP (Marcin Malich).
+- wxCheckListBox now also supports use of client data (Marcin Malich).
- Allow tooltips longer than 64 (up to 128) characters in wxTaskBarIcon
- Fix centering wxFileDialog and allow positioning it.
- Allow centering wxMessageDialog on its parent window (troelsk).
accurately represents what will be printed. This fixes wxHtmlEasyPrinting
preview inaccuracies on Windows; on other platforms, native preview
should be used.
+- Implement wxFileName::SetTimes() for directories (Steve Lamerton).
+- Added wxToolTip::SetMaxWidth() and improved default wrapping (Joachim Hönig).
+- Changed default toolbar bitmaps size from obsolete 16x15 to 24x24 used
+ by modern apps.
wxX11: