X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/8ce68f7fc03beda6b7cbfdd7180a8f7f7eee952d..e5e80818163efd095d9a3e2692ee52bc3b82a912:/docs/changes.txt diff --git a/docs/changes.txt b/docs/changes.txt index de5504d57b..39cc386957 100644 --- a/docs/changes.txt +++ b/docs/changes.txt @@ -5,6 +5,12 @@ INCOMPATIBLE CHANGES SINCE 2.8.x ================================ + + Notice that these changes are described in more details in + the "Changes Since wxWidgets 2.8" section of the manual, + please read it if the explanation here is too cryptic. + + Unicode-related changes ----------------------- @@ -14,9 +20,10 @@ in the manual for more details but here are the most important incompatible changes: - Many wxWidgets functions taking "const wxChar *" have been changed to take - either "const wxString&" so that they accept both Unicode and ANSI strings. - and the argument can't be NULL or "const char *" if the strings are always - ANSI but may be NULL. This change is normally backwards compatible except: + either "const wxString&" (so that they accept both Unicode and ANSI strings; + the argument can't be NULL anymore in this case) or "const char *" (if the + strings are always ANSI; may still be NULL). This change is normally + backwards compatible except: a) Virtual functions: derived classes versions must be modified to take "const wxString&" as well to make sure that they continue to override the @@ -37,6 +44,8 @@ changes: to work with "wxChar *" before use "void *" now (some int parameters were also changed to size_t). While wxIPC_TEXT can still be used to transfer 7 bit text, the new wxIPC_UTF8TEXT format is used for transferring wxStrings. + Also notice that connection classes should change the parameter types of + their overridden OnExecute() or override a more convenient OnExec() instead. wxODBC and contrib libraries removal @@ -80,6 +89,25 @@ Changes in behaviour not resulting in compilation errors, please read this! - wxWindow::Freeze/Thaw() are not virtual any more, if you overrode them in your code you need to override DoFreeze/Thaw() instead now. +- wxCalendarCtrl has native implementation in wxGTK, but it has less features + than the generic one. The native implementation is used by default, but you + can still use wxGenericCalendarCtrl instead of wxCalendarCtrl in your code if + you need the extra features. + +- wxDocument::FileHistoryLoad() and wxFileHistory::Load() now take const + reference to wxConfigBase argument and not just a reference, please update + your code if you overrode these functions and change the functions in the + derived classes to use const reference as well. + +- Under MSW wxExecute() arguments are now always properly quoted, as under + Unix, and so shouldn't contain quotes unless they are part of the argument. + +- wxDocument::OnNewDocument() doesn't call OnCloseDocument() any more. + +- If you use wxScrolledWindow::SetTargetWindow() you must implement its + GetSizeAvailableForScrollTarget() method, please see its documentation for + more details. + Changes in behaviour which may result in compilation errors ----------------------------------------------------------- @@ -109,14 +137,26 @@ Changes in behaviour which may result in compilation errors and has to be replaced with this: switch (str[i].GetValue()) { ... } -- Return type of wxString::c_str() is now wxCStrData struct and not - const wxChar*. wxCStrData is implicitly convertible to const char* and - const wchar_t*, so this only presents a problem if the compiler cannot - convert the type. In particular, Borland C++ and DigitalMars compilers - don't correctly convert operator?: operands to the same type and fail with - compilation error instead. This can be worked around by explicitly casting - to const wxChar*: - wxLogError(_("error: %s"), !err.empty() ? (const wxChar*)err.c_str() : "") +- Return type of wxString::c_str() is now a helper wxCStrData struct and not + const wxChar*. wxCStrData is implicitly convertible to both "const char *" + and "const wchar_t *", so this only presents a problem if the compiler cannot + apply the conversion. This can happen in 2 cases: + + + There is an ambiguity because the function being called is overloaded to + take both "const char *" and "const wchar_t *" as the compiler can't choose + between them. In this case you may use s.wx_str() to call the function + matching the current build (Unicode or not) or s.mb_str() or s.wc_str() to + explicitly select narrow or wide version of it. + + Notice that such functions are normally not very common but unfortunately + Microsoft decided to extend their STL with standard-incompatible overloads + of some functions accepting "const wchar_t *" so you may need to replace + some occurrences of c_str() with wx_str() when using MSVC 8 or later. + + + Some compilers, notably Borland C++ and DigitalMars, don't correctly + convert operator?: operands to the same type and fail with compilation + error instead. This can be worked around by explicitly casting to const + wxChar*: wxLogError(_("error: %s"), !err.empty() ? (const wxChar*)err.c_str() : "") - wxCtime() and wxAsctime() return char*; this is incompatible with Unicode build in wxWidgets 2.8 that returned wchar_t*. @@ -130,7 +170,7 @@ Changes in behaviour which may result in compilation errors - Virtual wxHtmlParser::AddText() takes wxString, not wxChar*, argument now. -- Functions that took wxChar* arguments that could by NULL in wxWidgets 2.8. +- Functions that took wxChar* arguments that could by NULL in wxWidgets 2.8 are deprecated and passing NULL to them won't compile anymore, wxEmptyString must be used instead. @@ -146,11 +186,27 @@ Changes in behaviour which may result in compilation errors derives from wxObject; instead of using wxDynamicCast with wxVariantData you can use the macro wxDynamicCastVariantData with the same arguments. -- wxWindow::Next/PrevControlId() don't exist any more as they can't be +- wxWindow::Next/PrevControlId() don't exist any more as they couldn't be implemented correctly any longer because automatically generated ids are not - necessarily allocated consecutively any more. Use GetChildren() to find the + necessarily allocated consecutively now. Use GetChildren() to find the next/previous control sibling instead. +- Calling wxConfig::Write() with an enum value will fail to compile because + wxConfig now tries to convert all unknown types to wxString automatically. + The simplest solution is to cast the enum value to int. + +- Several wxImage methods which previously had "long bitmaptype" parameters + have been changed to accept "wxBitmapType bitmaptype", please use enum + wxBitmapType in your code. + +- wxGridCellEditor::EndEdit() signature has changed and it was split in two + functions, one still called EndEdit() and ApplyEdit(). See the documentation + of the new functions for more details about how grid editors should be + written now. + +- wxEVT_GRID_CELL_CHANGE event renamed to wxEVT_GRID_CELL_CHANGED and shouldn't + be vetoed any more, use the new wxEVT_GRID_CELL_CHANGING event to do it. + Deprecated methods and their replacements ----------------------------------------- @@ -168,6 +224,30 @@ Deprecated methods and their replacements "Attribute" instead of "Property" or "Prop" in their names. - wxConnection::OnExecute() is not formally deprecated yet but new code should use simpler OnExec() version which is called with wxString argument +- wxMenuItem::GetLabel has been deprecated in favour of wxMenuItem::GetItemLabelText +- wxMenuItem::GetText has been deprecated in favour of wxMenuItem::GetItemLabel +- wxMenuItem::GetLabelFromText has been deprecated in favour of wxMenuItem::GetLabelText +- wxMenuItem::SetText has been deprecated in favour of wxMenuItem::SetItemLabel +- wxBrush's, wxPen's SetStyle() and GetStyle() as well as the wxBrush/wxPen ctor now take + respectively a wxBrushStyle and a wxPenStyle value instead of a plain "int style"; + use the new wxBrush/wxPen style names (wxBRUSHSTYLE_XXX and wxPENSTYLE_XXX) instead + of the old deprecated wxXXX styles (which however are still available). +- EVT_GRID_CELL_CHANGE was deprecated, use EVT_GRID_CELL_CHANGED instead if you + don't veto the event in its handler and EVT_GRID_CELL_CHANGING if you do. +- EVT_CALENDAR_DAY event has been deprecated, use EVT_CALENDAR_SEL_CHANGED. +- EVT_CALENDAR_MONTH and EVT_CALENDAR_YEAR events are deprecated, + use EVT_CALENDAR_PAGE_CHANGED which replaces both of them. +- wxCalendarCtrl::EnableYearChange() and wxCAL_NO_YEAR_CHANGE are deprecated. + There is no replacement for this functionality, it is being dropped as it is + not available in native wxCalendarCtrl implementations. +- wxDC::SetClippingRegion(const wxRegion&) overload is deprecated as it used + different convention from the other SetClippingRegion() overloads: wxRegion + passed to it was interpreted in physical, not logical, coordinates. Replace + it with SetDeviceClippingRegion() if this was the correct thing to do in your + code. +- wxTE_AUTO_SCROLL style is deprecated as it's always on by default anyhow. +- wxThreadHelper::Create() has been deprecated in favour of wxThreadHelper::CreateThread + which has a better name for a mix-in class, and allows setting the thread type. Major new features in this release @@ -180,7 +260,17 @@ Major new features in this release - wxWidgets may now use either wchar_t (UTF-16/32) or UTF-8 internally, depending on what is optimal for the target platform. -- Events loops, timers and sockets can now be used in wxBase, without GUI. +- New propgrid library containing wxPropertyGrid and related classes, many + enhancements to wxDataViewCtrl. + +- Event loops, timers and sockets can now be used in wxBase, without GUI. + +- Documentation for wxWidgets has been converted from LaTex to C++ headers + with Doxygen comments and significantly improved in the process (screenshots + of various controls were added, more identifiers are now linked to their + definition &c). Any reports about inaccuracies in the documentation are + welcome (and due to using the simple Doxygen syntax it is now easier than + ever to submit patches correcting them! :-) 2.9.0 @@ -188,17 +278,22 @@ Major new features in this release All: -- Added (experimental) IPv6 support to wxSocket (Arcen) -- Added wxXLocale class and xlocale-like functions using it +- Added (experimental) IPv6 support to wxSocket (Arcen). +- Cleaned up wxURI and made it Unicode-friendly. +- Add support for wxExecute(wxEXEC_ASYNC) in wxBase (Lukasz Michalski) +- Added wxXLocale class and xlocale-like functions using it. - Allow loading message catalogs from wxFileSystem (Axel Gembe) - Added wxMessageQueue class for inter-thread communications - Use UTF-8 for Unicode data in wxIPC classes (Anders Larsen) - Added support for user-defined types to wxConfig (Marcin Wojdyr). +- Added numeric options support to wxCmdLineParser (crjjrc) - Added wxJoin() and wxSplit() functions (Francesco Montorsi). - Added wxDateTime::FormatISOCombined() and ParseISODate/Time/Combined() - Added wxMutex::LockTimeout() (Aleksandr Napylov). - Added wxMemoryInputStream(wxInputStream&) ctor (Stas Sergeev). - Implemented wxMemoryInputStream::CanRead(). +- Implemented wxMemoryFSHandler::FindFirst/Next(). +- Added wxEventLoop::DispatchTimeout(). - Added wxEXEC_BLOCK flag (Hank Schultz). - Add support for wxStream-derived classes to wxRTTI (Stas Sergeev). - Added wxStreamBuffer::Truncate() (Stas Sergeev). @@ -216,30 +311,59 @@ All: if the wxVariantData::Clone function is implemented. - Added wxWeakRef, wxScopedPtr, wxSharedPtr class templates - Added wxVector class templates +- Added wxON_BLOCK_EXIT_SET() and wxON_BLOCK_EXIT_NULL() to wx/scopeguard.h. +- Added wxEvtHandler::QueueEvent() replacing AddPendingEvent() and + wxQueueEvent() replacing wxPostEvent(). +- wxString now uses std::[w]string internally by default, meaning that it is + now thread-safe if the standard library provided with your compiler is. +- Added wxCmdLineParser::AddUsageText() (Marcin 'Malcom' Malich). +- Fix reading/writing UTF-7-encoded text streams. +- Corrected bug in wxTimeSpan::IsShorterThan() for equal time spans. +- Use std::unordered_{map,set} for wxHashMap/Set if available (Jan van Dijk). +- Added wxString::Capitalize() and MakeCapitalized(). +- Added wxArray::swap(). +- Added wxSHUTDOWN_LOGOFF and wxSHUTDOWN_FORCE wxShutdown() flags (troelsk). +- Added wxSocket::ShutdownOutput(). +- Handle exceptions thrown from overridden wxView::OnCreate() gracefully. All (Unix): - Added wx-config --optional-libs command line option (John Labenski). +- Noticeably (by a factor of ~150) improve wxIPC classes performance. All (GUI): -- Added wxDataViewCtrl class and helper classes -- Added {wxTextCtrl,wxComboBox}::AutoComplete() and AutoCompleteFileNames() +- Added wxDataViewCtrl class and helper classes. +- Integrated wxPropertyGrid in wxWidgets itself (Jaakko Salli). +- Provide native implementation of wxCalendarCtrl under wxMSW and wxGTK. +- Added wxHeaderCtrl and allow using it in wxGrid. +- Added wxRearrangeList, wxRearrangeCtrl and wxRearrangeDialog. +- Added {wxTextCtrl,wxComboBox}::AutoComplete() and AutoCompleteFileNames(). - Added wxH[V]ScrolledWindow (Brad Anderson, Bryan Petty). -- Added wxNotificationMessage class for non-intrusive notifications -- Added wxWindow::Show/HideWithEffect() -- Added wxWrapSizer -- Added custom controls support to wxFileDialog (Diaa Sami and Marcin Wojdyr) +- Added wxNotificationMessage class for non-intrusive notifications. +- Added wxWindow::Show/HideWithEffect(). +- Added wxWrapSizer (Arne Steinarson). +- Added wxSpinCtrlDouble (John Labenski). +- Support custom labels in wxMessageDialog (Gareth Simpson for wxMac version). +- Added wxScrolledWindow::ShowScrollbars(). +- Also added wxCANCEL_DEFAULT to wxMessageDialog. +- Allow copying text in the log dialogs. +- Added multisample (anti-aliasing) support to wxGLCanvas (Olivier Playez). +- Initialize wx{Client,Paint,Window}DC with fonts/colours of its window. +- Added wxNativeContainerWindow to allow embedding wx into native windows. +- Added custom controls support to wxFileDialog (Diaa Sami and Marcin Wojdyr). - Added wxDC::StretchBlit() for wxMac and wxMSW (Vince Harron). - Added support for drop down toolbar buttons (Tim Kosse). - Added support for labels for toolbar controls (Vince Harron). - Added wxMessageDialog::SetMessage() and SetExtendedMessage(). -- Added wxListCtrl::Set/GetColumnsOrder() (Yury Voronov) -- Added wxWindow::AlwaysShowScrollbars() (Julian Scheid) -- Added wxMouseEvent::GetClickCount() (Julian Scheid) -- Added wxBG_STYLE_TRANSPARENT background style (Julian Scheid) -- Added XRCSIZERITEM() macro for obtaining sizers from XRC (Brian Vanderburg II) -- New and improved wxFileCtrl (Diaa Sami and Marcin Wojdyr) +- Added wxListCtrl::Set/GetColumnsOrder() (Yury Voronov). +- Made wxLogWindow thread-safe (Barbara Maren Winkler). +- Added wxWindow::AlwaysShowScrollbars() (Julian Scheid). +- Added wxMouseEvent::GetClickCount() (Julian Scheid). +- Added wxBG_STYLE_TRANSPARENT background style (Julian Scheid). +- Added support for drop-down toolbar buttons to XRC. +- Added XRCSIZERITEM() macro for obtaining sizers from XRC (Brian Vanderburg II). +- New and improved wxFileCtrl (Diaa Sami and Marcin Wojdyr). - Added wxEventBlocker class (Francesco Montorsi). - Added wxFile/DirPickerCtrl::Get/SetFile/DirName() (Francesco Montorsi). - Added wxSizerFlags::Top() and Bottom(). @@ -269,11 +393,12 @@ All (GUI): behaviour of GetNextSibling() consistent between wxMSW and generic versions. - Merged wxRichTextAttr and wxTextAttrEx into wxTextAttr, and added a font table to wxRichTextBuffer to reduce wxFont consumption and increase performance. -- Optimize wxGenericTreeCtrl::Collapse/ExpandAllChildren(). (Szczepan Holyszewski) +- Optimize wxGenericTreeCtrl::Collapse/ExpandAllChildren() + (Szczepan Holyszewski). - Added parameter to wxScrolledWindow XRC handler. -- Added support for automatic dialog scrolling, via the new wxDialogLayoutAdapter - class and various new wxDialog functions. See the topic "Automatic Scrolling - Dialogs" in the manual for further details. +- Added support for automatic dialog scrolling, via the new + wxDialogLayoutAdapter class and various new wxDialog functions. See the + topic "Automatic Scrolling Dialogs" in the manual for further details. - Added support for resizing wxWizard bitmaps to the current page height, via SetBitmapPlacement, SetBitmapBackgroundColour and SetMinimumBitmapWidth. Also made it easier to derive from wxWizard and override behaviour. @@ -282,6 +407,33 @@ All (GUI): - Added wxWindow::HasFocus(). - Added wxGLCanvas::IsDisplaySupported(). - Added wxApp::SetNativeTheme() (Stefan H.). +- Made wxSpinCtrl::Reparent() in MSW and generic versions (Angelo Mottola). +- Freeze() and Thaw() now recursively freeze/thaw the children too. +- Generalized wxScrolledWindow into wxScrolled template that can derive + from any window class, not just wxPanel. +- Allow having menu separators with ids != wxID_SEPARATOR (Jeff Tupper) +- Fix appending items to sorted wxComboCtrl after creation (Jaakko Salli) +- Don't blit area larger than necessary in wxBufferedDC::UnMask (Liang Jian) +- Fixed wxPixelData compilation (Leonardo Fernandes). +- Added wxImage::GetType() (troelsk). +- Added wxGenericStaticBitmap suitable for display of large bitmaps. +- Support wxListCtrl::GetViewRect() in report view too. +- Implement wxListCtrl::GetSubItemRect() in generic version (David Barnard). +- Added wxVListBox::GetItemRect() (Javier Urien). +- Show busy cursor in wxLaunchDefaultBrowser and add wxBROWSER_NOBUSYCURSOR. +- Added wxFlexGridSizer::Is{Row,Col}Growable() (Marcin Wojdyr). +- Added "enabled" and "hidden" attributes to radio box items in XRC. +- wxWindow::IsBeingDeleted() now returns true not only if the window itself is + marked for destruction but also if any of its parent windows are. +- Improved drawing of the hint during column move in wxGrid (Santo Pfingsten). +- Add wxGridSelectRowsOrColumns selection mode to wxGrid. +- Add wxEVT_GRID_CELL_CHANGING event matching wxEVT_GRID_CELL_CHANGED. +- Get/HasModifiers() of wxKeyEvent are now also available in wxMouseEvent. +- Provide new/old cell value in wxEVT_GRID_CELL_CHANGING/CHANGED events. +- Added wxArtProvider::GetNativeSizeHint(); GetSizeHint() as well as + GetNativeSizeHint() now return more sensible values in wxMSW and wxMac and + no longer return bogus values. +- Added wxControl::SetLabelText() and EscapeMnemonics(). wxGTK: @@ -298,61 +450,242 @@ wxGTK: - Pass current control text to EVT_TEXT handler for wxSpinCtrl (John Ratliff). - Added gtk.tlw.can-set-transparency system option. - Added support for GTK+ print backend +- Fix changing font/colour of label in buttons with images (Marcin Wojdyr). +- Fix wxDC::Blit() support for user scale and source offset (Marcin Wojdyr). wxMac: - Better IconRef support (Alan Shouls). -- Added support for changing button labels in wxMessageDialog (Gareth Simpson). - Fix duplicate (empty) help menu in non-English programs (Andreas Jacobs). - Allow accelerators to be used with buttons too (Ryan Wilcox). - Support resource forks in wxCopyFile() (Hank Schultz). -- Implement wxLocale::GetInfo() using CFLocale -- Added native wxCollapsiblePane +- Implement wxLocale::GetInfo() using CFLocale. +- Native wxCollapsiblePane implementation. wxMSW: - Fixed infinite loop in wxThread::Wait() in console applications. - Return the restored window size from GetSize() when window is minimized. - wxCheckListBox now looks more native, especially under XP (Marcin Malich). +- wxCheckListBox now also supports use of client data (Marcin Malich). - Allow tooltips longer than 64 (up to 128) characters in wxTaskBarIcon -- Fix centering wxFileDialog and allow positioning it -- Allow centering wxMessageDialog on its parent window (troelsk) -- Implement support for display enumeration under WinCE (Vince Harron) +- Fix centering wxFileDialog and allow positioning it. +- Allow centering wxMessageDialog on its parent window (troelsk). +- Use vertical scrollbar in wxMessageDialog if it's too big to fit on screen. +- Show resize gripper on resizeable dialogs (Kolya Kosenko). +- Implement support for display enumeration under WinCE (Vince Harron). +- Use different Win32 class names in different wx instances (Thomas Hauk). +- Support multiline labels for wxCheckBox and wxToggleButton. +- Print preview is now rendered in the resolution used by printer and + accurately represents what will be printed. This fixes wxHtmlEasyPrinting + preview inaccuracies on Windows; on other platforms, native preview + should be used. wxX11: - Added mouse wheel support (David Hart). - Make Enter key activate the default button (David Hart). +wxDFB: + +- Implement wxBitmap ctor from XBM data. + + +2.8.9 +----- + +All: + +- Optimize wxString::Replace() for single character arguments. +- Updated Hindi translation (Priyank Bolia). +- Use tr1::unordered_{map,set} for wxHash{Map,Set} implementation if available + in STL build; in particular do not use deprecated hash_{map,set} which + results in a lot of warnings from newer g++ (Jan Van Dijk and Pete Stieber). + +All (GUI): + +- Added support for reading alpha channel in BMP format (Kevin Wright). +- Fixed help viewer bug whereby the splitter sash in wxHtmlHelpWindow could + go underneath the left-hand pane, permanently, after resizing the + help window. +- Fixed wxHTML default font size for printing to be 12pt regardless of the + platform, instead of depending on GUI toolkit's screen configuration. +- Support wxDP_ALLOWNONE style in generic wxDatePickerCtrl version. +- Set wxKeyEvent::m_uniChar correctly in the events generated by generic + wxListCtrl (Mikkel S). +- Fix changing size of merged cells in wxGrid (Laurent Humbertclaude). +- Fixed wrapping bug in wxRichTextCtrl when there were images present; + now sets the cursor to the next line after pressing Shift+Enter. +- Fixed Cmd+Back, Cmd+Del word deletion behaviour in wxRichTextCtrl. +- Fix crash when reading malformed PCX images. +- Fix bug with wrong transparency in GIF animations (troelsk). +- Store palette information for XPM images in wxImage (troelsk). +- Fixed selection bugs and auto list numbering in wxRichTextCtrl. +- Significantly optimize wxGrid::BlockToDeviceRect() for large grids (kjones). +- Introduced new wxAuiToolBar class for better integration and look-and-feel. +- Fix a crash in wxAuiFrameManager when Update() was called in between mouse-up + and mouse-down events +- wxAUI: added various NULL-ptr asserts. +- Fixed problem with Floatable(false) not working in wxAuiFrameManager. +- Fixed maximize bug in wxAUI. +- Allow period in link anchors in wxHTML. +- Fixed memory corruption in wxHTML when parsing "&;" in the markup. +- Fixed event type in EVT_GRID_CMD_COL_MOVE and EVT_GRID_COL_MOVE. +- wxGrid doesn't steal focus when hiding editor any more (Tom Eckert). + +All (Unix): + +- MIME types reading fixed when running under GNOME, reading .desktop + files and also the default application list. +- Added filesys.no-mimetypesmanager system option so that applications that + must load an XRC file at program startup don't have to incur the + mime types manager initialization penalty. + +wxMSW: + +- Potentially incompatible change: wxExecute() arguments are now quoted if they + contain spaces and existing quotes are escaped with a backslash. However, to + preserve compatibility, the argument is unchanged if it is already quoted. + Notice that this behaviour will change in wxWidgets 3.0 where all arguments + will be quoted, please update your code now if you are affected and use only + wxWidgets 2.8.9 or later. +- Fix keyboard support in wxSpinCtrl broken in 2.8.8. +- Compile fix for WinCE in window.cpp (no VkKeyScan in Windows CE). +- Support disabling items before adding them to the menu (Christian Walther). +- Allow to call SetFont(wxNullFont) to reset the font to default. +- Implement UUID::operator==() and !=() (SQLAware Corporation). +- Fixed long standing (introduced in 2.6.3) bug which resulted in always + creating a DIB and not DDB in wxBitmap(const wxImage&) ctor. +- Fix the bug with wxFileDialog not being shown at all if the default file name + was invalid. +- Fix hang in keyboard navigation code with radio buttons under Windows 2000. +- Implement wxWinINetInputStream::GetSize() (spicerno). +- Always copy "has alpha" flag when copying bitmaps (SQLAware Corporation). + +wxGTK: + +- Fixed masking of disabled bitmaps in wxMenuItem and wxStaticBitmap. +- Fixed generation of events for an initially empty wxDirPickerCtrl. +- Fixed detection of Meta key state so that NumLock isn't misdetected + as Meta (requires GTK+ 2.10). +- Fix changing font/colour of label in buttons with images (Marcin Wojdyr). + +wxMac: + +- Fixed a glitch where clicking on a scrollbar (but not moving the scrollbar) + would cause the window to scroll. + 2.8.8 ----- All: -- Fixed bug with parsing some dates in wxDateTime (Bob Pesner) -- Fixed bug with parsing negative time zones in wxDateTime::ParseRfc822Date() +- Fixed bug with parsing some dates in wxDateTime (Bob Pesner). +- Fixed bug with parsing negative time zones in wxDateTime::ParseRfc822Date(). +- Initialize current line in wxTextBuffer ctor (Suzuki Masahiro). +- Improved performance of XML parsing (Francesco Montorsi). +- Fix wxDateTime::ParseRfc822Date() to handle missing seconds (Joe Nader). All (GUI): -- Added wxWindow::GetNextSibling() and GetPrevSibling() -- Improve wximage::ResampleBox() (Mihai Ciocarlie) -- Implemented ScrollList() in generic wxListCtrl (Tim Kosse) +- Added wxWindow::GetNextSibling() and GetPrevSibling(). +- Support wxGRID_AUTOSIZE in wxGrid::SetRow/ColLabelSize() (Evgeniy Tarassov). +- Ensure that wxGrid::AutoSizeColumn/Row() never sets column/row size + smaller than the minimal size. +- Added parameter to wxScrolledWindow XRC handler. +- wxRichTextCtrl performance has been improved considerably. +- Several wxRichTextCtrl style, paste and undo bugs fixed. +- Added wxRichTextCtrl superscript and subscript support (Knut Petter Lehre). +- wxNotebook RTTI corrected, so now wxDynamicCast(notebook, wxBookCtrlBase) + works. +- When focus is set to wxScrolledWindow child, scroll it into view. +- Improve wximage::ResampleBox() (Mihai Ciocarlie). +- Implemented ScrollList() in generic wxListCtrl (Tim Kosse). +- SaveAs in docview takes into account path now. - Fixed wxXmlResource::GetText() to convert data to current locale's charset in ANSI build. +- wxGrid now indicates focus by using different colour for selection + and hiding cell cursor when it doesn't have focus. +- Added alpha support to wxImage::Paste() (Steven Van Ingelgem) +- Use current date when opening popup in generic wxDatePickerCtrl. +- Remove associated help text from wxHelpProvider when a window is destroyed. +- Added wxSizerFlags::ReserveSpaceEvenIfHidden() and + wxRESERVE_SPACE_EVEN_IF_HIDDEN sizer flag. +- Added wxWindow::ClientToWindowSize() and WindowToClientSize() helpers. +- Added wxSizer::ComputeFittingClientSize() and ComputeFittingWindowSize(). +- Fixed wxSizer::SetSizeHints() to work when the best size decreases. +- Fixed crash in wxHtmlHelpController if the help window is still open. +- Fixed generic art provider to scale bitmaps down to client-specific + best size if needed. +- Made wxSpinCtrl::Reparent() in MSW and generic versions (Angelo Mottola). +- Fixed timing of malformed animated GIFs in wxHTML (Gennady Feller). +- Fixed incorrect layout width caching in wxHTML (Jeff Tupper). +- wxHTML: preserve TAB characters when copying
 content to clipboard.
