-------------------------------------------------------------------------------
                             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
--------------------------------------------------------

- wxRegEx now uses PCRE library, changing the meaning of some regular
  expressions, please see the "Changes" section in wxRegEx documentation for
  more details.

- 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. These asserts are
  best avoided by fixing the flags, but wxSizerFlags::DisableConsistencyChecks()
  can be used to globally suppress them until this can be done. Even less
  intrusively, environment variable WXSUPPRESS_SIZER_FLAGS_CHECK can be set (to
  any value) to achieve the same effect.

- 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.

- The pure virtual function wxAppTrait::GetToolkitVersion() now has a parameter
  for getting the micro version. If you override GetToolkitVersion() you need
  to add this new third parameter.

- wxWindow::CreateAccessible() doesn't return accessible object by default
  anymore and GetOrCreateAccessible() may return NULL, indicating that native
  system-provided accessibility should be used.

- wxMSW port doesn't always let the system process WM_SYSKEYDOWN events any
  more, make sure to call event.Skip() in your wxEVT_KEY_DOWN and/or wxEVT_CHAR
  event handlers if you want the standard key combinations such as Alt-Space or
  Alt-F4 to work.

- wxMSW port now uses better appearing but much slower pens for dotted and
  dashed lines. Use wxPenInfo::LowQuality() or wxPen::SetQuality() to return to
  the previous version behaviour and performance characteristics if you are
  drawing many lines using such pens.

- wxOSX port uses default button margins for wxBitmapButton by default, for
  consistency with the other ports. You now need to call SetMargins(0, 0)
  explicitly if you really don't want to have any margins in your buttons.

- wxEVT_AUINOTEBOOK_PAGE_CHANGED event is now sent after changing the page,
  as expected, and not before doing it.

- wxJoystickEvent::GetButtonChange() now returns "1 << N" for the events
  generated by the button number N under all platforms, whereas it used to
  return just "N" under Linux and macOS. Use the new GetButtonOrdinal() to
  update the existing code if necessary.

- Generic wxDataViewCtrl now always resizes its last column to fill all the
  available space, as the GTK+ version always did.

- wxGTK wxNotebook::AddPage() doesn't generate any events any more for the
  first page being added, for consistency with the other ports.

- wxGTK wxTextCtrl doesn't generate any wxEVT_TEXT when it's created with
  non-empty value, for consistency with the other ports.

- wxDC::GetTextExtent() returns height of 0 for empty string in wxGTK and wxOSX
  too now, for consistency with wxMSW and other kinds of wxDC.

- wxMSW wxToolBar height now adapts to the height of embedded controls, making
  the toolbar taller if necessary, rather than making the controls smaller. To
  return to the previous behaviour, you need to explicitly create controls of
  smaller size.

- wxDC::DrawCheckMark() draws the same shape under all platforms now, use the
  new wxRendererNative::DrawCheckMark() to draw MSW-specific themed check mark.

- wxTE_PROCESS_ENTER must be used to receive wxEVT_TEXT_ENTER events from even
  multiline wxTextCtrl, conforming to the documentation, but contrary to the
  previous behaviour in wxMSW, when these events were always generated in this
  case. Please add wxTE_PROCESS_ENTER style if you relied on the old behaviour.

- wxGLCanvas now uses physical pixels on high DPI displays under platforms
  where they're different from logical ones (wxGTK3, wxOSX). Multiply logical
  coordinates, e.g. returned by wxWindow::GetSize() by GetContentScaleFactor()
  before using them with OpenGL functions.

- wxGTK now uses wxID_NONE item ID for wxEVT_MENU_HIGHLIGHT events sent when
  there is no highlighted menu item, instead of wxID_ANY used before, for
  consistency with wxMSW.

- wxListCtrl::GetItemState() in wxMSW now checks the passed in item index for
  validity, as the generic version under the other platforms already did.

- wxAuiNotebook::RemovePage() now hides the removed page, so it needs to be
  shown again if it is reused in another place.

- wxSizer::RecalcSizes() shouldn't be called directly (note that it was never
  supposed to be called, only implemented), call Layout() instead.

- wxFileDialog::GetPath() and wxFileDialog::GetFilename() now assert and return
  an empty string if called on dialogs with the wxFD_MULTIPLE style.

- wxGetInstallPrefix() now returns wxString.

- wxChoice::GetString() now consistently asserts when passed an invalid index.

- wxSpinCtrlDouble now always resets its value to GetMin() if an invalid text
  string is passed to its SetValue(wxString) overload after its creation.

- wxSpinCtrl::SetValue(wxString) overload doesn't generate any events with
  wxMSW, which was already the documented behaviour.

- wxButton::GetBitmap{Current,Disabled,Focus,Pressed}() only return valid
  bitmaps in wxMSW if the corresponding Set had been called before, as in the
  other ports, instead of returning the normal bitmap as fallback in this case.

- wxFileName::GetVolume() now returns "\\share" and not just "share" for the
  UNC paths (i.e. \\share\path\on\remote\server) and "\\?\Volume{GUID}" for the
  volume GUID paths rather than just "Volume{GUID}" as before. This allows
  distinguishing them from the drive letters, even for single letter network
  share name.

- wxRichTextParagraph::GetLines() now returns const wxVector<wxRichTextLine*>&
  instead of wxList<wxRichTextLine*>&.

- wxDateTime::ParseRfc822Date() now interprets a 2-digit year as 19xx, or
  20xx for 00..29, whereas earlier e.g. 95 was interpreted literally as 95 AD.


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

- wxBitmapComboBoxBase::SetItemBitmap() changed argument's type from wxBitmap
  to wxBitmapBundle.

- "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 a few more system libraries: oleacc.lib,
  shlwapi.lib, uxtheme.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.

- wxPaintEvent objects can no longer be created by the application code. This
  was never supposed to work and is now forbidden at compile-time instead of
  resulting in errors during run-time.

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

- Never documented and not always available private wxGetClipboardData()
  function now doesn't exist at all any more in wxMSW, use wxClipboard instead.

- wxGraphicsRenderer::CreatePen() now takes wxGraphicsPenInfo and not a wxPen.
  This only affects code defining its own custom renderers, code just using
  wxGraphicsContext::CreatePen() continues to compile and work as before.

- wx/treebook.h doesn't include wx/treectrl.h (and, via it, wx/textctrl.h) any
  more, include these headers explicitly from your code if necessary.

- wxHtmlDCRenderer::Render() arguments have changed, simply omit the ones not
  existing in the function signature any more to update the code using it.

