-------------------------------------------------------------------------------
                             wxWidgets Change Log
-------------------------------------------------------------------------------

Note: This file contains the list of changes since wxWidgets 3.x, please see
      docs/changes_30.txt for the changes in the previous versions.


INCOMPATIBLE CHANGES SINCE 3.0.x:
=================================

Changes in behaviour not resulting in compilation errors
--------------------------------------------------------

- wxRibbonButtonBar::DeleteButton() now deletes and not just removes the button.
- Default interpolation mode in wxGDIPlusContext under MSW is now
  wxINTERPOLATION_DEFAULT and not wxINTERPOLATION_GOOD as in 3.0 for
  consistency with OS X, call SetInterpolationQuality() explicitly if needed.

- Calling wxYield() in wxMSW now generates wxEVT_IDLE events, just as in the
  other ports, but this can be unexpected for the applications not expecting
  their idle handlers to be called from inside wxYield().

- Creating wxBitmap with 0 width or height now always fails in all ports
  (it used to succeed in wxMSW).

- Using invalid flags with wxBoxSizer or wxGridSizer items now triggers asserts
  when done from the code or error messages when done in XRC.

- wxWS_EX_VALIDATE_RECURSIVELY is now the default behaviour, i.e. calling
  Validate() or TransferData{From,To}Window() will now also call the same
  function for all children.

- wxOSX/Carbon port doesn't exist any more, wxOSX/Cocoa will be silently used
  instead even if configure --with-osx_carbon option is used.

Changes in behaviour which may result in build errors
-----------------------------------------------------

- "webview" library is not included in `wx-config --libs` output any more, you
  need to request it explicitly, e.g. `wx-config --libs std,webview`.

- wxMSW now requires linking with shlwapi.lib and version.lib. This is done
  automatically in most cases, but if you use a static build of the library
  with a non-MSVC compiler such as MinGW and do not use wx-config, then you
  will need to add these libraries to your make or project files yourself.

- WXWIN_OS_DESCRIPTION doesn't exist any longer, use wxGetOsDescription().


3.1.0: (released 2016-02-29)
----------------------------

- Many improvements for high DPI monitors support, notably XRC now interprets
  all pixel values as being in resolution-independent pixels.

- wxQt branch implementing Qt5-based port of wxWidgets API was merged into
  the trunk (Mariano Reingart, Google Summer of Code project).

- Added wxNativeWindow allowing to embed native widgets in wxWidgets programs.

- Improve wxGLCanvas to be more type safe and better support modern OpenGL.

All:

- Add UTF-8 and ZIP 64 support to wxZip{Input,Output}Stream (Tobias Taschner).
- Upgrade libpng to 1.6.21 fixing several security bugs (Paul Kulchenko).
- Support gstreamer 0.10 and 1.0 in wxMediaCtrl (Sebastian Dröge).
- Fix handling of Unicode file names in wxFileSystem::FindFirst().
- Add wxStandardPaths::GetUserDir() (Tobias Taschner).
- Allow calling wxItemContainer::Add() and similar with std::vector<> argument.
- Add "%z" support to printf()-like functions like wxString::Format() (RIVDSL).
- Add DOCTYPE support to wxXmlDocument (Nick Matthews).
- Add wxPowerResourceBlocker (Tobias Taschner).
- Add wxApp::StoreCurrentException() and RethrowStoredException() and implement
  their functionality by default when using C++11 compiler.
- Allow iterating over wxCmdLineParser arguments in order (Armel Asselin).
- Add wxScopedArray ctor taking the number of elements to allocate.
- Add wxDynamicLibrary::GetModuleFromAddress() (Luca Bacci).
- Implement wxThread::SetPriority() for pthreads (Luca Bacci).
- Add wxInt64 support to wxText{Input,Output}Stream (Alexander Bezzubikov).
- Define wxOVERRIDE as override for supporting compilers (Thomas Goyne).
- Allow specifying custom comparator for wxSortedArrayString (Catalin Raceanu).
- Add wxDateTime::GetWeekBasedYear().
- Specialize std::hash<> for wxString when using C++11.
- Allow recursive calls to wxYield().
- Add wxART_FULL_SCREEN standard bitmap (Igor Korot).
- Fix wxStringTokenizer copy ctor and assignment operator.
- Added wxASSERT_MSG_AT() and wxFAIL_MSG_AT() macros.
- Accept replacement character in wxString::ToAscii() (Stefano D. Mtangoo).

Unix:

- Fix bug in wxExecute() if child exited too quickly (Kevin B. McCarty).
- Add --disable-sys-libs configure option.
- Add --enable-cxx11 configure option.

All (GUI):

