]> git.saurik.com Git - wxWidgets.git/blobdiff - docs/changes.txt
fixing overrelease and out-of-bounds write, fixes #13725
[wxWidgets.git] / docs / changes.txt
index b1efe24315eb35edde419e9e1bc17034821b5046..ed1b5ad72b6bc95920e4edab1f41eaae53f29922 100644 (file)
@@ -10,6 +10,14 @@ INCOMPATIBLE CHANGES SINCE 2.8.x
         the "Changes Since wxWidgets 2.8" section of the manual,
         please read it if the explanation here is too cryptic.
 
         the "Changes Since wxWidgets 2.8" section of the manual,
         please read it if the explanation here is too cryptic.
 
+Table of contents of this section:
+
+ - Unicode-related changes
+ - wxODBC and contrib libraries removal
+ - Changes in behaviour not resulting in compilation errors
+ - Build system changes
+ - Major new features in this release
+
 
 Unicode-related changes
 -----------------------
 
 Unicode-related changes
 -----------------------
@@ -46,7 +54,9 @@ changes:
 - 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
 - Some structure fields which used to be of type "const wxChar *" (such as
   wxCmdLineEntryDesc::shortName, longName and description fields) are now of
   type "const char *", you need to remove wxT() or _T() around the values used
-  to initialize them (which should normally always be ASCII).
+  to initialize them (which should normally always be ASCII). If you want your
+  code to remain compatible with Unicode build of previous wx version, please
+  use the special wxT_2, which is the same as wxT in 2.x only, instead.
 
 - wxIPC classes didn't work correctly in Unicode build before, this was fixed
   but at a price of breaking backwards compatibility: many methods which used
 
 - 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
