X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/fce0e8f7cdd4c2a5beee4bd42db03d786d99a146..71a77e77d1738cd48d7505efda59ab8110d88766:/docs/changes.txt diff --git a/docs/changes.txt b/docs/changes.txt index 4c8ff6c2b2..341b9578e6 100644 --- a/docs/changes.txt +++ b/docs/changes.txt @@ -5,6 +5,20 @@ 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. + +Table of contents of this section: + + - Unicode-related changes + - wxODBC and contrib libraries removal + - Changes in behaviour not resulting in compilation errors + - Build system changes + - Major new features in this release + + Unicode-related changes ----------------------- @@ -14,9 +28,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 @@ -26,17 +41,30 @@ changes: wxString, in many cases code using it won't compile any more and NULL should be replaced with an empty string. +- Functions returning "const wxChar *" were changed as well. Mostly they now + return wxString which is then transparently convertible to either "const char + *" or "const wchar_t *" but in some cases, notably wxDateTime::ParseXXX(), + the returned string could be NULL and so a separate helper class is used. If + you obtain compilation errors because of this, you can always correct them by + explicitly assigning the function return value to a variable of wanted type. + A slightly more intrusive but better solution is to use ParseXXX() version + with wxString::const_iterator output parameter which simply returns bool to + indicate the parsing success. - Some structure fields which used to be of type "const wxChar *" (such as wxCmdLineEntryDesc::shortName, longName and description fields) are now of type "const char *", you need to remove wxT() or _T() around the values used - to initialize them (which should normally always be ASCII). + to initialize them (which should normally always be ASCII). If you want your + code to remain compatible with Unicode build of previous wx version, please + use the special wxT_2, which is the same as wxT in 2.x only, instead. - wxIPC classes didn't work correctly in Unicode build before, this was fixed but at a price of breaking backwards compatibility: many methods which used to work with "wxChar *" before use "void *" now (some int parameters were also changed to size_t). While wxIPC_TEXT can still be used to transfer 7 bit text, the new wxIPC_UTF8TEXT format is used for transferring wxStrings. + 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 @@ -50,7 +78,7 @@ Also the "applet", "deprecated", "fl", "mmedia" and "plot" contrib libraries were removed as they were unmaintained and broken since several years. The "gizmos", "ogl", "net" and "foldbar" contribs have been moved to wxCode (see http://wxcode.sourceforge.net/complist.php); they are now -open for futher development by volunteers. +open for further development by volunteers. The "stc" and "svg" contribs instead have been moved respectively into a new "official" library stc and in the core lib. @@ -77,14 +105,124 @@ Changes in behaviour not resulting in compilation errors, please read this! sizes of the sizer items to be in the same proportion as the items proportions to return to the old behaviour. +- Interpretation of font height in pixels parameter has changed in wxFont + ctor and SetPixelSize() in wxMSW: it is now used as character height and not + the total cell height. If you previously used negative height to explicitly + request character height matching, you may now change your code to use + positive value (passing negative height still works but is undocumented and + deprecated). If you used positive height before you should retest your code + to check if the changes correspond to your expectations. And if you do need + the old behaviour please contact us at wx-dev to let us know about it! + - wxWindow::Freeze/Thaw() are not virtual any more, if you overrode them in - your code you need to override DoFreeze/Thaw() instead now. + your code you need to override DoFreeze/DoThaw() 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. + +- Processing of pending events now requires a running event loop. + Thus initialization code (e.g. showing a dialog) previously done in wxApp::OnRun() + or equivalent function should now be done into wxApp::OnEventLoopEnter(). + See wxApp::OnEventLoopEnter() and wxApp::OnEventLoopExit() docs for more info. + +- wxDialogs get wxEVT_SIZE events immediately after creation in wxMSW, as with + wxFrames. This means that this event handler may be called earlier than in + 2.8, check that all the controls are initialized before using them in it. + +- wxLoadFileSelector() now allows the user to select existing files only. + +- Erase background events are now not generated at all when background style is + changed. See the updated wxWindow::SetBackgroundStyle() description in the + manual for more details. + +- wxTreeCtrl::GetSelection now asserts if the tree has the wxTR_MULTIPLE style. + Instead use GetSelections() for multiple items; or if you want only the + single item last touched, the new wxTreeCtrl::GetFocusedItem. + +- Custom log targets should be updated to override wxLog::DoLogRecord() method + instead of DoLog() or DoLogString() and must be updated if they call the base + class versions of these functions as this won't work any more; please see the + documentation of wxLog for more information. + +- Confusing wxGridSizer(int cols, int vgap = 0, int hgap = 0) ctor which was + easy to mistake for wxGridSizer(int rows, int cols) overload was removed, you + will need to specify both vertical and horizontal gap if you want to use this + overload or specify both rows and columns and the gap otherwise. Use of the + new constructors taking wxSize for the gap argument is preferred. The same + applies to wxFlexGridSizer as well. + +- wxBoxSizer::AddSpacer(x) now adds space in the direction of the sizer only + and not in both this and the orthogonal directions. This behaviour is what + most of the people expect but if you really relied on this overload adding + space in both directions you should change your code to use AddSpacer(x, x). + +- wxTextCtrl::LoadFile no longer sends a text update event. + +- wxXmlDocument::Save()'s indentstep argument's interpretation was fixed + to match the documentation: it now really is the number of spaces in + indentation instead of being its double. Its default value was changed + accordingly, to 2. + +- wxLOCALE_CONV_ENCODING flag has no effect now, catalogs are converted + regardless of whether the flag was specified or not. This only affects + legacy ANSI builds. + +- wxNotebook::GetSelection() returns the new page index when called from + wxEVT_COMMAND_NOTEBOOK_PAGE_CHANGED event handler in wxMSW, not the old one. + The new behaviour is consistent with wxGTK and more logical but different + from the previous versions. Using wxNotebookEvent::GetSelection() instead of + querying the notebook selection avoids the problem and is recommended. + +- wxMSW-specific wxAutomationObject::GetInstance() method now creates a new + instance if needed instead of failing if the application providing the + requested ProgID is not running. Pass wxAutomationInstance_UseExistingOnly + flag to it to revert to the old behaviour. It is also possible to use the + wxAutomationInstance_SilentIfNone flag to prevent the error message if no + currently running instances of this object are available. + +- Signature of wxDataViewCustomRenderer::StartDrag() virtual method changed. + You will need to change it in your derived renderer class too if you override + it. + +- wxDataViewCustomRenderer::Activate() and LeftClick() were replaced with the + new ActivateCell() method. You will need to change it in your derived + renderer class accordingly. + +- wxThread::Wait() and wxThread::Delete() used to dispatch the events while + waiting for the thread to exit in wxMSW. They still do it in default build + with WXWIN_COMPATIBILITY_2_8 defined but won't dispatch any events, i.e. the + default wait mode will become wxTHREAD_WAIT_BLOCK in the next wxWidgets + release so you are strongly encouraged to upgrade your code to stop relying + on this behaviour. + +- wxEVT_CHAR_HOOK events are not generated any more if the mouse is captured to + prevent the parent wxTopLevelWindow from interfering with the keyboard + handling of the window that captured the mouse. + +- wxDataViewCtrl::GetSelection() now returns invalid item in all ports (this + behaved differently in wxMSW and wxGTK/wxOSX before) if more than one item + is selected in a control with wxDV_MULTIPLE style. + +- wxEVT_COMMAND_MENU_SELECTED, MENU_OPEN and CLOSE events returned a menu from + GetEventObject() in all ports but the frame the menu was attached to in wxMSW. + Now all ports return the menu that was opened or closed as the event object. + Changes in behaviour which may result in compilation errors ----------------------------------------------------------- @@ -92,10 +230,30 @@ Changes in behaviour which may result in compilation errors - WXWIN_COMPATIBILITY_2_4 doesn't exist any more, please update your code if you still relied on features deprecated since version 2.4 +- WXWIN_COMPATIBILITY_2_6 still exists but is 0 by default in this release and + will be removed in 3.2. You can set it to 1 and rebuild wxWidgets to access + the old and deprecated symbols but please consider updating your code + instead. Here are replacements for some of the obsolete symbols: + + wxSAVE and wxOPEN -> wxFD_SAVE and wxFD_OPEN + + WXK_PRIOR and WXK_NEXT -> WXK_PAGEUP and WXK_PAGEDOWN + + wxRESIZE_BOX -> wxMAXIMIZE_BOX + + wxTHICK_FRAME -> wxRESIZE_BORDER + + wxPROCESS_ENTER and wxPASSWORD -> wxTE_PROCESS_ENTER and wxTE_PASSWORD + + EVT_SCROLL_ENDSCROLL -> EVT_SCROLL_CHANGED + + NewControlId -> wxWindow::NewControlId() + + wxFileHistory::GetNoHistoryFiles() -> wxFileHistory::GetCount() + + wxSizerItem::SetOption() -> wxSizerItem::SetProportion() + + wxSizer::Remove(wxWindow*) -> wxSizer::Detach() + - wxDC classes hierarchy has changed, if you derived any classes from wxDC you need to review them as wxDC doesn't have any virtual methods any longer and uses delegation instead of inheritance to present different behaviours. +- wxWindow::ProcessEvent() (and other wxEvtHandler methods inherited by wxWindow) + has been made protected to prevent wrongly using it instead of correct + GetEventHandler()->ProcessEvent(). + New ProcessWindowEvent() was added for convenience. + - Return type of wxString::operator[] and wxString::iterator::operator* is no longer wxChar (i.e. char or wchar_t), but wxUniChar. This is not a problem in vast majority of cases because of conversion operators, but it can break @@ -114,14 +272,32 @@ 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() : "") + +- wxDateTime::ParseXXX() overloads don't return anything when called with + wxCStrData argument. If you need to test the parsing success, use a newer + overload taking wxString::const_iterator and returning bool or explicitly + select a narrow or wide char version to use by casting c_str() to either + "char*" or "wchar_t*". Or create a temporary wxString and parse it instead. - wxCtime() and wxAsctime() return char*; this is incompatible with Unicode build in wxWidgets 2.8 that returned wchar_t*. @@ -135,7 +311,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 be NULL in wxWidgets 2.8 are deprecated and passing NULL to them won't compile anymore, wxEmptyString must be used instead. @@ -151,11 +327,71 @@ 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. + +- wxListCtrlCompare function used with wxListCtrl::SortItems() must now declare + its third parameter as wxIntPtr and not long (this allows passing pointers + to it under 64 bit platforms too). + +- Global wxPendingEvents and wxPendingEventsLocker objects were removed. + You may use wxEventLoopBase::SuspendProcessingOfPendingEvents instead of + locking wxPendingEventsLocker now. + +- wxBitmapButton::GetBitmapXXX() overloads returning non-const wxBitmap + references have been removed, modifying the returned bitmaps never worked and + now results in compile-time error. + +- wxLogXXX() are now macros, not functions. Because of this calling them with + an explicit scope resolution operator ("::wxLogError()") doesn't work any + longer, just remove it. Also notice that using them inside an "if" statement + without enclosing parentheses results in warnings from g++ with -Wparentheses, + add parentheses around the if statement body to work around it. + +- wxList::Member() now returns bool and not a pointer/iterator. This shouldn't + require any changes as it was always meant to be used for checking for the + presence of an element in the list only. If you used it as Find(), simple do + use Find() instead. + +- wxLongLongFmtSpec is now a normal and not wide string so you will need to + change expressions of the form wxT("%") wxLongLongFmtSpec wxT("x") to + just "%" wxLongLongFmtSpec "x", i.e. simply remove wxT() from the strings you + concatenate with it. + +- wxST_MARKUP doesn't exist any more, use wxControl::SetLabelMarkup() instead. + +- wxComboBox::IsEmpty(), which was previously available in some ports (but not + wxMSW), doesn't exist any more, use either IsListEmpty() or IsTextEmpty(). + +- wxSingleChoiceDialog ctors and Create() now have 2 overloaded versions: one + taking void** client data and the deprecated one taking char**. This can + result in compilation errors due to an ambiguity between them if you pass + NULL as client data. To fix this, cast NULL explicitly to "void**". + +- wxChoicebookEvent, wxListbookEvent, wxNotebookEvent, wxToolbookEvent and + wxTreebookEvent are now all synonyms for wxBookCtrlEvent. The existing code + using the old names continues to work but they can't be forward-declared + any more. Use wxBookCtrlEvent in your code if you need to forward-declare + it or just include the appropriate header instead of forward declaration. + Deprecated methods and their replacements ----------------------------------------- @@ -173,19 +409,87 @@ 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). +- Various wxMenuItem methods were deprecated in favour of more consisently + named new versions: + . GetLabel() is now GetItemLabelText() + . GetText() is not GetItemLabel() + . GetLabelFromText() is now GetLabelText() + . SetText() is now 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. +- 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 renamed to CreateThread which has a better + name for a mix-in class, and allows setting the thread type. +- wxDos2UnixFilename, wxUnix2DosFilename, wxStripExtension, wxGetTempFileName, + wxExpandPath, wxContractPath, wxRealPath, wxCopyAbsolutePath, wxSplitPath + were deprecated in favour of wxFileName methods. See docs for more info. +- wxEvtHandler::TryValidator/Parent() are deprecated, override the new and + documented TryBefore/After() methods if you used to override these ones. +- wxGetMultipleChoices() is deprecated, use wxGetSelectedChoices() which has + the same signature but returns -1 and not 0 if the dialog was cancelled. +- building the windows which are placed inside wxStaticBoxes as siblings of the + wxStaticBox is still allowed but it's deprecated as it gives some problems + on some ports (e.g. wxGTK). + You should now create windows placed inside a wxStaticBox as children of + the static box itself. +- wxMouseState::{Left,Middle,Right}Down() were renamed to XXXIsDown() for + consistency with wxMouseEvent and the old names were deprecated. +- wxFont::SetNoAntiAliasing() was deprecated, it never really worked in most + ports and was always marked as "experimental" API. It will be replaced with + wxDC-level anti-aliasing control in the future. +- wxValidator::SetBellOnError() incorrectly interpreted its argument (it + disabled the bell when it was true) and was replaced by SuppressBellOnError() + with more expected semantics. +- wxPORTRAIT and wxLANDSCAPE are now elements of wxPrintOrientation enum and + wxPrintData::SetOrientation(int) takes wxPrintOrientation and not int. +- Second parameter of wxSlider::SetTickFreq(int n, int pos) is deprecated, + simply remove it from your code and use wxSlider::SetTickFreq(int n) as it + was never used anyhow. +- wxSingleChoiceDialog ctor and Create() take "void**" client data pointer + instead of "char**". As the client data is typically untyped, you should + simply remove the casts to "char**" which you probably have in your code if + you use these functions. +- wxDataViewCtrl::StartEditor(item, n) taking column index is now deprecated, + use EditItem(item, GetColumn(n)), which takes the column itself, instead. +- wxWindow::MakeModal() is deprecated, use wxDialog::ShowModal() instead if + possible or wxWindowDisabler otherwise. + + +Changes in behaviour visible to end users +----------------------------------------- + +- In wxMSW wxSpinCtrl used to prevent the user from entering more digits than + could fit in its visible area. This was inconsistent with the other ports and + now the control scrolls if too much text is added. + + +Build system changes +-------------------- + +- In wxMSW makefile builds, "_x64" is used instead of "_amd64" when compiling + for this architecture in the architecture-specific paths and library names. + TARGET_CPU can still be specified as "amd64" for compatibility but "x64" + should be used now. +- Official wxMSW binaries, i.e. those built with OFFICIAL_BUILD=1, built with + MSVC now include the version of the compiler used and the architecture if + it's not the default "x86". E.g. a library built with MSVC 10 for amd64 is + called "wxbase294ud_vc110_amd64.dll" now. Major new features in this release @@ -198,7 +502,551 @@ 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. + +- new ribbon library for advanced toolbars. + +- Many enhancements to wxDataViewCtrl. + +- Event loops, timers and sockets can now be used in wxBase, without GUI. + +- Events can now be connected to any functor, not necessarily a method of + wxEvtHandler-derived class. The compile-time safety was also improved. + +- 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! :-) + +- Support for persistent objects automatically saving and restoring their state + was added. + + +2.9.5: (released ????-??-??) +---------------------------- + +All: + +- Add wxDir::Close() method (Silverstorm82). +- Fix compilation of wxHash{Map,Set} with g++ 4.7 (Nathan Ridge). +- Fix posting large amounts of data in wxHTTP (Platonides). +- Added Nepali translation (Him Prasad Gautam). + +All (GUI): + +- Add wxBITMAP_PNG() macro similar to wxBITMAP() but for PNG files. +- Add new wxSimplebook class. +- Support hexadecimal numbers in wxSpinCtrl. +- Respect window max size in wxBoxSizer (Nathan Ridge). +- Add support for searching in wxWebView for MSW and GTK (Allonii). +- Add generic wxFileSystem support to wxWebView with + wxWebViewFSHandler (Nick Matthews). +- Add possibility to hide and show again wxRibbonBar pages (wxBen). +- Add wxRibbonBar pages highlighting (wxBen). +- Add expand/collapse button to wxRibbonBar (rakeshthp). +- Fix item data access in wxDataViewListCtrl (Kry). +- Fix problem with floating maximized AUI panes (Laurent Poujoulat). +- Add wxBitmapButton::NewCloseButton(). +- Add wxTextEntry::SelectNone() (troelsk). +- Restore the original wxGrid col/row size when unhiding it (Michael Richards). +- Fix text origin and extent computations in wxSVGFileDC (Neil Chittenden). +- Show tooltips for the too long items in generic wxTreeCtrl (Steven Houchins). +- Add wxStyledTextCtrl::AnnotationClearLine() (sentieshar). + +wxGTK: + +- Allow building wxGTK3 with Broadway backend (Kolya Kosenko). +- Provide native implementation of wxNotificationMessage using libnotify. +- Generate clipboard events for wxComboBox and not only wxTextCtrl. +- Improve drag-and-drop of URLs. + +wxMSW: + +- Fix setting colours for the text part of wxComboBox (Igor Korot). +- Add support for CURRENCY and SCODE types to OLE Automation helpers (PB). +- Allow setting LCID used by wxAutomationObject (PB). +- Fix calling Iconize(false) on hidden top level windows (Christian Walther). +- Don't send any events from wxSpinCtrl::SetRange() even if the value changed. + + +2.9.4: (released 2012-07-09) +------ + +INCOMPATIBLE CHANGES SINCE 2.9.3 + +- wxDataViewListCtrl doesn't delete its client data any more for compatibility + with wxListCtrl, use full wxDataViewCtrl if you don't need compatibility. + +All: + +- Added wxLogFormatter to allow customizing wxLog output (Sébastien Gallou). +- Added wxFSInputStream for reading data from wxFileSystem (Armel Asselin). +- Added "%z" support to wxDateTime::Format() and Parse() (Armel Asselin). +- Add wxHTTP::SetPostBuffer(wxMemoryBuffer) and SetPostText() (Eran Ifrah). +- Fix wrong time zone used in wxDateTime::UNow(). +- Fix performance of wxStdInputStream with MSVC8/9 (wsu). +- Added wxFileName::Exists(). +- Implement wxThread::SetConcurrency() for POSIX systems (Igor Korot). +- Fix deadlock due to too many events in Unix console apps (Lukasz Michalski). +- Added wxDir::GetNameWithSep(). +- Allow unloading wxPluginLibrary objects in any order (manyleaves). +- Fix passing strings with embedded NULs in wxThreadEvents (sodev). + +All (GUI): + +- Add wxGrid::Render() for printing wxGrid (John Roberts). +- Added strike-through support to wxFont (Igor Korot). +- Add support for horizontal mouse wheel events to MSW and GTK (Lauri Nurmi). +- Fix infinite loop in wxHtmlEasyPrinting when trying to page break images + taller than the page height in wxHtmlEasyPrinting (Laurent Poujoulat). +- Added wxFilePickerCtrl::SetInitialDirectory(). +- Added wxDataViewItemAttr::SetBackgroundColour() and implemented it in generic + wxDataViewCtrl (Andrew Xu). +- Fix item alignment in icon view in the generic wxListCtrl. +- Support font-family/style, text-decoration in wxHtmlWindow (Blake Oleander). +- Show ribbon tools help strings in tooltips (John Roberts). +- Improve row/column selection modes in wxGrid (joostn). +- Send wxEVT_UPDATE_UI for wxRibbonButtonBar and wxRibbonToolBar (Emilien Kia). +- Add InsertXXXButton() to wxRibbonButtonBar and wxRibbonToolBar (Emilien Kia). +- Allow enabling/disabling and toggling tools in wxRibbonToolBar (Emilien Kia). +- Add wxRibbonBar::DeletePage() and ClearPages() methods (Emilien Kia). +- Implement support for extension button to wxRibbonPanel (Emilien Kia). +- Fix multiple item selection in generic wxTreeCtrl (Igor Korot). +- Implement wxMenuBar::IsEnabledTop() for all major ports (Igor Korot). +- Implement best size calculation for report mode wxListCtrl. +- Fix setting of the frame icon when using non-standard icon sizes (vid). +- Implement wxDV_ROW_LINES in generic wxDataViewCtrl (RedCAT). +- Added EVT_AUI_PANE_ACTIVATED event (Ronny Krüger). +- Added support for page tooltips to wxAuiNotebook (Armel Asselin). +- Added wxSplitterWindow::SetSashInvisible() (Armel Asselin). +- Enable/disable "Window" menu items in AUI MDI correctly (wsu). +- Added wxTimePickerCtrl::Get/SetTime(). +- Fix WXK_MENU handling in wxStyledTextCtrl under wxGTK (cantabile). +- Added wxAcceleratorEntry::ToRawString() (Armel Asselin). +- Added wxDataViewEvent::SetDragFlags() and GetDropEffect() (Friedrich). +- Added support for fields and virtual attributes to wxRichTextCtrl. +- Added custom text and dimension scaling to wxRichTextCtrl. +- Added pixel font size capability to wxTextAttr and wxRichTextCtrl. +- Fully implement wxStyledTextCtrl::PositionToXY() (troelsk). +- Added wxDataViewListCtrl::{Set,Get}ItemData(). +- Added wxDataViewListCtrl::GetItemCount() (Kry). +- Added support for Korean Johab and Vietnamese encodings (jank9201). +- Fix off by 1 bug with setting font size in points in wxHTML (gevorg). +- Fix return value of wxGenericListCtrl::InsertColumn() (Sebastian Walderich). + +GTK: + +- Added support for GTK+ 3 (John Chain and Paul Cornett) +- Implement support for wxBG_STYLE_TRANSPARENT (Armel Asselin). +- Implement stippled/hatched pens/brushes in wxGraphicsContext (Kit Bishop). +- Fix wxNotebook best size calculation. +- Implement wxDirDialog::Create() and wxFileDialog::Create() (vinayakgarg). +- Fix const methods display in assert dialog (vinayakgarg). +- Implement native tab art for wxAUI (Jens Lody and Teodor Petrov). +- Fix pasting large amounts of text (Bradley Hawkins). +- Show gstreamer errors if wxMediaCtrl fails to play file. +- Fix wxGridCellEnumEditor mouse handling (Fulvio Senore). + +MSW: + +- Fixed regression with initial focus in the dialogs in 2.9.3. +- Use new style directory selection dialog under Vista and later (PB). +- Added support for wxEXEC_MAKE_GROUP_LEADER to wxExecute (tteras). +- Set wxMenu being closed in wxEVT_MENU_CLOSE events (Marcin Malich). +- Fix coordinates and Z-position for joystick events (Markus Juergens). +- Fix size of the font returned by wxTextCtrl::GetStyle() (Igor Korot). +- Add wxActiveXContainer::QueryClientSiteInterface and implement it in + wxWebViewIE to improve the default behaviour (Allonii). +- Update stretchable spaces in wxToolBar after tool removal (Catalin Raceanu). +- Implement wxGraphicsContext::SetInterpolationQuality() (Eric Jensen). +- Fix coordinate handling in wxDC::Blit() when source DC is a DIB. +- Fix handling of composite windows in wxToolTip (Armel Asselin). +- Add VT_I8 support to wxAutomationObject (PB). +- Fix wxListbook size calculations to avoid spurious scrollbars. +- Fix code compilation with wxUSE_UNICODE_UTF8 (Kolya Kosenko). +- Fix crash in wxTreeCtrl when calling GetSelection() from selection changed + event handler under Vista and later (sbrowne). +- Fix text extent computation in wxGraphicsContext (juria90). + +OSX: + +- Provide native implementations of wxDatePickerCtrl and wxTimePickerCtrl. +- Fix handling of positional parameters in wxPrintf() &c (David Connet). +- Implement wxStackWalker. + +Univ: + +- Fix regression with read-only wxComboBox appearance (Jason Erb). + +Unix: + +- Fix bug with wxDir("/").GetName() returning empty string. + + + +2.9.3: (released 2011-12-14) +------ + +INCOMPATIBLE CHANGES SINCE 2.9.2 + +- wxPanel::SetBackgroundBitmap() was removed, derive your class from + wxCustomBackgroundWindow and use its method with the same name instead. + +All: + +- Fix parsing of negated long options in wxCmdLineParser (roed_bis). +- Fix crash in wxArray::insert() overload taking iterator range (wsu). +- Added wxEventFilter class and wxEvtHandler::{Add,Remove}Filter(). +- Added convenient wxCmdLineParser::AddLong{Option,Switch}() wrappers. +- Added wxStopWatch::TimeInMicro() and wxGetUTCTimeUSec() and improved + wxStopWatch precision. +- Made wxGetLocalTimeMillis() really return local time, added + wxGetUTCTimeMillis() returning what this function used to return. +- Added wxCriticalSection::TryEnter() (Catalin Raceanu). +- Add support for OpenBSD to wxDialUpManager (brad0). +- Added wxEXEC_HIDE_CONSOLE flag. + +All (GUI): + +- Added wxWebView library (Steven Lamerton & Auria, GSoC 2011 project). +- Added wxTreeListCtrl class. +- Added wxTimePickerCtrl class. +- Added wxRichToolTip class. +- Added documented, public wxNavigationEnabled<> class. +- Added wxTextCtrl::PositionToCoords() (Navaneeth). +- Added support for wxHELP button to wxMessageDialog. +- Added wxBannerWindow class. +- Allow setting window shape to arbitrary wxGraphicsPath. +- Added wxTextEntry::AutoCompleteDirectories(). +- Support float, double and file name values in wxGenericValidator (troelsk). +- Add support for custom numeric formats to wxGrid (Kinaou Hervé). +- Fix keyboard navigation in wxGrid with hidden columns (ivan_14_32). +- Add wxDataViewEvent::IsEditCancelled() (Allonii). +- Send EVT_DATAVIEW_ITEM_CONTEXT_MENU events even when not clicking on an item. +- Allow marking wxTreeBook nodes to expand initially in XRC (RedTide). +- Added customizable wxDocManager::OnMRUFileNotExist() virtual method. +- Fix stock labels when not using mnemonics for Chinese (cw.ahbong). +- Added wxComboBox::IsListEmpty() and IsTextEmpty(). +- Added wxDataViewCtrl::GetSelectedItemsCount() and HasSelection(). +- Added wxFLP_SMALL and wxDIRP_SMALL styles. +- Added support for saving alpha with TIFF images. +- Added wxPersistentSplitter. +- Derive wxAuiNotebook from wxBookCtrlBase (Steven Lamerton). +- Fix tooltips in wxSearchCtrl and other composite controls (Catalin Raceanu). +- Allow converting to and from wxGraphicsBitmap and wxImage directly. +- Allow wxGraphicsFont creation without passing by wxFont. +- Added wxDataViewCustomRenderer::ActivateCell(). +- Add "checked" property for toolbar tool elements in XRC. +- Allow customization of the locations where persistent settings are stored. +- Restore support for reusing ids more than 254 times (Armel Asselin). +- Added wxIMAGE_OPTION_ORIGINAL_{WIDTH,HEIGHT} (Catalin Raceanu). +- Add wxTopLevelWindow::SetRepresentedFilename() (Andrej Vodopivec). + +OSX: + +- Implement wxRegion::Equal() (Dr.Acula). +- Implement wxFileType::GetOpenCommand(). +- wxGetOsVersion() now returns more sensible version numbers, e.g. 10 and 6 + for OS X 10.6. +- Added wxApp::MacOpenFiles and deprecated wxApp::MacOpenFile. +- Implement wxEVT_CHAR_HOOK event generation in wxOSX/Cocoa. +- Implemented wxComboBox::Popup() and Dismiss() in wxOSX/Cocoa (joostn). + +GTK: + +- Generate events for two auxiliary mouse buttons in wxGTK (Marcin Wojdyr). +- Fix conflict between wxDIALOG_NO_PARENT and wxICON_EXCLAMATION (David Hart). + +MSW: + +- Added wxGCDC(wxEnhMetaFileDC) ctor (Marcin Wojdyr). +- Added wxTopLevelWindow::MSWGetSystemMenu(). +- Multiline text controls no longer select all content when gaining focus from + the keyboard. +- Implement wxStackWalker for x86-64 (Artur Bać). + + +2.9.2: (released 2011-07-05) +------ + +All: + +- Added cwd and env arguments to wxExecute() (Emilien Kia). +- Added "rest" argument to wxString::Before{First,Last}(). +- Added wxThread::OnKill() and OnDelete() callbacks. +- Added wxFile::GetLastError() and ClearLastError() (ryazanov). +- Added negatable command line switches (Armel Asselin). +- Added wxVersionInfo and various GetLibraryVersionInfo() functions (troelsk). +- Added wxNumberFormatter for dealing with thousands separators. +- Added wxIntegerValidator<> and wxFloatingPointValidator<> validators. +- Added wxIMAGE_OPTION_GIF_COMMENT to read and write GIF comments (troelsk). +- Added wxStack<> template class. +- Added precision parameter to wxString::From[C]Double(). +- Added wxThread::Wait() and Delete() "wait mode" parameter (Catalin Raceanu). +- Allow showing milliseconds in wxLog time stamps (tan). +- Added support for processing instructions in wxXmlDocument (Nick Matthews). +- Added wxThreadEvent for communicating between threads to wxBase. + +Unix: + +- Fix spurious errors when writing to child process pipe (ryazanov). + +All (GUI): + +- Implement support for markup in wxButton and wxStaticText. +- Added wxRichMessageDialog (Rickard Westerlund, GSoC 2010 project). +- Added wxCommandLinkButton (Rickard Westerlund, GSoC 2010 project). +- Added wxUIActionSimulator (Steven Lamerton, GSoC 2010 project). +- Added support for dynamic auto-completion in wxTextEntry. +- Added images support to wxToggleButton (Garrick Meeker). +- wxAUI: support auto-orientable toolbars (wsu). +- wxAUI: add support for icons in pane title bars (triton). +- Added wxPanel::SetBackgroundBitmap(). +- Added wxDataViewCtrl::Set/GetCurrentItem(). +- Added possibility to disable individual wxDataViewCtrl items (Neno Ganchev). +- wxHTML: render in RTL order inside RTL window (Richard Bullington-McGuire). +- wxRibbon: added EVT_RIBBONGALLERY_CLICKED event (John Roberts). +- wxRibbon: allow hiding the panels and showing tabs only (snowleopard). +- Add support for child documents to docview framework. +- Add support for CP-866 encoding to wxEncodingConverter (madnut). +- Consistency fixes for keyboard events across all major ports. +- Added EVT_RIBBONBAR_TAB_LEFT_DCLICK event (snowleopard). +- Fix display of right aligned columns in wxGenericListCtrl (jl). +- Restore text drag-and-drop in wxSTC broken by Scintilla 2 update (Jens Lody). +- Add support for id ranges to XRC (David Hart). +- Added wxToolbook XRC handler (Andrea Zanellato). +- Added wxDocManager::FindTemplate() (troelsk). +- Return bool, not void, from wxImage::ConvertAlphaToMask() (troelsk). +- Fixed resizing columns in wxGrid when they were reordered. +- Fixed keyboard navigation when wxGrid columns are reordered. +- Added wxImage::Rotate180() (Jeff Tupper). +- Added support for saving TGA files. +- Added wxArtProvider returning higher quality icons from Tango project. +- wxPropertyGrid: Added "HasAlpha" attribute for wxColourProperty. +- wxPropertyGrid: Disabling a property didn't work properly if a child item + was selected (Sébastien Gallou). +- Added support for saving PNG files with palette (troelsk). +- Added support for saving as GIF and animated GIF (troelsk). +- Fix wxWrapSizer minimal size calculation (Catalin Raceanu). +- Added wxFont::Underlined() and MakeUnderlined() methods. +- Added wxFont::SetSymbolicSize() and related methods. +- Fix SVG files generation in locales using decimal comma (snowleopard). +- Fix setting tooltips for generic wxSpinCtrl (Catalin Raceanu). +- Added support for reading image resolutions from PNG images (scottb). +- wxComboCtrl, wxOwnerDrawnComboBox: better support for themed and custom + panel backgrounds, especially on OS X. +- Add WXK_CONTROL_A..WXK_CONTROL_Z constants (Jan van Dijk). +- Add support for alpha channel in colours in wxSVGFileDC (snowleopard). +- Allow customizing AUI tab colours in wxAuiTabArt (snowleopard). +- Added wxAffineMatrix2D class (Catalin Raceanu). +- Allow showing preview frame non modally (John Roberts). +- Improve appearance of the generic wxHyperlinkCtrl (David Connet). + +GTK: + +- Improve print/page setup dialog (rafravago). +- Switch to GtkTooltip from deprecated GtkTooltips (Emilien Kia). +- wxTLW generates wxEVT_MAXIMIZE. +- Fix copying clipboard data to primary selection (David Hart). +- Implement wxGraphicsContext::GetSize() (Marcin Wojdyr). +- Implement wxCalendarCtrl::SetDateRange() for the native control. + +MSW: + +- Native implementation of wxHyperlinkCtrl and wxProgressDialog under modern + Windows versions (Rickard Westerlund, GSoC 2010 project). +- Fix Cygwin 1.7 build (David Gangola). +- Allow using wxDC::DrawText() with multiline texts. +- Fix wxBitmapButton best size determination broken in 2.9.1. +- Center task dialog-based wxProgressDialog on the parent (John Roberts). +- wxAutomationObject::GetInstance() creates objects on demand (Kolya Kosenko). +- Fix EVT_UPDATE_UI generation for items in submenus (wsu). +- Added support for world transformation matrix to wxDC (Catalin Raceanu). + +OSX: + +- Implement auto-completion support in wxTextEntry. +- Implement switching to default video mode in wxDisplay (soren). + + +2.9.1: +------ + +INCOMPATIBLE CHANGES SINCE 2.9.0 + +- wxStandardPaths doesn't use vendor name by default under MSW and OSX to + remain compatible with 2.8 behaviour but this makes it incompatible with + 2.9.0. Please use UseAppInfo(AppInfo_AppName | AppInfo_VendorName) explicitly + to use the vendor name in the paths returned by wxStandardPaths. + +- wxDataViewModel::GetAttr() is now const, as it should have been from the very + beginning. You will need to change it to be const in your derived model + class too if you override it. + + +All: + +- Added wxFileSystemWatcher (Bartosz Bekier, Google Summer of Code project). +- Added wxStd{Input,Output}Stream classes (Jonathan Liu). +- Include port number in host header in wxHTTP (Marcin 'Malcom' Malich). +- Added wxTempFile::Flush(). +- Added support for wxLongLong and wxULongLong in wxVariant. +- Added wxVector::swap(). +- Many wxLog improvements: + * wxLogXXX() functions are now thread-safe. + * Log levels can now be set independently for different log components. + * wxLog::DoLogRecord() has access to the location of the log message + (file, line and function name) and id of the thread which generated it. + * SetThreadActiveTarget() allows to set up thread-specific log targets. +- Fix output buffer overflow in wxBase64Decode() (Eric W. Savage). +- Added bilinear image resizing algorithm to wxImage (bishop). +- Fix bug with position argument in wxImage::Size() (Byron Sorgdrager). +- Added wxImage::ClearAlpha() (Javier Torres). +- Fix bug with parsing concatenated switches in wxCmdLineParser (Mike Funduc). +- Added wxMBConv::cMB2WC(wxCharBuffer) and cWC2MB(wxWCharBuffer) overloads. +- Added wxAny class; a modern, backwards-incompatible replacement for + wxVariant. +- wxDateTime timezone functions now dynamic (no caching). +- Added wxHttp::GetCookie and wxHttp::HasCookies (dodge). +- Added support for unique volume names to wxFileName (Neno Ganchev). +- Correct bugs when using wxTextInputStream with wxConvAuto (Leon Buikstra). +- Don't crash when input is empty in wxFileConfig ctor (Lukasz Michalski). +- Correct wxSocket::Peek() to not block (Anders Larsen). +- Added IEC and SI units support to GetHumanReadableSize() (Julien Weinzorn). +- Add convenient wxString::ToStd{String,Wstring}() helpers. +- Added wxTranslations class to allow localization without changing locale. + It provides more flexible languages enumeration API as well. +- Added wxResourceTranslationsLoader for loading translations from Windows + resources. +- Added wxMessageQueue::Clear(). +- Added wxConfig::Read(float *) overload (Terry Farnham). +- Always use decimal point (and not the current locale separator) in wxConfig. +- Fix posting of binary data using wxHTTP (Catalin Raceanu). + +Unix: + +- Return signed return code from wxExecute(wxEXEC_SYNC). +- Allow to use WX_APPNAME_DATA_DIR environment var to override the return value + of wxStandardPaths::GetDataDir(). + +All (GUI): + +- Added support for showing bitmaps in wxButton. +- Added wxInfoBar. +- Added stretchable spaces support to wxToolBar. +- Added support for corner, row and column headers renderers to wxGrid. +- wxWindow::SetAutoLayout() now works for all windows, not just panels. +- Support wxListCtrl columns, items and image lists in XRC (Kinaou Hervé). +- Added support for wxFileCtrl to XRC (Kinaou Hervé). +- Added ownfg, ownbg and ownfont tags to XRC. +- Added wxEditableListBox XRC handler. +- Added multiple selection support to wxDirCtrl (Steve Lamerton). +- wxGrid: add possibility to prevent resizing of individual rows/columns. +- wxGrid: allow changing the horizontal alignment of numeric cells. +- wxHTML: add support for table borders width (Laurent Humbertclaude). +- wxHTML: add limited support for span elements styles (Nigel Paton). +- Added wxMouseEventsManager. +- Building OpenGL library is now enabled by default. +- Fixed wxDataViewCtrl::Set{Foreground,Background}Colour(). +- Added wxDataViewRenderer::EnableEllipsize(). +- Improve wxTreeCtrl::ScrollTo() in generic version (Raanan Barzel). +- Added wxFont::[Make]{Bold,Italic,Smaller,Larger} and Scale[d]() methods. +- Added wxDC::CopyAttributes() and use it in wxBufferedDC. +- Added wxTextWrapper helper class useful for wrapping lines of text. +- Added EVT_DATAVIEW_CACHE_HINT() event (Trigve). +- Added wxLB_NO_SB style (implemented for MSW only; Dario Senic). +- Added long version field to wxAboutDialogInfo (Jeff Tupper). +- Added wxWindow::CanScroll() behaving like the old HasScrollbar() and made + HasScrollbar() really check for the scrollbar existence. +- Added wxKeyEvent::IsKeyInCategory() (Jeff Tupper). +- Add A0 and A1 paper formats support (Martin Perktold). +- Fixed wxComboCtrl popup size on Mac (scrollbars were always shown). +- Fixed wxComboCtrl focus problem on Mac (first-time popup + dismissed immediately as text control grabbed the focus). +- wxPropertyGrid: added wxPG_EX_MULTIPLE_SELECTION. +- wxPropertyGrid: added functions for editing property labels. +- wxPropertyGrid: many fixes to property validation failure behaviour. Added + new flags: wxPG_VFB_SHOW_MESSAGEBOX and wxPG_VFB_SHOW_MESSAGE_ON_STATUSBAR. +- wxPropertyGrid: Added wxPropertyGrid::DedicateKey(). +- wxPropertyGrid: wxArrayStringProperty now uses wxEditableListBox. +- wxPropertyGrid: Added "Delimiter" attribute for wxArrayStringProperty. +- wxPropertyGridManager: added wxPG_NO_INTERNAL_BORDER, + wxPG_EX_NO_TOOLBAR_DIVIDER and wxPG_EX_TOOLBAR_SEPARATOR styles for finer + control over borders. Borders around property grid are now native for + consistency. +- Added wxPropertyGridManager::ShowHeader(). +- Added wxXmlResource::LoadObjectRecursively(). +- Added wxColour::Set/GetRGB() and Set/GetRGBA() methods (Marcel Haß). +- wxRTC: added wxRICHTEXT_HANDLER_USE_CSS flag for HTML handler to use CSS + where possible. +- wxRTC: corrected centring and right-justification spacing. +- wxRTC: fixed style selection reset after editing a style. +- wxRTC: can now edit line spacing in .1 increments from 1 to 2. +- wxRTC: added PaintAboveContent function for drawing on top of text. +- Added wxBORDER_THEME to XRC. +- wxGraphicsContext is now enabled by default if supported by the platform. +- Fix building with using system libpng 1.4 (Volker Grabsch). +- Add wxComboBox::Popup() and Dismiss() methods (Igor Korot). +- Added wxTreeCtrl::SelectChildren() (Nikolay Tiushkov). +- Show pages icons in window list menu in wxAuiNotebook (Ronny Krüger). +- Add "initial selection" parameter to wxGetSingleChoice() (Nikolay Tiushkov). +- Implement wxDocument::Revert() (troelsk). +- Allow overriding print preview frame creation in docview (troelsk). +- Added support for gradient stops in wxGraphicsContext (Kit Bishop). +- Added wxTransparentColour. +- Added wxToolBar::GetToolByPos(). +- Added wxProgressDialog::Was{Cancelled,Skipped}() (Julien Weinzorn). +- Added wxTreeCtrl::{Clear,Set}FocusedItem() (Nikolay Tiushkov). +- Added "filter changed" event to wxFileCtrl (Bill Jones). +- wxAUI: update floating window position and not only size on resize (MacGyver). +- Added wxComboCtrl::SetTextCtrlStyle(). +- Also update client data in wxRearrangeList control (John Roberts). +- Generate more click events in wxGrid when using native header (John Roberts). + +GTK: + +- wxRadioBox constructor uses default consistent with other ports now. +- Implement wxMask copy ctor. +- Partially implemented wxTextCtrl::GetStyle() (Igor Romanov). +- Corrected themed border display. +- Fix wxClipboard::GetData() for asymmetric wxDataObjects (Timothy Lee). + +Mac: + +- Implement wxWindow::ShowWithEffect() in wxOSX/Cocoa. +- Correct min/max pages display in the print dialog (Auria). +- Fix wxDataViewColumn::GetWidth() in Cocoa (Neno Ganchev). + +MSW: + +- Translate wxMessageDialog labels to the language of the current locale. +- Allow changing the height of wxChoice and wxComboBox. +- Update CRT environment block in wxSetEnv() too. +- Fix wxMDIChildFrame::SetSize() (Lars Rosenboom). +- Fix wxTreeCtrl::UnselectItem() in single selection controls. +- Allow customizing wxStandardPaths logic for program directory determination. +- Use time in wxDateTime <-> SYSTEMTIME conversion (troelsk). +- Setting colours for wxSpinCtrl now works. +- Worked around child window and caret positioning bug (in Windows) when using + wxBORDER_THEME in a container window. +- Suppressed spurious character event for decimal key in numeric keypad. +- Allow to not create wxPaintDC in EVT_PAINT handler. +- Fix sending of wxEVT_COMMAND_LIST_COL_DRAGGING events in wxListCtrl. +- Allow putting the UAC symbol on buttons (Chris Spencer). +- Fix wxTaskBarIcon for older Windows systems (Daniel Wyatt). +- Fixed wxOwnerDrawnComboBox keyboard handling: drop-down is no longer + displayed when arrow key is pressed (without Alt). +- In some rare cases wxOwnerDrawnComboBox drop-down animation could display + as garbage. This has now been greatly reduced (mcben). +- Fixed wxComboCtrl::SetButtonPosition() on Vista/Win7. +- Allow accessing 64/32 bit registry from 32/64 bit code (Rickard Westerlund). + +i18n: + +- Korean translations added (Sungkee Jung). +- Romanian translations added (Manuel Ciosici). 2.9.0 @@ -206,10 +1054,10 @@ Major new features in this release All: -- Added (experimental) IPv6 support to wxSocket (Arcen) -- 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 (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. - 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). @@ -219,6 +1067,9 @@ All: - Added wxMutex::LockTimeout() (Aleksandr Napylov). - Added wxMemoryInputStream(wxInputStream&) ctor (Stas Sergeev). - Implemented wxMemoryInputStream::CanRead(). +- Implemented wxMemoryFSHandler::FindFirst/Next(). +- Added wxEventLoop::DispatchTimeout(). +- Added wxZlibStream::SetDictionary() (Axel Gembe). - Added wxEXEC_BLOCK flag (Hank Schultz). - Add support for wxStream-derived classes to wxRTTI (Stas Sergeev). - Added wxStreamBuffer::Truncate() (Stas Sergeev). @@ -234,39 +1085,89 @@ All: Linnakangas). - wxVariant::Unshare allows exclusive allocation of data that must be shared, if the wxVariantData::Clone function is implemented. -- Added wxWeakRef, wxScopedPtr, wxSharedPtr class templates +- Added wxWeakRef, wxScopedPtr, wxScopedArray, wxSharedPtr templates + and renamed old wx/ptr_{scpd,shrd}.h headers to wx/scoped{ptr,array}.h and + wx/sharedptr.h (but old headers are still provided for compatibility). - 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. +- Added wxPATH_RMDIR_FULL/RECURSIVE wxFileName::Rmdir() flags (Marcin Malich). +- Added wxStandardPaths::GetAppDocumentsDir(). +- Added wx-prefixed versions of DECLARE_NO_{COPY,ASSIGN}_CLASS macros. +- Added wxFileName::ReplaceEnvVariable and wxFileName::ReplaceHomeDir. +- Added wxProtocol::SetDefaultTimeout(); the default timeout for both wxHTTP and wxFTP + protocols is 60 seconds. +- Added wxStrnlen() for safe computation of string length. +- Added wxImage::Clear() (troelsk). +- Added wxLog::Log(). +- Added wxProtocolLog and use it in wxFTP. +- Added wxXmlResource::GetResourceNode(). +- Optimize wxString::Replace() to use an O(N) algorithm (Kuang-che Wu). +- Added support of %l format specifier to wxDateTime::ParseFormat(). +- wxImage handlers can now support multiple extensions (Ivan Krestinin). +- Added wxFileName::StripExtension() (troelsk). +- Added wxLOCALE_DATE/TIME_FMT support to wxLocale::GetInfo(). +- Store page setup data directly in wxDocManager (troelsk). All (Unix): - Added wx-config --optional-libs command line option (John Labenski). +- Noticeably (by a factor of ~150) improve wxIPC classes performance. +- Configure options --with-opengl and --enable-mediactrl now default to "auto": + if OpenGL and GStreamer libraries are available the "gl" and "media" wx libraries + are automatically built. 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 (Arne Steinarson) -- Added wxSpinCtrlDouble (John Labenski) -- Added wxNativeContainerWindow to allow embedding wx into native windows -- 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). +- Added wxEVT_COMMAND_COMBOBOX_DROPDOWN/CLOSEUP events (Igor Korot). +- Added wxCAL_SHOW_WEEK_NUMBERS wxCalendarCtrl style (Sören Meyer-Eppler). +- 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). +- Added wxTextEntry::SetHint(). +- 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(). -- Slovak translation added. - Fixed tab-related drawing and hit-testing bugs in wxRichTextCtrl. - Implemented background colour in wxRichTextCtrl. - Fixed crashes in helpview when opening a file. @@ -301,17 +1202,63 @@ All (GUI): - Added support for resizing wxWizard bitmaps to the current page height, via SetBitmapPlacement, SetBitmapBackgroundColour and SetMinimumBitmapWidth. Also made it easier to derive from wxWizard and override behaviour. -- Made wxSizer::Fit() set the client size of the target window +- Made wxSizer::Fit() set the client size of the target window. - Add support for wxDatePickerCtrl in wxGenericValidator (Herry Ayen Yang) - Added wxWindow::HasFocus(). - Added wxGLCanvas::IsDisplaySupported(). - Added wxApp::SetNativeTheme() (Stefan H.). - 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). +- Add column parameter to wxListCtrl::GetItemText() (Allann Jones). +- 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(). +- Added support for wxFILTER_EMPTY and wxFILTER_DIGITS styles to wxTextValidator; + added also the SetCharIncludes() and SetCharExcludes() utilities. +- Added wxIMAGE_OPTION_PNG_FILTER and many wxIMAGE_OPTION_PNG_COMPRESSION_* options + to wxImage and wxPNGHandler to allow for custom compression levels when saving PNGs + (Perdana Panduwana) +- Added GetValue(), GetRange(), GetMessage() functions to wxProgressDialog +- Moved yield functions to wxEventLoopBase and implemented for wxMSW and wxGTK + a selective wxEventLoopBase::YieldFor() function. + Added also wxEventLoopBase::IsYielding to help cure re-entrancy problems with Yield(). +- Render element contents in bold in wxHTML. +- Added wxGrid::{Set,Get}{Row,Col}Sizes() methods (Andrey Putrin). +- Add support for wxSP_WRAP in the generic version of wxSpinCtrlDouble. +- Add alignment flags support to wxSpinCtrl[Double] (Andrew Radke). +- Added wxGetSelectedChoices() replacing wxGetMultipleChoices() (Kolya Kosenko). +- Check whether document fits into page horizontally in wxHtmlPrintout, see the + new CheckFit() method for more information. +- Allow reading GIFs with incorrectly specified animation size. +- Return number of frames in animated GIF from wxGIFHandler::GetImageCount(). +- Improved anchors handling in wxHTML. wxGTK: - Support for markup and ellipsization in wxStaticText (Francesco Montorsi). +- Ellipsize long strings in wxStatusBar (Francesco Montorsi) - Native implementation for wxHyperlinkCtrl (Francesco Montorsi). - Native keyboard navigation implementation. - Added wxCB_SORT support to wxComboBox (Evgeniy Tarassov). @@ -324,61 +1271,344 @@ 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: +- Fix many problems with selection in multi-selection wxTreeCtrl (Jonathan Liu). - 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 resizable 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. +- Implement wxFileName::SetTimes() for directories (Steve Lamerton). +- Added wxToolTip::SetMaxWidth() and improved default wrapping (Joachim Hönig). +- Changed default toolbar bitmaps size from obsolete 16x15 to 24x24 used + by modern apps. +- Ellipsize long strings in wxStatusBar (Francesco Montorsi) +- Fix spurious repaint when changing tooltip text (Jonathan Liu). +- Fix wxSP_WRAP and wxSP_ARROW_KEYS in wxSpinCtrlDouble (Andrew Radke). wxX11: - Added mouse wheel support (David Hart). - Make Enter key activate the default button (David Hart). +wxDFB: + +- Implement wxBitmap ctor from XBM data. + +i18n: +----- + +- Slovak translations added (Ivan Masár). + + +2.8.10: +------- + +All: + +- wxHashMap::insert() doesn't update the value if it didn't insert the element + any more (Marcin Malich). +- Correct bug in wxTimeSpan::Format() for negative spans. +- Correct several bugs in wxList using end() iterators (Suzumizaki-Kimitaka). +- Added Vietnamese translation (Tran Ngoc Quan). +- Updated Slovenian translation (Martin Srebotnjak). +- Corrected Serbian locale name (Cody Precord). +- Fix wxURL::GetInputStream() for URLs with special characters in credentials + (Robert Wruck). +- Fix wxURI::GetUser() for URIs without password. +- Correct wxDateTime DST computation for 2006 and later (Christopher Barker). + +All (GUI): + +- wxRTC: fixed input that uses Alt on Mac OS X, for example Polish Pro input. + Also fixed a bug whereby e.g. Croatian keys didn't work, by moving more code + to key down handler. +- wxRTC: fixed a problem with HTML list generation. +- wxRTC: no longer deletes a character when content is selected before + pressing Delete. +- wxRTC: fixed inability to select no superscript and no subscript in + formatting dialog. +- wxRTC: fixed centering and right-justification when combined with left + indentation. +- wxRTC: fixed lack of right margin when centering or right-justifying. +- wxRTC: fixed wrong descent when wrapping lines with different font sizes. +- wxRTC: fixed wrapping problem for long lines. +- wxRTC: all buffer margins now respected. +- wxRTC: Added wxRE_CENTRE_CARET to centre the caret line vertically. +- Fixed wxHTML's pagebreaks computation in tables (D.J.Stauffer). +- Fixed wxHtmlWindow::SelectionToText() to correctly insert newlines after + single-cell paragraphs. +- Fixed wxHTML's line breaks handling in
 blocks broken in 2.8.8 (#10120).
+- wxHTML: don't include extra whitespace in table cells.
+- Implemented wxWindow::DragAcceptFiles() on all platforms.
+- Added wxAUI_MGR_LIVE_RESIZE flag to wxAuiManager and made it the default on
+  wxMac with CoreGraphics where sash drawing isn't implemented.
+- Use bitmap mask in wxSplashScreen.
+- Translate "(c)" and "(C)" to the real copyright sign in wxAboutBox.
+- Fix painting of highlight border for merged cells in wxGrid (K. Jones).
+- Fix handling of long lines in wxGridCellAutoWrapStringRenderer.
+
+All (Unix):
+
+- Return false from wxSingleInstanceChecker::IsAnotherRunning() if an error
+  occurred while opening or reading the lock file (Lauri Nurmi).
+
+wxMSW:
+
+- Fixed bug with using non default encoding in wxTextCtrl in ANSI build.
+- Restored generation of events for accelerators when there is no menu bar.
+- Fixed wxArtProvider::GetSizeHint() to return 16x16 for wxART_FRAME_ICON.
+- Fixed toolbar buttons so that they don't disappear temporarily when clicked
+  if the event handler causes window update.
+- Fix display enumeration under WinCE (Vince Harron).
+- Fix best size calculation for wxNotebook with multiple rows (Alex McCarthy).
+- Correct coordinates of wxDropFilesEvent (Dmitriy Maksimov).
+- Fix handling of abandoned mutexes in wxMutex (David Heffernan).
+- Avoid warnings about deprecated localtime with MSVC8/9 (Chris Stankevitz).
+- Fixed invisible CHM tooltip text bug when window text colour is black.
+- Automatically adjust toolbar's tool size if the provided bitmaps
+  don't fit into the default size.
+- Don't generate EVT_LISTBOX_DCLICK events with incorrect indices.
+- Don't reuse the double click handled by activation event handler for toggling
+  the item in wxTreeCtrl.
+
+
+wxMSW/CE:
+
+- Don't hardcode the menu bar height (Michele Spighi).
+
+wxGTK:
+
+- Fixed printing to use fonts sizes adjustment consistent with wxMSW.
+- Make colours used by list, tree and status bar controls more consistent with
+  the system theme settings (Tim Kosse).
+- Worked around bug in GTK+ < 2.14 where enabling some controls such
+  as wxButton didn't re-enable sensitivity until the mouse was moved.
+
+wxOS2:
+
+- Added implementation for wxSingleInstanceChecker contributed by Lauri Nurmi
+
+
+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
@@ -836,7 +2066,7 @@ All (GUI):
 - Fixed centering of top level windows on secondary displays.
 - Implemented wxDisplay::GetFromWindow() for platforms other than MSW.
 - UpdateUI handler can now show/hide the window too (Ronald Weiss).
-- More than one filter allowed in in wxDocTemplate filter.
+- More than one filter allowed in wxDocTemplate filter.
 - Added wxListBox::HitTest().
 - Added wxDisplay::GetClientArea().
 - Indices and counts in wxControlWithItems derived API are unsigned.
@@ -857,7 +2087,7 @@ All (GUI):
 - wxNB_HITTEST_* flags renamed to wxBK_HITTEST_* to serve all book controls.
 - Added wxTopLevelWindow::SetTransparent and CanSetTransparent, with
   implementations (so far) for wxMSW and wxMac.
-- Allow customizing individual grid lines appearance (Søren Lassen).
+- Allow customizing individual grid lines appearance (Søren Lassen).
 - Fixed middle click events generation in generic wxTreeCtrl (Olly Betts).
 - Added wxEVT_MOUSE_CAPTURE_LOST event that must be handled by all windows
   that CaptureMouse() is called on.
@@ -1020,7 +2250,7 @@ wxX11:
 - Invisible text problem fixed.
 - Bitmap clipping with masks and scaling improved.
 - Fixed a crash bug in the generic timer.
-- Implemented child process termination notifications (David Björkevik)
+- Implemented child process termination notifications (David Björkevik)
 
 Unix:
 
@@ -1058,7 +2288,7 @@ All (GUI):
 - Added wxXmlResource::Unload().
 - Possibility of modeless wxWizard dialog (with presentation in sample).
 - Fixed a rare crash due to malformed HTML in wxHTML (Xavier Nodet).
-- Ctrl+mouse wheel changes zoom factor in print preview (Zbigniew Zagórski).
+- Ctrl+mouse wheel changes zoom factor in print preview (Zbigniew Zagórski).
 - Cross-compile now supported for wxGTK, wxX11 and wxMotif.
 - Cygwin compilation of wxX11, wxGTK and wxMotif now supported.
 - Now reads "help" parameter for all windows (context help text).
@@ -1073,7 +2303,7 @@ wxMSW:
 - Fixed wxSlider::GetSelEnd() (Atilim Cetin).
 - Fixed accelerators of menu items added to already attached submenus.
 - Position of wxEVT_MOUSEWHEEL events is now in client, not screen, coordinates.
-- Handle absence of wxListCtrl column image better (Zbigniew Zagórski).
+- Handle absence of wxListCtrl column image better (Zbigniew Zagórski).
 - Fixed asynchronous playback of large sound files in wxSound.
 - Added wxDynamicLibrary::GetSymbolAorW().
 - Fixed default size of wxStaticText controls with border being too small.
@@ -1356,8 +2586,8 @@ All:
   use accessors methods now (Mart Raudsepp)
 - new classes for reading and writing ZIP files (M.J.Wetherell)
 - large files support for wxFFile (M.J.Wetherell)
-- classes in the manual are now cross-referenced (Zbigniew Zagórski)
-- Norwegian (Bokmål) translation added (Hans F. Nordhaug)
+- classes in the manual are now cross-referenced (Zbigniew Zagórski)
+- Norwegian (Bokmål) translation added (Hans F. Nordhaug)
 - wxDynamicLibrary::HasSymbol() added
 - added wxEXEC_NODISABLE flag to be used with wxExecute(wxEXEC_SYNC)
 - added wxTextInputStream::operator>>(wchar_t) for compilers which support this
@@ -1368,7 +2598,7 @@ All:
 - Unicode support in wxODBC is now fully implemented
 - A new data type specific to wxWidgets called SQL_C_WXCHAR has been introduced.
   SQL_C_WXCHAR should be used rather than SQL_C_CHAR to ensure transparent
-  behavior between Unicode and non-unicode builds
+  behaviour between Unicode and non-unicode builds
 - BLOB example added to samples/db (thanks to Casey O'Donnell)
 - use wxStream::GetLength() instead of deprecated GetSize()
 - wxGetOsDescription() is now more precise (Olly Betts)
@@ -1406,7 +2636,7 @@ All (GUI):
 - added wxMediaCtrl
 - added wxDatePickerCtrl
 - wxHtmlWindow now supports background images given in  tag
-- wxSplitterWindow now supports gravity parameter (Zbigniew Zagórski)
+- wxSplitterWindow now supports gravity parameter (Zbigniew Zagórski)
 - recursive wxSizer::GetItem returns item of given window, sizer or nth index
 - wxLayoutConstraints now use best size, not current size, for AsIs() condition
 - wxSizer::Add/Insert etc. now returns pointer to wxSizerItem just added and this
@@ -1515,7 +2745,7 @@ All:
 - sped up wxHTTP and wxFTP
 - added wxStringInput/OutputStreams
 - added wxFileConfig::Save(wxOutputStream)
-- fixed wxString's behavior with inserted null characters
+- fixed wxString's behaviour with inserted null characters
 
 All (GUI):
 
@@ -1714,7 +2944,7 @@ wxODBC:
 
 All:
 
-- event table macros now do some minimal type safety checks (Michael Sögtrop)
+- event table macros now do some minimal type safety checks (Michael Sögtrop)
 - added wxGzipInput/OutputStream, bug fixes in wxZlibStreams (M.J.Wetherell)
 - wxDateTime::ParseDateTime() implemented (Linus McCabe)
 - wxHTTP::GetResponse() added (David Nock)
@@ -1747,7 +2977,7 @@ All (GUI):
 - added some support for C++ exceptions in the library (do read the manual!)
 - added wxListCtrl::GetViewRect()
 - added wxTextCtrl::MarkDirty()
-- wxToolBar::ToggleTool() now works for radio buttons (Dag Ågren)
+- wxToolBar::ToggleTool() now works for radio buttons (Dag Ågren)
 - wxListCtrl now sends an END_LABEL event if editing was cancelled, too
 - bug in wxRect ctor from two [out of order] wxPoints fixed (Steve Cornett)
 - status text is now restored after wxMenu help is shown in it
@@ -1781,7 +3011,7 @@ wxMSW:
 - several fixes to owner drawn menu items (Christian Sturmlechner)
 - wxGauge now supports full 32 bit range (Miroslav Rajcic)
 - make it possible to give focus to the notebook tabs (Hajo Kirchhoff)
-- MDI child frames are not always resizeable any more (Andrei Fortuna)
+- MDI child frames are not always resizable any more (Andrei Fortuna)
 - fixed enumerating of entries/groups under '/' in wxRegConfig
 - added wxSYS_ICONTITLE_FONT (Andreas Pflug)
 - added wxPATH_NORM_SHORTCUT to wxFileName
@@ -1878,7 +3108,7 @@ All:
 wxBase:
 
 - added Watcom makefiles
-- fixed bug with searching in sorted arrays (Jürgen Palm)
+- fixed bug with searching in sorted arrays (Jürgen Palm)
 
 All GUI ports:
 
@@ -1888,7 +3118,7 @@ All GUI ports:
 - added wxRenderer class allowing to customize the drawing of generic controls
 - added wxCLOSE_BOX style for dialogs and frames
 - added wxSplitterWindow and wxWizard handlers to XRC
-- wxWizard is now sizer-friendly and may be made resizeable (Robert Vazan)
+- wxWizard is now sizer-friendly and may be made resizable (Robert Vazan)
 - added proportion to wxFlexGridSizer::AddGrowableRow/Col (Maxim Babitski)
 - added wxFlexGridSizer::SetFlexibleDirection() (Szczepan Holyszewski)
 - implemented GetEditControl for wxGenericTreeCtrl (Peter Stieber)
@@ -2439,7 +3669,7 @@ All (GUI):
 - polygon support in wxRegion (Klaas Holwerda)
 - wxStreamToTextRedirector to allow easily redirect cout to wxTextCtrl added
 - fixed bug with using wxExecute() to capture huge amounts of output
-- new wxCalendarCtrl styles added (Søren Erland Vestø)
+- new wxCalendarCtrl styles added (Søren Erland Vestø)
 - wxWizard changes: loading from WXR support, help button (Robert Cavanaugh)
 - wxDirSelector() added (Paul A. Thiessen)
 - wxGrid cell editing veto support (Roger Gammans)
@@ -2547,7 +3777,7 @@ wxBase:
 - wxZipFSHandler::FindFirst() and FindNext() now correctly list directories
 - wxMimeTypesManager now can create file associations too (Chris Elliott)
 - wxCopyFile() respects the file permissions (Roland Scholz)
-- wxFTP::GetFileSize() added (Søren Erland Vestø)
+- wxFTP::GetFileSize() added (Søren Erland Vestø)
 - wxDateTime::IsSameDate() bug fixed
 - wxTimeSpan::Format() now behaves more as expected, see docs
 - wxLocale now provides much more convenient API for setting language and
@@ -2649,7 +3879,7 @@ wxMSW:
 - wxFileDialog: adjusts struct size if there's an error (struct
   sizes can be different on different versions of Windows)
 - wxImageList::GetSize() documented and added to wxMSW
-- fixed default dialog style to make them non resizeable again
+- fixed default dialog style to make them non resizable again
 - fixed wxFrame::IsShown() which always returned TRUE before
 
 wxGTK: