X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/fc2171bd4c660b8554dae2a1cbf34ff09f3032a6..b02dd12239c8a59b9a545d9fcb04974f8ad02c6b:/docs/changes.txt diff --git a/docs/changes.txt b/docs/changes.txt index 9e7684042e..b6ab33c597 100644 --- a/docs/changes.txt +++ b/docs/changes.txt @@ -1,104 +1,2709 @@ ----------------------------- -wxWidgets 2.5/2.6 Change Log ----------------------------- +------------------------------------------------------------------------------- + wxWidgets Change Log +------------------------------------------------------------------------------- -INCOMPATIBLE CHANGES SINCE 2.4.x +INCOMPATIBLE CHANGES SINCE 2.8.x ================================ - Please take a few minutes to read the following list, especially - paying attention to the most important changes which are marked - with '!' in the first column. - Also please note that you should ensure that WXWIN_COMPATIBILITY_2_4 - is defined to 1 if you wish to retain maximal compatibility with 2.4 - series. - -! windows are no longer fully repainted when resized, use new style - wxFULL_REPAINT_ON_RESIZE to force this (wxNO_FULL_REPAINT_ON_RESIZE stll - exists but doesn't do anything any more, this behaviour is default now) - - -- no initialization/cleanup can be done in wxApp/~wxApp because they are - now called much earlier/later than before; please move any exiting code - from there to wxApp::OnInit()/OnExit() -- also, OnExit() is not called if OnInit() fails -- finally the program exit code is OnRun() return value, not OnExit() one -- wxTheApp can't be assigned to any longer, use wxApp::SetInstance() instead -- wxFileType::GetIcon() returns wxIconLocation, not wxIcon -- wxColourDatabase is not a wxList any more, use AddColour to add new colours -- wxWindow::Clear() is now called ClearBackground() -- pointer returned by wxFont::GetNativeFontInfo() must not be deleted now -- wxMouseEvent::Moving() doesn't return true if mouse is being dragged any more -- (most) controls now inherit parents colours by default, override - ShouldInheritColours() to return false if you don't want this to happen -- wxApp::SendIdleEvent() now takes 2 arguments -- wxTabView::GetLayers() changed return type from wxList& to wxTabLayerList& - (when WXWIN_COMPATIBILITY_2_4 == 0) -- wxID_SEPARATOR (id used for the menu separators) value changed from -1 to -2 -- wxGetNumberFromUser() is now in separate wx/numdlg.h, not wx/textdlg.h -- wxChoice and wxCombobox now handle their size in the same way as in all the - other ports under MSW, new code is actually correct but different from weird - stuff they were doing before so the behaviour of your programs might change -- wxTaskBarIcon objects must now be destroyed before the application can exit. - Previously, the application terminated if there were no top level windows; - now it terminates if there are no top level windows or taskbar icons left. -- wxZlibInputStream is not by default compatible with the output of the - 2.4.x version of wxZlibOutputStream. However, there is a compatibilty mode, - switched on by passing wxZLIB_24COMPATIBLE to the constructor. -- when WXWIN_COMPATIBILITY_2_4 == 0 wxHashTable uses a new implementation - not using wxList keyed interface (the same used when wxUSE_STL == 1), - the only incompatibility being that Next() returns a wxHashTable::Node* - instead of a wxNode*. - -wxTaskBarIcon must be explicitly destroyed now, otherwise the application - won't exit even though there are no top level windows + 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. -DEPRECATED METHODS SINCE 2.4.x -============================== - -Deprecated methods may still be used but will disappear in future wxWidgets -versions, please update your code to not use them. - -- wxDocManager::GetNoHistoryFiles() renamed to GetHistoryFilesCount() -- wxSizer::Remove(wxWindow *), use Detach() instead [it is more clear] -- wxSizer::Set/GetOption(): use Set/GetProportion() instead -- wxKeyEvent::KeyCode(): use GetKeyCode instead -- wxList::Number, First, Last, Nth: use GetCount, GetFirst/Last, Item instead -- wxNode::Next, Previous, Data: use GetNext, GetPrevious, GetData instead -- wxListBase::operator wxList&(): use typesafe lists instead -- wxTheFontMapper: use wxFontMapper::Get() instead -- wxStringHashTable: use wxHashMap instead -- wxHashTableLong: use wxHashMap instead -- wxArrayString::GetStringArray: use wxCArrayString or alternative wxWidgets - methods taking wxArrayString -- wxArrayString::Remove(index, count): use RemoveAt instead -- wxTreeItemId conversion to long is deprecated and shouldn't be used -- wxTreeCtrl::GetFirst/NextChild() 2nd argument now has type wxTreeItemIdValue - and not long, please change declarations of "cookie"s in your code - accordingly -- otherwise your code won't work on 64 bit platforms -- [MSW only] wxWindow::GetUseCtl3D(), GetTransparentBackground() and - SetTransparent() as well as wxNO_3D and wxUSER_COLOURS styles -- wxList keyed interface: use wxHashMap instead -- wxColourDatabase::FindColour(): use Find() instead (NB: different ret type) -- wxHashTable::Next: use wxHashTable::Node* or - wxHashTable::compatibility_iterator to store the return - value -- wxWave class; use wxSound instead +Unicode-related changes +----------------------- +The biggest changes in wxWidgets 3.0 are the changes due to the merge of the +old ANSI and Unicode build modes in a single build. See the Unicode overview +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; + 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 + base class version. + + b) Passing NULL as argument: as NULL can't be unambiguously converted to + 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). 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 +------------------------------------ + +wxODBC library was unmaintained since several years and we couldn't continue +supporting it any longer so it was removed. Please use any of the other open +source ODBC libraries in the future projects. + +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 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. + + +Changes in behaviour not resulting in compilation errors, please read this! +--------------------------------------------------------------------------- + +- Default location of wxFileConfig files has changed under Windows, you will + need to update your code if you access these files directly. + +- wxWindow::IsEnabled() now returns false if a window parent (and not + necessarily the window itself) is disabled, new function IsThisEnabled() + with the same behaviour as old IsEnabled() was added. + +- Generating wxNavigationKeyEvent events doesn't work any more under wxGTK (and + other platforms in the future), use wxWindow::Navigate() or NavigateIn() + instead. + +- Sizers distribute only the extra space between the stretchable items + according to their proportions and not all available space. We believe the + new behaviour corresponds better to user expectations but if you did rely + on the old behaviour you will have to update your code to set the minimal + 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/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. + +- 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. + + +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 + +- 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 + code that depends on the result being wxChar. + +- The value returned by wxString::c_str() cannot be casted to non-const char* + or wchar_t* anymore. The solution is to use newly added wxString methods + char_str() (which returns a buffer convertible to char*) or wchar_str() + (which returns a buffer convertible to wchar_t*). These methods are + available in wxWidgets 2.8 series beginning with 2.8.4 as well. + +- The value returned by wxString::operator[] or wxString::iterator cannot be + used in switch statements anymore, because it's a class instance. Code like + this won't compile: + switch (str[i]) { ... } + and has to be replaced with this: + switch (str[i].GetValue()) { ... } + +- 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*. + +- DigitalMars compiler has a bug that prevents it from using + wxUniChar::operator bool in conditions and it erroneously reports type + conversion ambiguity in expressions such as this: + for ( wxString::const_iterator p = s.begin(); *p; ++p ) + This can be worked around by explicitly casting to bool: + for ( wxString::const_iterator p = s.begin(); (bool)*p; ++p ) + +- Virtual wxHtmlParser::AddText() takes wxString, not wxChar*, argument now. + +- 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. + +- wxTmemxxx() functions take either wxChar* or char*, not void*: use memxxx() + with void pointers. + +- Removed insecure wxGets() and wxTmpnam() functions. + +- Removed global GetLine() function from wx/protocol/protocol.h, use + wxProtocol::ReadLine() instead. + +- wxVariant no longer derives from wxObject. wxVariantData also no longer + 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 couldn't be + implemented correctly any longer because automatically generated ids are not + 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**". + + +Deprecated methods and their replacements +----------------------------------------- + +- wxCreateGreyedImage() deprecated, use wxImage::ConvertToGreyscale() instead. +- wxString::GetWriteBuf() and UngetWriteBuf() deprecated, using wxStringBuffer + or wxStringBufferLength instead. +- wxDIRCTRL_SHOW_FILTERS style is deprecated, filters are alwsys shown if + specified so this style should simply be removed +- wxDocManager::MakeDefaultName() replaced by MakeNewDocumentName() and + wxDocument::GetPrintableName() with GetUserReadableName() which are simpler + to use +- wxXmlProperty class was renamed to wxXmlAttribute in order to use standard + terminology. Corresponding wxXmlNode methods were renamed to use + "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 +- 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. + + +Major new features in this release +---------------------------------- + +- wxWidgets is now always built with Unicode support but provides the same + simple (i.e. "char *"-tolerant) API as was available in ANSI build in the + past. + +- wxWidgets may now use either wchar_t (UTF-16/32) or UTF-8 internally, + depending on what is optimal for the target platform. + +- 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.4: +------ + +All: + +- Added wxLogFormatter to allow customizing wxLog output (Sébastien Gallou). +- 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(). + +All (GUI): + +- Added strike-through support to wxFont (Igor Korot). +- 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). +- 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). + +GTK: + +- Implement support for wxBG_STYLE_TRANSPARENT (Armel Asselin). +- Fix wxNotebook best size calculation. + +MSW: + +- Fixed regression with initial focus in the dialogs in 2.9.3. +- 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) + +OSX: + +- Provide native implementations of wxDatePickerCtrl and wxTimePickerCtrl. +- Fix handling of positional parameters in wxPrintf() &c (David Connet). + +Univ: + +- Fix regression with read-only wxComboBox appearance (Jason Erb). + + + +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 +----- + +All: + +- 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). +- 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 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). +- Allow using wxEventLoop in console applications (Lukasz Michalski). +- Added functions for Base64 en/decoding (Charles Reimers). +- Added support for binary data to wxConfig (Charles Reimers). +- Added functions for atomically inc/decrementing integers (Armel Asselin). +- wxLogInterposer has been added to replace wxLogPassThrough and new + wxLogInterposerTemp was added. +- Added support for broadcasting to UDP sockets (Andrew Vincent). +- Documentation now includes the wx library in which each class is defined. +- wxrc --gettext now generates references to source .xrc files (Heikki + Linnakangas). +- wxVariant::Unshare allows exclusive allocation of data that must be shared, + if the wxVariantData::Clone function is implemented. +- 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. +- 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). +- 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 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(). +- Fixed tab-related drawing and hit-testing bugs in wxRichTextCtrl. +- Implemented background colour in wxRichTextCtrl. +- Fixed crashes in helpview when opening a file. +- Set locale to the default in all ports, not just wxGTK. +- Added wxJoystick::GetButtonState/Position() (Frank C Szczerba). +- Added wxGridUpdateLocker helper class (Evgeniy Tarassov). +- Support wxGRID_AUTOSIZE in wxGrid::SetRow/ColLabelSize() (Evgeniy Tarassov). +- Added wxWindow::NavigateIn() in addition to existing Navigate(). +- Add support for tags to wxrc. +- Support wxAPPLY and wxCLOSE in CreateStdDialogButtonSizer() (Marcin Wojdyr). +- Show standard options in wxCmdLineParser usage message (Francesco Montorsi). +- Added wxRect::operator+ (union) and * (intersection) (bdonner). +- Added support for two auxiliary mouse buttons to wxMouseEvent (Chris Weiland). +- Added wxToolTip::SetAutoPop() and SetReshow() (Jan Knepper). +- Added wxTaskBarIcon::Destroy(). +- Added XRC handler for wxSearchCtrl (Sander Berents). +- Read image resolution from TIFF, JPEG and BMP images (Maycon Aparecido Gasoto). +- Add support for reading alpha data from TIFF images. +- Added wxSYS_DCLICK_TIME system metric constant (Arne Steinarson). +- Added wxApp::Get/SetAppDisplayName() (Brian A. Vanderburg II). +- Added wxWindow::GetPopupMenuSelectionFromUser() (Arne Steinarson). +- Implemented wxTreeCtrl::GetPrevVisible() in the generic version and made the + 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). +- 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 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. +- 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). +- Don't overwrite primary selection with clipboard and vice versa. +- Implemented support for underlined fonts in wxStaticText. +- wxTopLevelWindow::SetSizeHints size increments now work. +- wxTopLevelWindow::GetSize() returns the size including the WM decorations. +- wxTopLevelWindow::GetClientSize() returns 0x0 when the window is minimized. +- Added support for colour cursors (Pascal Monasse). +- 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). +- 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. +- 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). +- 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().
+- 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().
+- 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.
+- 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.
+- 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).
+- 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
+-----
+
+All:
+
+- Fixed bug with default proxy destruction in wxURL (Axel Gembe).
+
+wxMSW:
+
+- Correct (harmless) warnings given for forward-declared DLL-exported classes
+  by mingw32 4.2 (Tim Stahlhut).
+
+wxGTK:
+
+- Added gtk.window.force-background-colour wxSystemOptions option to work around
+  a background colour bug in the gtk-qt theme under KDE.
+- Implemented wxGetClientDisplayRect() correctly for wxGTK and X11-based ports.
+
+
+2.8.6
+-----
+
+All:
+
+- Fixed another bug in wxFileConfig when deleting entries (Axel Gembe)
+- Added Portuguese translation (Antonio Cardoso Martins)
+
+
+2.8.5
+-----
+
+All (GUI):
+
+- Added colour normalization to PNM image handler (Ray Johnston)
+- Fixed selecting part of word from right to left in wxHTML (Michael Hieke)
+- Selecting text in wxHTML with character precision was made easier, it's
+  enough to select half of a character (Michael Hieke)
+- Significantly improved startup times of XRC-based applications using
+  embedded resources on Unix (requires resources recompilation)
+- Fixed freeing of "static" alpha data in wxImage (Axel Gembe)
+- Don't invalidate the font in SetNativeFontInfo[Desc]() if the string is
+  invalid, to conform to the documented behaviour (Langhammer)
+- Fixed wxXPMHandler::SaveFile for images with more than 92 colors.
+
+wxMSW:
+
+- Correct problem with page setup dialog when using landscape mode
+- Added msw.font.no-proof-quality system option, see manual for description
+- Fix appearance of notebook with non-top tabs under Windows Vista
+- Fixed bug with symbol resolving in wxStackWalker (Axel Gembe)
+- Fixed showing busy cursor for disabled windows and during wxExecute()
+- Set the string of wxEVT_COMMAND_CHECKLISTBOX_TOGGLED events (Luca Cappa)
+- Fix problems with timers on SMP machines in wxAnimationCtrl (Gennady)
+
+wxGTK:
+
+- Setting foreground colour of single line wxTextCtrl now works
+- More work on setting defaults in GNOME print dialogs.
+- Also made landscape printing work as per wxMSW.
+- Add support for clipping in GNOME print backend.
+- Speed up wxBitmap::Rescale()
+- Add right button event for wxToolbar's tools (Tim Kosse)
+- Don't unconditionally add wxCAPTION style to wxMiniFrame
+- Generate wxEVT_COMMAND_LIST_END_LABEL_EDIT event even if label didn't change
+- Fix WX_GL_STEREO attribute handling (Tristan Mehamli)
+- Fix wxThread::SetPriority() when the thread is running (Christos Gourdoupis)
+- Fixed off by 1 bug in wxDC::GradientFillLinear() (Tim Kosse)
+
+
+2.8.4
+-----
+
+All:
+
+- Fix bug in wxFileConfig when recreating a group (Steven Van Ingelgem)
+- Fix wxStringOutputStream::Write() in Unicode build when the argument
+  overlaps UTF-8 characters boundary
+- Account for lines without newline at the end in wxExecute()
+
+All (Unix):
+
+- Handle socket shutdown by the peer correctly in wxSocket (Tim Kosse)
+
+All (GUI):
+
+- Allow status bar children in XRC (Edmunt Pienkowski)
+- Fix memory leak in wxWizard when not using sizers for the page layout
+- Added wxListCtrl::SetItemPtrData()
+- wxHTML: Apply table background colour between the cells too (Michael Hieke)
+
+wxMSW:
+
+- Corrected wxStaticBox label appearance when its foreground colour was set:
+  it didn't respect font size nor background colour then (Juan Antonio Ortega)
+- Don't lose combobox text when it's opened and closed (Kolya Kosenko)
+- Corrected GetChecked() for events from checkable menu items (smanders)
+- Fixed popup menus under Windows NT 4
+- Fixed bug in wxThread::Wait() in console applications introduced in 2.8.3
+- Support right-aligned/centered owner drawn items in wxListCtrl (troelsk)
+- Compilation fixed with WXWIN_COMPATIBILITY_2_6==0
+- Fix wxComboCtrl colours under Windows Vista (Kolya Kosenko)
+
+wxGTK:
+
+- Fix infinite loop when adding a wxStaticText control to a toolbar
+- Fix wxNO_BORDER style for wxRadioBox (David Hart)
+- Fix wxTextCtrl::GetLineText() for empty lines (Marcin Wojdyr)
+
+wxMac:
+
+- Fix wxComboBox::SetSelection(wxNOT_FOUND) (Adrian Secord)
+
+wxUniv:
+
+- Fix wxTextCtrl::SetSelection(-1, -1) to behave as documented (Anders Larsen)
+- Fix wxComboBox::SetSelection(wxNOT_FOUND)
+- Fix setting background colour for controls with transparent background
+
+
+2.8.3
+-----
+
+All:
+
+- Shut down the sockets gracefully (Sergio Aguayo)
+- Fix extra indentation in wxHTML_ALIGN_JUSTIFY display (Chacal)
+
+wxMac:
+
+- Corrected top border size for wxStaticBox with empty label (nusi)
+
+wxMSW:
+
+- Fixed wxFileName::GetSize() for large files
+
+wxGTK:
+
+- Fixed handling of accelerators using PageUp/Down keys
+
+
+2.8.2
+-----
+
+All:
+
+- Added wxSizerFlags::Shaped() and FixedMinSize() methods.
+- Added wxCSConv::IsOk() (Manuel Martin).
+- Added wxDateTime::GetDateOnly().
+- Made wxTextFile work with unseekable files again (David Hart).
+- Added wxCONFIG_USE_SUBDIR flag to wxFileConfig (Giuseppe Bilotta).
+- Added wxSearchCtrl::[Get|Set]DescriptiveText.
+- Fixed detection of number of processors under Linux 2.6
+- Fixed Base64 computation in wxHTTP (p_michalczyk)
+- Fix handling of wxSOCKET_REUSEADDR in wxDatagramSocket (troelsk)
+
+Unix Ports:
+
+- Fixed crash in wxGetUserName() in Unicode build
+
+wxMSW
+
+- Fix lack of spin control update event when control lost focus.
+- Corrected drawing of bitmaps for disabled menu items.
+
+wxGTK
+
+- Fix hang on startup when using GTK+ options in Unicode build
+
+wxMac
+
+- Fix position of the centered windows (didn't take menu bar size into account)
+- Added support for the wxFRAME_FLOAT_ON_PARENT style.
+
+wxX11:
+
+- Don't crash in wxWindow dtor if the window hadn't been really Create()d.
+
+wxUniv:
+
+- Fixed wxComboBox always sorted.
+
+
+2.8.1
+-----
+
+All:
+
+- Fix compilation with wxUSE_STL=1.
+- wxGrid::GetBestSize() returns same size the grid would have after AutoSize().
+- Added wxTreeCtrl::CollapseAll[Children]() and IsEmpty() (Francesco Montorsi).
+- Several RTL-related positioning fixes (Diaa Sami).
+- Fix wxConfig::DeleteGroup() for arguments with trailing slash (David Hart).
+- Fix memory leak in wxGrid::ShowCellEditControl() (Christian Sturmlechner).
+
+wxMSW:
+
+- Fixed compilation with Borland C++ in Unicode mode but without MSLU.
+- Show taskbar icon menu on right button release, not press.
+
+wxGTK:
+
+- Don't crash if command line is not valid UTF-8 (Unicode build only).
+
+wxUniv:
+
+- It is now possible to set background colour of wxStaticText.
+
+
+2.8.0
+-----
+
+All:
+
+- Added wxSearchCtrl (Vince Harron).
+- wxCSConv("UTF-16/32") now behaves correctly, i.e. same as wxMBConvUTF16/32.
+- wxArrayString::Alloc() now works as reserve() and doesn't clear array contents.
+- Fixed long standing bug in wxFileConfig groups renaming (Antti Koivisto).
+- New option wxFS_READ | wxFS_SEEKABLE for wxFileSystem::OpenFile() to return
+  a stream that is seekable.
+- Fixed bug in wxCalendarCtrl::HitTest() when clicking on month change arrows.
+- Added wxWindow::GetWindowBorderSize() and corrected wxTreeCtrl::GetBestSize().
+  for a control with borders (Tim Kosse).
+
+wxMSW:
+
+- Fixed version script problems when using configure with cygwin/mingw32.
+- Use system default paper size for printing instead of A4.
+- Fix (harmless) assert in virtual list control under Vista.
+- Fix colours when converting wxBitmap with alpha to wxImage (nusi).
+
+wxGTK:
+
+- Allow dynamically changing most of text control styles.
+- Enable use of libgnomeprintui by default in configure.
+
+
+2.7.2
+-----
+
+All:
+
+- Added wxFFile overload to wxFileName::CreateTemporaryFileName().
+- Added GetTempDir() to wxFileName and wxStandardPaths.
+- Added wxTar streams.
+- Added wxFilterFSHandler and wxArchiveFSHandler.
+- Added wxString::ToLongLong() and ToULongLong().
+
+All (GUI):
+
+- wxMemoryDC constructor now optionally accepts a wxBitmap parameter,
+  calling SelectObject itself if a valid bitmap is passed.
+- Reverted wxBuffered[Paint]DC to pre 2.7.1 state, added
+  wxAutoBufferedPaintDC and wxAutoBufferedPaintDCFactory.
+- Renamed wxProgressDialog::UpdatePulse() to just Pulse().
+- Added wxCollapsiblePane (Francesco Montorsi).
+- Added wxSimpleHtmlListBox (Francesco Montorsi).
+- Printing framework fixes by Robert J. Lang. Bugs fixed,
+  wxPrinterDC::GetPaperRect() and other functions added to allow
+  easier printing implementation, and the documentation updated.
+- Many enhancements to wxRichTextCtrl including URL support,
+  formatting and symbol dialogs, print/preview, and better list
+  formatting.
+- Support for loading TGA files added (Seth Jackson).
+- Added wxTB_RIGHT style for right-aligned toolbars (Igor Korot).
+- wxHtmlWindow now generates events on link clicks (Francesco Montorsi).
+- wxHtmlWindow now also generates wxEVT_COMMAND_TEXT_COPY event.
+
+Unix Ports:
+
+- Added autopackage for wxGTK and an example of using autopackage for a wx
+  program (Francesco Montorsi).
+
+wxGTK:
+
+- More RTL work.
+- Support wxALWAYS_SHOW_SB.
+- Speed up MIME types loading. Only the GNOME database should be loaded under
+  GNOME etc. For this, the code queries the X11 session protocol.
+- wxCaret redraw problem during scrolling fixed.
+
+
+2.7.1
+-----
+
+All:
+
+- Added wxDir::FindFirst() (Francesco Montorsi).
+- Added wxPlatformInfo class (Francesco Montorsi).
+- Added wxLocale::IsAvailable() (Creighton).
+- Added Malay translations (Mahrazi Mohd Kamal).
+- Added reference counting for wxVariant.
+- For consistency, all classes having Ok() method now also have IsOk() one, use
+  of the latter form is preferred although the former hasn't been deprecated yet.
+- Added wxFileName::Is(Dir|File)(Writ|Read|Execut)able() (Francesco Montorsi).
+- Added wxFileName::GetSize() and GetHumanReadableSize() (Francesco Montorsi).
+- Added wxSizer::Replace (Francesco Montorsi).
+- wxXmlDocument can now optionally preserve whitespace (Francesco Montorsi).
+- Added wxBookCtrl::ChangeSelection() and wxTextCtrl::ChangeValue() to provide
+  event-free alternatives to SetSelection() and SetValue() functions; see the
+  "Events generated by the user vs programmatically generated events" paragraph
+  in the "Event handling overview" topic for more info.
+
+All (GUI):
+
+- Support for right-to-left text layout (started by Diaa Sami during Google Summer of
+  Code, with a lot of help from Tim Kosse and others).
+- wxAnimationCtrl added (Francesco Montorsi).
+- Added wxAboutBox() function for displaying the standard about dialog.
+- Added wxID_PAGE_SETUP standard id.
+- Added wxSize::IncBy() and DecBy() methods.
+- Added wxTextCtrl::IsEmpty().
+- Added file type parameter to wxTextCtrl::LoadFile, wxTextCtrl::SaveFile for
+  consistency with wxRichTextCtrl.
+- wxRichTextCtrl: fixed range out-by-one bug to be consistent with wxTextCtrl API,
+  fixed some attribute bugs and added wxRichTextStyleComboCtrl.
+- Added wxWindow::IsDoubleBuffered().
+- Added wxHL_ALIGN_* flags to wxHyperlinkCtrl (Francesco Montorsi).
+- Added wxGauge::Pulse() and wxProgressDialog::UpdatePulse() (Francesco Montorsi).
+
+wxMSW:
+
+- Implemented wxComboBox::SetEditable().
+- wxSemaphore::Post() returns wxSEMA_OVERFLOW as documented (Christian Walther)
+- Fixed a bug whereby static controls didn't use the correct text colour if the
+  parent's background colour had been set (most noticeable when switching to a
+  high-contrast theme).
+- Respect wxBU_EXACTFIT style in wxToggleButton (Alexander Borovsky).
+
+wxMac:
+
+- Add parameter to the --enable-universal_binary configure option for the path
+  to the SDK.
+
+wxGTK:
+
+- Automatically use stock items for menu items with standard ids.
+- Setting cursor now works for all controls.
+- Implemented right-to-left support.
+- Implemented left indentation and tab stops support in wxTextCtrl (Tim Kosse).
+- Fixed wxHTML rendering of underlined text of multiple words (Mart Raudsepp).
+
+wxUniv:
+
+- Added wxTLW::UseNativeDecorations() and UseNativeDecorationsByDefault().
+
+
+2.7.0
+-----
+
+All:
+
+- Added positional parameters support to wxVsnprintf() (Francesco Montorsi).
+- wx(F)File, wxTextFile and wxInputStreams recognize Unicode BOM now.
+- Many fixes for UTF-16/32 handling in Unicode builds.
+- wxLaunchDefaultBrowser() now supports wxBROWSER_NEW_WINDOW flag.
+- Added wxStandardPaths::GetResourcesDir() and GetLocalizedResourcesDir()
+- Added wxStandardPaths::GetDocumentsDir() (Ken Thomases).
+- Added wxStringTokenizer::GetLastDelimiter(); improved documentation.
+- Fixed wxTextFile in Unicode build.
+- Added possibility to specify dependencies for a wxModule.
+- Speed improvements to wxRegEx when matching is done in a loop such as
+  during a search and replace.
+- Fix regerror and regfree name conficts when built-in regex and system regex
+  are both used in the same program.
+- Basic authentication supported added to wxHTTP.
+- wxCondition::WaitTimeout() now returns correct value when timeout occurs.
+- Fixed occasional wxThread cleanup crash.
+- Bug in wxLogStream::DoLogString in Unicode builds fixed.
+- Added support for memo fields to wxODBC.
+- Fixed Unicode builds using SunPro compiler by defining__WCHAR_TYPE__.
+- wxFileName now also looks for TMPDIR on Unix.
+- Fixed build error in list.h with VC++ 2005.
+- Fixed wxODBC buffer overflow problem in Unicode builds.
+- Fixed wxSocketBase::InterruptWait on wxBase.
+- Important code cleanup (Paul Cornett).
+- Added support for wxLongLong in wx stream classes (Mark Junker).
+- wxSOCKET_REUSEADDR can be used with wxSocketClient.
+- Overloaded Connect() and SetLocal() methods for binding to local address/port.
+- Albanian translation added (Besnik Bleta).
+- Assert messages now show the function in which assert failed.
+- wxApp::OnAssertFailure() should now be used instead the old wxApp::OnAssert().
+- Fixed several bugs in wxDateTime::ParseDate().
+- The WXK*PRIOR and WXK*NEXT constants are now aliases for WXK*PAGEUP
+  and WXK*PAGEDOWN.  If you have switch statements that use both
+  constants from a set then you need to remove the PRIOR/NEXT
+  versions in order to eliminate compiler errors.
+- Fixed bug where wxDateTime::Now() would sometimes return an incorrect value
+  the first time it was called.
+- Added wxString::rbegin() and rend().
+- Added wxString::EndsWith().
+- wxSocket::_Read continues reading from socket after exhausting pushback buffer.
+  Previously, only the buffer would be returned, even if more data was requested.
+- Added wxPowerEvent (currently MSW-only).
+- Make wx-config compatible with Bourne shells.
+- Fixed wxDb::Open(wxDbConnectInf) when using connection string (Hellwolf Misty).
+- Fixed crash in wxDb::Open() in Unicode build (Massimiliano Marretta).
+- Fixed wxTimeSpan::Format() for negative time spans.
+- Optionally count repeating wxLog messages instead of logging all (Lauri Nurmi).
+
+All (GUI):
+
+- New AUI (Advanced User Interface) library for docking windows and much more.
+- Added wxComboCtrl and wxOwnerDrawnComboBox (Jaakko Salli).
+- Added wxTreebook (uses a wxTreeCtrl to control pages).
+- Added wxColour/Dir/File/Font/PickerCtrls (Francesco Montorsi).
+- Added wxDC::GradientFillLinear/Concentric().
+- Added wxHyperlinkCtrl (Francesco Montorsi).
+- Added clipboard events (wxEVT_COMMAND_TEXT_COPY/CUT/PASTE).
+- Allow to reorder wxGrid columns by drag-and-drop (Santiago Palacios).
+- Added wxRadioBox::SetItemToolTip().
+- Added support for CMYK JPEG images loading (Robert Wruck).
+- Added wxListCtrl::GetSubItemRect() and subitem hit testing (Agron Selimaj).
+- Added wxKeyEvent::GetModifiers().
+- Added wxDialog::SetEscapeId().
+- wxItemContainerImmutable::FindString unified (affects wxRadioBox, wxListBox,
+  wxComboBox and wxChoice).
+- wxWindow::Fit() now works correctly for frames and dialogs too.
+- Added access to the border size between pages and controller in book
+  based controls (wxBookCtrlBase::Get/SetInternalBorder).
+- Added initial wxRichTextCtrl implementation.
+- All book based controls (notebook, treebook etc.) share now the same
+  options for orientation (wxBK_TOP, wxBK_DEFAULT, ...) instead of duplicated
+  wxLB_TOP, wxNB_TOP, wxCHB_TOP, wxTBK_TOP.
+- Added parent window parameter to wxHelpController constructor
+  and added SetParentWindow/GetParentWindow.
+- wxMultiChoiceDialog uses now wxCheckListBox if possible, wxListBox if not.
+- Added wxBitmapButton::SetHoverBitmap().
+- Access to titles through Get/SetTitle is available now only for top level
+  windows (wxDialog, wxFrame).
+- Fixed memory leak of pending events in wxEvtHandler.
+- Added wxRadioBox::IsItemEnabled/Shown().
+- Added space after list item number in wxHTML.
+- Implemented  and  handling in wxHTML (based on patch
+  by Sandro Sigala).
+- Added caption parameter to wxGetFontFromUser and wxGetColourFromUser.
+- Added wxGetMouseState function.
+- Added wxHtmlHelpWindow, wxHtmlHelpDialog and wxHtmlModalHelp classes,
+  allowing HTML help to be embedded in an application.
+- wxCalendarCtrl positioning and hit-testing fixes for dimensions other than
+  best size.
+- wxCalendarCtrl colour schema changed and adjusted to system settings.
+- wxImage::Mirror() and GetSubBitmap() now support alpha (Mickey Rose).
+- More checking of image validity before loading into wxImage.
+- Added wxImage::ConvertToGreyscale.
+- Added ability to use templates with static event tables
+  with BEGIN_EVENT_TABLE_TEMPLATEn() macros.
+- Added play, pause, and state change events to wxMediaCtrl.
+- Added double-buffering to wxVListBox and fixed a scrolling issue.
+- Added wxToolbook (uses a wxToolBar to control pages).
+- Added SetSheetStyle to wxPropertySheetDialog and allowed it to
+  behave like a Mac OS X settings dialog.
+- Added  XRC tag for wxToolBar elements and  for wxToolBar itself.
+- 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 wxDocTemplate filter.
+- Added wxListBox::HitTest().
+- Added wxDisplay::GetClientArea().
+- Indices and counts in wxControlWithItems derived API are unsigned.
+- Added support for links to wxHtmlListBox; use code has to override
+  wxHtmlListBox::OnLinkClicked() to take advantage of it.
+- Added an easier to use wxMenu::AppendSubMenu().
+- wxString <-> wxColour conversions in wxColour class (Francesco Montorsi).
+- Fixed bug with ignoring blank lines in multiline wxGrid cell labels.
+- Added wxTextAttr::Merge() (Marcin Simonides).
+- Added wxTB_NO_TOOLTIPS style (Igor Korot).
+- Added wxGenericDirCtrl::CollapsePath() (Christian Buhtz).
+- Added wxTreeCtrl::ExpandAllChildren() (Christian Buhtz)
+- Fixed 64-bit issue in wxNotebook causing segfaults on Tru64 Unix.
+- Made it possible to associate context help to a region of a window.
+- Added support for tabs in wxRichTextCtrl (Ashish More).
+- Fixed problem with zoom setting in print preview.
+- Moved wxRichTextCtrl from the advanced library to its own.
+- 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).
+- 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.
+
+wxMSW:
+
+- Fixed crash with ownerdrawn menu items accelerators (Perry Miller).
+- wxFileDialog respects absence of wxCHANGE_DIR flag under NT (Brad Anderson).
+- Switching page of a hidden notebook doesn't lose focus (Jamie Gadd).
+- Removed wxImageList *GetImageList(int) const.
+- Fixed MDI context menu problem.
+- Removed __WIN95__ define.
+- Create msw/rcdefs.h in setup.h's directory, which can be included by
+  resource files. It containts platform/compiler specific defines (such as
+  target cpu) which can be used in #ifs in .rc files.
+- Add support for Win64 manifests and VC++ 8 automatic manifests (see the
+  wxMSW faq for details).
+- New TARGET_CPU=amd64 (or 'ia64') option for the makefile.vc files which
+  puts 64-bit builds in their own directory and adds /machine:amd64 or ia64
+  to the link command.
+- wxStatusBar::GetFieldRect now returns correct values under XP.
+- wxStatusBar no longer corrupts surrounding windows on resize.
+- Enable wxListCtrl in report mode to be able to use images in other
+  columns, if ComCtl32 >= 470.
+- Fixed problem where using SetValue and wxTE_RICH2 would cause control to
+  show.
+- Numpad special keys are now distinguished from normal keys.
+- Fixed GDI leak in wxStaticBitmap when setting images after
+  initial construction.
+- Menu codes now stripped before measuring control labels.
+- MFC sample now compiles in Unicode mode.
+- Fixed SetScrollbar thumb size setting bug (set orientation before triggering
+  events).
+- Fixed icon to cursor conversion problem for bitmaps with masks.
+- Fixed wxToolBar background colour problem for some video cards.
+- wxGenericDirCtrl now shows volume name.
+- Added XP theme support for DrawHeaderButton, DrawTreeItemButton.
+- Made the wxActiveXContainer class public and documentated.
+- Added a Windows Media Player 9/10 backend for wxMediaCtrl.
+- Multiline notebook tab label change now resizes the control
+  correctly if an extra row is removed or added.
+- Fixed a crash when dismissing wxPrintDialog under VC++ 7.1.
+- Fixed out by one error in wxTextCtrl::GetStyle.
+- Fixed problem with getting input in universal/unicode build of wxMSW.
+- Link oleacc.lib conditionally.
+- Drag and drop now works inside static boxes.
+- Fall back to unthemed wxNotebook if specified orientation not available.
+- wxListCtrl and wxTreeCtrl now resize their standard font if the user
+  changes the system font.
+- wxDisplay doesn't require multimon.h now and is enabled by default (Olly Betts).
+- Fixed wxChoice/wxComboBox slow appending and infinite recursion
+  if its size is set within a paint handler (for example when embedded in a
+  wxHtmlWindow). [Now reverted due to problems in W2K and below.]
+- wxDC::GetTextExtent() width calculation is more precise for italics fonts now.
+- Warning fixes for VC++ 5.0 (Igor Korot).
+
+wxGTK:
+
+- Fixed handling of font encoding in non-Unicode build
+- wxEVT_MENU_CLOSE and wxEVT_MENU_OPENED for popup menus are now generated.
+- Implemented wxCURSOR_BLANK support.
+- wxSlider generates all scroll events now and not only wxEVT_SCROLL_THUMBTRACK.
+- Fixed a host of bugs in wxMediaCtrl as well as added a GStreamer 0.10
+  implementation.
+- Improved configure checks for GStreamer. You may also now specify
+  --enable-gstreamer8 to force configure to check for GStreamer 0.8.
+- Fixed problem with choice editor in wxGrid whereby the editor
+  lost focus when the combobox menu was shown.
+- Fixed focusing with mnemonic accelerator keys on wxStaticText which
+  is now able to focus on wxComboBox and possibly other controls
+  previously unable to be focused before.
+- Enabled mnemonics and the corresponding accelerator keys for
+  wxStaticBox and wxRadioBox.
+- Fixed problem trying to print from a preview, whereby wrong printer
+  class was used.
+- Worked around pango crashes in strncmp on Solaris 10.
+- Polygon and line drawing speeded up if there is no scaling.
+- Fixed problems with CJK input method.
+- Implemented ScrollLines/Pages() for all windows (Paul Cornett).
+- Support underlined fonts in wxTextCtrl.
+- Support all border styles; wxListBox honours the borders now.
+- wxWindow and wxScrolledWindow now generate line, page and thumb-release scroll events.
+- Added file preview support in file dialogs.
+- Implemented SetLineSize and GetLineSize for wxSlider.
+
+wxMac:
+
+- Fixed problem with clipboard support for custom data flavors.
+- Fixed focus handling for generic controls in carbon-cfm.
+- Fixed a printing crash bug, for example using File->Print and changing
+  Popup from 'Copies & Pages' to e.g. 'Layout'.
+- Improved support for help and application menu items.
+- Added default implementations for wxTextCtrl::Replace and wxTextCtrl::Remove.
+- Added support for 10.4 context menu.
+- Added support for wxFRAME_EX_METAL and wxDIALOG_EX_METAL styles.
+- Added wxNotebook::HitTest support.
+- Corrected idle wake-up.
+- Corrected wxExecute.
+- Now makes use of full printer resolution.
+- Corrected CGImage handling in wxBitmap.
+- Now uses simple hide/show transition for top-level windows.
+- Uses reasonable temporary path for wxFileName::CreateTempFileName.
+- Added support for default key handling (escape, enter, command-period) even
+  if there is no control on the frame or dialog that has the focus.
+- Fixed joystick bugs including a link error and a crash if no joysticks
+  were found.
+- Removed an errorneous assertion from wxDir.
+- Uses CoreFoundation based and thread-safe implementation for message boxes
+  under Mach-O.
+- wxBitmapButton is created as a content icon if wxBORDER_NONE is
+  specified, otherwise as a bevel button.
+- Mouse event ids set correctly (fixing problems with Connect in particular).
+- Fixed wxZipInputStream read error on wxSocketInputStream which signals the
+  end of file with an error.
+- Xcode wxWidgets and minimal sample project files updated to create Universal
+  binaries.
+- Fix for setting wxMenuBar more than once.
+- wxListBox minimum size bug fixed.
+- Fixed wxNotebook off-by-one bug in HitTest.
+- Fixed joystick GetXMin/Max bug.
+- Fixed Unix domain socket problem in wxIPC.
+- Fixed non-detection of process termination on Intel Macs by
+  polling for process termination in a separate thread.
+
+wxCocoa:
+
+- wxDirDialog is now native (Hiroyuki Nakamura).
+
+wxWinCE:
+
+- Pressing build-in joystick on WinCE phones fires wxEVT_JOY_BUTTON_DOWN event.
+- Native wxCheckListBox implementation.
+- All wxTopLevelWindows resizes accordingly to SIP visibility.
+- ::wxGetUserName() implemented.
+- wxDisplay enumeration support.
+- Fixed wxFileDialog breakage on WinCE due to incorrect structure size.
+- New wxSystemOption "wince.dialog.real-ok-cancel" to switch between WinCE
+  guidelines with Ok-only dialogs and dialogs using wxButtons.
+- Checkable items in wxToolMenuBarTool supported.
+- Fixed date formatting and mktime.
+- Fixed getting standard folder paths on WinCE.
+- Support for backspace key on Smartphone.
+- Made both windows wxMediaCtrl Windows backends compilable with wxWinCE - it
+  is recommended that you use wxMEDIABACKEND_WMP10 on this platform
+  directly, however.
+- Added support for the context menu event (wxContextMenuEvent)
+  and added platform-specific wxWindow::EnableContextMenu.
+- Fixed wxGenericFileDialog to work with WinCE.
+- Fixed compilation and menubar disappearance on Windows Mobile 5.
+- Fixed wxDatePickerCtrl usage.
+
+wxUniv:
+
+- Send wxEVT_SCROLL_XXX events from wxSlider (Danny Raynor).
+- Implemented wxToggleButton (David Bjorkevik).
+- Label in Toolbar tools implemented (Danny Raynor).
+
+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)
+
+Unix:
+
+- NO_GCC_PRAGMA is not used any more, remove checks for it if you used it.
+
+wxMGL:
+
+- Fixed NUM_LOCK having no effect.
+- Fixed wxFileExists (affecting wxImage::LoadFile).
+
+
+2.6.2
+-----
+
+All:
+
+- Fixed wxScopeGuard to work with VC++, documented it.
+- Fixed proxy handling in wxURL.
+- Added wxEVT_MEDIA_LOADED event for wxMediaCtrl.
+- Added new methods to wxMediaCtrl (wxURI version of Load, ShowPlayerControls).
+- Added wxZipFSHandler::Cleanup() (Stas Sergeev).
+- Added wxImage::RotateHue() and RGB <-> HSV conversions (John Anderson).
+- Fixed compilation with IBM xlC compiler.
+- wxABI_VERSION, see 'Backward Compatibility' topic overview in the manual.
+- Added wxLongLong::ToDouble().
+- Added wxDateTime::[Make]FromTimezone(), fixed several TZ-related bugs.
+- Fixed bug in wxStreamBuffer::Read(wxStreamBuffer *) (Paul Cornett).
+- Fixed wxListbook and wxChoicebook internal layout.
+
+All (GUI):
+
+- Added wxStaticText::Wrap()
+- wxChoice and wxComboBox::GetSelection() now returns completed selection,
+  added a new GetCurrentSelection() function having the old behaviour.
+- 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).
+- 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).
+- wxWizard adapts to PDA-sized screens.
+- Unicode fixes for IPC and a new IPC sample (Jurgen Doornik).
+
+wxMSW:
+
+- wxMSW now builds with (beta of) MSVC 8 (a.k.a. 2005).
+- Separators are now correctly shown in the toolbars under Windows XP.
+- Fixed multiline tooltips handling.
+- 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).
+- Fixed asynchronous playback of large sound files in wxSound.
+- Added wxDynamicLibrary::GetSymbolAorW().
+- Fixed default size of wxStaticText controls with border being too small.
+- Fixed bugs with wxStatusBar positioning (with or withour sizers) (Jamie Gadd).
+- Mouse move events are now generated for all static controls (Jamie Gadd).
+- Fixed nested static box display and splitter sash on some themes (Jamie Gadd).
+- Made wxJoystick::GetProductName() more useful (John Ratliff).
+- Native spline drawing implementation (Wlodzimierz ABX Skiba).
+
+wxGTK:
+
+- ShowFullScreen() shows the window if it was still hidden (rpedroso).
+- Implemented wxTopLevelWindow::RequestUserAttention() (Mart Raudsepp).
+- Base library is now binary compatible when built with wxGTK and wxMotif.
+- wxTextCtrl::XYToPosition, PositionToXY and GetLineLength calls are now
+  instantaneous in case of GTK 2.x multi-line controls (Mart Raudsepp).
+- Added support for left, centre and right text alignment attributes under
+  GTK+2 multi-line text controls (Mart Raudsepp).
+- Various wxFont improvements for GTK 2.x builds (Mart Raudsepp).
+- Changed order of child deletion in window destructor and
+  removed focus handlers to avoid spurious events (David Surovell).
+- Fixed domain socket handling.
+
+wxMac:
+
+- First implementation of native HIToolbar support.
+- Added text control context menu (ported from wxMSW).
+- More CoreGraphics implementation improvements.
+- Various text control bug fixes.
+- Automatic menu management improved.
+- Fixed crash when wxRadioButton is deleted from a group of radio buttons,
+  due to dangling cycle pointers.
+- Native spline drawing implementation for CoreGraphics (Robert J. Lang).
+- Made wxDialog::IsModal meaning the same as other ports (true only when
+  showing modally).
+
+wxOS2
+
+- Adjustments for building with Open Watcom C++.
+
+wxUniv:
+
+- Window creation now honours wxVSCROLL.
+- Standalone scrollbars generate events of correct type (Jochen Roemmler).
+
+wxMotif:
+
+- Base library is now binary compatible when built with wxGTK and wxMotif.
+- wxMotif can now display Japanese text under Japanese locale.
+- Fixed button size in common dialogs.
+- Made wxFileDialog translatable.
+- All top level windows should now have a border unless the wxNO_BORDER
+  flag has been specified.
+- Improved wxNotebook support for sizers. It requires the wxNotebook to
+  be created with a "sensible" initial width.
+- Made wxDialog::IsModal meaning the same as other ports (true only when
+  showing modally).
+
+wxMGL:
+
+- Fixed crash on exit.
+- Fixed drawing problems when windows are resized.
+
+wxX11:
+
+- Various wxFont improvements for unicode builds (Mart Raudsepp).
+
+
+2.6.1
+-----
+
+All:
+
+- Added wxLaunchDefaultBrowser.
+- Added wxPLURAL() macro in addition to _() (Jonas Rydberg)
+
+All (GUI):
+
+- Fixed potential infinite loop when adjusting wxScrolledWindow scrollbars.
+- Radio in menus do not send menu event for selections of already selected item.
+- Fixed wrong positioning of marks and enumerations in lists of wxHTML.
+- wxImage::Rotate90 respects alpha channel.
+- Added wxEVT_SCROLL_CHANGED as synonym for wxEVT_SCROLL_ENDSCROLL.
+- Replaced artwork for some cursors, icons and toolbar buttons.
+- Fixed sizing problem in generic wxCalendarCtrl for short day abbreviations.
+- Fixed wxWindow::DoGetBestSize to keep original best size.
+- PNM now supports ASCII and raw grey formats.
+- wxGrid focus and edit key improvements.
+
+wxMSW:
+
+- Fixed erroneous selection of content in wxComboBox when within a wxStaticBox
+  (checking for selection caused by WM_STYLECHANGED).
+- Added deferred positioning to wxRadioBox, wxSlider and wxSpinCtrl and thereby
+  eliminated some refresh glitches when resizing.
+- Eliminated further refresh glitches caused by wxRadioBox (to nearby controls)
+  by refreshing parent when the radio box moves.
+- Added ability set the system option "msw.staticbox.optimized-paint" to 0 to
+  allow a panel to paint graphics around controls within a static box.
+- Refresh exposed areas when resizing, using WM_WINDOWPOSCHANGED.
+- Worked around an apparent bug in deferred window positioning (moving a
+  window from (x, y) to (a, b) and back to (x, y) misses the last step) by
+  checking window positions against corresponding sizer state, if any.
+- A control's text colour now reflects the system colour setting.
+- Fixed wxFileName::GetLongPath() to behave correctly during the first call too.
+- Fixed alpha blitting to take into account source position.
+- Setting foreground colour for wxCheckBox now works when using XP themes too.
+- wxStaticBox label can use custom foreground colour.
+- Now uses newer font MS Shell Dlg 2 if possible.
+- Compiles again with WIN64.
+- Winelib compilation now works.
+- When converting a wxIcon to a bitmap check if the icon has an alpha
+  channel and set the bitmap to use it.
+- wxSlider now also sends wxEVT_SCROLL_CHANGED when using mouse wheel
+- Miscellaneous wxMediaCtrl improvements.
+- wxTopLevelWindow::ShowFullScreen logic error fixed.
+- Fixed wxScrollBar background colour bug.
+- Fixed problems with paper sizes being ignored.
+- wxNotebook refresh problem fixed.
+- DDE fixed for Unicode.
+- Fixed ownerdrawn multiline buttons.
+- wxCheckListBox item background fixed.
+- Fixed error when trying to read a value from key not accessible for writing.
+- Fixed keyboard cue visibility issues under Windows 2000/XP
+
+wxWinCE:
+
+- Fixed wxFileName::CreateTempFileName.
+
+wxGTK:
+
+- Added support for wxSTAY_ON_TOP (GTK 2.4+).
+- Fixed wxTextCtrl::SetStyle for overlapping calls.
+- Fixed scrollbar border colour.
+- Added bitmap support in menus.
+
+wxMac:
+
+- Added support for launching 'APPL' bundles with wxExecute (usually they have a
+  .app extension and are the ones that reside in the Applications folder).
+- Fixed a bug in wxGetKeyState where shift and some other keys were returning an
+  incorrect state.
+- Fixed toolbar colour bug on Tiger.
+- Fixed visual problems caused by removal of About menu item.
+- Window menu now added automatically.
+- Configure fixed for wxBase compilation.
+- Modified function key support fixed.
+- wxTopLevelWindow::Maximize improvements.
+
+wxX11:
+
+- Menu problems fixed.
+- wxScrolledWindow scrolls any child windows.
+- Fixed a font memory leak.
+- Multiple wxTimers now work correctly.
+
+
+2.6.0
+-----
+
+All:
+
+- wxPathExists deprecated, use wxDirExists instead.
+- Configure: --enable-std_iostreams, --enable-std_string are now the default.
+
+All (GUI):
+
+- Fixed ~wxStatusBar and ~wxToolBar which tried to check
+  non-existent wxFrameBase RTTI, causing a crash if not in a frame.
+
+wxMSW:
+
+- Fixed static box border when the label is empty.
+- Fixed SetBackgroundColour() to change only label background, not entire box.
+- wxHelpController is now aliased to wxCHMHelpController.
+
+wxWinCE:
+
+- Fixed device origin setting and clipping region setting.
+
+wxGTK:
+- New configure syntax for specifying the GTK+ version.
+    --with-gtk             Use GTK 2.x, no fallback
+    --with-gtk=1           Use GTK 1.2, no fallback
+    --with-gtk=2           Use GTK 2.x, no fallback
+    --with-gtk=any         Use any available GTK
+- wxMenuItem::SetText() takes care of hotkeys, too.
+- Reworked text wrapping for wxStaticText.
+
+wxMac:
+- Implemented most of the wxFileType and wxMimeTypesManager functions
+
+2.5.5
+-----
+
+All:
+
+- wxURI::GetUser() only returns the user name now, use GetUserInfo() to get
+  user and password as in 2.5.4; wxURI::GetPassword() added.
+- Added wxDebugReport class.
+- Added wxTempFileOutputStream by Stas Sergeev.
+- Fixed wxDateTime::SetToWeekDayInSameWeek(Sun, Monday_First).
+- Added WXK_SPECIAL keycodes for special hardware buttons.
+- Fixed bug with wxFile::Seek(-1, wxFromCurrent).
+- Added wxString/C array constructors to wxArrayString.
+- Added wxMemoryInputStream(wxMemoryOutputStream&) constructor (Stas Sergeev)
+
+All (GUI):
+
+- Added GetIcon, GetBitmap to wxImageList. wxGenericImageList's original
+  GetBitmap is renamed GetBitmapPtr.
+- Added XPM data constructor to wxImage.
+- Added style parameter to wxBufferedDC to allow buffering just the client, or
+  the whole virtual area.
+- Restored ability to set a custom splitter sash size with SetSashSize.
+- Fixed wxScrolledWindow sizer behaviour so that the virtual size
+  isn't used to set the window size.
+- Added wxTE_BESTWRAP (based on patch by Mart Raudsepp).
+- wxEVT_COMMAND_SPLITTER_SASH_POS_CHANGED is now only sent once at the end of
+  splitter dragging and not after each CHANGING event (Jacobo Vilella Vilahur).
+- Added wxImage::IsTransparent().
+
+Unix:
+
+- Fixed build on Linux/AMD64.
+
+wxMSW:
+
+- Added "orient" parameter to wxMDIParentFrame::Tile().
+- wxTextCtrl with wxTE_RICH2 style now uses RichEdit 4.1 if available.
+- fix handling Alt-key events in wxComboBox (reported by Joakim Roubert).
+- wxWindow::Refresh() refreshes the window children as well.
+- Improved static box and radio box refresh and background colour
+  handling (Jamie Gadd).
+
+wxGTK:
+
+- Improved wxSystemSettings::GetMetric() to work better with X11 (Mart Raudsepp).
+- Corrected wxListBox selection handling.
+- Corrected default button size handling for different themes.
+- Corrected splitter sash size and look for different themes.
+- Fixed keyboard input for dead-keys.
+- Added support for more wrapping styles (Mart Raudsepp).
+- GTK2.4+ wxFileDialog reimplemented to support non-modal usage better,
+  and fix all known bugs (Mart Raudsepp).
+
+wxMac:
+
+- Added wxFRAME_EX_METAL, wxDIALOG_EX_METAL for metallic-look windows.
+
+wxPalmOS:
+
+- Native wxRadioBox implementation.
+
+wxWinCE:
+
+- Added wxNB_FLAT for flat-look notebooks on Windows CE.
+- Titlebar OK button on PocketPC now sends command set by SetAffirmativeId.
+  You can also override wxDialog::DoOK if you need more flexibility.
+- Dialog size now takes into account SIP or menubar.
+- Panels more naturally white on PocketPC.
+- wxDIALOG_EX_CONTEXTHELP ignored on WinCE since it interferes
+  with correct titlebar style.
+- Frames have Ctrl+Q accelerator set automatically, as per the
+  PocketPC guidelines
+- Documented issues in manual under wxWinCE topic.
+- Made (Un)RegisterHotKey WinCE-aware.
+- Sends wxEVT_HIBERNATE event.
+- Now fakes wxEVT_ACTIVATE_APP to be symmetrical with wxEVT_HIBERNATE.
+- Added wxTE_CAPITALIZE for CAPEDIT controls.
+- wxDialog::GetToolBar can be used if you need to add buttons
+  to the dialog's toolbar.
+
+2.5.4
+-----
+
+All:
+
+- wxEvent and derived classes don't have public members any more, you must
+  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)
+- wxDynamicLibrary::HasSymbol() added
+- added wxEXEC_NODISABLE flag to be used with wxExecute(wxEXEC_SYNC)
+- added wxTextInputStream::operator>>(wchar_t) for compilers which support this
+- added wxURI, a class for dealing with Uniform Resource Identifiers
+- changed wxURL to inherit from wxURI and provide assignment and comparison
+- implemented wxConvUTF7 (modified patch from Fredrik Roubert)
+- added versions of MB2WC and WC2MB for wxMBConv that works for embedded null chars
+- 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
+  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)
+- XRC supports system fonts and colours (Ray Gilbert)
+- Added flags argument to wxKill/wxProcess::Kill to kill child processes.
+- Added wxPrintFactory classes so that it is possible to add a new
+  print system backend at run-time. This was required by the new GNOME
+  printing stuff in the GTK port.
+- Deprecated print setup dialog.
+- Added support to the wxODBC classes for Firebird 1.5 database
+- The samples/db sample program now includes an optional example of using a BLOB
+  datatype (if BLOB support is enabled and supported by the database)
+- added wxDynamicLibrary::ListLoaded()
+- wxGetPowerType() and wxGetBatteryState() addition
+- wxSystemSettings::GetSystem*() members deprecated and replaced with
+  wxSystemSettings::Get*()
+- wxWindowBase::DoGetBestSize now includes the difference (if any) between
+  the client size and total size of the window.  Code that sets the
+  client size using the best size, or that added extra space to sizers
+  to compensate for this bug may need to be changed.
+- Changed calculation of scrolling area to not clip away some bits
+  due to a rounding error.
+- Changed GetVirtualSize() to return client size by default until
+  SetVirtualSize() gets called. From then on it will only return that.
+- Various changes to how wxListCtrl and wxTreeCtrl react to right
+  mouse clicks and left mouse click for starting a drag operation.
+- "Alt" key (VK_MENU) now results in WXK_ALT keyboard event, not WXK_MENU
+- wxFFile::ReadAll() now takes an optional wxMBConv parameter
+- wxCommandProcessor::MarkAsSaved() and IsDirty() added (Angela Wrobel)
+- added wxStackWalker and related classes (Win32 and some Unix versions only)
+
+
+All (GUI):
+
+- added wxMediaCtrl
+- added wxDatePickerCtrl
+- wxHtmlWindow now supports background images given in  tag
+- 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
+  item remembers its wxRect area (Brian A. Vanderburg II)
+- wxBookCtrl renamed to wxBookCtrlBase, wxBookCtrl is reserved for most native
+  book control (for now wxChoicebook for MSSmartphone, wxNotebook for others).
+  Necessary event macros, types and styles mapped accordingly.
+- new wxBrush::IsHatch() checking for brush type replaces IS_HATCH macro
+- wxProgressDialog accepts smooth gauge again (wxPD_SMOOTH style)
+- wxProgressDialog new style: wxPD_CAN_SKIP which provides skipping some parts
+  of the progress (with new "Skip" button in dialog)
+- wxGenericListCtrl::SetItemState(-1) now changes the state of all items as
+  in wxMSW version (Gunnar Roth)
+- added wxImage::InitAlpha()
+
+Unix:
+
+- wxPuts() now correctly outputs trailing new line in Unicode build
+
+wxGTK:
+
+- Added printing support by way of using libgnomeprint. The library
+  now checks at runtime, if the library is installed and will use it
+  if it is. Otherwise, it will fall back to the old PostScript printing
+  code, from which the Pango drawing code was removed.
+- Implemented/improved wxDC::DrawRotatedText()
+- fixed wxFileDialog::SetWildcard()
+- native file dialog is now used if available (Zbigniew Zagorski)
+- implemented wxTextCtrl::Freeze() and Thaw(). The GtkTextBuffer
+  is not a valid one during frozen state. Get a pointer to it right
+  after wxTextCtrl creation if you really need to. (Mart Raudsepp)
+- Changed calls to GTK+ 2.4.x functions so that the code checks at
+  runtime, which library version is installed so that these functions
+  are only called with GTK+ 2.4.x installed and should yield linker
+  errors otherwise.
+- wxTextCtrl text insertion efficiency fixed. (Mart Raudsepp)
+- Added wxRawBitmap support
+- Corrected Input method handler code (for Chinese etc.) and its
+  interaction with wxWidgets' events.
+- wxTE_AUTO_URL implemention for wxGTK2 multiline wxTextCtrls (Mart Raudsepp)
+
+wxMac:
+
+- Vertical sliders oriented consistent with MSW/GTK (0 at top) (Kevin Hock)
+- wxDynamicLibrary::GetDllExt() now returns ".bundle", not ".dylib"
+- wxDynamicLibrary::GetSymbol() now prepends underscore to the symbol name
+- wxJoystick now works on OSX
+
+wxMSW:
+
+- fixed enhanced metafiles loading from files (Andreas Goebel)
+- wxRadioButtons no longer have to be consecutive in a group
+- fixed spurious selection of combobox text during resize
+- pass correct tool id (and not always -1) to EVT_TOOL_RCLICKED() handler
+- added wxRegKey::Export(file)
+
+wxWinCE:
+- Added support for MS Handheld PC 2000. This was done before 2.5.4,
+  but not mentioned anywhere.
+- Added (preliminary) support for sockets
+
+wxUniv:
+
+- wxBU_... button align flags support
+- vertical notebook orientation support
+- 3rd state support for checkboxes
+- wxLB_SORT and wxCB_SORT now cause case-insensitive sorting
+
+wxPalmOS:
+
+- William Osborne has won and new port was born
+  (see: "wxPalmOS porting challenge")
+- polishing of the port (unnecessary 2.4 API compatibility, removed
+  all wxMSW specific code which was base for the new port)
+- enumeration of available volumes
+- native wxPrefConfig around Preferences database
+- native wxProgressDialog implementation
+- native wxColourDialog implementation
+- native wxSystemSettings colours
+- native wxButton implementation
+- native wxCheckBox implementation
+- native wxSlider implementation
+- native wxToggleButton implementation
+- native wxRadioButton implementation
+- native wxStaticText implementation
+- native wxDatePickerCtrl implementation
+
+
+2.5.3
+-----
+
+All:
+
+- support for large (>2 Gb) files in wxFile (Tim Kosse)
+- number of fixes to wxPluginManager (Rick Brice, Hans Van Leemputten)
+- fixed memory leak in wxURL when using a proxy (Steven Van Ingelgem)
+- fixed bug in wxDateTime::Set(jdn) when DST was in effect
+- fixed fatal bug in wxString when wxUSE_STL==1 (Kurt Granroth)
+- support msgids in charsets other than C and languages other than English
+  (based on patch by Stefan Kowski)
+- added wxMicroSleep() and wxMilliSleep() replacing deprecated wxUsleep()
+- basic UDP sockets support (Lenny Maiorani)
+- fixed wxDateTime::GetWeekDayName() for some dates (Daniel Kaps)
+- deprecated wxDateTime::SetToTheWeek() in favour of SetToWeekOfYear()
+- active mode support in wxFTP (Randall Fox)
+- sped up wxHTTP and wxFTP
+- added wxStringInput/OutputStreams
+- added wxFileConfig::Save(wxOutputStream)
+- fixed wxString's behaviour with inserted null characters
+
+All (GUI):
+
+- added wxWindow::MoveBefore/AfterInTabOrder() to change tab navigation order
+- added wxTaskBarIcon::CreatePopupMenu which is now the recommended way
+  of showing a popup menu; calling wxTaskBarIcon::PopupMenu directly
+  is discouraged
+- added ..._CMD_...(id) variants for wxGrid event table entry macros
+- added wxWindow::Navigate for programmatic navigation to the next control
+- wxTextCtrl::OnChar now inserts a tab character if wxTE_PROCESS_TAB is set
+- added wxKeyEvent::GetUnicodeKey()
+- added wxKeyEvent::CmdDown() and wxMouseEvent::CmdDown()
+- implemented wxListCtrl::FindItem() for non-MSW (Robin Stoll)
+- added status bar fields styles support (Tim Kosse)
+- added convenience functions wxSizer::AddSpacer() and
+  wxSizer::AddStretchSpacer() (as well as Prepend and Insert variants)
+- added samples/splash
+- added support for stock buttons
+- added wxTopLevelWindow::RequestUserAttention()
+- support for comma in contrib gizmo wxLEDNumberCtrl (Grant Likely)
+- recursive wxSizer::Show for subsizer and return value if element was found
+- added wxChoicebook control
+- smoother time estimation updates in wxProgressDialog (Christian Sturmlechner)
+- the XRC contrib library was moved to the core
+- wx(Choice/List/Note)book controls send CHANG(ED/ING) events in SetSelection
+- it is now possible to create a wxFont with given size in pixels (d2walter)
+- added wxTopLevelWindow::IsActive()
+- wxSystemSettings::GetMetric now returns -1 for metrics that are not
+  supported, instead of zero.
+- IMPLEMENT_DYNAMIC_CLASS2 macro compilation fixed (Serge Bakkal)
+
+Unix:
+
+- wxTaskBarIcon now supports freedesktop.org System Tray protocol
+- security fixes to wxSingleInstanceChecker
+- wx-config script was modified to allow choosing from multiple installed
+  builds of wxWidgets and to return flags/libs for selected libraries only
+- wx-config has new --version-full option
+
+wxCocoa:
+
+- added Unicode compatibility layer for OSX 10.2
+- fixed so that wxCocoa runs in OSX 10.2
+- Tooltips now supported
+- wxSound now supported
+- wxDisplay now supported
+- Some stock cursors now supported
+
+wxMac:
+
+- fixed MLTE text control GetLineText and GetLineLength on OSX
+- added OSX wxTaskBarIcon implementation for the OSX Dock
+- added Unicode compatibility layer for OSX 10.2
+- wxGetKeyState now works with nearly all wx key codes
+
+wxGTK:
+
+- wxGTK uses GTK+ 2.x by default now, you have to pass --disable-gtk2 to
+  configure if you want to use GTK+ 1.2
+- fixed many rendering artifacts and wrong colours with lots of GTK+ themes
+- implemented wxColourDialog as native dialog
+- implemented wxTextCtrl::HitTest() (GTK+ >= 2)
+- implemented wxTextCtrl::ScrollLines() and ScrollPages for GTK+ 2.x
+- wxTreeCtrl::GetCount() counts root as well now (compatible with MSW)
+- added support for wxCHK_3STATE style (GTK2 only)
+- implemented text underlining under GTK2
+- implemented wxFRAME_NO_TASKBAR style (GTK >= 2.2)
+- implemented support for wxSYS_DCLICK_?, wxSYS_DRAG_? and wxSYS_CURSOR_?
+  in wxSystemSettings::GetMetric (Mart Raudsepp)
+- implemented wxTopLevel::IsMaximized() for GTK+2 and WMs that implement
+  freedesktop.org's wm-spec (Mart Raudsepp)
+- wxEVT_CONTEXT_MENU is now generated for right mouse press, not release
+- implemented alpha channel support in wxBitmap
+- added native GTK+2 wxArtProvider implementation with ability to load
+  icons from icon theme in addition to recognized stock art
+- fixed crash on 64 bit platforms (Paul Cornett)
+
+wxMotif:
+
+- added support for wxCHK_3STATE style (3 state checkbox)
+
+wxMSW:
+
+- fixed UNC paths handling in wxFileSystem (Daniel Nash)
+- set wxKeyEvent::m_uniChar in Unicode build
+- support for alpha channel in toolbar bitmaps (Jurgen Doornik)
+- wxFileDialog can now be moved and centered (Randall Fox)
+- restored (and improved) possibility to use wx with MFC broken in 2.5.2
+- fixed wxTextCtrl::SetMaxLength for rich edit controls
+- fixed flat style for toolbars under XP, Windows Classic style
+- fixed truncation of transferred data in wxConnection under unicode build
+- wxChoice and wxComboBox dropdown background can be set now too (Adrian Lupei)
+- fixed wxMaximizeEvent generation in wxFrame
+- don't send duplicate EVT_COMBOBOX events whenever selection changes any more
+- implemented support for selecting printer bin (Steven Van Ingelgem)
+- fixed wxListCtrl::SetSingleStyle() which was broken since a few releases
+- fixed print setup problem (always uses default printer) in Unicode build
+
+wxUniv/X11:
+
+- fixed fatal crash when opening a menu
+
+wxWinCE:
+
+- added native WinCE driven smartphone wxTextCtrl implementation using spinners
+- added native WinCE driven smartphone wxChoice implementation using spinners
+- added automated but customizable handling of native WinCE driven smartphone menus
+- fixed wxRadioBox and wxStaticBox
+
+wxHTML:
+
+- added support for nested index entries and index entries pointing to more
+  than one page to wxHtmlHelpController
 