+- Set focus to wxCalendarCtrl when it is clicked.
+- Don't clear the list control when wxLC_[HV]RULES style is toggled.
+- Don't crash when Ctrl-Shift-T is pressed in empty wxStyledTextControl.
+
+All (Unix):
+
+- Fixed shared libraries to not depend on GStreamer when built with
+  --enable-media; only wxMedia library depends on it now.
+- wxLaunchDefaultBrowser() now uses xdg-open if available.
+- Don't close UDP socket if an empty datagram is received (Mikkel S)
+- Honour locale modifiers such a "@valencia" in system locale (Tim Kosse)
 
 wxMSW:
 
-- Fix rare bug with messages delivered to wrong wxSocket (Tim Kosse)
-- Fix setting icons when they have non-default (16*16 and 32*32) sizes
+- Fix rare bug with messages delivered to wrong wxSocket (Tim Kosse).
+- Fix setting icons when they have non-default (16*16 and 32*32) sizes.
 - Fixed wxLocale::GetInfo to use the C locale.
 - Don't enable disabled windows when showing them (Harry McKame).
-- Fix assert when using owner-drawn menu items with the newest (Vista) SDK
+- Fix assert when using owner-drawn menu items with the newest (Vista) SDK.
+- Fixed wxTextCtrl to not process clipboard events twice if there's
+  a custom wxEVT_COMMAND_TEXT_* event handler.
+- Fix wxComboBox to not lose the current value if it was programmatically set
+  to a value not in a list of choices on popup close (Kolya Kosenko)
+- Switching wxListCtrl to report mode from another one now uses full row
+  highlight, just as if the control were created in report mode initially.
+- Use correct index of the right-clicked column in wxListCtrl in the
+  corresponding event even when the control is scrolled horizontally.
+- Implement wxRadioBox::Reparent() correctly (Vince Harron).
+- Make context sensitive help work for the text part of wxSpinCtrl.
+- wxFileType::GetCommand() now looks at Explorer associations and CurVer
+  for increased reliability and conformance to user expectations.
+- Fixed double Init() call in wxTopLevelWindow causing a memory leak on
+  SmartPhone.
+- Fixed rendering of borders for wxTextCtrl with wxTE_RICH(2) style when
+  using Windows XP's Classic UI theme.
+- Text controls with wxTE_RICH style now also generate wxClipboardTextEvents.
+- Fixed wxEVT_COMMAND_TEXT_ENTER generation in wxSpinCtrl.
+- Fixed wxSpinCtrl::GetClientSize() to return sensible value and not just
+  spin button's client size.
+- Fixed IMPLEMENT_APP() to be compatible with the -WU flag of Borland C++
+  compiler (Matthias Bohm).
+- Correct size calculation for toolbars containing controls under pre-XP
+  systems (Gerald Giese)
 
 wxGTK:
 
 - Return false from wxEventLoop::Dispatch() if gtk_main_quit() was called and
-  so the loop should exit (Rodolfo Schulz de Lima)
+  so the loop should exit (Rodolfo Schulz de Lima).
+- Implement wxListBox::EnsureVisible() (Andreas Kling)
+- Fixed wxCURSOR_HAND to map to GDK_HAND2 and not GDK_HAND1, for consistency
+  with other applications.
+- Fix wxNotebook::GetPage{Text,Image}() when they were called from the page
+  change event handler for the first added page (Mikkel S).
+- Fixed wxBitmapButton to use focus and hover bitmaps correctly.
+- Fixed race condition which could cause idle processing to stop without
+  processing all pending events.
+- wxAcceleratorTable now works with buttons too.
+
+wxMac:
+
+- Fixed cursor for wxBusyCursor and wxContextHelp.
+- Fixed wxListCtrl to respect items' non-default fonts.
+- wxListCtrl::SetColumnWidth() now supports wxLIST_AUTOSIZE.
+- Fixed handling of transparent background in borderless wxBitmapButton.
 
 
 2.8.7