- wxHtmlCell::AdjustPagebreak() has lost its "known_pagebreaks" argument,
  update your code if you override this method (you shouldn't be calling it).

- wxListCtrl::SetItem() overload taking the column index now returns bool and
  not long. Its return value hasn't changed, however, and is still always
  either true or false, so normally the existing code should continue to work.

- configure only accepts the options it knows about now and doesn't silently
  ignore all the rest. If you get errors about unknown options, you may either
  specify --disable-option-checking argument to continue accepting them (which
  only ever makes sense if you pass these options to sub-configure scripts) or,
  e.g. if the error is due to spelling an option name wrongly, fixing or
  removing its name.

- wxTextValidator::Get{In,Ex}cludes() now return a const reference to
  wxArrayString. Please update your code to use the appropriate setter
  Set[Char]{In,Ex}cludes(), instead of mutating the internal data directly.

- Under macOS, 10.11 SDK is the minimum SDK, building and deploying under 10.10.5 and
  higher is supported, you must use at least Xcode 7.2.1.

- wxOSX Xcode projects no longer include the i386 target by default and,
  with Xcode 12 or later, build for the arm64 architecture in addition to
  existing x86_64. See build/osx/wxcocoa.xcconfig for more information.

- wxPGProperty ctors are not longer public since this class is intended to be
  a base class and should not be instantiated directly.

- wxIntProperty::DoValidation() and wxFloatProperty::DoValidation() are
  no longer public since they are helpers intended for internal use only.

- wxGridCellAttr ctor taking wxGridCellAttr pointer is now explicit.

- wxAuiPaneButton doesn't exist any more, it was never supposed to be used
  outside of the library, but if you did use, just use "int" button instead.

- wxAuiMDIChildFrame now inherits from wxFrame and not wxPanel, you will need
  to change your code and XRC definitions accordingly.

- wxGridEvent methods GetRow() and GetCol() are no longer virtual.

- wxImage constructor from XPM data is now explicit, write "wxImage(xpmData)"
  instead of just "xpmData" if you really need to use it.

- wxWindow::DoGetBorderSize() was removed, if you used this non-public function
  in your code, you can replace it with public GetWindowBorderSize().

- Microsoft Visual Studio 2003 (a.k.a. MSVC 7) is not supported any longer, the
  minimum required version is now 2005.


3.2.0: (released 2022-07-07)
----------------------------

All:

- Build fixes for Unix systems using older Cairo or glibc versions.
- Fix wxFileName::ReplaceHomeDir() when HOME=="/".
- Fix wxLocale::IsAvailable(wxLANGUAGE_DEFAULT) regression.
- Provide CMake config file for the library.
- Add a 'revision' component to wxVersionInfo (Ronny Krüger).

All (GUI):

- Make loading bitmaps using BI_BITFIELDS work again.
- Fix wxGenericListCtrl::GetColumnCount() for wxLC_LIST (Kvaz1r).
- Fix refresh after calling wxGenericListCtrl::EnsureVisible() (taler21).
- Add wxMenuItem::GetBitmapBundle().
- Support additional wxWizard properties in XRC (Randalphwa).

wxGTK:

- Fix wxDC::Blit() and wxBitmap::GetSubBitmap() with HiDPI bitmaps.
- Fix TAB navigation in wxSimplebook (Adrian Lopez).
- Support wxINVERT logical operation on wxDC with white source colour.
- Don't assert in wxGtkImage (used in e.g. wxToolBar) when bitmap is missing.
- Fix wxListBox selection colors with non-default background (alilie).
- Fix wxCURSOR_SIZING with Wayland.
- Recognize modern versions of GNOME in GetDesktopEnvironment() (Ulrich Telle).

wxMSW:

- Fix wxDC::DrawRoundedRectangle() and wxImageList::Draw() regressions.
- Fix wrong results of wxWebResponse::GetHeader() and GetURL().
- Fix creating wxBitmap of depth 32 but without real alpha.
- Improve top level window resizing on DPI change and allow overriding it.

wxOSX:

- Fix regression in wxTextCtrl best size calculation.
- Fix activation of applications using LSUIElement == true.
- Fix AUI sash appearance in dark mode (alilie).
- Recognize macOS 12 in wxGetOsDescription() (Tobias Taschner).


3.1.7: (released 2022-06-06)
----------------------------

INCOMPATIBLE CHANGES SINCE 3.1.6:

- wxImageFileProperty::m_pImage and m_pBitmap member variables were removed.
  They were not intended for the public API. m_image variable represents
  cached image now.

- wxPropertyGridPageState functions intended for internal use are no longer
  public. Corresponding functions in wxPropertyGridInterface, wxPropertyGrid,
  wxPropertyGridPage, and wxPropertyGridManager should be used instead.


All:

- Improvements to CMake, notably better PCH support.
- Add wxTRANSLATE_IN_CONTEXT() (Lauri Nurmi).
- Fix wxIPV6address initialization.

All (GUI):

- Further improve bitmap rescaling logic in high DPI.
- Add wxEVT_GRID_ROW_AUTO_SIZE to wxGrid (Dietmar Schwertberger).
- Add possibility to drag-move wxGrid rows too (Dietmar Schwertberger).
- Improve UI of several mouse operations in wxGrid (Dietmar Schwertberger).
- Add support for 3rd wxCheckBox state to XRC (Randalphwa).
- Add support for more wxBitmap attributes to XRC (Randalphwa).
- Add support for wxSpinCtrl digits attributes to XRC (Randalphwa).
- Add wxBitmapBundle::FromIconBundle() (Uwe Runtemund).
- Allow getting current ribbon tool rectangle (Uwe Runtemund).
- Allow sharing client data in wxGrid-related classes (Frode Roxrud Gill).
- Fix font sizes in wxSVGFileDC (Maarten Bent).
- Fix layout of wxWrapSizer in wxFlexGridSizer (Antti Nietosvaara).
- Fix wxRichToolTipPopup appearance in high DPI (Maarten Bent).

wxGTK:

- Avoid GDK errors when using PopupMenu() with Wayland.
- Fix drag and drop in generic wxDataViewCtrl (Konstantin Matveyev).

wxMSW:

- Provide new IFileDialog-based customization API.
- Fix handling of standard accelerators in wxSpinCtrl (Dietmar Schwertberger).
- Fix infinite recursion in wxAuiNotebook::OnHelp().
- Fix performance regression in wxSTC redrawing (Maarten Bent).
- Fix regression in wxFileName::Normalize(wxPATH_NORM_LONG) and UNC paths.
- Fix sizes in the standard font dialog in high DPI.
- Fix warnings about bitwise operations with MSVC in C++20 mode.

wxOSX:

- Fix disappearing dialogs when using Spaces.
- Suppress menu items automatically added by macOS 12.
- Allow user input in wxPopupTransientWindow.
- Don't touch existing libraries in make install (Lauri Nurmi).
- Generate events for 4th and 5th mouse buttons (Lauri Nurmi).

wxUniv:

- Fix client data memory leak in wxListBox (Kvaz1r).


3.1.6: (released 2022-04-04)
----------------------------

All:

- Add wxUILocale: CompareStrings(), GetLocalizedName() etc.
- Add convenient wxFileName::GetAbsolutePath() helper.
- Add support for std::string_view to wxPrintf() etc.
- Add wxString::ToInt() and ToUInt() (Gerhard Gruber).
- Add wxGetNativeCpuArchitectureName() (Tobias Taschner)
- Add wxSecureZeroMemory() (Lauri Nurmi).
- Add wxThread::SetName() (Lauri Nurmi).
- Recognize Windows 11 and macOS 12 in wxGetOsDescription() (Tobias Taschner).
- Significantly speed up wxMBConv iconv-based implementation (rlbxku1r).
- Support searching from end in wxArrayString in STL build (Pavel Tyunin).
- Update and extend list of known locales (Ulrich Telle).
- Several improvements to parsing dates in wxDateTime (Lauri Nurmi).
- Fix new compilation warnings with clang 13.
- Fix warnings when building with gcc 11 and clang 12 -std=c++20.
- Replace deprecated AC_HELP_STRING in wxwin.m4 (Alexander Bisono).

All (GUI):

- Add wxBitmapBundle and use it throughout the entire API and in XRC.
- Add support for using native spell checking in wxTextCtrl (iwbnwif).
- Add support for style to wxWizard XRC handler (ousnius).
- Add WXSUPPRESS_SIZER_FLAGS_CHECK and improve assert messages.
- Add sort indicators support to wxListCtrl (Maarten Bent).
- Add support for extra menu item accelerators (Alexander Koshelev)
- Add wxDPIChangedEvent::Scale().
- Add wxEVT_SPLITTER_SASH_POS_RESIZE (Gerhard Gruber).
- Add wxImage::Change{Saturation,Brightness,HSV,Lightness}() (Tomay).
- Add wxIntegerValidator ctor taking range (Simon Stone).
- Add wxKeyEvent::IsAutoRepeat() (MArk Jessome).
- Add wxMC_NO_AUTORESIZE wxMediaCtrl style (Scott Talbert).
- Add wxSpinCtrl::GetTextValue().
- Add wxSpinCtrl::SetIncrement() (Igor Korot).
- Add wxStyledTextCtrl XRC handler (Alexander Koshelev)
- Add wxTopLevelWindow::SetContentProtection() (Tobias Taschner).
- Add wxWebView::RunScriptAsync() (Tobias Taschner).
- Add wxXmlResource::LoadDocument().
- Allow dropping multiple formats on wxDVC (Konstantin S. Matveyev)
- Allow using any window for the visible part of wxComboCtrl.
- Fix <big> and <small> tags handling in wxHTML (bakcsizs).
- Fix DPI change handling in wxGrid with hidden row/column labels.
- Fix handling of floating and resizable AUI toolbar panes (Kvaz1r).
- Fix loading BMP files using RLE (David Costanzo).
- Fix loading BMP files with malformed biClrUsed field (David Costanzo).
- Implement drawing splines in wxSVGFileDC
- Improve wxSpinCtrlDouble significant digits handling.
- Optimize wrapping long lines in wxRichTextCtrl (Mehmet Soyturk).

wxGTK:

- Many bug fixes for Wayland-specific problem.
- Fix missing mouse events after enabling touch events (Thierry Bultel).
- Allow suppressing GTK diagnostics (Marco DeFreitas).
- Fix getting key events from wxDataViewCtrl.
- Fix getting wxPrintData from the print dialog.
- Fix wxMediaCtrl support when using Wayland (Dominique Martinet).
- Generate wxKeyEvents for GDK_KEY_LaunchX keys (Dominique Martinet).

wxMSW:

- Add MSVS 2022 support.
- Use Winsock 2 by default.
- Make all native modal dialogs app modal.
- Fix setting focus to wxWebViewEdge (PB).
- Fix handling of ampersands in wxCheckListBox items.
- Fix crash in wxWebViewIE::Find() (PB).
- Fix size of the buttons when not using a manifest.
- Fix spurious assertions when using unknown Win32 locales.
- Fix wxDC::Blit() when using RTL layout (Dimitri Schoolwerth).
- Fix wxDataViewModel::ItemAdded() for closed nodes (Ilya Sinitsin).
- Fix wxStaticBox repainting in RTL (AliKet).
- Implement getting/releasing HDC in Cairo wxGraphicsContext
- Implement getting/releasing HDC in Direct2D wxGraphicsContext
- Improve dark mode detection (QuentinC)
- Use correct default printer settings (Stefan Ziegler).

wxOSX:

- Implement undo/redo for (multiline) wxTextCtrl (Dan Korn).
- Implement wxCmpNatural() using the same order as Finder does.
- Implement wxEVT_CHAR generation for wxDataViewCtrl.
- Implement wxFSVolume for macOS (Tobias Taschner).
- Allow having multiple lines in single line wxTextCtrl (Tobias Fleischer).
- Allow setting full screen view options (Tobias Taschner).
- Fix crash when clearing wxDataViewModel (Konstantin S. Matveyev).
- Fix handling of drag-and-drop in native controls.
- Fix right click event generation for wxComboBox (Daniel Kulp).
- Fix symlinks support in wxFileSystemWatcher (Richard Gibson).
- Fix task bar icon size in high DPI (Dominic Letz).
- Significantly speed up creating standard system fonts.

wxUniv:

- Many fixes to event generations, scrolling etc (Kvaz1r).
- Fix refresh problems when scrolling with mouse wheel (Kvaz1r).
- Many improvements and bug fixes in wxTextCtrl (Kvaz1r).
- Fix handling mouse capture in menus (Kvaz1r).


3.1.5: (released 2021-04-14)
----------------------------

All:

- Add wxWebRequest with support for HTTPS and HTTP/2 (Tobias Taschner).
- Add wxGetCpuArchitectureName() (Lauri Nurmi).
- Add support for 64-bit integers to wxConfig.
- Add wxFileName::ResolveLink() (Ian McInerney).
- Add wxString::utf8_string().
- Use millisecond resolution for wxLog timestamps.
- Fix wrong FIFO/sockets detection in wxFileName (atbara46).
- Fix search in wxSortedArrayString with custom comparator (Pavel Tyunin).
- Allow translations for different versions to co-exist (Andriy Byelikov).
- Eliminate really all gcc warnings from wx headers.
- Avoid gcc -Wsuggest-override inside wx macros (Teodor Petrov).
- Bug fixes and improvements in wxConvAuto (Pavel Tyunin).

All (GUI):

- Add wxPersistentComboBox to save user input history easily.
- Add alpha blending support to wxImage::Paste() (Rachel Mark, Eric Raijmakers).
- Add wxImageDataObject for copying wxImage to/from clipboard (Artur Wieczorek).
- Add support for user script messages to wxWebView (Tobias Taschner).
- Add wxFileHistory::SetMenuPathStyle() (Ian McInerney).
- Add wxEVT_GRID_RANGE_SELECT{ING,ED} (Daniel Kulp).
- Add wxGrid::wxGridSelectNone selection mode (Gary Allen).
- Fix changing in wxGrid with multicells (Dimitri Schoolwerth).
- Fix custom date formats in wxGrid.
- Improve wxGrid appearance in dark mode (Daniel Kulp).
- Optimize handling of attributes in wxGrid (Dimitri Schoolwerth).
- Fix infinite loop with auto-wrapped cells in wxGrid (Dimitri Schoolwerth).
- Apply data transfer to the window itself too (Ali Kettab).
- Add wxUpdateUIEvent::IsCheckable() (Ian McInerney).
- Fix wxCaret default ctor (Stefan Brüns).
- Improve tooltips handling in wxPropertyGrid (Pavel Tyunin).
- Allow extending rules and zebra in wxListCtrl to the whole window (Marcos).
- Implement new coordinates conversion functions in wxDC (Artur Wieczorek).
- Improve high DPI handling in wxHtmlWindow (Maarten Bent).
- Improve selection/focus event generation in wxGenericListCtrl (Ali Kettab).
- Improve wxComboCtrl popup positioning (Oleksandra Yushchenka, Maarten Bent).
- Add wxRIBBON_ART_PANEL_HOVER_BORDER_[GRADIENT_]COLOUR (Gary Allen).
- Add wxRibbonToolBar GetToolByPos() and GetToolRect() (Gary Allen).
- Improve tooltips behaviour in wxRibbon (Gary Allen).
- Fix resorting wxDataViewCtrl with custom sort order (Jorge Moraleda).
- Make combining alignment and centering in wxSizerFlags work in wxGridSizer.
- Restore support for loading XRC files from URLs.
- Improve support for using default system locale.

wxGTK:

- Implement EGL-based wxGLCanvas for Wayland (Scott Talbert).
- Support Wayland in wxMediaCtrl (Pierluigi Passaro).
- Improve wxDataViewCtrl item insertion performance (Sebastien Besombes).
- Return more reasonable value from wxSlider::GetBetSize().
- Avoid pixman debug warnings in wxGrid.

wxMSW:

- Fix infinite repaint loop in wxListCtrl with wxLC_HRULES.
- Add real support for monochrome bitmaps to wxMSW (Bill Su).
- Allow customizing invalid wxDatePickerCtrl text.
- Allow using lower quality but faster pens.
- Fix best size of wxDatePickerCtrl with wxDP_ALLOWNONE.
- Fix build after STL changes in MSVS 2019 16.6
- Fix using JS in wxWebViewIE with custom scheme (Maarten Bent).
- Handle exception in wxEVT_CHAR_HOOK correctly.
- Improve high DPI support and custom scheme handlers in IE-based wxWebView (michael).
- Preserve ampersands in toolbar tool tooltips.
- Support Ctrl-Backspace in non-rich text controls too.

wxOSX:

- Add wxFullScreenEvent (Tobias Taschner).
- Add support for underline and strike-through in markup labels.
- Implement wxBitmap ctor from wxCursor (Igor Korot, Maarten Bent).
- Improve text controls focus ring appearance.
- Improve wxPreferencesEditor appearance under macOS 11.
- Significantly speed up wxDataViewCtrl::SetSelections().
- Fix window background tinting on macOS 11 (Václav Slavík).
- Fix cosmetic problem in wxSplitterWindow appearance (Andreas Falkenhahn).
- Fix bug with double clicking on empty space in wxDataViewCtrl (kurisutsukato).
- Fix handling of standard edit commands in context menu.
- Fix key events codes for non-ASCII characters (Artur Sochirca).
- Fix of accelerators defined in wxAcceleratorTable.
- Fix selection after inserting items in wxListBox (Andreas Falkenhahn).
- Fix system UI font handling on macOS 11.
- Fix truncation of images in wxDataViewCtrl (Andreas Falkenhahn).
- Fix wxDataViewCtrl columns resizing (Andreas Falkenhahn).
- Generate wxEVT_DATAVIEW_ITEM_EDITING_DONE in wxDataViewCtrl (Andreas Falkenhahn).
- Make setting tooltips for non-native windows work again.
- Make wxCOL_WIDTH_AUTOSIZE work correctly in wxDataViewCtrl (Andreas Falkenhahn).
- Mark wxTextCtrl as dirty before calling the event handler (Hartwig Wiesmann).
- Send wxEVT_TEXT when wxComboBox selection changes (Andreas Falkenhahn).
- Set and update wxListBox horizontal scrollbar correctly (Andreas Falkenhahn).
- Switch to WKWebView for wxWebView implementation (Tobias Taschner).

wxQt:

- Implement gesture events support (bdbcat).
- Implement wxMenuItem::SetFont() (bdbcat).


3.1.4: (released 2020-07-22)
----------------------------

INCOMPATIBLE CHANGES SINCE 3.1.3:

- CMake library targets were renamed and now start with 'wx'. In addition,
  aliases for the libraries have been added using the 'wx::' namespace. For
  example, the core library is now named wxcore and has alias wx::core.

- Building on ARM Apple platforms using configure now targets macOS by
  default, and not iOS. Please use --with-osx_iphone explicitly if you need
  the latter.


All:

- Add natural sort functions (Hugo Elias, PB).
- Add wxTempFFile class (Dummy).
- Fix bug with multiple leading ".." in wxFileName::Normalize() (Fabian Cenedese).
- Improve brush transparency support in wxSVGFileDC (Maarten Bent).
- Optionally forbid implicit wxString/char* conversions (Arrigo Marchiori).
- Add --disable-tests configure option (Hertatijanto Hartono).

All (GUI):

- Many wxGrid improvements:
  - Live-resize wxGrid columns/rows, making it work with wxGTK3 and wxOSX too.
  - Add activatable editors support, use it for boolean cells.
  - Add support for copying selected cells to clipboard (Kvaz1r).
  - Many bug fixes and usability improvements to selection.
  - Improve wxGridCellChoiceEditor usability (Ian McInerney).
  - Significantly optimize wxGrid::AutoSizeColumns() for big grids.
  - Add ellipsization support.
- Add support for wxGenericAnimationCtrl to XRC (Ilya Sinitsin).
- Add wxDD_SHOW_HIDDEN and wxDD_MULTIPLE wxDirDialog flags (Ian McInerney, PB).
- Add wxWebView::SetZoomFactor(float) (Hertatijanto Hartono).
- Add wxWindow::DisableFocusFromKeyboard() (Tomay).
- Allow overriding wxDataViewModal::HasValue() (Jorge Moraleda).
- Call wxAuiManager::UnInit() automatically now.
- Fix crash and layout problem in wxGenericDirCtrl (Maarten Bent).
- Improve AUI appearance in dark mode (Daniel Kulp, Michel Le Bihan).
- Upgrade libjpeg to 9d.
- Enable SIMD use in builtin PNG library (Maarten Bent).

wxGTK:

- Add native wxSearchCtrl implementation (AliKet).
- Several bug fixes and improvements in wxSpinCtrl.
- Implement wxBU_EXACTFIT support in wxButton (Artur Wieczorek).
- Allow using generic wxAnimationCtrl if wanted.
- Fix a regression with crashes when using wxBufferedPaintDC.
- Fix drawing bitmaps with masks using wxGraphicsContext under GTK2.
- Fix position of popup menus on non-primary display.
- Make wxUIActionSimulator much more reliable (AliKet).
- Fix caret colour in wxTextCtrl with custom colours.

wxMSW:

- Add Edge-based wxWebView backend (Tobias Taschner).
- Add wxUSE_DPI_AWARE_MANIFEST option (Maarten Bent).
- Add support for private fonts to Direct2D renderer (Artur Wieczorek).
- Adjust sizer borders on DPI change too (Maarten Bent).
- Allow showing only scalable fonts in wxFontDialog (Gilbert Pelletier).
- Fix building with gcc 10.1 in C++20 mode (PB).
- Fix flicker when resizing MDI frames (Richard Reznicek).
- Fix position of IME in wxSTC (wangqr).
- Fix wxWindow::Reparent() for TLWs (Danail Stoychev).
- Improve TAB handling in wxListBox (Artur Sochirca).
- Make CMake build using MinGW consistent with configure (Maarten Bent).
- Make wxDC::GetExtent() much faster (and a bit less precise).

wxOSX:

- Add support for macOS 11.
- Make wxOverlay work under macOS Mojave and later.
- Allow disabling automatic tabbing (Ian McInerney).
- Avoid duplicate key down events for Ctrl-O.
- Fix event generation, notably for mouse clicks, on wxStaticBitmap.
- Make shaped windows work again.
- Fix bugs in client size computation for some controls.
- Invalidate display cache when system configuration changes.
- Fix not showing more than 13 combobox items under 10.13+ (Dan Korn).
- Fix regression with child process IO redirection in 3.1.3.
- Fix regression with copying to clipboard in 3.1.3.
- Fix wxMediaCtrl::Seek() for sub-second resolution (Scott Talbert).
- Improve wxTextCtrl and wxSpinCtrl sizing (wangqr).
- Send EVT_MENU_HIGHLIGHT when menu items are unhighlighted (Ian McInerney).
- Stop including SDK headers from public wx headers (Lauri Nurmi).
- Support background colour in wxDataViewCtrl attributes (Ian McInerney).

wxiOS:

- Fix bundled libpng to not crash on iOS < 10.13 (maccy2).
- Implement wxMenu.

wxQt:

- Fix build with Qt 5.15 (Stefan Brüns).


3.1.3: (released 2019-10-28)
----------------------------

INCOMPATIBLE CHANGES SINCE 3.1.2:

- New wxTranslations::GetAcceptableTranslations() method was problematic and
  was removed, fixing various regressions in wxTranslations::AddCatalog() that
  were introduced by it. Thanks to Tomasz Słodkowicz and Dummy for reporting
  this and providing fixes for it.


All:

- Add C++20-style wxString::starts_with()/ends_with() functions (Lauri Nurmi).
- Add Croation translations (Milo Ivir).
- Add wxRegEx::QuoteMeta() (Tomay).
- Fix MIME type for wxFSFile obtained from wxHTTP.
- Support nullptr in wxPrintf() etc.
- Allow specifying optional libs in WX_CONFIG_CHECK (Juha Sointusalo).

All (GUI):

- Add support for freezing columns and/or rows in wxGrid (Lucian Rotariu)
- Fix wxInfoBar close button size in high DPI (Stefan Ziegler).
- Make disabling the window before creating it actually work.
- Implement wxAuiNotebook::GetBestSize() (Sebastian Walderich).
- Add support for editing dates (without time) to wxGrid (Pavel Kalugin).
- Allow changing tooltip text for button allowing to enter a new string
  in wxPGArrayEditorDialog.
- Fix wxPropertyGrid issues with horizontal scrolling.
- Add wxPG_DIALOG_TITLE wxPGProperty attribute.
- Add support for creating a wxGraphicsPen with a gradient.
- Add support for applying a transformation matrix to a gradient.
- Fix and unify drawing wxBitmap with both alpha channel and mask under all platforms.
- Improve AUI notebook appearance in high DPI (Paul Kulchenko).
- Add XRC handler for wxDataViewCtrl (Anton Triest).
- Add XRC handler for wxInfoBar (Илья Синицын).
- Add support for checkboxes to virtual wxListCtrl too (Maarten Bent).
- Add wxBusyInfo::Update{Text,Label}() (Kvaz1r).
- Add wxDCTextBgColourChanger and wxDCTextBgModeChanger (Vsevolod V Gromov).
- Add wxFD_SHOW_HIDDEN flag to wxFileDialog (Igor Korot).
- Add wxRendererNative::DrawCheckMark() (Maarten Bent).
- Add wxSystemAppearance, notably useful for macOS dark mode checks.
- Allow expanding environment variables in XRC file paths (ousnius).
- Enhance support for underlining in wxTextCtrl.
- Fix spurious asserts in wxBoxSizer when wxSHAPED is used.
- Fix wxWrapSizer minimum size calculations (Илья Синицын).
- Improve popups appearance and behaviour in wxSTC (New Pagodi).
- Improve wxHtmlWindow selection appearance and behaviour (Павел Калугин).

wxGTK:

- Invalidate selection after deleting wxListBox item with GTK+ 3 too.
- Add support for ticks to wxSlider (Iwbnwif Yiw).
- Fix two-finger scrolling under Wayland (Scott Talbert).
- Fix wxEVT_KEY_DOWN for non-ASCII characters (Scott Talbert).
- Fix crash in wxDataViewTreeCtrl::DeleteAllItems().
- Make wxDataViewModel::Cleared() behave consistently with the other ports.
- Fix best size computation for multiline wxTextCtrl.
- Fix best size computation for wxGauge (Iwbnwif Yiw).

wxMSW:

- Add support for per-monitor DPI under new enough OS versions (Maarten Bent).
- Add MSVS 2019 support.
- Fix passing Unicode strings via wxIPC when using DDE.
- Improve wxDataViewCtrl performance with variable line heights (Jens Goepfert).
- Add EVT_COLOURPICKER_CURRENT_CHANGED (Trylz).
- Fix linking of monolithic library with MinGW (Jannick).
- Support fill mode in GDI+ and D2D graphics contexts (Maarten Bent).
- Add wxFileDialog::GetCurrentlySelectedFilterIndex() (QuentinC).
- Add wxPU_CONTAINS_CONTROLS style for popups (New Pagodi).
- Add wxWebViewIE::MSWSetEmulationLevel() (Chilau He).
- Allow showing ToC/search in wxCHMHelpController (Andreas Falkenhahn)
- Fix RegisterHotKey() work with WXK_XXX.
- Fix changing wxSpinCtrl colours (Kvaz1r).
- Fix compilation in deprecated ANSI build mode.
- Fix drawing cross hair on wxDC.
- Fix input handling bugs in text controls with autocompleters.
- Fix pasting very long strings into wxTextCtrl.
- Fix resetting columns images in wxListCtrl (followait).
- Optimize drawing solid vertical and horizontal lines on wxDC
- Recognize UTF-8 system encoding supported in latest MSW 10 versions.
- Work around nVidia bug with OpenGL and coloured buttons.
- Handle Ctrl+A in focused wxTextCtrl instead of always as an accelerator.

wxOSX:

- Support for macOS Mojave and later dark mode.
- Fix crash in wxGauge with wxGA_PROGRESS (Konstantin Matveyev).
- Fix crash when pasting from clipboard (Tim Kosse).
- Fix dragging files (Dan Gudmundsson).
- Fix fetching sub-bitmap from wxBitmap with maskAll
- Fix wxPOPUP_WINDOW style (Dan Korn).
- Make it possible to play wxSound again (frustum).
- Allow setting focus before showing the window.
- Fix order of accelerators handling, giving priority to focused window.
- Don't stop TAB navigation on wxRadioBox when full keyboard access is off.

wxQt:

- Too many changes to list. Thanks to Graham Dawes, Jay Nabonne, Matthew
  Griffin, Liam Treacy, Chris Lemin, Cătălin Răceanu, Richard Smith, Mick
  Waites and others.


3.1.2: (released 2018-12-10)
----------------------------

All:

- Add wxLZMA{Input,Output}Stream classes using external liblzma.
- Make wxList and wxVector iterators conform to input iterator requirements.
- Fix MT-safety problem when reading and writing from wxSocket (jkubalik).
- Fix build issues under HaikuOS (mill-j).
- Fix problem with wx-config installation and use under NetBSD (wiz).
- Avoid spurious errors on thread creation under NetBSD.
- Improve high DPI support in wxAui (Simon Rozman).
- Fix a bug with parsing time zones in wxDateTime::ParseFormat() (evileye).
- Update all 3rd party libraries to their latest versions (Maarten Bent).

All (GUI):

- wxAdvanced library was merged into wxCore, simply remove all references
  to "adv" from your build system, it is not needed any longer.
- Add support for non-integer font sizes (e.g. 10.5pt fonts).
- Add support for font weights in 1..1000 interval and not just light/bold.
- Add wxDataViewToggleRenderer::ShowAsRadio().
- Improve stock items consistency and aesthetics (dhowland).
- Fix bug with missing items in overflowing AUI toolbar (Maarten Bent).
- Revert to left-aligning wxSpinCtrl contents by default.
- Make wxRibbonButtonBar buttons more customizable (Max Maisel).
- Add wxHtmlEasyPrinting::SetPromptMode() (pavel-t).
- Fix possible infinite loop in wxHtmlWindow layout (trivia21).
- Add "hint" property support to XRC for wxComboBox and wxSearchCtrl.
- Add support for style="page-break-inside:avoid" to <div> in wxHTML.
- Support strike-through in wxDataViewItem attributes (approach, Igor Korot).
- Allow distinguishing between user- and script-opened windows in wxWebView.
- Allow binding to events generated by their items in submenus too.
- Add wxGrid::SetCornerLabelValue() (Pavel Kalugin).
- Add strikethrough support for fonts defined in XRC.
- Add wxDisplay::GetPPI().
- Add wxJoystickEvent::GetButtonOrdinal() (Mick Phillips).
- Add wxGraphicsContext::GetWindow() and implement wxGraphicsContext::GetDPI().
- Add wxToolbook::EnablePage() (Stefan Ziegler).
- Adapt AUI colours to system colour changes (Daniel Kulp).
- Fix removing and inserting pages in wxToolbook (Stefan Ziegler).
- Fix bug in template selection in docview framework (jwiesemann).
- Implement wxAuiNotebook::HitTest() (Sebastian Walderich).

wxGTK:

- Implement wxTextCtrl::HitTest() for single line controls.
- Fix bug with wxTextCtrl::ChangeValue("") sending an unwanted event.
- Implement wxDataViewColumn::UnsetAsSortKey().
- Fix not showing wxInfoBar with GTK+ 3 < 3.22.29.
- Fix the build with glib < 2.32 (e.g. CentOS 6).
- Fix field widths in wxStatusBar showing a size grip.
- Fill column value in wxEVT_DATAVIEW_ITEM_ACTIVATED events.
- Implement wxDataViewCtrl::GetItemRect() (MrMeesek).

wxMSW:

- Add experimental support for Windows 10/ARM64 platform (Simon Rozman).
- Fix hang after clearing wxTAB_TRAVERSAL style on a window with children.
- Fix handling of AUX2 mouse button events (Timon Rozmanrylz).
- Implement support for more than 4 joystick buttons (Mick Phillips).
- Fix saving/restoring window position for maximized windows.
- Fix stack corruption when using wxStackWalker (srfisk).
- Fix positioning windows at positions >= SHORT_MAX (Cătălin Răceanu).
- Honour alignment flags for multiline buttons using custom colours too.
- Support MSVC auto-linking when using monolithic build too (PB).
- Implement wxFontDialog::SetTitle() (Vitaly Stakhovsky).
- Fix build in ANSI (non-Unicode) mode.
- Improve wxNotebook themed background drawing (Arrigo Marchiori).
- Send wxEVT_WEBVIEW_NAVIGATING when redirecting (Josue Andrade Gomes).
- Fix build with MSVS 2005 broken in 3.1.1.
- Add wxwidgets.props property sheet file for MSVS users.
- Fix jumping to the given position in wxMediaCtrl (ashishmore).

wxOSX:

- Fix dispatching pending events (and CallAfter()) in console applications.
- Implement wxDataViewColumn::UnsetAsSortKey() (Daniel Kulp).
- Change wxBitmap to use native image format like NSImage and UIImage.
- Implement wxStaticBitmap natively for correct rendering of template images.
- Fill column value in wxEVT_DATAVIEW_ITEM_ACTIVATED events (Igor Korot).
- Make wxFrame::EnableFullScreenView() work under macOS 10.11+ (Andy Robinson).

wxQt:

- Fix menu bar background colour (Naser Buhamad).
- Add support for bitmaps in menu items (Igor Korot).


3.1.1: (released 2018-02-19)
----------------------------

INCOMPATIBLE CHANGES SINCE 3.1.0:

- wxListCtrl::HasCheckboxes() and EnableCheckboxes(), which were added in
  3.1.0, have been renamed to HasCheckBoxes and EnableCheckBoxes respectively
  for consistency with wxCheckBox naming.

- The enum value wxTASKBAR_JUMP_LIST_DESTIONATION, which was added in 3.1.0,
  contains a typo and has been renamed to wxTASKBAR_JUMP_LIST_DESTINATION.

- wxZipOutputStream will now automatically convert filenames to UTF-8, if the
  wxMBConv used when calling the constructor supports UTF-8 encoding.


All:

- Add CMake-based build system (Tobias Taschner).
- Add wxSecretStore for storing passwords using the OS-provided facilities.
- Add support for compiling application code with wxNO_UNSAFE_WXSTRING_CONV.
- Add support for translating strings in different contexts (RickS).
- Add wxDateTime::GetFirstWeekDay() (Lauri Nurmi).
- Add support for the micro version (third component) to OS and toolkit version
  functions. See wxGetOsVersion(), wxPlatformInfo, and wxAppTraits.
- wxLogInfo() now logs messages if the log level is high enough, even without
  wxLog::SetVerbose() which now only affects wxLogVerbose().
- Add wxFileType::GetExpandedCommand() (troelsk).
- Make it easier to convert to/from UTF-8-encoded std::string (ARATA Mizuki).
- Support custom conversions in wxLogStream and wxLogStderr (Lauri Nurmi).
- Add support for loading dynamic lexer in wxStyledTextCtrl (New Pagodi).
- Handle strings with embedded NULs in wxDataStream (Nitch).
- Don't crash in wxTextFile::GetLastLine() if the file is empty (crohr).
- Add wxString::cbegin() and cend() method (Lauri Nurmi).
- Allow using Bind() with event handlers non-publicly deriving from
  wxEvtHandler and/or wxTrackable in C++11 code (Raul Tambre, mmarsan).
- Update bundled expat to 2.2.0 (Catalin Raceanu).
- Add wxCMD_LINE_HIDDEN wxCmdLineParser flag (Lauri Nurmi).
- Fix wxRmdir() with non-ASCII paths (trivia21).
- Don't crash in wxFFile::Eof() or Error() on closed file (jprotopopov).
- Add UTF-8 support to wxZipOutputStream (Tobias Taschner).
- Update all bundled 3rd party libraries to their latest versions.
- Use unique prefix for all zlib symbols to avoid link conflicts.
- Make wxFile::ReadAll() work for unseekable files too.
- Correct UTF-8 encoding of U+FFFF (axiom).

All (GUI):

- Allow wxWebView::RunScript() return values (Jose Lorenzo, GSoC 2017).
- Allow using fractional pen widths with wxGraphicsContext (Adrien Tétar).
- Add support for loading fonts from external files (Arthur Norman).
- Add support for using arbitrary windows as wxStaticBox labels.
- Improve wxSVGFileDC to support more of wxDC API (Maarten Bent).
- Add support for wxAuiManager and wxAuiPaneInfo to XRC (Andrea Zanellato).
- Add XRC handler for wxSpinCtrlDouble (Trylz).
- Add support for wxSL_MIN_MAX_LABELS and wxSL_VALUE_LABEL to XRC (ousnius).
- Update Scintilla to v3.7.2 (NewPagodi, Paul Kulchenko).
- Update bundled libpng to 1.6.28 (Catalin Raceanu).
- Automatically determine first day of the week in wxCalendarCtrl (Lauri Nurmi).
- Fix vertical scrollbar visibility in wxStyledTextCtrl (yenwu, NewPagodi).
- Fix bug with not being able to select AUI tab after dragging.
- Make wxDataViewCtrl::Expand() expand ancestors in native ports too.
- Add wxDataViewTextRenderer::EnableMarkup().
- Add wxDataViewCtrl::SetHeaderAttr().
- Add wxDataViewCtrl::GetTopItem() and GetCountPerPage() (Andreas Falkenhahn).
- Add wxListCtrl::SetHeaderAttr().
- Add support for using markup in wxDataViewCtrl text items.
- Implement auto complete in generic wxSearchCtrl (Eric Jensen).
- Fix preserving selection when changing selection mode in wxGrid (jonkraber).
- Fix wxTextEntry::SetHint() with wxTE_PASSWORD in generic implementation.
- Many fixes and improvements in Direct2D, Cairo, and GDI+ graphics renderers.
- Fix and unify clipping region support for MSW and GTK+.
- Fix rescaling of wxImage.
- Fix displaying edited value of wxUIntProperty (wxPropertyGrid).
- Fix displaying validation errors for numeric wxPropertyGrid properties.
- Add wxSYS_CARET_{ON,OFF,TIMEOUT}_MSEC system settings (brawer).
- Add wxGraphicsContext::GetClipBox().
- Fix wxGCDC::Clear() for rotated graphics context.
- Fix wxGCDC::GetClippingBox() for transformed wxDC.
- Add support for affine transformation matrix in wxGCDC.
- Add wxGraphicsContext::Flush() for Cairo renderer.
- Add wxStyledTextEvent::GetListCompletionMethod() (NewPagodi).
- Add wxEVT_STC_AUTOCOMP_COMPLETED event (NewPagodi).
- Fix retrieving bounding box for wxDC with transformed coordinates.
- Fix wxGraphicsMatrixData::Concat() for Direct2D and Cairo renderers.
- Fix calculating point position in wxDataViewCtrl::HitTest().
- Fix position of the rectangle returned by wxDataViewCtrl::GetItemRect().
- Add wxDataViewRenderer::GetAccessibleDescription().
- Add wxDataViewCheckIconTextRenderer class.
- Implement persistence support for wxDataViewCtrl (iwbnwif).
- Improve wxImage::Scale() handling of pixels with alpha channel (Tim Kosse).
- Fix parsing of RGBA strings in wxColour (Laurent Poujoulat).
- Refactor code in wxQuantize() for MSVC to avoid crash.
- Fix drawing rotated and/or underlined text on wxPostScriptDC.
- Support multiline strings in wxPostScriptDC::DrawText(), DrawRotatedText().
- Deprecate wxEVT_STC_KEY and wxEVT_STC_URIDROPPED events (NewPagodi).
- Optimize font registration in PostScript code emitted by wxPostScriptDC.
- Fix drawing filled arc with wxPostScriptDC::DrawArc().
- Optimize PostScript code emitted by wxPostScriptDC to draw elliptic arcs.
- Add wxStyledTextCtrl::AutoCompGetCurrentText() (NewPagodi).
- Extend wxStyledTextCtrl::FindText() to return end position of matched
  text (NewPagodi).
- Fix adding/removing items to/from wxRearrangeList.
- Handle wxST_ELLIPSIZE_XXX styles in wxStaticText XRC handler (tm).
- Add support for bitmaps to wxToggleButton XRC handler (tm).
- Fix wxGCDC::SetDeviceClippingRegion().
- Never restore size smaller than the best one in wxPersistentTLW.
- Fix escaping/unescaping characters in wxLongStringProperty in wxPG (mikek).
- Ensure that navigation order reflects layout of wxStdDialogButtonSizer.
- Add Scintilla FineTicker methods to wxSTC (NewPagodi).
- Add wxFontPickerCtrl::SetMinPointSize() (Andreas Falkenhahn).
- Add Set/GetFooter/Text/Icon() to wxRichMessageDialog (Tobias Taschner)
- Add wxFloatingPointValidator::SetFactor().
- Add "hint" property to wxSearchCtrl XRC handler.
- Add wxEVT_SEARCH[_CANCEL] synonyms for wxSearchCtrl events.
- Generate wxEVT_SEARCH on Enter under all platforms.
- Extend wxRendererNative::DrawGauge() to work for vertical gauges too.
- Add wxHD_BITMAP_ON_RIGHT style to wxHeaderCtrl.
- Send wxEVT_DATAVIEW_ITEM_EDITING_DONE when editing was cancelled too.
- Add wxIMAGE_OPTION_GIF_TRANSPARENCY (Hugo Elias).

wxGTK:

- Make wxUIActionSimulator work with GTK+ 3 (Scott Talbert).
- Make wxBORDER_NONE work for wxTextCtrl with GTK+ 3 (Adrien Tétar).
- Handle wxTE_PROCESS_TAB, and its absence, correctly in multiline wxTextCtrl.
- Apply wxTextCtrl::SetDefaultStyle() to user-entered text (Andreas Falkenhahn).
- Implement dynamic auto-completion in wxTextEntry (AliKet).
- Fix wxTextCtrl::GetStyle() with GTK+ 3.
- Fix wxButton::SetBitmapPosition() with GTK+ 3 (Jake Nelson).
- Support background colour in wxDataViewCtrl attributes.
- Fix regression with showing custom wxDataViewCtrl editors.
- Improve wxSpinCtrl best size calculation.
- Implement support for icon locations in wxMimeTypesManager (Hanmac).
- Improve wxRadioBox appearance in high DPI (Arrigo Marchiori, Maarten Bent).
- Cosmetic fix for empty wxCheckBoxes display (Chuddah).
- Fix crashes in wxFileSystemWatcher implementation (David Hart).
- Fix wxBitmap ctor from XBM for non-square bitmaps.
- Fix wxDC::GetClippingBox() for transformed wxDC.
- Add support for affine transformation matrix in wxDC (GTK+ 3).
- Fix wxMemoryDC::Blit() with itself as source (GTK+ 3).
- Fix displaying labels of wxRadioBox items.
- Add a native implementation for clearing bitmap/window wxGraphicsContexts
- Implement XYToPosition() for single-line wxTextCtrl.
- Implement ShowPosition() for single-line wxTextCtrl.
- Improve wx{Client,Paint,Screen,Window}DC::GetPPI() (GTK+ 3).
- Suppress focus loss events for wxChoice and wxComboBox on opening popup.
- Make custom URI schemes work WebKit2-based wxWebView (Scott Talbert).

wxMSW:

- Add support for building with Microsoft Visual Studio 2017 (Tobias Taschner).
- Allow loading icons from resources in wxIconBundle (PB).
- Enable wxStackWalker in MinGW64 builds.
- Fix build under Cygwin in 64 bits.
- Fix crash when using wxCHMHelpController() in 64 bit builds (Xlord2).
- Fix wxSpinCtrl appearance: show arrows inside the control (Catalin Raceanu).
- Fix MDI menu display after failure to create a child frame (troelsk).
- Fix wxScreenDC::GetSize() with multiple monitors (iwbnwif).
- Fix background colour returned by wxTextCtrl::GetStyle() (Andreas Falkenhahn).
- Revert to using equally-sized buttons in wxToolBar by default.
- Fix default button highlighting.
- Restore dispatching wxThreadEvent while resizing the window broken in 3.1.0.
- Fix wxGraphicsMatrix::TransformDistance for Direct2D renderer.
- Fix wxDC::Clear() for rotated DC.
- Fix wxDC::GetClippingBox() for transformed wxDC.
- Fix wxMemoryDC::Blit() with itself as source (Tim Roberts).
- Return proper value from wxIAccessible::get_accSelection() if no children
  are selected.
- Add wxAccStatus::wxACC_INVALID_ARG error code to indicate argument-related
  errors in wxAccessible methods.
- Return DISP_E_MEMBERNOTFOUND error code from wxIAccessible if wxAccessible
  methods return wxAccStatus::wxACC_NOT_SUPPORTED.
- Return null BSTR from wxIAccessible if string returned from wxAccesible
  method is empty.
- Handle Ctrl-A in non-rich multiline text controls (Jens Göpfert).
- Use cairo_win32_surface_create_with_format() to create ARGB surface from
  wxMemoryDC (Cairo >= 1.15.4).
- Fix updating bounding box in wxDC::DrawSpline().
- Fix placing 0RGB wxBitmaps on the clipboard.
- Fix handling wxClipboard data when wxUSE_OLE == 0.
- Fix caching of wxFONTSTYLE_SLANT fonts in wxTheFontList.
- Fix wxTextCtrl::XYToPosition() and PositionToXY().
- Fix updating radio groups when non-radio item is inserted to wxMenu.
- Fix autoselecting the contents of wxTextCtrl with wxWANTS_CHARS style.
- Implement SetIcon(), SetPosition(), GetPosition() for native wxProgressDialog.
- Fix focus-related problems when using native wxProgressDialog.
- Fix crash when reparenting the currently focused window to another TLW.
- Fix sending wxEVT_TEXT_ENTER when using auto-completion (Dubby).
- Fix missing selection event on click in multiselection wxDataViewCtrl (mikek).

wxOSX:

- Many fixes for tab navigation (ikamakj).
- Fix handling of non-BMP characters in GetPartialTextExtents() (ARATA Mizuki).
- Fix setting foreground colour for several controls (Steve Browne).
- Fix dialogs using wxFRAME_FLOAT_ON_PARENT frame as parent (Lauri Nurmi).
- Implement wxGetDisplaySizeMM() and fix printing DPI (David Vanderson).
- Remove extra borders around wxFilePickerCtrl (John Roberts).
- Set up extensions filter correctly in wxFileDialog (nick863).
- Implement wxDataViewChoiceByIndexRenderer (wanup).
- Fix unnecessary indentation in list-like wxDataViewCtrl (Andreas Falkenhahn).
- Recognize macOS 10.12 Sierra in wxGetOsDescription() (Tobias Taschner).
- Don't try to open command line arguments as files (Jeff Hostetler).
- Implement wxDataViewCtrl::SetRowHeight().
- Add OSXEnableAutomaticQuoteSubstitution(), OSXEnableAutomaticDashSubstitution()
  and OSXDisableAllSmartSubstitutions() to control wxTextCtrl smart behavior.
- Don't allow interacting with disabled wxSlider (Andreas Falkenhahn).
- Fix setting alignment in wxTextCtrl with wxTE_DONTWRAP (Andreas Falkenhahn).
- Allow pasting using Cmd+V in wxTextCtrl with wxTE_PASSWORD style.
- Update font code to use toll-free bridges from CTFontRef to NSFont or UIFont
- Add a native implementation for clearing bitmap/window wxGraphicsContexts
- wxiOS now needs a minimum of iOS 9 for deployment
- Fix handling CTM in wxGraphicsContext::SeTransform and GetTransform().
- Allow turning on/off opacity selector in wxColourDialog.
- Implement wxTextCtrl::PositionToXY() and XYToPosition().
- Implement wxTextCtrl::ShowPosition().
- Add support for wxTE_NO_VSCROLL style to wxTextCtrl.
- Add support for wxTE_CHARWRAP style to wxTextCtrl.
- Fix selecting RGB bitmaps (with no alpha channel) into wxMemoryDC.
- Fix updating radio groups when menu item is inserted/removed from wxMenu.
- Allow changing alignment styles after wxTextCtrl creation (Andreas Falkenhahn).
- Fix wxDataViewColumn::SetSortOrder() (hartwigw).

wxQt

- Many changes and improvements by Sean D'Epagnier merged into trunk (with
  help from R.J.V. Bertin).

Unix:

- Support new gstreamer API in 1.7.2+ in wxMediaCtrl (Sebastian Dröge).
- Add wxStandardPaths::SetFileLayout(FileLayout_XDG) (Martin Koegler).


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).
- Allow suppressing warnings from wxImage::LoadFile().
- Allow customizing wxRibbon highlight colours (wxBen).
- Enable selecting opacity in generic wxColourPicker.
- Extend the support for font weights to a bigger range.
- Add support for fractional font sizes.

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).
- Fix flicker when resizing columns of report-mode wxListCtrl.
- Implement wxTreeCtrl::SetDoubleBuffered() (Steve Browne).

wxOSX/Cocoa:

- Make wxiOS (iPhone) port build and minimally work again (Tobias Taschner).
- Use more efficient FSEvents 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).