- Allow requesting modern (3.x+) OpenGL version in wxGLCanvas (Fabio Arnold).
- Add wxActivityIndicator.
- Add wxWindow::FromDIP() for simpler high DPI support.
- Allow initially hiding sizer items in XRC (Bogdan Iordanescu).
- Allow customizing window shown by wxBusyInfo.
- Add wxAddRemoveCtrl.
- Add wxAppProgressIndicator for MSW (Chaobin Zhang) and OS X (Tobias Taschner).
- Add support for using checkboxes to wxListCtrl (Maarten Bent).
- Add wxListBox::GetTopItem() and GetCountPerPage() (Andreas Falkenhahn).
- Add wxTextEntry::ForceUpper().
- Add wxTextEntryDialog::ForceUpper().
- Add wxEVT_MAGNIFY mouse event (Joost Nieuwenhuijse).
- Add wxProcess::Activate().
- Fix setting colours of labels in wxSlider.
- Fix setting background colour of wxRadioBox buttons.
- Add wxTopLevelWindow::Enable{Maximize,Minimize}Button() (John Roberts).
- Make results of wxDC::DrawEllipticArc() consistent across all platforms.
- XRC handler for wxAuiToolBar added (Kinaou Hervé, David Hart).
- Improve wxLIST_AUTOSIZE_XXX support in generic wxListCtrl (Kinaou Hervé).
- Support "color", "size" and "font" CSS for fonts in wxHTML (Kinaou Hervé).
- Fix one pixel gaps between consecutive underlined words in wxHTML.
- Add wxCursor::GetHotSpot().
- Add wxFD_NO_FOLLOW style for wxFileDialog (Luca Bacci).
- Add support for embedding bitmaps in generated SVG in wxSVGFileDC (iwbnwif).
- Add support for sorting wxDataViewCtrl by multiple columns (Trigve).
- Allow dropping data on wxDataViewCtrl background (Laurent Poujoulat).
- Add wxRendererNative::DrawGauge() (Tobias Taschner).
- Add wxRendererNative::DrawItemText() (Tobias Taschner).
- Add wxHtmlWindow::SetDefaultHTMLCursor() (Jeff A. Marr).
- Add default ctor and Create() to wxContextHelpButton (Hanmac).
- Send events when toggling wxPropertyGrid nodes from keyboard (Armel Asselin).
- Fix wxRearrangeList::Check() which asserted and misbehaved before.
- Optimized wxRTC insertion and deletion when floating objects are present.
- Added on-demand image loading option to wxRTC.
- Add wxFont::GetBaseFont() (Melroy Tellis).
- Update Scintilla to v3.5.5 (Christian Walther, Heyoupeng, ARATA Mizuki).
- Add wxStyledTextCtrl copy/paste text events (Christian Walther).
- Improve RTL support in wxStyledTextCtrl (Zane U. Ji).
- Add support for loading old V1 BMP files to wxImage (Artur Wieczorek).
- Improve auto sizing of wrapped cells in wxGrid (iwbnwif).
- Fix handling of rectangular selections in wxStyledTextCtrl (roberto).
- Fix characters outside of the BMP in wxStyledTextCtrl (Thomas Goyne).
- Allow access to the currently shown wxInfoBar buttons (Hanmac).
- Add wxGenericListCtrl::EndEditLabel() (Tim Kosse).
- Use native renderer for drawing check boxes in wxPropertyGrid (Eran Ifrah).
- Fix drawing custom colours of wxEnumProperty items in wxPG (Artur Wieczorek).
- Add wxBitmap ctor from wxCursor.
- Always disable wxWizard "Back" button on the starting page (pmgrace30).
- Add wxUIActionSimulator::Select().
- Add wxOwnerDrawnComboBox::Is{List,Text}Empty() methods.
- Fix creating/removing mode buttons in wxPG manager (Artur Wieczorek).
- Harmonize wxMenuEvent handling between all major ports.
- Fix wxPGChoices copy ctor (Snoits).
- Show how to handle files on command line in docview sample (Neil Mayhew).
- Improve wxFileCtrl::SetFilename() and SetPath() (Kevin B. McCarty).
- Fix a crash when using animated GIFs in wxHtmlListBox.
- Use platform-specific stock icons for wxEditableListBox buttons.
- Add support for the events from multimedia keys (Jens Göpfert).
- Improve wxAUI appearance in high contrast themes (Zane U. Ji).
- Allow suppressing warnings from wxImage::LoadFile().
- Allow customizing wxRibbon highlight colours (wxBen).

wxGTK:

- Support building wxGTK3 under Windows (Kolya Kosenko).
- Implement support for non-wxTextCtrl custom editors in wxDataViewCtrl.
- Fix vertical cell alignment in wxDataViewCtrl.
- Fix clearing of wxComboBox with wxCB_READONLY (Chuddah).
- Fix setting "pressed" bitmap for wxToggleButton (Kevin B. McCarty).
- Fix GTK+ warnings for wxFileDialog with wxFD_MULTIPLE style.
- Don't generate wxEVT_LIST_ITEM_RIGHT_CLICK outside of item area (Igor Korot).
- Implement wxDataViewCtrl::SetIndent().

