]> git.saurik.com Git - wxWidgets.git/blobdiff - docs/changes.txt
suppress VC7.1 64 bit correctness warnings
[wxWidgets.git] / docs / changes.txt
index a0d54f66a4ce437cfcd215914c0c013a7849cfe3..22f80ef4bb06db75511a67bd9ef83b78d91ea963 100644 (file)
@@ -18,7 +18,91 @@ INCOMPATIBLE CHANGES SINCE 2.4.x
   exists but doesn't do anything any more, this behaviour is default now)
 
 ! wxWindow::m_font and m_backgroundColour/m_foregroundColour are no longer
   exists but doesn't do anything any more, this behaviour is default now)
 
 ! wxWindow::m_font and m_backgroundColour/m_foregroundColour are no longer
-  always set, use GetFont(), GetBack/ForegroundColour() to access them
+  always set, use GetFont(), GetBack/ForegroundColour() to access
+  them, and they will be dynamically determined if necessary.
+
+
+! The Sizers have had some fundamental internal changes in the 2.5.2
+  and 2.5.3 releases intended to make them do more of the "Right
+  Thing" but also be as backwards compatible as possible.  First a bit
+  about how things used to work:
+
+    * The size that a window had when Add()ed to the sizer was assumed
+      to be its minimal size, and that size would always be used by
+      default when calculating layout size and positions, and the
+      sizer itself would keep track of that minimal size.
+
+    * If the window item was Add()ed with the wxADJUST_MINSIZE flag
+      then when layout was calculated the item's GetBestSize would be
+      used to reset the minimal size that the sizer used.
+
+  The main thrust of the new Sizer changes was to make behaviour like
+  wxADJUST_MINSIZE be the default, and also to push the tracking of
+  the minimal size to the window itself (since it knows its own needs)
+  instead of having the sizer take care of it.  Consequently these
+  changes were made:
+
+    * The wxFIXED_MINSIZE flag was added to allow for the old
+      behaviour.  When this flag is used the size a window has when
+      Add()ed to the sizer will be treated as its minimal size and it
+      will not be readjusted on each layout.
+
+    * The min size stored in wxWindow and settable with SetSizeHints or
+      SetMinSize will by default be used by the sizer (if it was set)
+      as the minimal size of the sizer item.  If the minsize was not
+      set (or was only partially set) then the window's best size is
+      fetched and it is used instead of (or blended with) the minsize.
+      wxWindow:GetBestFittingSize was added to facilitate getting the
+      size to be used by the sizers.
+
+    * The best size of a window is cached so it doesn't need to
+      recaculated on every layout.  wxWindow::InvalidateBestSize was
+      added and should be called (usually just internally in control
+      methods) whenever something is done that would make the best
+      size change.
+
+    * All wxControls were changed to set the minsize to what is passed
+      to the constructor or Create method, and also to set the real
+      size of the control to the blending of the minsize and bestsize.
+      wxWindow::SetBestFittingSize was added to help with this,
+      although most controls don't need to call it directly because it
+      is called indirectly via the SetInitialSize called in the base
+      classes.
+
+  At this time, the only situation known not to work the same as
+  before is the following:
+
+    win = new SomeWidget(parent);
+    win->SetSize(SomeNonDefaultSize);
+    sizer->Add(win);
+
+  In this case the old code would have used the new size as the
+  minimum, but now the sizer will use the default size as the minimum
+  rather than the size set later.  It is an easy fix though, just move
+  the specification of the size to the constructor (assuming that
+  SomeWidget will set its minsize there like the rest of the controls
+  do) or call SetMinSize instead of SetSize.
+
+  In order to fit well with this new scheme of things, all wxControls
+  or custom controls should do the following things.  (Depending on
+  how they are used you may also want to do the same thing for
+  non-control custom windows.)
+
+    * Either override or inherit a meaningful DoGetBestSize method
+      that calculates whatever size is "best" for the control.  Once
+      that size is calculated then there should normally be a call to
+      CacheBestSize to save it for later use, unless for some reason
+      you want the best size to be recalculated on every layout.
+
+    * Any method that changes the attributes of the control such that
+      the best size will change should call InvalidateBestSize so it
+      will be recalculated the next time it is needed.
+
+    * The control's constructor and/or Create method should ensure
+      that the minsize is set to the size passed in, and that the
+      control is sized to a blending of the min size and best size.
+      This can be done by calling SetBestFittingSize.
+
 
 
 - no initialization/cleanup can be done in wxApp/~wxApp because they are
 
 
 - no initialization/cleanup can be done in wxApp/~wxApp because they are
