X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/6ad0a7d52fc2a0ec7a434d1c7edb6e00d09853a4..e06b0afba5b1acf36241d33982d5d88cccefa2e8:/docs/changes.txt diff --git a/docs/changes.txt b/docs/changes.txt index 5805088ffb..fe6bb73f8d 100644 --- a/docs/changes.txt +++ b/docs/changes.txt @@ -5,6 +5,48 @@ 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 library 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. + + Changes in behaviour not resulting in compilation errors, please read this! --------------------------------------------------------------------------- @@ -19,6 +61,13 @@ Changes in behaviour not resulting in compilation errors, please read this! other platforms in the future), use wxWindow::Navigate() or NavigateIn() instead. +- Sizers distribute only the extra space between the stretchable items + according to their proportions and not all available space. We believe the + new behaviour corresponds better to user expectations but if you did rely + on the old behaviour you will have to update your code to set the minimal + sizes of the sizer items to be in the same proportion as the items + proportions to return to the old behaviour. + Changes in behaviour which may result in compilation errors ----------------------------------------------------------- @@ -52,6 +101,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: @@ -59,12 +111,45 @@ 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. + Major new features in this release ---------------------------------- @@ -75,18 +160,49 @@ Major new features in this release 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 (experimental) IPv6 support to wxSocket (Arcen) +- 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 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. + +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 labels for toolbar controls (Vince Harron) +- Added {wxTextCtrl,wxComboBox}::AutoComplete() and AutoCompleteFileNames() +- 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 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(). @@ -94,55 +210,165 @@ 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) +- 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) 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. 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 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 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 (GUI): + +- Added wxWindow::GetNextSibling() and GetPrevSibling() + + +2.8.7 +----- + +All: + +- Fixed bug with default proxy destruction in wxURL (Axel Gembe). + +wxMSW: + +- Correct (harmless) warnings given for forward-declared DLL-exported classes + by mingw32 4.2 (Tim Stahlhut). + +wxGTK: + +- Added gtk.window.force-background-colour wxSystemOptions option to work around + a background colour bug in the gtk-qt theme under KDE. +- Implemented wxGetClientDisplayRect() correctly for wxGTK and X11-based ports. + + +2.8.6 +----- + +All: + +- Fixed another bug in wxFileConfig when deleting entries (Axel Gembe) +- Added Portuguese translation (Antonio Cardoso Martins) + + +2.8.5 +----- + +All (GUI): + +- Added colour normalization to PNM image handler (Ray Johnston) +- Fixed selecting part of word from right to left in wxHTML (Michael Hieke) +- Selecting text in wxHTML with character precision was made easier, it's + enough to select half of a character (Michael Hieke) +- Significantly improved startup times of XRC-based applications using + embedded resources on Unix (requires resources recompilation) +- Fixed freeing of "static" alpha data in wxImage (Axel Gembe) +- Don't invalidate the font in SetNativeFontInfo[Desc]() if the string is + invalid, to conform to the documented behaviour (Langhammer) +- Fixed wxXPMHandler::SaveFile for images with more than 92 colors. + +wxMSW: + +- Correct problem with page setup dialog when using landscape mode +- Added msw.font.no-proof-quality system option, see manual for description +- Fix appearance of notebook with non-top tabs under Windows Vista +- Fixed bug with symbol resolving in wxStackWalker (Axel Gembe) +- Fixed showing busy cursor for disabled windows and during wxExecute() +- Set the string of wxEVT_COMMAND_CHECKLISTBOX_TOGGLED events (Luca Cappa) +- Fix problems with timers on SMP machines in wxAnimationCtrl (Gennady) + +wxGTK: + +- Setting foreground colour of single line wxTextCtrl now works +- More work on setting defaults in GNOME print dialogs. +- Also made landscape printing work as per wxMSW. +- Add support for clipping in GNOME print backend. +- Speed up wxBitmap::Rescale() +- Add right button event for wxToolbar's tools (Tim Kosse) +- Don't unconditionally add wxCAPTION style to wxMiniFrame +- Generate wxEVT_COMMAND_LIST_END_LABEL_EDIT event even if label didn't change +- Fix WX_GL_STEREO attribute handling (Tristan Mehamli) +- Fix wxThread::SetPriority() when the thread is running (Christos Gourdoupis) +- Fixed off by 1 bug in wxDC::GradientFillLinear() (Tim Kosse) 2.8.4 ----- +All: + +- Fix bug in wxFileConfig when recreating a group (Steven Van Ingelgem) +- Fix wxStringOutputStream::Write() in Unicode build when the argument + overlaps UTF-8 characters boundary +- Account for lines without newline at the end in wxExecute() + All (Unix): - Handle socket shutdown by the peer correctly in wxSocket (Tim Kosse) -- Fix bug in wxFileConfig when recreating a group (Steven Van Ingelgem) + +All (GUI): + +- Allow status bar children in XRC (Edmunt Pienkowski) +- Fix memory leak in wxWizard when not using sizers for the page layout +- Added wxListCtrl::SetItemPtrData() +- wxHTML: Apply table background colour between the cells too (Michael Hieke) wxMSW: @@ -154,6 +380,7 @@ wxMSW: - Fixed bug in wxThread::Wait() in console applications introduced in 2.8.3 - Support right-aligned/centered owner drawn items in wxListCtrl (troelsk) - Compilation fixed with WXWIN_COMPATIBILITY_2_6==0 +- Fix wxComboCtrl colours under Windows Vista (Kolya Kosenko) wxGTK: @@ -161,9 +388,14 @@ wxGTK: - Fix wxNO_BORDER style for wxRadioBox (David Hart) - Fix wxTextCtrl::GetLineText() for empty lines (Marcin Wojdyr) +wxMac: + +- Fix wxComboBox::SetSelection(wxNOT_FOUND) (Adrian Secord) + wxUniv: - Fix wxTextCtrl::SetSelection(-1, -1) to behave as documented (Anders Larsen) +- Fix wxComboBox::SetSelection(wxNOT_FOUND) - Fix setting background colour for controls with transparent background