X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/b46b1d59d6f69ad80dcf5955375578a6504d100a..3214ac5ad1d515d917b8273c2d2af4c4287b7a8b:/docs/changes.txt?ds=inline diff --git a/docs/changes.txt b/docs/changes.txt index ff1fcb5b43..fa3672d775 100644 --- a/docs/changes.txt +++ b/docs/changes.txt @@ -5,6 +5,57 @@ INCOMPATIBLE CHANGES SINCE 2.8.x ================================ +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. + 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: + + 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. + + +- 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). + +- 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. + + +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! --------------------------------------------------------------------------- @@ -26,12 +77,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. + + 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. + - 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 @@ -59,6 +118,9 @@ Changes in behaviour which may result in compilation errors 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: @@ -66,37 +128,117 @@ Changes in behaviour which may result in compilation errors 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 by 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 can't be + implemented correctly any longer because automatically generated ids are not + necessarily allocated consecutively any more. Use GetChildren() to find the + next/previous control sibling instead. + + 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 + 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. + +- Events loops, timers and sockets can now be used in wxBase, without GUI. + 2.9.0 ----- All: -- Added wxJoin() and wxSplit() functions (Francesco Montorsi) -- Added wxMutex::LockTimeout() (Aleksandr Napylov) -- Added wxMemoryInputStream(wxInputStream&) ctor (Stas Sergeev) -- Implemented wxMemoryInputStream::CanRead() -- 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 (experimental) IPv6 support to wxSocket (Arcen) +- 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 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(). +- 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, wxSharedPtr class templates +- Added wxVector class templates + +All (Unix): + +- Added wx-config --optional-libs command line option (John Labenski). All (GUI): -- Added wxH[V]ScrolledWindow (Brad Anderson, Bryan Petty) -- 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 wxDataViewCtrl class and helper classes +- 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 +- Added wxDC::StretchBlit() for wxMac and wxMSW (Vince Harron). +- Added support for drop down toolbar buttons (Tim Kosse). +- Added support for labels for toolbar controls (Vince Harron). +- Added wxMessageDialog::SetMessage() and SetExtendedMessage(). +- Added wxListCtrl::Set/GetColumnsOrder() (Yury Voronov) +- Added wxWindow::AlwaysShowScrollbars() (Julian Scheid) +- Added wxMouseEvent::GetClickCount() (Julian Scheid) +- Added wxBG_STYLE_TRANSPARENT background style (Julian Scheid) +- Added XRCSIZERITEM() macro for obtaining sizers from XRC (Brian Vanderburg II) +- New and improved wxFileCtrl (Diaa Sami and Marcin Wojdyr) - Added wxEventBlocker class (Francesco Montorsi). - Added wxFile/DirPickerCtrl::Get/SetFile/DirName() (Francesco Montorsi). - Added wxSizerFlags::Top() and Bottom(). @@ -104,47 +246,181 @@ All (GUI): - 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) +- 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.). wxGTK: -- Support for markup and ellipsization in wxStaticText (Francesco Montorsi) -- Native implementation for wxHyperlinkCtrl (Francesco Montorsi) -- Native keyboard navigation implementation -- Don't overwrite primary selection with clipboard and vice versa +- Support for markup and ellipsization in wxStaticText (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). -- Setting foreground colour of single line wxTextCtrl now works -- Pass current control text to EVT_TEXT handler for wxSpinCtrl (John Ratliff) -- Added gtk.tlw.can-set-transparency system option +- 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 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) +- Better IconRef support (Alan Shouls). +- Added support for changing button labels in wxMessageDialog (Gareth Simpson). +- Fix duplicate (empty) help menu in non-English programs (Andreas Jacobs). +- Allow accelerators to be used with buttons too (Ryan Wilcox). +- Support resource forks in wxCopyFile() (Hank Schultz). +- Implement wxLocale::GetInfo() using CFLocale +- Added native wxCollapsiblePane 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 natively, especially under XP (Marcin Malich) +- wxCheckListBox now looks more native, especially under XP (Marcin Malich). +- Allow tooltips longer than 64 (up to 128) characters in wxTaskBarIcon +- Fix centering wxFileDialog and allow positioning it +- Allow centering wxMessageDialog on its parent window (troelsk) +- Implement support for display enumeration under WinCE (Vince Harron) wxX11: -- Added mouse wheel support (David Hart) -- Make Enter key activate the default button (David Hart) +- Added mouse wheel support (David Hart). +- Make Enter key activate the default button (David Hart). + + +2.8.8 +----- + +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 +----- + +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