@@ -57,15 +141,19 @@ INCOMPATIBLE CHANGES SINCE 2.4.x
   please fix your code -- it never worked correctly anyhow if you modified the
   objects returned by these methods so you should simply switch to using const
   methods.
   please fix your code -- it never worked correctly anyhow if you modified the
   objects returned by these methods so you should simply switch to using const
   methods.
+- wxWindow::GetFont() now returns wxFont object instead of reference
 - EVT_XXX macros are now type-safe; code that uses wrong type for event
   handler's argument will no longer compile.
 - Identical functionality of wxFileDialog::ParseWildcard,
   wxGenericDirCtrl::ParseFilter, Motif and MSW parsing native dialogs
   is now accessible in ::wxParseCommonDialogsFilter
 - EVT_XXX macros are now type-safe; code that uses wrong type for event
   handler's argument will no longer compile.
 - Identical functionality of wxFileDialog::ParseWildcard,
   wxGenericDirCtrl::ParseFilter, Motif and MSW parsing native dialogs
   is now accessible in ::wxParseCommonDialogsFilter
-- wxNotebookSizer and wxBookCtrlSizer are now deprecated -- the are no longer
+- wxNotebookSizer and wxBookCtrlSizer are now deprecated -- they are no longer
   needed, you can treat wxNotebook as any other control and put it directly
   into the sizer that was wxNotebookSizer's parent sizer in old code.
   needed, you can treat wxNotebook as any other control and put it directly
   into the sizer that was wxNotebookSizer's parent sizer in old code.
-
+- wxFile methods now return wxFileOffset which may be a 64 bit integer type,
+  even on 32 bit platforms, instead of off_t and so the return value of
+  wxFile::Length(), for example, shouldn't be assigned to off_t variable any
+  more (the compiler might warn you about this).
 
 
 DEPRECATED METHODS SINCE 2.4.x
 
 
 DEPRECATED METHODS SINCE 2.4.x
@@ -102,6 +190,7 @@ versions, please update your code to not use them.
 - The wxHIDE_READONLY flag for wxFileDialog was not implemented
   and has now been removed
 - wxTaskBarIcon::OnXXX() virtual methods: use events instead
 - The wxHIDE_READONLY flag for wxFileDialog was not implemented
   and has now been removed
 - wxTaskBarIcon::OnXXX() virtual methods: use events instead
+- obsolete and not used wxUSE_GENERIC_DIALOGS_IN_MSW has been removed
 
 
 OTHER CHANGES
 
 
 OTHER CHANGES
@@ -112,38 +201,84 @@ OTHER CHANGES
 
 All:
 
 
 All:
 
+- support for huge (>2 Gb) files (Tim Kosse)
 - number of fixes to wxPluginManager (Rick Brice, Hans Van Leemputten)
 - fixed memory leak in wxURL when using a proxy (Steven Van Ingelgem)
 - fixed bug in wxDateTime::Set(jdn) when DST was in effect
 - number of fixes to wxPluginManager (Rick Brice, Hans Van Leemputten)
 - fixed memory leak in wxURL when using a proxy (Steven Van Ingelgem)
 - fixed bug in wxDateTime::Set(jdn) when DST was in effect
+- fixed fatal bug in wxString when wxUSE_STL==1 (Kurt Granroth)
 - support msgids in charsets other than C and languages other than English
   (based on patch by Stefan Kowski)
 - support msgids in charsets other than C and languages other than English
   (based on patch by Stefan Kowski)