@@ -68,7 +78,7 @@ Also the "applet", "deprecated", "fl", "mmedia" and "plot" contrib libraries
 were removed as they were unmaintained and broken since several years.
 The "gizmos", "ogl", "net" and "foldbar" contribs have been moved to
 wxCode (see http://wxcode.sourceforge.net/complist.php); they are now
 were removed as they were unmaintained and broken since several years.
 The "gizmos", "ogl", "net" and "foldbar" contribs have been moved to
 wxCode (see http://wxcode.sourceforge.net/complist.php); they are now
-open for futher development by volunteers.
+open for further development by volunteers.
 
 The "stc" and "svg" contribs instead have been moved respectively into a new
 "official" library stc and in the core lib.
 
 The "stc" and "svg" contribs instead have been moved respectively into a new
 "official" library stc and in the core lib.
@@ -131,6 +141,10 @@ Changes in behaviour not resulting in compilation errors, please read this!
   or equivalent function should now be done into wxApp::OnEventLoopEnter().
   See wxApp::OnEventLoopEnter() and wxApp::OnEventLoopExit() docs for more info.
 
   or equivalent function should now be done into wxApp::OnEventLoopEnter().
   See wxApp::OnEventLoopEnter() and wxApp::OnEventLoopExit() docs for more info.
 
+- wxDialogs get wxEVT_SIZE events immediately after creation in wxMSW, as with
+  wxFrames. This means that this event handler may be called earlier than in
+  2.8, check that all the controls are initialized before using them in it.
+
 - wxLoadFileSelector() now allows the user to select existing files only.
 
 - Erase background events are now not generated at all when background style is
 - wxLoadFileSelector() now allows the user to select existing files only.
 
 - Erase background events are now not generated at all when background style is
@@ -178,7 +192,36 @@ Changes in behaviour not resulting in compilation errors, please read this!
 - 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
 - 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.
+  flag to it to revert to the old behaviour. It is also possible to use the
+  wxAutomationInstance_SilentIfNone flag to prevent the error message if no
+  currently running instances of this object are available.
+
+- Signature of wxDataViewCustomRenderer::StartDrag() virtual method changed.
+  You will need to change it in your derived renderer class too if you override
+  it.
+
+- wxDataViewCustomRenderer::Activate() and LeftClick() were replaced with the
+  new ActivateCell() method. You will need to change it in your derived
+  renderer class accordingly.
+
+- wxThread::Wait() and wxThread::Delete() used to dispatch the events while
+  waiting for the thread to exit in wxMSW. They still do it in default build
+  with WXWIN_COMPATIBILITY_2_8 defined but won't dispatch any events, i.e. the
+  default wait mode will become wxTHREAD_WAIT_BLOCK in the next wxWidgets
+  release so you are strongly encouraged to upgrade your code to stop relying
+  on this behaviour.
+
+- wxEVT_CHAR_HOOK events are not generated any more if the mouse is captured to
+  prevent the parent wxTopLevelWindow from interfering with the keyboard
+  handling of the window that captured the mouse.
+
+- wxDataViewCtrl::GetSelection() now returns invalid item in all ports (this
+  behaved differently in wxMSW and wxGTK/wxOSX before) if more than one item
+  is selected in a control with wxDV_MULTIPLE style.
+
+- wxEVT_COMMAND_MENU_SELECTED, MENU_OPEN and CLOSE events returned a menu from
+  GetEventObject() in all ports but the frame the menu was attached to in wxMSW.
+  Now all ports return the menu that was opened or closed as the event object.
 
 
 Changes in behaviour which may result in compilation errors
 
 
 Changes in behaviour which may result in compilation errors
@@ -187,6 +230,21 @@ Changes in behaviour which may result in compilation errors
 - WXWIN_COMPATIBILITY_2_4 doesn't exist any more, please update your code if
   you still relied on features deprecated since version 2.4
 
 - WXWIN_COMPATIBILITY_2_4 doesn't exist any more, please update your code if
   you still relied on features deprecated since version 2.4
 
+- WXWIN_COMPATIBILITY_2_6 still exists but is 0 by default in this release and
+  will be removed in 3.2. You can set it to 1 and rebuild wxWidgets to access
+  the old and deprecated symbols but please consider updating your code
+  instead. Here are replacements for some of the obsolete symbols:
+   + wxSAVE and wxOPEN -> wxFD_SAVE and wxFD_OPEN
+   + WXK_PRIOR and WXK_NEXT -> WXK_PAGEUP and WXK_PAGEDOWN
+   + wxRESIZE_BOX -> wxMAXIMIZE_BOX
+   + wxTHICK_FRAME -> wxRESIZE_BORDER
+   + wxPROCESS_ENTER and wxPASSWORD -> wxTE_PROCESS_ENTER and wxTE_PASSWORD
+   + EVT_SCROLL_ENDSCROLL -> EVT_SCROLL_CHANGED
+   + NewControlId -> wxWindow::NewControlId()
+   + wxFileHistory::GetNoHistoryFiles() -> wxFileHistory::GetCount()
+   + wxSizerItem::SetOption() -> wxSizerItem::SetProportion()
+   + wxSizer::Remove(wxWindow*) -> wxSizer::Detach()
+
 - wxDC classes hierarchy has changed, if you derived any classes from wxDC you
   need to review them as wxDC doesn't have any virtual methods any longer and
   uses delegation instead of inheritance to present different behaviours.
 - 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.
@@ -235,6 +293,12 @@ Changes in behaviour which may result in compilation errors
     error instead. This can be worked around by explicitly casting to const
     wxChar*: wxLogError(_("error: %s"), !err.empty() ? (const wxChar*)err.c_str() : "")
 
     error instead. This can be worked around by explicitly casting to const
     wxChar*: wxLogError(_("error: %s"), !err.empty() ? (const wxChar*)err.c_str() : "")
 
+- wxDateTime::ParseXXX() overloads don't return anything when called with
+  wxCStrData argument. If you need to test the parsing success, use a newer
+  overload taking wxString::const_iterator and returning bool or explicitly
+  select a narrow or wide char version to use by casting c_str() to either
+  "char*" or "wchar_t*". Or create a temporary wxString and parse it instead.
+
 - wxCtime() and wxAsctime() return char*; this is incompatible with Unicode
   build in wxWidgets 2.8 that returned wchar_t*.
 
 - wxCtime() and wxAsctime() return char*; this is incompatible with Unicode
   build in wxWidgets 2.8 that returned wchar_t*.
 
@@ -247,7 +311,7 @@ Changes in behaviour which may result in compilation errors
 
 - Virtual wxHtmlParser::AddText() takes wxString, not wxChar*, argument now.
 
 
 - Virtual wxHtmlParser::AddText() takes wxString, not wxChar*, argument now.
 
-- Functions that took wxChar* arguments that could by NULL in wxWidgets 2.8
+- Functions that took wxChar* arguments that could be NULL in wxWidgets 2.8
   are deprecated and passing NULL to them won't compile anymore, wxEmptyString
   must be used instead.
 
   are deprecated and passing NULL to them won't compile anymore, wxEmptyString
   must be used instead.
 
@@ -302,7 +366,7 @@ Changes in behaviour which may result in compilation errors
   without enclosing parentheses results in warnings from g++ with -Wparentheses,
   add parentheses around the if statement body to work around it.
 
   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 book and not a pointer/iterator. This shouldn't
+- 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.
   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.
@@ -312,6 +376,22 @@ Changes in behaviour which may result in compilation errors
   just "%" wxLongLongFmtSpec "x", i.e. simply remove wxT() from the strings you
   concatenate with it.
 
   just "%" wxLongLongFmtSpec "x", i.e. simply remove wxT() from the strings you
   concatenate with it.
 
+- wxST_MARKUP doesn't exist any more, use wxControl::SetLabelMarkup() instead.
+
+- wxComboBox::IsEmpty(), which was previously available in some ports (but not
+  wxMSW), doesn't exist any more, use either IsListEmpty() or IsTextEmpty().
+
+- wxSingleChoiceDialog ctors and Create() now have 2 overloaded versions: one
+  taking void** client data and the deprecated one taking char**. This can
+  result in compilation errors due to an ambiguity between them if you pass
+  NULL as client data. To fix this, cast NULL explicitly to "void**".
+
+- wxChoicebookEvent, wxListbookEvent, wxNotebookEvent, wxToolbookEvent and
+  wxTreebookEvent are now all synonyms for wxBookCtrlEvent. The existing code
+  using the old names continues to work but they can't be forward-declared
+  any more. Use wxBookCtrlEvent in your code if you need to forward-declare
+  it or just include the appropriate header instead of forward declaration.
+
 
 Deprecated methods and their replacements
 -----------------------------------------
 
 Deprecated methods and their replacements
 -----------------------------------------
@@ -377,6 +457,39 @@ Deprecated methods and their replacements
   with more expected semantics.
 - wxPORTRAIT and wxLANDSCAPE are now elements of wxPrintOrientation enum and
   wxPrintData::SetOrientation(int) takes wxPrintOrientation and not int.
   with more expected semantics.
 - wxPORTRAIT and wxLANDSCAPE are now elements of wxPrintOrientation enum and
   wxPrintData::SetOrientation(int) takes wxPrintOrientation and not int.
+- Second parameter of wxSlider::SetTickFreq(int n, int pos) is deprecated,
+  simply remove it from your code and use wxSlider::SetTickFreq(int n) as it
+  was never used anyhow.
+- wxSingleChoiceDialog ctor and Create() take "void**" client data pointer
+  instead of "char**". As the client data is typically untyped, you should
+  simply remove the casts to "char**" which you probably have in your code if
+  you use these functions.
+- wxDataViewCtrl::StartEditor(item, n) taking column index is now deprecated,
+  use EditItem(item, GetColumn(n)), which takes the column itself, instead.
+- wxWindow::MakeModal() is deprecated, use wxDialog::ShowModal() instead if
+  possible or wxWindowDisabler otherwise.
+
+
+Changes in behaviour visible to end users
+-----------------------------------------
+
+- In wxMSW wxSpinCtrl used to prevent the user from entering more digits than
+  could fit in its visible area. This was inconsistent with the other ports and
+  now the control scrolls if too much text is added.
+
+
+Build system changes
+--------------------
+
+- In wxMSW makefile builds, "_x64" is used instead of "_amd64" when compiling
+  for this architecture in the architecture-specific paths and library names.
+  TARGET_CPU can still be specified as "amd64" for compatibility but "x64"
+  should be used now.
+
+- Official wxMSW binaries, i.e. those built with OFFICIAL_BUILD=1, built with
+  MSVC now include the version of the compiler used and the architecture if
+  it's not the default "x86". E.g. a library built with MSVC 10 for amd64 is
+  called "wxbase294ud_vc110_amd64.dll" now.
 
 
 Major new features in this release
 
 
 Major new features in this release
@@ -411,7 +524,301 @@ Major new features in this release
   was added.
 
 
   was added.
 
 
-2.9.2:
+2.9.5: (released ????-??-??)
+----------------------------
+
+INCOMPATIBLE CHANGES SINCE 2.9.4:
+
+- The locale is not set automatically on startup any more, unlike in the
+  previous 2.9 versions (but like in 2.8). Use wxLocale (preferred) or call
+  wxApp::SetCLocale() from your overridden wxApp::Initialize() to restore the
+  old behaviour.
+
+All:
+
+- Add wxEvtHandler::CallAfter() method for asynchronous method calls.
+- Add support for symlinks to wxFileName (David Hart).
+- Add wxDIR_NO_FOLLOW flag for wxDir traversal (David Hart).
+- Allow testing for symlink/FIFO/socket existence in wxFileName (David Hart).
+- Many important bug fixes in wxFileSystemWatcher (David Hart).
+- Add new wxFSW_EVENT_ATTRIB and wxFSW_EVENT_UNMOUNT flags (David Hart).
+- Add separate read/written bytes counters and per-direction NOWAIT and WAITALL
+  flags to wxSocket (Rob Bresalier).
+- Add wxDir::Close() method (Silverstorm82).
+- Fix compilation of wxHash{Map,Set} with g++ 4.7 (Nathan Ridge).
+- Fix posting large amounts of data in wxHTTP (Platonides).
+- Add wxFile::ReadAll() for consistency with wxFFile.
+- Add wxDateTime::DiffAsDateSpan() and wxDateSpan::GetTotalMonths() (jonasr).
+- Add wxVector::assign() (Jonas Rydberg).
+- Added Nepali translation (Him Prasad Gautam).
+
+All (GUI):
+
+- Add support for wxAuiNotebook to XRC (Steven Lamerton).
+- Add support for wxRibbonBar and related controls to XRC (Armel Asselin).
+- Add wxBITMAP_PNG() macro similar to wxBITMAP() but for PNG files.
+- Add new wxSimplebook class.
+- Support hexadecimal numbers in wxSpinCtrl.
+- Respect window max size in wxBoxSizer (Nathan Ridge).
+- Add support for searching in wxWebView for MSW and GTK (Allonii).
+- Add generic wxFileSystem support to wxWebView with 
+  wxWebViewFSHandler (Nick Matthews).
+- Add possibility to hide and show again wxRibbonBar pages (wxBen).
+- Add wxRibbonBar pages highlighting (wxBen).
+- Add expand/collapse button to wxRibbonBar (rakeshthp).
+- Fix item data access in wxDataViewListCtrl (Kry).
+- Fix problem with floating maximized AUI panes (Laurent Poujoulat).
+- Add owned client data support to wxRibbonButtonBar. Notice that the client
+  data now must be set using the SetItemClient{Data,Object}() methods and not
+  when inserting the button (Laurent Poujoulat).
+- Add wxBitmapButton::NewCloseButton().
+- Add wxTextEntry::SelectNone() (troelsk).
+- Restore the original wxGrid col/row size when unhiding it (Michael Richards).
+- Fix text origin and extent computations in wxSVGFileDC (Neil Chittenden).
+- Show tooltips for the too long items in generic wxTreeCtrl (Steven Houchins).
+- Add wxStyledTextCtrl::AnnotationClearLine() (sentieshar).
+- Add support for background-color style to span element in wxHTML (gevorg).
+- Add limited support for CSS styles for <a> tags too in wxHTML (gevorg).
+- Add "inherit" to <font> XRC tag (Steffen Olszewski, Gero Meßsysteme GmbH).
+- Add support for wxALWAYS_SHOW_SB style to wxScrolled<> (Catalin Raceanu).
+- Add wxTreeCtrl::EnableBellOnNoMatch() (Jonathan Dagresta).
+- Implement incremental search in wxGenericListCtrl (Jonathan Dagresta).
+- Make TAB behaviour in wxGrid more flexible (Fulvio Senore).
+- Add missing styles support to wxWindow XRC hanlder (Steffen Olszewski).
+- Allow specifying all wxFlexGridSizer parameters in XRC (Steffen Olszewski).
+- Close wxLogWindow automatically if it's the last remaining top level window.
+- Implement clipping for wxSVGFileDC (Steve Benbow).
+- Added wxDirCtrl::GetPath() (troelsk).
+- Added wxEVT_COMMAND_DIRCTRL_CHANGED event (troelsk).
+- Added wxControl::GetSizeFromTextSize() (Manuel Martin).
+- Optionally allow showing tooltips for disabled ribbon buttons (wxBen).
+- Add wxTL_NO_HEADER style to wxTreeListCtrl (robboto).
+
+wxGTK:
+
+- Allow building wxGTK3 with Broadway backend (Kolya Kosenko).
+- Provide native implementation of wxNotificationMessage using libnotify.
+- Generate clipboard events for wxComboBox and not only wxTextCtrl.
+- Improve drag-and-drop of URLs.
+- Make key event handling consistent with wxMSW (John Rails).
+- Fix printing in landscape mode (Marcin Wojdyr).
+- Fix path selection in wx{File,Dir}Dialog with GTK+ > 2.24.10 (obfuscated).
+
+wxMSW:
+
+- Fix setting colours for the text part of wxComboBox (Igor Korot).
+- Add support for CURRENCY and SCODE types to OLE Automation helpers (PB).
+- Allow setting LCID used by wxAutomationObject (PB).
+- Better support for SAFEARRAY in OLE Automation code (PB).
+- Fix calling Iconize(false) on hidden top level windows (Christian Walther).
+- Don't send any events from wxSpinCtrl::SetRange() even if the value changed.
+- Display system drag images during drag and drop if available (PeterO).
+
+wxOSX/Cocoa:
+
+- Implement image support in wxNotebook (Malcolm MacLeod).
+- Add support for button mnemonics (joostn).
+- Implemented wxTextCtrl::SetDefaultStyle().
+
+
+2.9.4: (released 2012-07-09)
+------
+
+INCOMPATIBLE CHANGES SINCE 2.9.3
+
+- wxDataViewListCtrl doesn't delete its client data any more for compatibility
+  with wxListCtrl, use full wxDataViewCtrl if you don't need compatibility.
+
+All:
+
+- Added wxLogFormatter to allow customizing wxLog output (Sébastien Gallou).
+- Added wxFSInputStream for reading data from wxFileSystem (Armel Asselin).
+- Added "%z" support to wxDateTime::Format() and Parse() (Armel Asselin).
+- Add wxHTTP::SetPostBuffer(wxMemoryBuffer) and SetPostText() (Eran Ifrah).
+- Fix wrong time zone used in wxDateTime::UNow().
+- Fix performance of wxStdInputStream with MSVC8/9 (wsu).
+- Added wxFileName::Exists().
+- Implement wxThread::SetConcurrency() for POSIX systems (Igor Korot).
+- Fix deadlock due to too many events in Unix console apps (Lukasz Michalski).
+- Added wxDir::GetNameWithSep().
+- Allow unloading wxPluginLibrary objects in any order (manyleaves).
+- Fix passing strings with embedded NULs in wxThreadEvents (Steffen Olszewski).
+
+All (GUI):
+
+- Add wxGrid::Render() for printing wxGrid (John Roberts).
+- Added strike-through support to wxFont (Igor Korot).
+- Add support for horizontal mouse wheel events to MSW and GTK (Lauri Nurmi).
+- Fix infinite loop in wxHtmlEasyPrinting when trying to page break images
+  taller than the page height in wxHtmlEasyPrinting (Laurent Poujoulat).
+- Added wxFilePickerCtrl::SetInitialDirectory().
+- Added wxDataViewItemAttr::SetBackgroundColour() and implemented it in generic
+  wxDataViewCtrl (Andrew Xu).
+- Fix item alignment in icon view in the generic wxListCtrl.
+- Support font-family/style, text-decoration in wxHtmlWindow (Blake Oleander).
+- Show ribbon tools help strings in tooltips (John Roberts).
+- Improve row/column selection modes in wxGrid (joostn).
+- Send wxEVT_UPDATE_UI for wxRibbonButtonBar and wxRibbonToolBar (Emilien Kia).
+- Add InsertXXXButton() to wxRibbonButtonBar and wxRibbonToolBar (Emilien Kia).
+- Allow enabling/disabling and toggling tools in wxRibbonToolBar (Emilien Kia).
+- Add wxRibbonBar::DeletePage() and ClearPages() methods (Emilien Kia).
+- Implement support for extension button to wxRibbonPanel (Emilien Kia).
+- Fix multiple item selection in generic wxTreeCtrl (Igor Korot).
+- Implement wxMenuBar::IsEnabledTop() for all major ports (Igor Korot).
+- Implement best size calculation for report mode wxListCtrl.
+- Fix setting of the frame icon when using non-standard icon sizes (vid).
+- Implement wxDV_ROW_LINES in generic wxDataViewCtrl (RedCAT).
+- Added EVT_AUI_PANE_ACTIVATED event (Ronny Krüger).
+- Added support for page tooltips to wxAuiNotebook (Armel Asselin).
+- Added wxSplitterWindow::SetSashInvisible() (Armel Asselin).
+- Enable/disable "Window" menu items in AUI MDI correctly (wsu).
+- Added wxTimePickerCtrl::Get/SetTime().
+- Fix WXK_MENU handling in wxStyledTextCtrl under wxGTK (cantabile).
+- Added wxAcceleratorEntry::ToRawString() (Armel Asselin).
+- Added wxDataViewEvent::SetDragFlags() and GetDropEffect() (Friedrich).
+- Added support for fields and virtual attributes to wxRichTextCtrl.
+- Added custom text and dimension scaling to wxRichTextCtrl.
+- Added pixel font size capability to wxTextAttr and wxRichTextCtrl.
+- Fully implement wxStyledTextCtrl::PositionToXY() (troelsk).
+- Added wxDataViewListCtrl::{Set,Get}ItemData().
+- Added wxDataViewListCtrl::GetItemCount() (Kry).
+- Added support for Korean Johab and Vietnamese encodings (jank9201).
+- Fix off by 1 bug with setting font size in points in wxHTML (gevorg).
+- Fix return value of wxGenericListCtrl::InsertColumn() (Sebastian Walderich).
+
+GTK:
+
+- Added support for GTK+ 3 (John Chain and Paul Cornett)
+- Implement support for wxBG_STYLE_TRANSPARENT (Armel Asselin).
+- Implement stippled/hatched pens/brushes in wxGraphicsContext (Kit Bishop).
+- Fix wxNotebook best size calculation.
+- Implement wxDirDialog::Create() and wxFileDialog::Create() (vinayakgarg).
+- Fix const methods display in assert dialog (vinayakgarg).
+- Implement native tab art for wxAUI (Jens Lody and Teodor Petrov).
+- Fix pasting large amounts of text (Bradley Hawkins).
+- Show gstreamer errors if wxMediaCtrl fails to play file.
+- Fix wxGridCellEnumEditor mouse handling (Fulvio Senore).
+
+MSW:
+
+- Fixed regression with initial focus in the dialogs in 2.9.3.
+- Use new style directory selection dialog under Vista and later (PB).
+- Added support for wxEXEC_MAKE_GROUP_LEADER to wxExecute (tteras).
+- Set wxMenu being closed in wxEVT_MENU_CLOSE events (Marcin Malich).
+- Fix coordinates and Z-position for joystick events (Markus Juergens).
+- Fix size of the font returned by wxTextCtrl::GetStyle() (Igor Korot).
+- Add wxActiveXContainer::QueryClientSiteInterface and implement it in
+  wxWebViewIE to improve the default behaviour (Allonii).
+- Update stretchable spaces in wxToolBar after tool removal (Catalin Raceanu).
+- Implement wxGraphicsContext::SetInterpolationQuality() (Eric Jensen).
+- Fix coordinate handling in wxDC::Blit() when source DC is a DIB.
+- Fix handling of composite windows in wxToolTip (Armel Asselin).
+- Add VT_I8 support to wxAutomationObject (PB).
+- Fix wxListbook size calculations to avoid spurious scrollbars.
+- Fix code compilation with wxUSE_UNICODE_UTF8 (Kolya Kosenko).
+- Fix crash in wxTreeCtrl when calling GetSelection() from selection changed
+  event handler under Vista and later (sbrowne).
+- Fix text extent computation in wxGraphicsContext (juria90).
+
+OSX:
+
+- Provide native implementations of wxDatePickerCtrl and wxTimePickerCtrl.
+- Fix handling of positional parameters in wxPrintf() &c (David Connet).
+- Implement wxStackWalker.
+
+Univ:
+
+- Fix regression with read-only wxComboBox appearance (Jason Erb).
+
+Unix:
+
+- Fix bug with wxDir("/").GetName() returning empty string.
+
+
+
+2.9.3: (released 2011-12-14)
+------
+
+INCOMPATIBLE CHANGES SINCE 2.9.2
+
+- wxPanel::SetBackgroundBitmap() was removed, derive your class from
+  wxCustomBackgroundWindow and use its method with the same name instead.
+
+All:
+
+- Fix parsing of negated long options in wxCmdLineParser (roed_bis).
+- Fix crash in wxArray::insert() overload taking iterator range (wsu).
+- Added wxEventFilter class and wxEvtHandler::{Add,Remove}Filter().
+- Added convenient wxCmdLineParser::AddLong{Option,Switch}() wrappers.
+- Added wxStopWatch::TimeInMicro() and wxGetUTCTimeUSec() and improved
+  wxStopWatch precision.
+- Made wxGetLocalTimeMillis() really return local time, added
+  wxGetUTCTimeMillis() returning what this function used to return.
+- Added wxCriticalSection::TryEnter() (Catalin Raceanu).
+- Add support for OpenBSD to wxDialUpManager (brad0).
+- Added wxEXEC_HIDE_CONSOLE flag.
+
+All (GUI):
+
+- Added wxWebView library (Steven Lamerton & Auria, GSoC 2011 project).
+- Added wxTreeListCtrl class.
+- Added wxTimePickerCtrl class.
+- Added wxRichToolTip class.
+- Added documented, public wxNavigationEnabled<> class.
+- Added wxTextCtrl::PositionToCoords() (Navaneeth).
+- Added support for wxHELP button to wxMessageDialog.
+- Added wxBannerWindow class.
+- Allow setting window shape to arbitrary wxGraphicsPath.
+- Added wxTextEntry::AutoCompleteDirectories().
+- Support float, double and file name values in wxGenericValidator (troelsk).
+- Add support for custom numeric formats to wxGrid (Kinaou Hervé).
+- Fix keyboard navigation in wxGrid with hidden columns (ivan_14_32).
+- Add wxDataViewEvent::IsEditCancelled() (Allonii).
+- Send EVT_DATAVIEW_ITEM_CONTEXT_MENU events even when not clicking on an item.
+- Allow marking wxTreeBook nodes to expand initially in XRC (RedTide).
+- Added customizable wxDocManager::OnMRUFileNotExist() virtual method.
+- Fix stock labels when not using mnemonics for Chinese (cw.ahbong).
+- Added wxComboBox::IsListEmpty() and IsTextEmpty().
+- Added wxDataViewCtrl::GetSelectedItemsCount() and HasSelection().
+- Added wxFLP_SMALL and wxDIRP_SMALL styles.
+- Added support for saving alpha with TIFF images.
+- Added wxPersistentSplitter.
+- Derive wxAuiNotebook from wxBookCtrlBase (Steven Lamerton).
+- Fix tooltips in wxSearchCtrl and other composite controls (Catalin Raceanu).
+- Allow converting to and from wxGraphicsBitmap and wxImage directly.
+- Allow wxGraphicsFont creation without passing by wxFont.
+- Added wxDataViewCustomRenderer::ActivateCell().
+- Add "checked" property for toolbar tool elements in XRC.
+- Allow customization of the locations where persistent settings are stored.
+- Restore support for reusing ids more than 254 times (Armel Asselin).
+- Added wxIMAGE_OPTION_ORIGINAL_{WIDTH,HEIGHT} (Catalin Raceanu).
+- Add wxTopLevelWindow::SetRepresentedFilename() (Andrej Vodopivec).
+
+OSX:
+
+- Implement wxRegion::Equal() (Dr.Acula).
+- Implement wxFileType::GetOpenCommand().
+- wxGetOsVersion() now returns more sensible version numbers, e.g. 10 and 6
+  for OS X 10.6.
+- Added wxApp::MacOpenFiles and deprecated wxApp::MacOpenFile.
+- Implement wxEVT_CHAR_HOOK event generation in wxOSX/Cocoa.
+- Implemented wxComboBox::Popup() and Dismiss() in wxOSX/Cocoa (joostn).
+
+GTK:
+
+- Generate events for two auxiliary mouse buttons in wxGTK (Marcin Wojdyr).
+- Fix conflict between wxDIALOG_NO_PARENT and wxICON_EXCLAMATION (David Hart).
+
+MSW:
+
+- Added wxGCDC(wxEnhMetaFileDC) ctor (Marcin Wojdyr).
+- Added wxTopLevelWindow::MSWGetSystemMenu().
+- Multiline text controls no longer select all content when gaining focus from
+  the keyboard.
+- Implement wxStackWalker for x86-64 (Artur Bać).
+
+
+2.9.2: (released 2011-07-05)
 ------
 
 All:
 ------
 
 All:
@@ -423,6 +830,14 @@ All:
 - Added negatable command line switches (Armel Asselin).
 - Added wxVersionInfo and various GetLibraryVersionInfo() functions (troelsk).
 - Added wxNumberFormatter for dealing with thousands separators.
 - 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:
 
 
 Unix:
 
@@ -430,36 +845,63 @@ Unix:
 
 All (GUI):
 
 
 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 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).
 - 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).
 - 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 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).