-OTHER CHANGES
-=============
 
 2.5.2
 -----
 
 All:
 
-- Hindi translations added (Dhananjaya Sharma)
+- Hindi translation added (Dhananjaya Sharma)
+- Brazilian Portuguese translation added (E. A. Tacao)
 - wxDynamicCast() now uses static_cast internally and so using it
   with anything not deriving from wxObject will fail at compile time (instead
   of run-time) now
+- when wxUSE_STL == 1 and STL provides quasi-standard hash_map/hash_set,
+  wxHashMap/wxHashSet are just typedefs for them. This makes impossible
+  to forward declare these classes.
 
 All (GUI):
 
@@ -129,6 +2734,13 @@ wxMSW:
 - wxTaskBarIcon must be explicitly destroyed now, otherwise the application
   won't exit even though there are no top level windows
 - wxFileName::GetModificationTime() works with opened files too now
+- wxDC::GetClippingBox() now works even for clipping regions created by Windows
+- fixed wxFileDataObject in Unicode build (Alex D)
+- subindented paragraphs support (Tim Kosse)
+
+wxGTK:
+
+- added support for wxTE_RIGHT and wxTE_CENTRE styles under GTK2 (Mart Raudsepp)
 
 wxMotif:
 
@@ -147,7 +2759,14 @@ wxHTML:
 - 