+- added wxMicroSleep() and wxMilliSleep() replacing deprecated wxUsleep()
+- basic UDP sockets support (Lenny Maiorani)
+- fixed wxDateTime::GetWeekDayName() for some dates (Daniel Kaps)
+- deprecated wxDateTime::SetToTheWeek() in favour of SetToWeekOfYear()
+- active mode support in wxFTP (Randall Fox)
+- sped up wxHTTP and wxFTP
+- added wxStringInput/OutputStreams
 
 All (GUI):
 
 
 All (GUI):
 
-- added wxTaskBarIcon::CreatePopupMenu which is now recommended way
-  of showing popup menu; calling wxTaskBarIcon::PopupMenu directly
+- added wxWindow::MoveBefore/AfterInTabOrder() to change tab navigation order
+- added wxTaskBarIcon::CreatePopupMenu which is now the recommended way
+  of showing a popup menu; calling wxTaskBarIcon::PopupMenu directly
   is discouraged
   is discouraged
-- Added ..._CMD_...(id) variants for wxGrid event table entry macros
-- Added wxWindow::Navigate for programmatic navigation to the next control.
+- added ..._CMD_...(id) variants for wxGrid event table entry macros
+- added wxWindow::Navigate for programmatic navigation to the next control
 - wxTextCtrl::OnChar now inserts a tab character if wxTE_PROCESS_TAB is set
 - added wxKeyEvent::GetUnicodeKey()
 - added wxKeyEvent::CmdDown() and wxMouseEvent::CmdDown()
 - wxTextCtrl::OnChar now inserts a tab character if wxTE_PROCESS_TAB is set
 - added wxKeyEvent::GetUnicodeKey()
 - added wxKeyEvent::CmdDown() and wxMouseEvent::CmdDown()
+- implemented wxListCtrl::FindItem() for non-MSW (Robin Stoll)
+- added status bar fields styles support (Tim Kosse)
+- added convenience functions wxSizer::AddSpacer() and
+  wxSizer::AddStretchSpacer() (as well as Prepend and Insert variants)
+- added samples/splash
+- added support for stock buttons
+- added wxTopLevelWindow::RequestUserAttention()
+- support for comma in contrib gizmo wxLEDNumberCtrl (Grant Likely)
+- recursive wxSizer::Show for subsizer and return value if element was found
+- added wxChoicebook control
+- smoother time estimation updates in wxProgressDialog (Christian Sturmlechner)
+- the XRC contrib library was moved to the core
+- wx(Choice/List/Note)book controls send CHANG(ED/ING) events in SetSelection
+- it is now possible to create a wxFont with given size in pixels (d2walter)
+- added wxTopLevelWindow::IsActive()
 
 Unix:
 
 - wxTaskBarIcon now supports freedesktop.org System Tray protocol
 - security fixes to wxSingleInstanceChecker
 
 Unix:
 
 - wxTaskBarIcon now supports freedesktop.org System Tray protocol
 - security fixes to wxSingleInstanceChecker
+- wx-config script was modified to allow choosing from multiple installed
+  builds of wxWidgets and to return flags/libs for selected libraries only
+- wx-config has new --version-full option
+
+wxMAC:
+
+- Fixed MLTE text control GetLineText and GetLineLength on OSX (RN)
+- Added OSX wxTaskBarIcon implementation for the OSX Dock (RN)
+- Added wxDrawerWindow class for drawer windows for OSX >= 10.2 (RN - from Jason Bagley)
+- Native font dialog on OSX 10.2 and greater (RN)
 
 wxGTK:
 
 
 wxGTK:
 
+- wxGTK uses GTK+ 2.x by default now, you have to pass --disable-gtk2 to
+  configure if you want to use GTK+ 1.2
 - fixed many rendering artifacts and wrong colours with lots of GTK+ themes
 - implemented wxColourDialog as native dialog
 - fixed many rendering artifacts and wrong colours with lots of GTK+ themes
 - implemented wxColourDialog as native dialog
