]> git.saurik.com Git - wxWidgets.git/blobdiff - docs/changes.txt
name the enum with wxDir flags to make it easier to find it from the docs.
[wxWidgets.git] / docs / changes.txt
index bb79146572e22073302a493eda0afbac1ee72ebd..cf53c69a10bd078c5d153688ddd4134a667c42fa 100644 (file)
@@ -104,6 +104,16 @@ Changes in behaviour not resulting in compilation errors, please read this!
 
 - 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.
+
+
 Changes in behaviour which may result in compilation errors
 -----------------------------------------------------------
 
@@ -114,6 +124,11 @@ Changes in behaviour which may result in compilation errors
   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
@@ -181,9 +196,9 @@ Changes in behaviour which may result in compilation errors
   derives from wxObject; instead of using wxDynamicCast with wxVariantData you
   can use the macro wxDynamicCastVariantData with the same arguments.
 
-- wxWindow::Next/PrevControlId() don't exist any more as they can't be
+- wxWindow::Next/PrevControlId() don't exist any more as they couldn't be
   implemented correctly any longer because automatically generated ids are not
-  necessarily allocated consecutively any more. Use GetChildren() to find the
+  necessarily allocated consecutively now. Use GetChildren() to find the
   next/previous control sibling instead.
 
 - Calling wxConfig::Write() with an enum value will fail to compile because
@@ -194,6 +209,24 @@ Changes in behaviour which may result in compilation errors
   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.
+
+- Now wxWidgets at startup in debug builds checks if all wxEvent-derived classes
+  correctly implement the Clone() function, logging a warning if they don't.
+  A correct implementation for MyCustomEventClass::Clone() is simply:
+    virtual wxEvent *Clone() const  { return new MyCustomEventClass(*this); }
+
+- Global wxPendingEvents and wxPendingEventsLocker objects were removed.
+  You may use wxEventLoopBase::SuspendProcessingOfPendingEvents instead of
+  locking wxPendingEventsLocker now.
+
+
 Deprecated methods and their replacements
 -----------------------------------------
 
@@ -210,14 +243,18 @@ Deprecated methods and their replacements
   "Attribute" instead of "Property" or "Prop" in their names.
 - wxConnection::OnExecute() is not formally deprecated yet but new code should
   use simpler OnExec() version which is called with wxString argument
-- wxMenuItem::GetLabel has been deprecated in favour of wxMenuItem::GetItemLabelText
-- wxMenuItem::GetText has been deprecated in favour of wxMenuItem::GetItemLabel
-- wxMenuItem::GetLabelFromText has been deprecated in favour of wxMenuItem::GetLabelText
-- wxMenuItem::SetText has been deprecated in favour of wxMenuItem::SetItemLabel
-- wxBrush's, wxPen's SetStyle() and GetStyle() as well as the wxBrush/wxPen ctor now take
-  respectively a wxBrushStyle and a wxPenStyle value instead of a plain "int style";
-  use the new wxBrush/wxPen style names (wxBRUSHSTYLE_XXX and wxPENSTYLE_XXX) instead
-  of the old deprecated wxXXX styles (which however are still available).
+- Various wxMenuItem methods were deprecated in favour of more consisently
+  named new versions:
+    . GetLabel() is now GetItemLabelText()
+    . GetText() is not GetItemLabel()
+    . GetLabelFromText() is now GetLabelText()
+    . SetText() is now SetItemLabel()
+- wxBrush's, wxPen's SetStyle() and GetStyle() as well as the wxBrush/wxPen
+  ctor now take respectively a wxBrushStyle and a wxPenStyle value instead of a
+  plain "int style"; use the new wxBrush/wxPen style names (wxBRUSHSTYLE_XXX
+  and wxPENSTYLE_XXX) instead of the old deprecated wxXXX styles.
+- EVT_GRID_CELL_CHANGE was deprecated, use EVT_GRID_CELL_CHANGED instead if you
+  don't veto the event in its handler and EVT_GRID_CELL_CHANGING if you do.
 - EVT_CALENDAR_DAY event has been deprecated, use EVT_CALENDAR_SEL_CHANGED.
 - EVT_CALENDAR_MONTH and EVT_CALENDAR_YEAR events are deprecated,
   use EVT_CALENDAR_PAGE_CHANGED which replaces both of them.
@@ -230,6 +267,13 @@ Deprecated methods and their replacements
   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.
 
 
 Major new features in this release
@@ -242,7 +286,24 @@ Major new features in this release
 - wxWidgets may now use either wchar_t (UTF-16/32) or UTF-8 internally,
   depending on what is optimal for the target platform.
 
