]> git.saurik.com Git - wxWidgets.git/blobdiff - docs/changes.txt
fixing file paths after renaming
[wxWidgets.git] / docs / changes.txt
index 0f13127a54598a2ca2e1b4b79b4e57600f7dd220..672870f8872f7d49ea024ccf0e82792dba6dc9a6 100644 (file)
@@ -5,6 +5,12 @@
 INCOMPATIBLE CHANGES SINCE 2.8.x
 ================================
 
+
+        Notice that these changes are described in more details in
+        the "Changes Since wxWidgets 2.8" section of the manual,
+        please read it if the explanation here is too cryptic.
+
+
 Unicode-related changes
 -----------------------
 
@@ -14,9 +20,10 @@ in the manual for more details but here are the most important incompatible
 changes:
 
 - Many wxWidgets functions taking "const wxChar *" have been changed to take
-  either "const wxString&" so that they accept both Unicode and ANSI strings.
-  and the argument can't be NULL or "const char *" if the strings are always
-  ANSI but may be NULL. This change is normally backwards compatible except:
+  either "const wxString&" (so that they accept both Unicode and ANSI strings;
+  the argument can't be NULL anymore in this case) or "const char *" (if the
+  strings are always ANSI; may still be NULL). This change is normally
+  backwards compatible except:
 
   a) Virtual functions: derived classes versions must be modified to take
      "const wxString&" as well to make sure that they continue to override the
@@ -37,15 +44,26 @@ changes:
   to work with "wxChar *" before use "void *" now (some int parameters were
   also changed to size_t). While wxIPC_TEXT can still be used to transfer 7
   bit text, the new wxIPC_UTF8TEXT format is used for transferring wxStrings.
+  Also notice that connection classes should change the parameter types of
+  their overridden OnExecute() or override a more convenient OnExec() instead.
 
 
-wxODBC library removal
-----------------------
+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 futher 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!
 ---------------------------------------------------------------------------
@@ -68,6 +86,20 @@ Changes in behaviour not resulting in compilation errors, please read this!
   sizes of the sizer items to be in the same proportion as the items
   proportions to return to the old behaviour.
 
+- wxWindow::Freeze/Thaw() are not virtual any more, if you overrode them in
+  your code you need to override DoFreeze/Thaw() instead now.
+
+- wxCalendarCtrl has native implementation in wxGTK, but it has less features
+  than the generic one. The native implementation is used by default, but you
+  can still use wxGenericCalendarCtrl instead of wxCalendarCtrl in your code if
+  you need the extra features.
+
+- wxDocument::FileHistoryLoad() and wxFileHistory::Load() now take const
+  reference to wxConfigBase argument and not just a reference, please update
+  your code if you overrode these functions and change the functions in the
+  derived classes to use const reference as well.
+
+
 Changes in behaviour which may result in compilation errors
 -----------------------------------------------------------
 
@@ -96,14 +128,26 @@ Changes in behaviour which may result in compilation errors
   and has to be replaced with this:
      switch (str[i].GetValue()) { ... }
 
-- Return type of wxString::c_str() is now wxCStrData struct and not
-  const wxChar*. wxCStrData is implicitly convertible to const char* and
-  const wchar_t*, so this only presents a problem if the compiler cannot
-  convert the type. In particular, Borland C++ and DigitalMars compilers
-  don't correctly convert operator?: operands to the same type and fail with
-  compilation error instead. This can be worked around by explicitly casting
-  to const wxChar*:
-     wxLogError(_("error: %s"), !err.empty() ? (const wxChar*)err.c_str() : "")
+- Return type of wxString::c_str() is now a helper wxCStrData struct and not
+  const wxChar*. wxCStrData is implicitly convertible to both "const char *"
+  and "const wchar_t *", so this only presents a problem if the compiler cannot
+  apply the conversion. This can happen in 2 cases:
+  
+  + There is an ambiguity because the function being called is overloaded to
+    take both "const char *" and "const wchar_t *" as the compiler can't choose
+    between them. In this case you may use s.wx_str() to call the function
+    matching the current build (Unicode or not) or s.mb_str() or s.wc_str() to
+    explicitly select narrow or wide version of it.
+
+    Notice that such functions are normally not very common but unfortunately
+    Microsoft decided to extend their STL with standard-incompatible overloads
+    of some functions accepting "const wchar_t *" so you may need to replace
+    some occurrences of c_str() with wx_str() when using MSVC 8 or later.
+
+  + Some compilers, notably Borland C++ and DigitalMars, don't correctly
+    convert operator?: operands to the same type and fail with compilation
+    error instead. This can be worked around by explicitly casting to const
+    wxChar*: wxLogError(_("error: %s"), !err.empty() ? (const wxChar*)err.c_str() : "")
 
 - wxCtime() and wxAsctime() return char*; this is incompatible with Unicode
   build in wxWidgets 2.8 that returned wchar_t*.
@@ -117,7 +161,7 @@ Changes in behaviour which may result in compilation errors
 
 - Virtual wxHtmlParser::AddText() takes wxString, not wxChar*, argument now.
 