+- implemented wxTextCtrl::HitTest() (GTK+ >= 2)
+- implemented wxTextCtrl::ScrollLines() and ScrollPages for GTK+ 2.x
 - wxTreeCtrl::GetCount() counts root as well now (compatible with MSW)
 - added support for wxCHK_3STATE style (GTK2 only)
 - implemented text underlining under GTK2
 - implemented wxFRAME_NO_TASKBAR style (GTK >= 2.2)
 - implemented support for wxSYS_DCLICK_?, wxSYS_DRAG_? and wxSYS_CURSOR_?
   in wxSystemSettings::GetMetric (Mart Raudsepp)
 - wxTreeCtrl::GetCount() counts root as well now (compatible with MSW)
 - added support for wxCHK_3STATE style (GTK2 only)
 - implemented text underlining under GTK2
 - implemented wxFRAME_NO_TASKBAR style (GTK >= 2.2)
 - implemented support for wxSYS_DCLICK_?, wxSYS_DRAG_? and wxSYS_CURSOR_?
   in wxSystemSettings::GetMetric (Mart Raudsepp)
+- implemented wxTopLevel::IsMaximized() for GTK+2 and WMs that implement
+  freedesktop.org's wm-spec (Mart Raudsepp)
+- wxEVT_CONTEXT_MENU is now generated for right mouse press, not release
+- implemented alpha channel support in wxBitmap
+- added native GTK+2 wxArtProvider implementation with ability to load
+  icons from icon theme in addition to recognized stock art
+- fixed crash on 64 bit platforms (Paul Cornett)
 
 wxMotif:
 
 
 wxMotif:
 
@@ -153,10 +288,28 @@ wxMSW:
 
 - fixed UNC paths handling in wxFileSystem (Daniel Nash)
 - set wxKeyEvent::m_uniChar in Unicode build
 
 - fixed UNC paths handling in wxFileSystem (Daniel Nash)
 - set wxKeyEvent::m_uniChar in Unicode build
+- support for alpha channel in toolbar bitmaps (Jurgen Doornik)
+- wxFileDialog can now be moved and centered (Randall Fox)
+- restored (and improved) possibility to use wx with MFC broken in 2.5.2
+- fixed wxTextCtrl::SetMaxLength for rich edit controls
+- fixed flat style for toolbars under XP, Windows Classic style
+- fixed truncation of transferred data in wxConnection under unicode build
+- wxChoice and wxComboBox dropdown background can be set now too (Adrian Lupei)
+- fixed wxMaximizeEvent generation in wxFrame
+- don't send duplicate EVT_COMBOBOX events whenever selection changes any more
+- implemented support for selecting printer bin (Steven Van Ingelgem)
+- fixed wxListCtrl::SetSingleStyle() which was broken since a few releases
+
+wxUniv/X11:
+
+- fixed fatal crash when opening a menu
 
 wxWinCE:
 
 
 wxWinCE:
 
-- added automatized but customizable handling of native SmartPhone menus
+- added native WinCE driven smartphone wxTextCtrl implementation using spinners
+- added native WinCE driven smartphone wxChoice implementation using spinners
+- added automatized but customizable handling of native WinCE driven smartphone menus
+- fixed wxRadioBox and wxStaticBox
 
 wxHTML:
 
 
 wxHTML:
 
@@ -276,7 +429,6 @@ All:
 
 All (GUI):
 
 
 All (GUI):
 
-- added wxListBook control
 - added 3-state checkboxes for MSW/Mac (Dimitri Schoolwerth)
 - added some support for C++ exceptions in the library (do read the manual!)
 - added wxListCtrl::GetViewRect()
 - added 3-state checkboxes for MSW/Mac (Dimitri Schoolwerth)
 - added some support for C++ exceptions in the library (do read the manual!)
 - added wxListCtrl::GetViewRect()
@@ -417,7 +569,7 @@ wxBase:
 All GUI ports:
 
 - added wxVScrolledWindow, wxVListBox and wxHtmlLbox classes
 All GUI ports:
 
 - added wxVScrolledWindow, wxVListBox and wxHtmlLbox classes
-- added wxListbook
+- added wxListbook control
 - added alpha channel support to wxImage
 - added wxRenderer class allowing to customize the drawing of generic controls
 - added wxCLOSE_BOX style for dialogs and frames
 - added alpha channel support to wxImage
 - added wxRenderer class allowing to customize the drawing of generic controls
 - added wxCLOSE_BOX style for dialogs and frames