-- Events loops, timers and sockets can now be used in wxBase, without GUI.
+- New propgrid library containing wxPropertyGrid and related classes.
+
+- Many enhancements to wxDataViewCtrl.
+
+- Event loops, timers and sockets can now be used in wxBase, without GUI.
+
+- 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.0
@@ -264,6 +325,8 @@ All:
 - Added wxMutex::LockTimeout() (Aleksandr Napylov).
 - Added wxMemoryInputStream(wxInputStream&) ctor (Stas Sergeev).
 - Implemented wxMemoryInputStream::CanRead().
+- Implemented wxMemoryFSHandler::FindFirst/Next().
+- Added wxEventLoop::DispatchTimeout().
 - Added wxEXEC_BLOCK flag (Hank Schultz).
 - Add support for wxStream-derived classes to wxRTTI (Stas Sergeev).
 - Added wxStreamBuffer::Truncate() (Stas Sergeev).
@@ -279,7 +342,9 @@ All:
   Linnakangas).
 - wxVariant::Unshare allows exclusive allocation of data that must be shared,
   if the wxVariantData::Clone function is implemented.
-- Added wxWeakRef<T>, wxScopedPtr<T>, wxSharedPtr<T> class templates
+- Added wxWeakRef<T>, wxScopedPtr<T>, wxScopedArray<T>, wxSharedPtr<T> 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<T> class templates
 - Added wxON_BLOCK_EXIT_SET() and wxON_BLOCK_EXIT_NULL() to wx/scopeguard.h.
 - Added wxEvtHandler::QueueEvent() replacing AddPendingEvent() and
@@ -291,39 +356,63 @@ All:
 - 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 wxXmlResource::GetResourceNode().
 
 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
-- Provide native implementation of wxCalendarCtrl under wxMSW and wxGTK
-- Added {wxTextCtrl,wxComboBox}::AutoComplete() and AutoCompleteFileNames()
+- Added wxDataViewCtrl class and helper classes.
+- Integrated wxPropertyGrid in wxWidgets itself (Jaakko Salli).
+- Provide native implementation of wxCalendarCtrl under wxMSW and wxGTK.
+- Added wxHeaderCtrl and allow using it in wxGrid.
+- Added wxRearrangeList, wxRearrangeCtrl and wxRearrangeDialog.
+- Added {wxTextCtrl,wxComboBox}::AutoComplete() and AutoCompleteFileNames().
 - Added wxH[V]ScrolledWindow (Brad Anderson, Bryan Petty).
-- Added wxNotificationMessage class for non-intrusive notifications
-- Added wxWindow::Show/HideWithEffect()
-- Added wxWrapSizer (Arne Steinarson)
-- Added wxSpinCtrlDouble (John Labenski)
+- Added 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 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 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 wxListCtrl::Set/GetColumnsOrder() (Yury Voronov).
 - Made wxLogWindow thread-safe (Barbara Maren Winkler).
-- Added wxWindow::AlwaysShowScrollbars() (Julian Scheid)
-- Added wxMouseEvent::GetClickCount() (Julian Scheid)
-- Added wxBG_STYLE_TRANSPARENT background style (Julian Scheid)
-- Added XRCSIZERITEM() macro for obtaining sizers from XRC (Brian Vanderburg II)
-- New and improved wxFileCtrl (Diaa Sami and Marcin Wojdyr)
+- 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().
@@ -362,7 +451,7 @@ All (GUI):
 - Added support for resizing wxWizard bitmaps to the current page height,
   via SetBitmapPlacement, SetBitmapBackgroundColour and SetMinimumBitmapWidth.
   Also made it easier to derive from wxWizard and override behaviour.
-- Made wxSizer::Fit() set the client size of the target window
+- Made wxSizer::Fit() set the client size of the target window.
 - Add support for wxDatePickerCtrl in wxGenericValidator (Herry Ayen Yang)
 - Added wxWindow::HasFocus().
 - Added wxGLCanvas::IsDisplaySupported().
@@ -383,10 +472,33 @@ All (GUI):
 - 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 <th> element contents in bold in wxHTML.
+- Added wxGrid::{Set,Get}{Row,Col}Sizes() methods (Andrey Putrin).
 
 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).
@@ -416,6 +528,7 @@ wxMSW:
 - Fixed infinite loop in wxThread::Wait() in console applications.
 - Return the restored window size from GetSize() when window is minimized.
 - wxCheckListBox now looks more native, especially under XP (Marcin Malich).
+- wxCheckListBox now also supports use of client data (Marcin Malich).
 - Allow tooltips longer than 64 (up to 128) characters in wxTaskBarIcon
 - Fix centering wxFileDialog and allow positioning it.
 - Allow centering wxMessageDialog on its parent window (troelsk).