-- Improve wxGTK print/page setup dialog (rafravago).
 - 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.
 - 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.
 - 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 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:
 
 
 GTK:
 
+- Improve print/page setup dialog (rafravago).
 - Switch to GtkTooltip from deprecated GtkTooltips (Emilien Kia).
 - 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:
 
 
 MSW:
 
@@ -470,13 +912,19 @@ MSW:
 - 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 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:
 ------
 
 
 
 2.9.1:
 ------
 
-INCOMPATIBLE CHANGE SINCE 2.9.0
+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
 
 - 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
@@ -569,7 +1017,7 @@ All (GUI):
   dismissed immediately as text control grabbed the focus).
 - wxPropertyGrid: added wxPG_EX_MULTIPLE_SELECTION.
 - wxPropertyGrid: added functions for editing property labels.
   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 behavior. Added
+- 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.
   new flags: wxPG_VFB_SHOW_MESSAGEBOX and wxPG_VFB_SHOW_MESSAGE_ON_STATUSBAR.
 - wxPropertyGrid: Added wxPropertyGrid::DedicateKey().
 - wxPropertyGrid: wxArrayStringProperty now uses wxEditableListBox.
@@ -643,6 +1091,7 @@ MSW:
 - 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.
 - 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:
 
 
 i18n:
 