wxMSW:

- Make default wxSizer border DPI-aware.
- Implement native appearance for wxAUI tabs and toolbars (Tobias Taschner).
- Show more modern-looking wxNotificationMessages under 8+ (Tobias Taschner).
- Improve wxMimeTypesManager open command detection (Eric Jensen).
- Make wxFILTER_INCLUDE_LIST in wxTextValidator actually usable.
- Fix handling crashes in wxEVT_PAINT event handlers.
- Fix wxStackWalker to work with Unicode identifiers (Suzumizaki-kimitaka).
- Fix appearance of toggled wxToggleButtons with bitmap (tm).
- Fix setting menu item bitmaps after appending them (Artur Wieczorek).
- Fix setting label of submenu items (Artur Wieczorek).
- Fix handling of selected images in wxBitmapButton (Artur Wieczorek).
- Fix loading of bitmap with non-pre-multiplied alpha (Artur Wieczorek).
- Support multiline strings in wxDC::DrawRotatedText() (Artur Wieczorek).
- Fix stretchable spacers in vertical toolbars (Artur Wieczorek).
- Implement setting foreground colour for wxRadioButton (Artur Wieczorek).
- Add font colour support to wxFontPickerCtrl (Pana Alexandru).
- Add wxEnhMetaFile::Detach() (Luca Bacci).
- Add support for saving 256*256 32bpp ICOs in PNG format (Artur Wieczorek).
- Keep menu item icon after removing and adding it back (Artur Wieczorek).
- Add wxThread::MSWGetHandle() (troelsk).
- Allow using sizers for laying out wxMDIClientWindow (Artur Wieczorek).
- Fix updating wxSlider background when its parent background changes.
- Implement wxListBox::EnsureVisible() (RIVDSL).
- Drastically improve efficiency of selecting all items in wxDataViewCtrl.
- Fix spurious selection events generation in wxDataViewCtrl.
- Fix wxMenuEvent::GetMenu() for wxEVT_MENU_{OPEN,CLOSE} in MDI frames.
- Fix updating wxSpinCtrlDouble tooltip text (Laurent Poujoulat).
- Fix appearance of checked disabled wxToolBar tools with custom images.
- Fix reading of not NUL-terminated strings using wxRegKey (Steffen Olszewski).
- Fix unexpected change in MDI children order after showing a file dialog.
- Don't send events for already selected radio popup menu items (Kinaou Hervé).
- wxListCtrl::GetItemCount() in wxEVT_LIST_INSERT_ITEM is no longer off by 1.
- Don't send bogus root selection events when clicking wxTreeCtrl (sbrowne).
- Avoid bogus assert after calling wxDatePickerCtrl::SetRange().
- Add solution file for building with MSVS 2014 (Peter Tissen).
- Correct wxGetOsDescription() for Windows 10 (Tobias Taschner).
- Make wxListCtrl &c appearance more native on modern systems (Tobias Taschner).
- Don't send wxActivateEvent for minimized windows (bzcdr).
- Return correct OS version under Windows 8.1 and later.
- Fix crash in wxD2DContext when using non-MSVC compiler (iwbnwif).
- Notify shell about the changes done by wxMimeTypesManager (Maarten Bent).
- Fix wxPrintf() and friends when using MinGW with ANSI stdio option.
- Fix strike-through support in wxFont with GDI+ (David Vanderson).
- Fix UTF-32 conversion for non-BMP characters (ARATA Mizuki).
- Use correct parent for the native modal dialogs (Andreas Falkenhahn).
- Fix layout of wxSlider with wxSL_VALUE_LABEL only (gafatoa).

wxOSX/Cocoa:

- Make wxiOS (iPhone) port build and minimally work again (Tobias Taschner).
- Use more efficient FSEvents (10.7+) in wxFileSystemWatcher (Roberto Perpuly).
- Implement wxWindow::Disable() for non-native controls too (Steve Browne).
- Implement wxTopLevelWindow::EnableCloseButton() (John Roberts).
- Fix wxEVT_CHAR for non-BMP Unicode characters (ARATA Mizuki).
- Add wxTE_AUTO_URL support to wxTextCtrl (Igor Korot).
- Add support for wxEVT_COMBOBOX_{DROPDOWN, CLOSEUP} events (Igor Korot).
- Implement strike-through support in wxFont (Igor Korot, Daniel Kulp).
- Provide native implementation of wxStandardPaths (Tobias Taschner).
- Add wxTE_{RIGHT,CENTER} support for multiline wxTextCtrl (Andreas Falkenhahn).
- Don't leave wxSlider labels shown when the slider itself is hidden.
- Don't generate wxEVT_TEXT_ENTER for controls without wxTE_PROCESS_ENTER.
- Implement wxToolTip::SetDelay() (David Vanderson).
- Correct positioning of popup menus relative to mouse pointer (John Roberts).
- Add support for right-aligned checkboxes (John Roberts).