@@ -428,6 +541,12 @@ wxMSW:
   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).
 
 wxX11:
 
@@ -439,6 +558,91 @@ wxDFB:
 - Implement wxBitmap ctor from XBM data.
 
 
+2.8.9
+-----
+
+All:
+
+- Optimize wxString::Replace() for single character arguments.
+- Updated Hindi translation (Priyank Bolia).
+- Use tr1::unordered_{map,set} for wxHash{Map,Set} implementation if available
+  in STL build; in particular do not use deprecated hash_{map,set} which
+  results in a lot of warnings from newer g++ (Jan Van Dijk and Pete Stieber).
+
+All (GUI):
+
+- Added support for reading alpha channel in BMP format (Kevin Wright).
+- Fixed help viewer bug whereby the splitter sash in wxHtmlHelpWindow could
+  go underneath the left-hand pane, permanently, after resizing the
+  help window.
+- Fixed wxHTML default font size for printing to be 12pt regardless of the
+  platform, instead of depending on GUI toolkit's screen configuration.
+- Support wxDP_ALLOWNONE style in generic wxDatePickerCtrl version.
+- Set wxKeyEvent::m_uniChar correctly in the events generated by generic
+  wxListCtrl (Mikkel S).
+- Fix changing size of merged cells in wxGrid (Laurent Humbertclaude).
+- Fixed wrapping bug in wxRichTextCtrl when there were images present;
+  now sets the cursor to the next line after pressing Shift+Enter.
+- Fixed Cmd+Back, Cmd+Del word deletion behaviour in wxRichTextCtrl.
+- Fix crash when reading malformed PCX images.
+- Fix bug with wrong transparency in GIF animations (troelsk).
+- Store palette information for XPM images in wxImage (troelsk).
+- Fixed selection bugs and auto list numbering in wxRichTextCtrl.
+- Significantly optimize wxGrid::BlockToDeviceRect() for large grids (kjones).
+- Introduced new wxAuiToolBar class for better integration and look-and-feel.
+- Fix a crash in wxAuiFrameManager when Update() was called in between mouse-up
+  and mouse-down events
+- wxAUI: added various NULL-ptr asserts.
+- Fixed problem with Floatable(false) not working in wxAuiFrameManager.
+- Fixed maximize bug in wxAUI.
+- Allow period in link anchors in wxHTML.
+- Fixed memory corruption in wxHTML when parsing "&;" in the markup.
+- Fixed event type in EVT_GRID_CMD_COL_MOVE and EVT_GRID_COL_MOVE.
+- wxGrid doesn't steal focus when hiding editor any more (Tom Eckert).
+
+All (Unix):
+
+- MIME types reading fixed when running under GNOME, reading .desktop
+  files and also the default application list.
+- Added filesys.no-mimetypesmanager system option so that applications that
+  must load an XRC file at program startup don't have to incur the
+  mime types manager initialization penalty.
+
+wxMSW:
+
+- Potentially incompatible change: wxExecute() arguments are now quoted if they
+  contain spaces and existing quotes are escaped with a backslash. However, to
+  preserve compatibility, the argument is unchanged if it is already quoted.
+  Notice that this behaviour will change in wxWidgets 3.0 where all arguments
+  will be quoted, please update your code now if you are affected and use only
+  wxWidgets 2.8.9 or later.
+- Fix keyboard support in wxSpinCtrl broken in 2.8.8.
+- Compile fix for WinCE in window.cpp (no VkKeyScan in Windows CE).
+- Support disabling items before adding them to the menu (Christian Walther).
+- Allow to call SetFont(wxNullFont) to reset the font to default.
+- Implement UUID::operator==() and !=() (SQLAware Corporation).
+- Fixed long standing (introduced in 2.6.3) bug which resulted in always
+  creating a DIB and not DDB in wxBitmap(const wxImage&) ctor.
+- Fix the bug with wxFileDialog not being shown at all if the default file name
+  was invalid.
+- Fix hang in keyboard navigation code with radio buttons under Windows 2000.
+- Implement wxWinINetInputStream::GetSize() (spicerno).
+- Always copy "has alpha" flag when copying bitmaps (SQLAware Corporation).
+
+wxGTK:
+
+- Fixed masking of disabled bitmaps in wxMenuItem and wxStaticBitmap.
+- Fixed generation of events for an initially empty wxDirPickerCtrl.
+- Fixed detection of Meta key state so that NumLock isn't misdetected
+  as Meta (requires GTK+ 2.10).
+- Fix changing font/colour of label in buttons with images (Marcin Wojdyr).
+
+wxMac:
+
+- Fixed a glitch where clicking on a scrollbar (but not moving the scrollbar)
+  would cause the window to scroll.
+
+
 2.8.8
 -----