-- Functions that took wxChar* arguments that could by NULL in wxWidgets 2.8.
+- Functions that took wxChar* arguments that could by NULL in wxWidgets 2.8
   are deprecated and passing NULL to them won't compile anymore, wxEmptyString
   must be used instead.
 
@@ -128,7 +172,7 @@ Changes in behaviour which may result in compilation errors
 
 - 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.
@@ -138,6 +182,13 @@ Changes in behaviour which may result in compilation errors
   necessarily allocated consecutively any more. 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.
 
 Deprecated methods and their replacements
 -----------------------------------------
@@ -153,6 +204,28 @@ Deprecated methods and their replacements
 - 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
+- wxMenuItem::GetLabel has been deprecated in favour of wxMenuItem::GetItemLabelText
+- wxMenuItem::GetText has been deprecated in favour of wxMenuItem::GetItemLabel
+- wxMenuItem::GetLabelFromText has been deprecated in favour of wxMenuItem::GetLabelText 
+- wxMenuItem::SetText has been deprecated in favour of wxMenuItem::SetItemLabel
+- wxBrush's, wxPen's SetStyle() and GetStyle() as well as the wxBrush/wxPen ctor now take
+  respectively a wxBrushStyle and a wxPenStyle value instead of a plain "int style";
+  use the new wxBrush/wxPen style names (wxBRUSHSTYLE_XXX and wxPENSTYLE_XXX) instead
+  of the old deprecated wxXXX styles (which however are still available).
+- EVT_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.
+
 
 
 Major new features in this release
@@ -174,11 +247,15 @@ Major new features in this release
 All:
 
 - Added (experimental) IPv6 support to wxSocket (Arcen)
+- Add support for wxExecute(wxEXEC_ASYNC) in wxBase (Lukasz Michalski)
+- Added wxXLocale class and xlocale-like functions using it
 - Allow loading message catalogs from wxFileSystem (Axel Gembe)
 - Added 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().
@@ -197,6 +274,16 @@ 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 wxVector<T> 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.
 
 All (Unix):
 
@@ -204,15 +291,23 @@ All (Unix):
 
 All (GUI):
 
+- Added wxDataViewCtrl class and helper classes
+- Provide native implementation of wxCalendarCtrl under wxMSW and wxGTK
 - 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 multisample (anti-aliasing) support to wxGLCanvas (Olivier Playez).
+- 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)
+- 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)
@@ -247,8 +342,29 @@ All (GUI):
   behaviour of GetNextSibling() consistent between wxMSW and generic versions.
 - Merged wxRichTextAttr and wxTextAttrEx into wxTextAttr, and added a font table
   to wxRichTextBuffer to reduce wxFont consumption and increase performance.
-- Optimize wxGenericTreeCtrl::Collapse/ExpandAllChildren(). (Szczepan Holyszewski)
+- Optimize wxGenericTreeCtrl::Collapse/ExpandAllChildren()
+  (Szczepan Holyszewski).
 - Added <scrollrate> 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<T> 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<wxImage> compilation (Leonardo Fernandes).
+- Added wxImage::GetType() (troelsk).
 
 wxGTK:
 
@@ -264,6 +380,8 @@ wxGTK:
 - 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).
 
 wxMac:
 
@@ -273,6 +391,7 @@ wxMac:
 - Allow accelerators to be used with buttons too (Ryan Wilcox).
 - Support resource forks in wxCopyFile() (Hank Schultz).
 - Implement wxLocale::GetInfo() using CFLocale
+- Added native wxCollapsiblePane
 
 wxMSW:
 
@@ -280,7 +399,12 @@ wxMSW:
 - Return the restored window size from GetSize() when window is minimized.
 - wxCheckListBox now looks more native, especially under XP (Marcin Malich).
 - Allow tooltips longer than 64 (up to 128) characters in wxTaskBarIcon
-- Fix centering wxFileDialog
+- Fix centering wxFileDialog and allow positioning it
+- Allow centering wxMessageDialog on its parent window (troelsk)
+- Show resize gripper on resizeable dialogs (Kolya Kosenko)
+- Implement support for display enumeration under WinCE (Vince Harron)
+- Use different Win32 class names in different wx instances (Thomas Hauk)
+- Support multiline labels for wxCheckBox.
 
 wxX11:
 
@@ -294,10 +418,28 @@ wxX11:
 All:
 
 - Fixed bug with parsing some dates in wxDateTime (Bob Pesner)
+- Fixed bug with parsing negative time zones in wxDateTime::ParseRfc822Date()
 
 All (GUI):
 
 - Added wxWindow::GetNextSibling() and GetPrevSibling()
+- Improve wximage::ResampleBox() (Mihai Ciocarlie)
+- Implemented ScrollList() in generic wxListCtrl (Tim Kosse)
+- Fixed wxXmlResource::GetText() to convert data to current locale's
+  charset in ANSI build.
+
+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
+
+wxGTK:
+
+- Return false from wxEventLoop::Dispatch() if gtk_main_quit() was called and
+  so the loop should exit (Rodolfo Schulz de Lima)
 
 
 2.8.7