handling fix (Xavier Nodet) Unix: + - fixed priorities of mailcap entries (David Hart) +- added "wx-config --libs=std," syntax (i.e. support for "std") + +wxODBC: + +- Full Unicode support is now available +- BLOB support is working 2.5.1 @@ -155,7 +2774,7 @@ Unix: 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) @@ -184,12 +2803,11 @@ All: All (GUI): -- added wxListBook control - added 3-state checkboxes for MSW/Mac (Dimitri Schoolwerth) - 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 @@ -223,7 +2841,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 @@ -261,7 +2879,7 @@ wxMac: - use same average character width as other ports when calculating dialog units - implemented handling of mouse wheel - fix for long file names (longer than 32 characters) in file dialogs -- use unix sockets for Mach-o builds +- use Unix sockets for Mach-o builds wxMotif: @@ -320,17 +2938,17 @@ 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: - added wxVScrolledWindow, wxVListBox and wxHtmlLbox classes -- added wxListbook +- added wxListbook control - added alpha channel support to wxImage - 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) @@ -345,7 +2963,7 @@ All GUI ports: - it is now possible to use several wxFileHistory objects in the same menu by giving them different base IDs (Dimitri Schoolwerth) - Added wxTLW::SetShape with implementations for wxMSW and wxGTK (so far) -- FL: rmoved const from EnableTool parameters +- FL: removed const from EnableTool parameters - FL: signal child window when toolbar is closed - In various places, changed tests for pathsep on last char of string to call wxEndsWithPathSeparator(s) @@ -419,7 +3037,7 @@ wxGTK: - added wxTextCtrl::SetSelection implementation for GTK+ 2 - fixed wxTextCtrl::IsEditable() for GTK+ 2 - fixed wxStaticText alignment for GTK+ 2 (Kevin Hock) -- don't consume 100% CPU when showing a poup menu +- don't consume 100% CPU when showing a popup menu wxMac: @@ -443,7 +3061,7 @@ wxMSW: - libraries built with makefile.g95 have a _min or _cyg suffix (MinGW/Cygwin) - when using DLL, wxLocalFSHandler was not being exported - fixed problem with wxEvtHandler object not removed from wxPendingEvents -- Windows XP manifest is now included in wx.rc; it is no longer neccessary +- Windows XP manifest is now included in wx.rc; it is no longer necessary to ship .exe.manifest file with applications to support XP themes - wxLocale::Init no longer reports error if trying to set Unicode-only locale or if user's default locale is Unicode-only @@ -643,7 +3261,7 @@ wxThread and related classes: ! wxCondition now *must* be used with a mutex, please read the (updated) class documentation for details and revise your code accordingly: this change was unfortunately needed as it was impossible to ensure the correct behaviour - (i.e. absense of race conditions) using the old API. + (i.e. absence of race conditions) using the old API. - wxMutex is not recursive any more in POSIX implementation (it hasn't been recursive in 2.2.x but was in 2.3.1 and 2.3.2), please refer to the class @@ -793,7 +3411,7 @@ wxMSW: - wxLB_SORT style can be used with wxCheckListBox - wxWindowDC and wxClientDC::GetSize() works correctly now - Added wxTB_NODIVIDER and wxTB_NOALIGN so native toolbar can be used in FL -- Multiline labels in buttons are now supoprted (simply use "\n" in the label) +- Multiline labels in buttons are now supported (simply use "\n" in the label) - Implemented wxMouseCaptureChangedEvent and made wxGenericDragImage check it has the capture before release it. - fixed bugs in multiple selection wxCheckListBox @@ -881,7 +3499,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) @@ -989,7 +3607,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 @@ -1091,7 +3709,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: @@ -1938,7 +4556,7 @@ At this point, the following has been achieved: - Toolbar class hierarchy revised: wxToolBarBase wxToolBarSimple (= old wxToolBar) - wxToolBar95 (= old wxButtonBar under Win95 + wxToolBar95 (= old wxButtonBar under Win95) wxToolBarMSW (= old wxButtonBar under WIN16/WIN32) - Constraint system debugged somewhat (sizers now work properly). - wxFileDialog, wxDirDialog added; other common dialogs now @@ -1964,5 +4582,3 @@ At this point, the following has been achieved: - utils/wxprop classes working (except maybe wxPropertyFormView) in preparation for use in Dialog Editor. - GNU-WIN32 compilation verified (a month or so ago). - -