wxWidgets Change Log
-------------------------------------------------------------------------------
-INCOMPATIBLE CHANGES SINCE 2.6.x
+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!
---------------------------------------------------------------------------
-- For all wxInputStreams, Eof() becomes true after an attempt has been made
- to read _past_ the end of file.
-- wxFileName::DirExists() checks if the path of the file is a directory, not
- if the whole name is a directory.
-- wxDialog::CreateButtonSizer() may return NULL now, please see the manual.
-- wxStaticBoxSizer now deletes the associated wxStaticBox when it is deleted.
-- wxArray::Alloc() now works as reserve() and does not clear the array any more
-- Windows calling CaptureMouse() are now required to handle the
- wxEVT_MOUSE_CAPTURE_LOST event and not call ReleaseMouse() in this case.
-- wxInputStream::GetC() now returns an int in the range 0 - 255 on success
- instead of a char the range -128 - 127.
+- Default location of wxFileConfig files has changed under Windows, you will
+ need to update your code if you access these files directly.
+
+- wxWindow::IsEnabled() now returns false if a window parent (and not
+ necessarily the window itself) is disabled, new function IsThisEnabled()
+ with the same behaviour as old IsEnabled() was added.
+
+- Generating wxNavigationKeyEvent events doesn't work any more under wxGTK (and
+ other platforms in the future), use wxWindow::Navigate() or NavigateIn()
+ instead.
+
+- Sizers distribute only the extra space between the stretchable items
+ according to their proportions and not all available space. We believe the
+ new behaviour corresponds better to user expectations but if you did rely
+ on the old behaviour you will have to update your code to set the minimal
+ 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
-----------------------------------------------------------
-- Some classes (notably wxBitmap and wxImage) don't define operator==() as it
- used to work in somewhat unexpected way as it compared only internal pointers
- and not the object data. The code using it will have to be updated:
- * If the object was compared with wxNullXXX, use IsOk() method instead
- * If valid object need to be compared, use IsSameAs() to reproduce the old
- behaviour or change the code to avoid comparing bitmaps &c.
-- wxFontData::GetColour() now returns a const colour.
-- wxDC objects can't be created directly now (this never worked, now it doesn't
- even compile).
-- wxCHECK family of macros now must be followed by a semicolon.
-- wxMBConv::cMB2WC() and cWC2MB() take size of the input buffer and return
- length of the converted string in all cases now.
-- wxHtmlWindow::OnCellClicked() now returns bool.
-- wxHtmlCell::OnMouseClick() was deprecated and replaced with
- wxHtmlCell::ProcessMouseClick(); old code overriding OnMouseClick() will
- continue to work with WXWIN_COMPATIBILITY_2_6, but should be rewritten to
- use ProcessMouseClick().
-- wxHtmlCell::GetCursor() was deprecated and replaced with
- wxHtmlCell::GetMouseCursor(); old code overriding GetCursor() will
- continue to work with WXWIN_COMPATIBILITY_2_6, but should be rewritten to
- use GetMouseCursor().
-- wxHtmlCell::AdjustPagebreak() signature has changed, update your code if you
- override it.
-- wxFontEnumerator::GetFacenames() and GetEncodings() now return arrays and
- not pointers to arrays.
-- SetDefaultItem() method was moved from wxPanel to wxTopLevelWindow
-- wxDialog::OnOK/OnCancel() don't exist any more, use SetAffirmative/EscapeId()
-- wxPathList doesn't derive from (deprecated) wxStringList any more
-- wxGLContext class has no 1:1 coupling to a wxGLCanvas class any more.
- As a consequence, the class interface changed largely. Code updates, if
- any are required at all, are easy to accomplish though.
-
-
-Deprecated methods since 2.6.x and their replacements
------------------------------------------------------
-
-- wxGetWorkingDirectory() deprecated in favour of wxGetCwd().
-- wxDC::BeginDrawing() and wxDC::EndDrawing() deprecated, don't use them.
-- wxWindowBase::GetBestFittingSize --> wxWindowBase::GetEffectiveMinSize.
-- wxWindowBase::SetBestFittingSize --> wxWindowBase::SetInitialSize.
-- Seeking on a zip stream returned from wxFileSystem without using the new
- wxFS_SEEKABLE flags is deprecated. You can still seek, but use the flag.
-- Constructor wxZipInputStream(const wxString& archive, const wxString& file)
- deprecated in favour of wxFileSystem (other zip ctors are not deprecated).
-- wx{Dir|File}Dialog::{Set|Get}Style deprecated in favour of the generic
- wxWindow::{Set|Get}WindowStyle()
-
-
-Major new features in 2.8 release
----------------------------------
-
-- New AUI library supporting docking windows and much more.
-- New rich text control library implementing a generic wxRichTextCtrl,
- using only the wxWidgets API. Also includes formatting dialogs, conversion
- to HTML, and printing classes.
-- New wxComboCtrl class giving the ability to create custom, graphical
- comboboxes. Associated classes include wxOwnerDrawnComboBox, wxComboPopup
- and wxBitmapComboBox.
-- Further functionality including wxAnimationCtrl (moved from contrib/src/anim
- and enhanced), wxSimpleHtmlListBox, wxHyperlinkCtrl, wxColourPickerCtrl,
- wxDirPickerCtrl, wxFilePickerCtrl, wxFontPickerCtrl, wxCollapsiblePane,
- wxSearchCtrl, wxAboutBox, wxTreebook, tar streams.
+- 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
+ code that depends on the result being wxChar.
+
+- The value returned by wxString::c_str() cannot be casted to non-const char*
+ or wchar_t* anymore. The solution is to use newly added wxString methods
+ char_str() (which returns a buffer convertible to char*) or wchar_str()
+ (which returns a buffer convertible to wchar_t*). These methods are
+ available in wxWidgets 2.8 series beginning with 2.8.4 as well.
+
+- The value returned by wxString::operator[] or wxString::iterator cannot be
+ used in switch statements anymore, because it's a class instance. Code like
+ this won't compile:
+ switch (str[i]) { ... }
+ and has to be replaced with this:
+ switch (str[i].GetValue()) { ... }
+
+- Return type of wxString::c_str() is now wxCStrData struct and not
+ const wxChar*. wxCStrData is implicitly convertible to const char* and
+ const wchar_t*, so this only presents a problem if the compiler cannot
+ convert the type. In particular, Borland C++ and DigitalMars compilers
+ don't correctly convert operator?: operands to the same type and fail with
+ compilation error instead. This can be worked around by explicitly casting
+ to const wxChar*:
+ wxLogError(_("error: %s"), !err.empty() ? (const wxChar*)err.c_str() : "")
+
+- wxCtime() and wxAsctime() return char*; this is incompatible with Unicode
+ build in wxWidgets 2.8 that returned wchar_t*.
+
+- DigitalMars compiler has a bug that prevents it from using
+ wxUniChar::operator bool in conditions and it erroneously reports type
+ conversion ambiguity in expressions such as this:
+ for ( wxString::const_iterator p = s.begin(); *p; ++p )
+ This can be worked around by explicitly casting to bool:
+ for ( wxString::const_iterator p = s.begin(); (bool)*p; ++p )
+
+- Virtual wxHtmlParser::AddText() takes wxString, not wxChar*, argument now.
+
+- Functions that took wxChar* arguments that could by NULL in wxWidgets 2.8.
+ are deprecated and passing NULL to them won't compile anymore, wxEmptyString
+ must be used instead.
+
+- wxTmemxxx() functions take either wxChar* or char*, not void*: use memxxx()
+ with void pointers.
+
+- Removed insecure wxGets() and wxTmpnam() functions.
+
+- 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
+-----------------------------------------
+
+- wxCreateGreyedImage() deprecated, use wxImage::ConvertToGreyscale() instead.
+- wxString::GetWriteBuf() and UngetWriteBuf() deprecated, using wxStringBuffer
+ or wxStringBufferLength instead.
+- wxDIRCTRL_SHOW_FILTERS style is deprecated, filters are alwsys shown if
+ specified so this style should simply be removed
+- wxDocManager::MakeDefaultName() replaced by MakeNewDocumentName() and
+ wxDocument::GetPrintableName() with GetUserReadableName() which are simpler
+ to use
+- 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().
+- Added wxEXEC_BLOCK flag (Hank Schultz).
+- Add support for wxStream-derived classes to wxRTTI (Stas Sergeev).
+- Added wxStreamBuffer::Truncate() (Stas Sergeev).
+- Allow using wxEventLoop in console applications (Lukasz Michalski).
+- Added functions for Base64 en/decoding (Charles Reimers).
+- Added support for binary data to wxConfig (Charles Reimers).
+- Added functions for atomically inc/decrementing integers (Armel Asselin).
+- wxLogInterposer has been added to replace wxLogPassThrough and new
+ 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):
+
+- Added wx-config --optional-libs command line option (John Labenski).
+
+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 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.
+- Implemented background colour in wxRichTextCtrl.
+- Fixed crashes in helpview when opening a file.
+- Set locale to the default in all ports, not just wxGTK.
+- Added wxJoystick::GetButtonState/Position() (Frank C Szczerba).
+- Added wxGridUpdateLocker helper class (Evgeniy Tarassov).
+- Support wxGRID_AUTOSIZE in wxGrid::SetRow/ColLabelSize() (Evgeniy Tarassov).
+- Added wxWindow::NavigateIn() in addition to existing Navigate().
+- Add support for <data> tags to wxrc.
+- Support wxAPPLY and wxCLOSE in CreateStdDialogButtonSizer() (Marcin Wojdyr).
+- 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().
+- Added wxApp::SetNativeTheme() (Stefan H.).
+
+wxGTK:
+
+- Support for markup and ellipsization in wxStaticText (Francesco Montorsi).
+- Native implementation for wxHyperlinkCtrl (Francesco Montorsi).
+- Native keyboard navigation implementation.
+- Added wxCB_SORT support to wxComboBox (Evgeniy Tarassov).
+- Don't overwrite primary selection with clipboard and vice versa.
+- Implemented support for underlined fonts in wxStaticText.
+- wxTopLevelWindow::SetSizeHints size increments now work.
+- wxTopLevelWindow::GetSize() returns the size including the WM decorations.
+- wxTopLevelWindow::GetClientSize() returns 0x0 when the window is minimized.
+- 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:
+
+- Better IconRef support (Alan Shouls).
+- Added support for changing button labels in wxMessageDialog (Gareth Simpson).
+- 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)
+- Implement support for display enumeration under WinCE (Vince Harron)
+
+wxX11:
+
+- Added mouse wheel support (David Hart).
+- 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
+-----
+
+All (GUI):
+
+- Added colour normalization to PNM image handler (Ray Johnston)
+- Fixed selecting part of word from right to left in wxHTML (Michael Hieke)
+- Selecting text in wxHTML with character precision was made easier, it's
+ enough to select half of a character (Michael Hieke)
+- Significantly improved startup times of XRC-based applications using
+ embedded resources on Unix (requires resources recompilation)
+- Fixed freeing of "static" alpha data in wxImage (Axel Gembe)
+- Don't invalidate the font in SetNativeFontInfo[Desc]() if the string is
+ invalid, to conform to the documented behaviour (Langhammer)
+- Fixed wxXPMHandler::SaveFile for images with more than 92 colors.
+
+wxMSW:
+
+- Correct problem with page setup dialog when using landscape mode
+- Added msw.font.no-proof-quality system option, see manual for description
+- Fix appearance of notebook with non-top tabs under Windows Vista
+- 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:
+
+- Setting foreground colour of single line wxTextCtrl now works
+- More work on setting defaults in GNOME print dialogs.
+- Also made landscape printing work as per wxMSW.
+- Add support for clipping in GNOME print backend.
+- Speed up wxBitmap::Rescale()
+- 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
+-----
+
+All:
+
+- Fix bug in wxFileConfig when recreating a group (Steven Van Ingelgem)
+- Fix wxStringOutputStream::Write() in Unicode build when the argument
+ overlaps UTF-8 characters boundary
+- Account for lines without newline at the end in wxExecute()
+
+All (Unix):
+
+- Handle socket shutdown by the peer correctly in wxSocket (Tim Kosse)
+
+All (GUI):
+
+- Allow status bar children in XRC (Edmunt Pienkowski)
+- Fix memory leak in wxWizard when not using sizers for the page layout
+- Added wxListCtrl::SetItemPtrData()
+- wxHTML: Apply table background colour between the cells too (Michael Hieke)
+
+wxMSW:
+
+- Corrected wxStaticBox label appearance when its foreground colour was set:
+ it didn't respect font size nor background colour then (Juan Antonio Ortega)
+- Don't lose combobox text when it's opened and closed (Kolya Kosenko)
+- Corrected GetChecked() for events from checkable menu items (smanders)
+- Fixed popup menus under Windows NT 4
+- Fixed bug in wxThread::Wait() in console applications introduced in 2.8.3
+- Support right-aligned/centered owner drawn items in wxListCtrl (troelsk)
+- Compilation fixed with WXWIN_COMPATIBILITY_2_6==0
+- Fix wxComboCtrl colours under Windows Vista (Kolya Kosenko)
+
+wxGTK:
+
+- Fix infinite loop when adding a wxStaticText control to a toolbar
+- Fix wxNO_BORDER style for wxRadioBox (David Hart)
+- Fix wxTextCtrl::GetLineText() for empty lines (Marcin Wojdyr)
+
+wxMac:
+
+- Fix wxComboBox::SetSelection(wxNOT_FOUND) (Adrian Secord)
+
+wxUniv:
+
+- Fix wxTextCtrl::SetSelection(-1, -1) to behave as documented (Anders Larsen)
+- Fix wxComboBox::SetSelection(wxNOT_FOUND)
+- Fix setting background colour for controls with transparent background
+
+
+2.8.3
+-----
+
+All:
+
+- Shut down the sockets gracefully (Sergio Aguayo)
+- Fix extra indentation in wxHTML_ALIGN_JUSTIFY display (Chacal)
+
+wxMac:
+
+- Corrected top border size for wxStaticBox with empty label (nusi)
+
+wxMSW:
+
+- Fixed wxFileName::GetSize() for large files
+
+wxGTK:
+
+- Fixed handling of accelerators using PageUp/Down keys
2.8.2
All:
-- Added wxSizerFlags::Shaped() and FixedMinSize() methods
-- Added wxDateTime::GetDateOnly()
-- Made wxTextFile work with unseekable files again (David Hart)
+- Added wxSizerFlags::Shaped() and FixedMinSize() methods.
+- Added wxCSConv::IsOk() (Manuel Martin).
+- Added wxDateTime::GetDateOnly().
+- Made wxTextFile work with unseekable files again (David Hart).
+- Added wxCONFIG_USE_SUBDIR flag to wxFileConfig (Giuseppe Bilotta).
+- Added wxSearchCtrl::[Get|Set]DescriptiveText.
+- Fixed detection of number of processors under Linux 2.6
+- Fixed Base64 computation in wxHTTP (p_michalczyk)
+- Fix handling of wxSOCKET_REUSEADDR in wxDatagramSocket (troelsk)
+
+Unix Ports:
+
+- Fixed crash in wxGetUserName() in Unicode build
wxMSW
-- Fix lack of spin control update event when control lost focus
-- Corrected drawing of bitmaps for disabled menu items
+- Fix lack of spin control update event when control lost focus.
+- Corrected drawing of bitmaps for disabled menu items.
+
+wxGTK
+
+- Fix hang on startup when using GTK+ options in Unicode build
+
+wxMac
+
+- Fix position of the centered windows (didn't take menu bar size into account)
+- Added support for the wxFRAME_FLOAT_ON_PARENT style.
+
+wxX11:
+
+- Don't crash in wxWindow dtor if the window hadn't been really Create()d.
+
+wxUniv:
+
+- Fixed wxComboBox always sorted.
2.8.1
All:
-- Fix compilation with wxUSE_STL=1
-- wxGrid::GetBestSize() returns same size the grid would have after AutoSize()
-- Added wxTreeCtrl::CollapseAll[Children]() and IsEmpty() (Francesco Montorsi)
-- Several RTL-related positioning fixes (Diaa Sami)
-- Fix wxConfig::DeleteGroup() for arguments with trailing slash (David Hart)
-- Fix memory leak in wxGrid::ShowCellEditControl() (Christian Sturmlechner)
+- Fix compilation with wxUSE_STL=1.
+- wxGrid::GetBestSize() returns same size the grid would have after AutoSize().
+- Added wxTreeCtrl::CollapseAll[Children]() and IsEmpty() (Francesco Montorsi).
+- Several RTL-related positioning fixes (Diaa Sami).
+- Fix wxConfig::DeleteGroup() for arguments with trailing slash (David Hart).
+- Fix memory leak in wxGrid::ShowCellEditControl() (Christian Sturmlechner).
wxMSW:
-- Fixed compilation with Borland C++ in Unicode mode but without MSLU
-- Show taskbar icon menu on right button release, not press
+- Fixed compilation with Borland C++ in Unicode mode but without MSLU.
+- Show taskbar icon menu on right button release, not press.
wxGTK:
-- Don't crash if command line is not valid UTF-8 (Unicode build only)
+- Don't crash if command line is not valid UTF-8 (Unicode build only).
wxUniv:
-- It is now possible to set background colour of wxStaticText
+- It is now possible to set background colour of wxStaticText.
2.8.0
All:
-- Added wxSearchCtrl (Vince Harron)
-- wxCSConv("UTF-16/32") now behaves correctly, i.e. same as wxMBConvUTF16/32
-- wxArrayString::Alloc() now works as reserve() and doesn't clear array contents
+- Added wxSearchCtrl (Vince Harron).
+- wxCSConv("UTF-16/32") now behaves correctly, i.e. same as wxMBConvUTF16/32.
+- wxArrayString::Alloc() now works as reserve() and doesn't clear array contents.
- Fixed long standing bug in wxFileConfig groups renaming (Antti Koivisto).
- New option wxFS_READ | wxFS_SEEKABLE for wxFileSystem::OpenFile() to return
a stream that is seekable.
-- Fixed bug in wxCalendarCtrl::HitTest() when clicking on month change arrows
-- Added wxWindow::GetWindowBorderSize() and corrected wxTreeCtrl::GetBestSize()
- for a control with borders (Tim Kosse)
+- Fixed bug in wxCalendarCtrl::HitTest() when clicking on month change arrows.
+- Added wxWindow::GetWindowBorderSize() and corrected wxTreeCtrl::GetBestSize().
+ for a control with borders (Tim Kosse).
wxMSW:
- Fixed version script problems when using configure with cygwin/mingw32.
- Use system default paper size for printing instead of A4.
-- Fix (harmless) assert in virtual list control under Vista
+- Fix (harmless) assert in virtual list control under Vista.
- Fix colours when converting wxBitmap with alpha to wxImage (nusi).
wxGTK:
-- Allow dynamically changing most of text control styles
-- Enable use of libgnomeprintui by default in configure
+- Allow dynamically changing most of text control styles.
+- Enable use of libgnomeprintui by default in configure.
2.7.2