@@ -895,7 +1344,7 @@ wxMSW:
 - 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.
 - Fix centering wxFileDialog and allow positioning it.
 - Allow centering wxMessageDialog on its parent window (troelsk).
 - Use vertical scrollbar in wxMessageDialog if it's too big to fit on screen.
-- Show resize gripper on resizeable dialogs (Kolya Kosenko).
+- 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.
 - 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.
@@ -1667,7 +2116,7 @@ All (GUI):
 - Fixed centering of top level windows on secondary displays.
 - Implemented wxDisplay::GetFromWindow() for platforms other than MSW.
 - UpdateUI handler can now show/hide the window too (Ronald Weiss).
 - Fixed centering of top level windows on secondary displays.
 - Implemented wxDisplay::GetFromWindow() for platforms other than MSW.
 - UpdateUI handler can now show/hide the window too (Ronald Weiss).
-- More than one filter allowed in in wxDocTemplate filter.
+- More than one filter allowed in wxDocTemplate filter.
 - Added wxListBox::HitTest().
 - Added wxDisplay::GetClientArea().
 - Indices and counts in wxControlWithItems derived API are unsigned.
 - Added wxListBox::HitTest().
 - Added wxDisplay::GetClientArea().
 - Indices and counts in wxControlWithItems derived API are unsigned.
