------------------------------------------------------------------------------- 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. - 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. 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.1: (not released yet) ---------------------------- 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. All: - Add wxSecretStore for storing passwords using the OS-provided facilities. - Add support for compiling application code with wxNO_UNSAFE_WXSTRING_CONV. - 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). - 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). All (GUI): - Improve wxSVGFileDC to support more of wxDC API (Maarten Bent). - Add support for wxAuiManager and wxAuiPaneInfo to XRC (Andrea Zanellato). - 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). - 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 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 (MSW, GTK+). - 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(). - 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). wxGTK: - Make wxUIActionSimulator work with GTK+ 3 (Scott Talbert). - Apply wxTextCtrl::SetDefaultStyle() to user-entered text (Andreas Falkenhahn). - Support background colour in wxDataViewCtrl attributes. - Improve wxSpinCtrl best size calculation. - Implement support for icon locations in wxMimeTypesManager (Hanmac). - 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). wxMSW: - Add support for building with Microsoft Visual Studio 2017 (Tobias Taschner). - Enable wxStackWalker in MinGW64 builds. - 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. - 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(). wxOSX: - Fix handling of non-BMP characters in GetPartialTextExtents() (ARATA Mizuki). - 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. 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). 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).