INCOMPATIBLE CHANGES SINCE 2.8.x
================================
+Unicode-related changes
+-----------------------
+
+The biggest changes in wxWidgets 3.0 are the changes due to the merge of the
+old ANSI and Unicode build modes in a single build. See the Unicode overview
+in the manual for more details but here are the most important incompatible
+changes:
+
+- Many wxWidgets functions taking "const wxChar *" have been changed to take
+ either "const wxString&" so that they accept both Unicode and ANSI strings.
+ and the argument can't be NULL or "const char *" if the strings are always
+ ANSI but may be NULL. This change is normally backwards compatible except:
+
+ a) Virtual functions: derived classes versions must be modified to take
+ "const wxString&" as well to make sure that they continue to override the
+ base class version.
+
+ b) Passing NULL as argument: as NULL can't be unambiguously converted to
+ wxString, in many cases code using it won't compile any more and NULL
+ should be replaced with an empty string.
+
+
+- Some structure fields which used to be of type "const wxChar *" (such as
+ wxCmdLineEntryDesc::shortName, longName and description fields) are now of
+ type "const char *", you need to remove wxT() or _T() around the values used
+ to initialize them (which should normally always be ASCII).
+
+- wxIPC classes didn't work correctly in Unicode build before, this was fixed
+ but at a price of breaking backwards compatibility: many methods which used
+ to work with "wxChar *" before use "void *" now (some int parameters were
+ also changed to size_t). While wxIPC_TEXT can still be used to transfer 7
+ bit text, the new wxIPC_UTF8TEXT format is used for transferring wxStrings.
+
+
+wxODBC and contrib libraries removal
+------------------------------------
+
+wxODBC library was unmaintained since several years and we couldn't continue
+supporting it any longer so it was removed. Please use any of the other open
+source ODBC libraries in the future projects.
+
+Also the "applet", "deprecated", "fl", "mmedia" and "plot" contrib libraries
+were removed as they were unmaintained and broken since several years.
+The "gizmos", "ogl", "net" and "foldbar" contribs have been moved to
+wxCode (see http://wxcode.sourceforge.net/complist.php); they are now
+open for futher development by volunteers.
+
+The "stc" and "svg" contribs instead have been moved respectively into a new
+"official" library stc and in the core lib.
+
+
Changes in behaviour not resulting in compilation errors, please read this!
---------------------------------------------------------------------------
sizes of the sizer items to be in the same proportion as the items
proportions to return to the old behaviour.
+- wxWindow::Freeze/Thaw() are not virtual any more, if you overrode them in
+ your code you need to override DoFreeze/Thaw() instead now.
+
+
Changes in behaviour which may result in compilation errors
-----------------------------------------------------------
- WXWIN_COMPATIBILITY_2_4 doesn't exist any more, please update your code if
you still relied on features deprecated since version 2.4
+- wxDC classes hierarchy has changed, if you derived any classes from wxDC you
+ need to review them as wxDC doesn't have any virtual methods any longer and
+ uses delegation instead of inheritance to present different behaviours.
+
- 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
- Removed global GetLine() function from wx/protocol/protocol.h, use
wxProtocol::ReadLine() instead.
+- wxVariant no longer derives from wxObject. wxVariantData also no longer
+ 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
+ implemented correctly any longer because automatically generated ids are not
+ necessarily allocated consecutively any more. Use GetChildren() to find the
+ next/previous control sibling instead.
+
Deprecated methods and their replacements
-----------------------------------------
- wxXmlProperty class was renamed to wxXmlAttribute in order to use standard
terminology. Corresponding wxXmlNode methods were renamed to use
"Attribute" instead of "Property" or "Prop" in their names.
+- wxConnection::OnExecute() is not formally deprecated yet but new code should
+ use simpler OnExec() version which is called with wxString argument
Major new features in this release
----------------------------------
+- wxWidgets is now always built with Unicode support but provides the same
+ simple (i.e. "char *"-tolerant) API as was available in ANSI build in the
+ past.
+
+- wxWidgets may now use either wchar_t (UTF-16/32) or UTF-8 internally,
+ depending on what is optimal for the target platform.
+
+- Events loops, timers and sockets can now be used in wxBase, without GUI.
+
2.9.0
-----
All:
+- Added (experimental) IPv6 support to wxSocket (Arcen)
+- Added wxXLocale class and xlocale-like functions using it
+- Allow loading message catalogs from wxFileSystem (Axel Gembe)
+- Added wxMessageQueue class for inter-thread communications
+- Use UTF-8 for Unicode data in wxIPC classes (Anders Larsen)
- Added support for user-defined types to wxConfig (Marcin Wojdyr).
- Added wxJoin() and wxSplit() functions (Francesco Montorsi).
+- Added wxDateTime::FormatISOCombined() and ParseISODate/Time/Combined()
- Added wxMutex::LockTimeout() (Aleksandr Napylov).
- Added wxMemoryInputStream(wxInputStream&) ctor (Stas Sergeev).
- Implemented wxMemoryInputStream::CanRead().
wxLogInterposerTemp was added.
- Added support for broadcasting to UDP sockets (Andrew Vincent).
- Documentation now includes the wx library in which each class is defined.
+- wxrc --gettext now generates references to source .xrc files (Heikki
+ 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 wxVector<T> class templates
All (Unix):
All (GUI):
+- Added wxDataViewCtrl class and helper classes
+- Added {wxTextCtrl,wxComboBox}::AutoComplete() and AutoCompleteFileNames()
- Added wxH[V]ScrolledWindow (Brad Anderson, Bryan Petty).
+- Added wxNotificationMessage class for non-intrusive notifications
+- Added wxWindow::Show/HideWithEffect()
+- Added wxWrapSizer
- Added wxDC::StretchBlit() for wxMac and wxMSW (Vince Harron).
- Added support for drop down toolbar buttons (Tim Kosse).
- Added support for labels for toolbar controls (Vince Harron).
- Added wxMessageDialog::SetMessage() and SetExtendedMessage().
-- Added wxEventBlocker class (Francesco Montorsi)..
-- Added wxFile/DirPickerCtrl::Get/SetFile/DirName() (Francesco Montorsi)..
+- Added wxListCtrl::Set/GetColumnsOrder() (Yury Voronov)
+- Added wxWindow::AlwaysShowScrollbars() (Julian Scheid)
+- Added wxMouseEvent::GetClickCount() (Julian Scheid)
+- Added wxBG_STYLE_TRANSPARENT background style (Julian Scheid)
+- 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 wxFile/DirPickerCtrl::Get/SetFile/DirName() (Francesco Montorsi).
- Added wxSizerFlags::Top() and Bottom().
- Slovak translation added.
- Fixed tab-related drawing and hit-testing bugs in wxRichTextCtrl.
- Show standard options in wxCmdLineParser usage message (Francesco Montorsi).
- Added wxRect::operator+ (union) and * (intersection) (bdonner).
- Added support for two auxiliary mouse buttons to wxMouseEvent (Chris Weiland).
+- Added wxToolTip::SetAutoPop() and SetReshow() (Jan Knepper).
+- Added wxTaskBarIcon::Destroy().
+- Added XRC handler for wxSearchCtrl (Sander Berents).
+- Read image resolution from TIFF, JPEG and BMP images (Maycon Aparecido Gasoto).
+- Add support for reading alpha data from TIFF images.
+- Added wxSYS_DCLICK_TIME system metric constant (Arne Steinarson).
+- Added wxApp::Get/SetAppDisplayName() (Brian A. Vanderburg II).
+- Added wxWindow::GetPopupMenuSelectionFromUser() (Arne Steinarson).
+- Implemented wxTreeCtrl::GetPrevVisible() in the generic version and made the
+ behaviour of GetNextSibling() consistent between wxMSW and generic versions.
+- Merged wxRichTextAttr and wxTextAttrEx into wxTextAttr, and added a font table
+ to wxRichTextBuffer to reduce wxFont consumption and increase performance.
+- Optimize wxGenericTreeCtrl::Collapse/ExpandAllChildren(). (Szczepan Holyszewski)
+- Added <scrollrate> parameter to wxScrolledWindow XRC handler.
+- Added support for automatic dialog scrolling, via the new wxDialogLayoutAdapter
+ class and various new wxDialog functions. See the topic "Automatic Scrolling
+ Dialogs" in the manual for further details.
+- Added support for resizing wxWizard bitmaps to the current page height,
+ via SetBitmapPlacement, SetBitmapBackgroundColour and SetMinimumBitmapWidth.
+ Also made it easier to derive from wxWizard and override behaviour.
+- Made wxSizer::Fit() set the client size of the target window
+- Add support for wxDatePickerCtrl in wxGenericValidator (Herry Ayen Yang)
+- Added wxWindow::HasFocus().
+- Added wxGLCanvas::IsDisplaySupported()
wxGTK:
- Added support for colour cursors (Pascal Monasse).
- Pass current control text to EVT_TEXT handler for wxSpinCtrl (John Ratliff).
- Added gtk.tlw.can-set-transparency system option.
+- Added support for GTK+ print backend
wxMac:
- Fix duplicate (empty) help menu in non-English programs (Andreas Jacobs).
- Allow accelerators to be used with buttons too (Ryan Wilcox).
- Support resource forks in wxCopyFile() (Hank Schultz).
+- Implement wxLocale::GetInfo() using CFLocale
+- Added native wxCollapsiblePane
wxMSW:
- 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).
+- 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)
wxX11:
- Make Enter key activate the default button (David Hart).
+2.8.8
+-----
+
+All:
+
+- Fixed bug with parsing some dates in wxDateTime (Bob Pesner)
+- Fixed bug with parsing negative time zones in wxDateTime::ParseRfc822Date()
+
+All (GUI):
+
+- Added wxWindow::GetNextSibling() and GetPrevSibling()
+- Improve wximage::ResampleBox() (Mihai Ciocarlie)
+- Implemented ScrollList() in generic wxListCtrl (Tim Kosse)
+- Fixed wxXmlResource::GetText() to convert data to current locale's
+ charset in ANSI build.
+
+wxMSW:
+
+- Fix rare bug with messages delivered to wrong wxSocket (Tim Kosse)
+- Fix setting icons when they have non-default (16*16 and 32*32) sizes
+- Fixed wxLocale::GetInfo to use the C locale.
+- Don't enable disabled windows when showing them (Harry McKame).
+- Fix assert when using owner-drawn menu items with the newest (Vista) SDK
+
+wxGTK:
+
+- Return false from wxEventLoop::Dispatch() if gtk_main_quit() was called and
+ so the loop should exit (Rodolfo Schulz de Lima)
+
+
+2.8.7
+-----
+
+All:
+
+- Fixed bug with default proxy destruction in wxURL (Axel Gembe).
+
+wxMSW:
+
+- Correct (harmless) warnings given for forward-declared DLL-exported classes
+ by mingw32 4.2 (Tim Stahlhut).
+
+wxGTK:
+
+- Added gtk.window.force-background-colour wxSystemOptions option to work around
+ a background colour bug in the gtk-qt theme under KDE.
+- Implemented wxGetClientDisplayRect() correctly for wxGTK and X11-based ports.
+
+
+2.8.6
+-----
+
+All:
+
+- Fixed another bug in wxFileConfig when deleting entries (Axel Gembe)
+- Added Portuguese translation (Antonio Cardoso Martins)
+
+
2.8.5
-----
- Fixed bug with symbol resolving in wxStackWalker (Axel Gembe)
- Fixed showing busy cursor for disabled windows and during wxExecute()
- Set the string of wxEVT_COMMAND_CHECKLISTBOX_TOGGLED events (Luca Cappa)
+- Fix problems with timers on SMP machines in wxAnimationCtrl (Gennady)
wxGTK:
- Add right button event for wxToolbar's tools (Tim Kosse)
- Don't unconditionally add wxCAPTION style to wxMiniFrame
- Generate wxEVT_COMMAND_LIST_END_LABEL_EDIT event even if label didn't change
+- Fix WX_GL_STEREO attribute handling (Tristan Mehamli)
+- Fix wxThread::SetPriority() when the thread is running (Christos Gourdoupis)
+- Fixed off by 1 bug in wxDC::GradientFillLinear() (Tim Kosse)
2.8.4