@@ -2199,7 +2648,7 @@ All:
 - Unicode support in wxODBC is now fully implemented
 - A new data type specific to wxWidgets called SQL_C_WXCHAR has been introduced.
   SQL_C_WXCHAR should be used rather than SQL_C_CHAR to ensure transparent
 - Unicode support in wxODBC is now fully implemented
 - A new data type specific to wxWidgets called SQL_C_WXCHAR has been introduced.
   SQL_C_WXCHAR should be used rather than SQL_C_CHAR to ensure transparent
-  behavior between Unicode and non-unicode builds
+  behaviour between Unicode and non-unicode builds
 - BLOB example added to samples/db (thanks to Casey O'Donnell)
 - use wxStream::GetLength() instead of deprecated GetSize()
 - wxGetOsDescription() is now more precise (Olly Betts)
 - 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)
@@ -2346,7 +2795,7 @@ All:
 - sped up wxHTTP and wxFTP
 - added wxStringInput/OutputStreams
 - added wxFileConfig::Save(wxOutputStream)
 - sped up wxHTTP and wxFTP
 - added wxStringInput/OutputStreams
 - added wxFileConfig::Save(wxOutputStream)
-- fixed wxString's behavior with inserted null characters
+- fixed wxString's behaviour with inserted null characters
 
 All (GUI):
 
 
 All (GUI):
 
@@ -2612,7 +3061,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)
 - 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
 - fixed enumerating of entries/groups under '/' in wxRegConfig
 - added wxSYS_ICONTITLE_FONT (Andreas Pflug)
 - added wxPATH_NORM_SHORTCUT to wxFileName
@@ -2719,7 +3168,7 @@ All GUI ports:
 - added wxRenderer class allowing to customize the drawing of generic controls
 - added wxCLOSE_BOX style for dialogs and frames
 - added wxSplitterWindow and wxWizard handlers to XRC
 - 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)
 - added proportion to wxFlexGridSizer::AddGrowableRow/Col (Maxim Babitski)
 - added wxFlexGridSizer::SetFlexibleDirection() (Szczepan Holyszewski)
 - implemented GetEditControl for wxGenericTreeCtrl (Peter Stieber)
@@ -3480,7 +3929,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
 - 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:
 - fixed wxFrame::IsShown() which always returned TRUE before
 
 wxGTK: