This page contains the following errors:

error on line 870 at column 6: XML declaration allowed only at the start of the document

Below is a rendering of the page up to the first error.

git.saurik.com Git - wxWidgets.git/blame_incremental - docs/changes.txt
Send EVT_COMMAND_TEXT_UPDATED from the spin control when the text in a spin control...
[wxWidgets.git] / docs / changes.txt
... / ...
CommitLineData
1------------------------
2wxWidgets 2.5 Change Log
3------------------------
4
5INCOMPATIBLE CHANGES SINCE 2.4.x
6================================
7
8 Please take a few minutes to read the following list, especially
9 paying attention to the most important changes which are marked
10 with '!' in the first column.
11
12 Also please note that you should ensure that WXWIN_COMPATIBILITY_2_4
13 is defined to 1 if you wish to retain maximal compatibility with 2.4
14 series.
15
16! windows are no longer fully repainted when resized, use new style
17 wxFULL_REPAINT_ON_RESIZE to force this (wxNO_FULL_REPAINT_ON_RESIZE still
18 exists but doesn't do anything any more, this behaviour is default now)
19
20! wxWindow::m_font and m_backgroundColour/m_foregroundColour are no longer
21 always set, use GetFont(), GetBack/ForegroundColour() to access
22 them, and they will be dynamically determined if necessary.
23
24
25! The Sizers have had some fundamental internal changes in the 2.5.2
26 and 2.5.3 releases intended to make them do more of the "Right
27 Thing" but also be as backwards compatible as possible. First a bit
28 about how things used to work:
29
30 * The size that a window had when Add()ed to the sizer was assumed
31 to be its minimal size, and that size would always be used by
32 default when calculating layout size and positions, and the
33 sizer itself would keep track of that minimal size.
34
35 * If the window item was Add()ed with the wxADJUST_MINSIZE flag
36 then when layout was calculated the item's GetBestSize would be
37 used to reset the minimal size that the sizer used.
38
39 The main thrust of the new Sizer changes was to make behaviour like
40 wxADJUST_MINSIZE be the default, and also to push the tracking of
41 the minimal size to the window itself (since it knows its own needs)
42 instead of having the sizer take care of it. Consequently these
43 changes were made:
44
45 * The wxFIXED_MINSIZE flag was added to allow for the old
46 behaviour. When this flag is used the size a window has when
47 Add()ed to the sizer will be treated as its minimal size and it
48 will not be readjusted on each layout.
49
50 * The min size stored in wxWindow and settable with SetSizeHints or
51 SetMinSize will by default be used by the sizer (if it was set)
52 as the minimal size of the sizer item. If the minsize was not
53 set (or was only partially set) then the window's best size is
54 fetched and it is used instead of (or blended with) the minsize.
55 wxWindow:GetBestFittingSize was added to facilitate getting the
56 size to be used by the sizers.
57
58 * The best size of a window is cached so it doesn't need to
59 recaculated on every layout. wxWindow::InvalidateBestSize was
60 added and should be called (usually just internally in control
61 methods) whenever something is done that would make the best
62 size change.
63
64 * All wxControls were changed to set the minsize to what is passed
65 to the constructor or Create method, and also to set the real
66 size of the control to the blending of the minsize and bestsize.
67 wxWindow::SetBestFittingSize was added to help with this,
68 although most controls don't need to call it directly because it
69 is called indirectly via the SetInitialSize called in the base
70 classes.
71
72 At this time, the only situation known not to work the same as
73 before is the following:
74
75 win = new SomeWidget(parent);
76 win->SetSize(SomeNonDefaultSize);
77 sizer->Add(win);
78
79 In this case the old code would have used the new size as the
80 minimum, but now the sizer will use the default size as the minimum
81 rather than the size set later. It is an easy fix though, just move
82 the specification of the size to the constructor (assuming that
83 SomeWidget will set its minsize there like the rest of the controls
84 do) or call SetMinSize instead of SetSize.
85
86 In order to fit well with this new scheme of things, all wxControls
87 or custom controls should do the following things. (Depending on
88 how they are used you may also want to do the same thing for
89 non-control custom windows.)
90
91 * Either override or inherit a meaningful DoGetBestSize method
92 that calculates whatever size is "best" for the control. Once
93 that size is calculated then there should normally be a call to
94 CacheBestSize to save it for later use, unless for some reason
95 you want the best size to be recalculated on every layout.
96
97 * Any method that changes the attributes of the control such that
98 the best size will change should call InvalidateBestSize so it
99 will be recalculated the next time it is needed.
100
101 * The control's constructor and/or Create method should ensure
102 that the minsize is set to the size passed in, and that the
103 control is sized to a blending of the min size and best size.
104 This can be done by calling SetBestFittingSize.
105
106
107
108- no initialization/cleanup can be done in wxApp/~wxApp because they are
109 now called much earlier/later than before; please move any exiting code
110 from there to wxApp::OnInit()/OnExit()
111- also, OnExit() is not called if OnInit() fails
112- finally the program exit code is OnRun() return value, not OnExit() one
113- wxTheApp can't be assigned to any longer, use wxApp::SetInstance() instead
114- wxFileType::GetIcon() returns wxIconLocation, not wxIcon
115- wxColourDatabase is not a wxList any more, use AddColour to add new colours
116- wxWindow::Clear() is now called ClearBackground()
117- pointer returned by wxFont::GetNativeFontInfo() must not be deleted now
118- wxMouseEvent::Moving() doesn't return true if mouse is being dragged any more
119- (most) controls now inherit parents colours by default, override
120 ShouldInheritColours() to return false if you don't want this to happen
121- wxApp::SendIdleEvent() now takes 2 arguments
122- wxTabView::GetLayers() changed return type from wxList& to wxTabLayerList&
123 (when WXWIN_COMPATIBILITY_2_4 == 0)
124- wxID_SEPARATOR (id used for the menu separators) value changed from -1 to -2
125- wxGetNumberFromUser() is now in separate wx/numdlg.h, not wx/textdlg.h
126- wxChoice and wxCombobox now handle their size in the same way as in all the
127 other ports under MSW, new code is actually correct but different from weird
128 stuff they were doing before so the behaviour of your programs might change
129- wxTaskBarIcon objects must now be destroyed before the application can exit.
130 Previously, the application terminated if there were no top level windows;
131 now it terminates if there are no top level windows or taskbar icons left.
132- wxZlibInputStream is not by default compatible with the output of the
133 2.4.x version of wxZlibOutputStream. However, there is a compatibilty mode,
134 switched on by passing wxZLIB_24COMPATIBLE to the constructor.
135- when WXWIN_COMPATIBILITY_2_4 == 0 wxHashTable uses a new implementation
136 not using wxList keyed interface (the same used when wxUSE_STL == 1),
137 the only incompatibility being that Next() returns a wxHashTable::Node*
138 instead of a wxNode*.
139- non-const wxDC methods GetBackground(), GetBrush(), GetFont() and GetPen()
140 as well as wxWindow methods GetFont() and GetCursor() don't exist any more,
141 please fix your code -- it never worked correctly anyhow if you modified the
142 objects returned by these methods so you should simply switch to using const
143 methods.
144- wxWindow::GetFont() now returns wxFont object instead of reference
145- EVT_XXX macros are now type-safe; code that uses wrong type for event
146 handler's argument will no longer compile.
147- Identical functionality of wxFileDialog::ParseWildcard,
148 wxGenericDirCtrl::ParseFilter, Motif and MSW parsing native dialogs
149 is now accessible in ::wxParseCommonDialogsFilter
150- wxNotebookSizer and wxBookCtrlSizer are now deprecated -- they are no longer
151 needed, you can treat wxNotebook as any other control and put it directly
152 into the sizer that was wxNotebookSizer's parent sizer in old code.
153- wxFile methods now return wxFileOffset which may be a 64 bit integer type,
154 even on 32 bit platforms, instead of off_t and so the return value of
155 wxFile::Length(), for example, shouldn't be assigned to off_t variable any
156 more (the compiler might warn you about this).
157- wxListItem::m_data is now of type wxUIntPtr, not long, for compatibility
158 with 64 bit systems
159
160
161DEPRECATED METHODS SINCE 2.4.x
162==============================
163
164Deprecated methods may still be used but will disappear in future wxWidgets
165versions, please update your code to not use them.
166
167- wxDocManager::GetNoHistoryFiles() renamed to GetHistoryFilesCount()
168- wxSizer::Remove(wxWindow *), use Detach() instead [it is more clear]
169- wxSizer::Set/GetOption(): use Set/GetProportion() instead
170- wxKeyEvent::KeyCode(): use GetKeyCode instead
171- wxList::Number, First, Last, Nth: use GetCount, GetFirst/Last, Item instead
172- wxNode::Next, Previous, Data: use GetNext, GetPrevious, GetData instead
173- wxListBase::operator wxList&(): use typesafe lists instead
174- wxTheFontMapper: use wxFontMapper::Get() instead
175- wxStringHashTable: use wxHashMap instead
176- wxHashTableLong: use wxHashMap instead
177- wxArrayString::GetStringArray: use wxCArrayString or alternative wxWidgets
178 methods taking wxArrayString
179- wxArrayString::Remove(index, count): use RemoveAt instead
180- wxTreeItemId conversion to long is deprecated and shouldn't be used
181- wxTreeCtrl::GetFirst/NextChild() 2nd argument now has type wxTreeItemIdValue
182 and not long, please change declarations of "cookie"s in your code
183 accordingly -- otherwise your code won't work on 64 bit platforms
184- [MSW only] wxWindow::GetUseCtl3D(), GetTransparentBackground() and
185 SetTransparent() as well as wxNO_3D and wxUSER_COLOURS styles
186- wxList keyed interface: use wxHashMap instead
187- wxColourDatabase::FindColour(): use Find() instead (NB: different ret type)
188- wxHashTable::Next: use wxHashTable::Node* or
189 wxHashTable::compatibility_iterator to store the return
190 value
191- wxWave class; use wxSound instead
192- The wxHIDE_READONLY flag for wxFileDialog was not implemented
193 and has now been removed
194- wxTaskBarIcon::OnXXX() virtual methods: use events instead
195- obsolete and not used wxUSE_GENERIC_DIALOGS_IN_MSW has been removed
196
197
198OTHER CHANGES
199=============
200
2012.5.3
202-----
203
204All:
205
206- support for huge (>2 Gb) files (Tim Kosse)
207- number of fixes to wxPluginManager (Rick Brice, Hans Van Leemputten)
208- fixed memory leak in wxURL when using a proxy (Steven Van Ingelgem)
209- fixed bug in wxDateTime::Set(jdn) when DST was in effect
210- fixed fatal bug in wxString when wxUSE_STL==1 (Kurt Granroth)
211- support msgids in charsets other than C and languages other than English
212 (based on patch by Stefan Kowski)
213- added wxMicroSleep() and wxMilliSleep() replacing deprecated wxUsleep()
214- basic UDP sockets support (Lenny Maiorani)
215- fixed wxDateTime::GetWeekDayName() for some dates (Daniel Kaps)
216- deprecated wxDateTime::SetToTheWeek() in favour of SetToWeekOfYear()
217- active mode support in wxFTP (Randall Fox)
218- sped up wxHTTP and wxFTP
219- added wxStringInput/OutputStreams
220
221All (GUI):
222
223- added wxWindow::MoveBefore/AfterInTabOrder() to change tab navigation order
224- added wxTaskBarIcon::CreatePopupMenu which is now the recommended way
225 of showing a popup menu; calling wxTaskBarIcon::PopupMenu directly
226 is discouraged
227- added ..._CMD_...(id) variants for wxGrid event table entry macros
228- added wxWindow::Navigate for programmatic navigation to the next control
229- wxTextCtrl::OnChar now inserts a tab character if wxTE_PROCESS_TAB is set
230- added wxKeyEvent::GetUnicodeKey()
231- added wxKeyEvent::CmdDown() and wxMouseEvent::CmdDown()
232- implemented wxListCtrl::FindItem() for non-MSW (Robin Stoll)
233- added status bar fields styles support (Tim Kosse)
234- added convenience functions wxSizer::AddSpacer() and
235 wxSizer::AddStretchSpacer() (as well as Prepend and Insert variants)
236- added samples/splash
237- added support for stock buttons
238- added wxTopLevelWindow::RequestUserAttention()
239- support for comma in contrib gizmo wxLEDNumberCtrl (Grant Likely)
240- recursive wxSizer::Show for subsizer and return value if element was found
241- added wxChoicebook control
242- smoother time estimation updates in wxProgressDialog (Christian Sturmlechner)
243- the XRC contrib library was moved to the core
244- wx(Choice/List/Note)book controls send CHANG(ED/ING) events in SetSelection
245- it is now possible to create a wxFont with given size in pixels (d2walter)
246- added wxTopLevelWindow::IsActive()
247
248Unix:
249
250- wxTaskBarIcon now supports freedesktop.org System Tray protocol
251- security fixes to wxSingleInstanceChecker
252- wx-config script was modified to allow choosing from multiple installed
253 builds of wxWidgets and to return flags/libs for selected libraries only
254- wx-config has new --version-full option
255
256wxMAC:
257
258- Fixed MLTE text control GetLineText and GetLineLength on OSX (RN)
259- Added OSX wxTaskBarIcon implementation for the OSX Dock (RN)
260- Added wxDrawerWindow class for drawer windows for OSX >= 10.2 (RN - from Jason Bagley)
261- Native font dialog on OSX 10.2 and greater (RN)
262
263wxGTK:
264
265- wxGTK uses GTK+ 2.x by default now, you have to pass --disable-gtk2 to
266 configure if you want to use GTK+ 1.2
267- fixed many rendering artifacts and wrong colours with lots of GTK+ themes
268- implemented wxColourDialog as native dialog
269- implemented wxTextCtrl::HitTest() (GTK+ >= 2)
270- implemented wxTextCtrl::ScrollLines() and ScrollPages for GTK+ 2.x
271- wxTreeCtrl::GetCount() counts root as well now (compatible with MSW)
272- added support for wxCHK_3STATE style (GTK2 only)
273- implemented text underlining under GTK2
274- implemented wxFRAME_NO_TASKBAR style (GTK >= 2.2)
275- implemented support for wxSYS_DCLICK_?, wxSYS_DRAG_? and wxSYS_CURSOR_?
276 in wxSystemSettings::GetMetric (Mart Raudsepp)
277- implemented wxTopLevel::IsMaximized() for GTK+2 and WMs that implement
278 freedesktop.org's wm-spec (Mart Raudsepp)
279- wxEVT_CONTEXT_MENU is now generated for right mouse press, not release
280- implemented alpha channel support in wxBitmap
281- added native GTK+2 wxArtProvider implementation with ability to load
282 icons from icon theme in addition to recognized stock art
283- fixed crash on 64 bit platforms (Paul Cornett)
284
285wxMotif:
286
287- added support for wxCHK_3STATE style (3 state checkbox)
288
289wxMSW:
290
291- fixed UNC paths handling in wxFileSystem (Daniel Nash)
292- set wxKeyEvent::m_uniChar in Unicode build
293- support for alpha channel in toolbar bitmaps (Jurgen Doornik)
294- wxFileDialog can now be moved and centered (Randall Fox)
295- restored (and improved) possibility to use wx with MFC broken in 2.5.2
296- fixed wxTextCtrl::SetMaxLength for rich edit controls
297- fixed flat style for toolbars under XP, Windows Classic style
298- fixed truncation of transferred data in wxConnection under unicode build
299- wxChoice and wxComboBox dropdown background can be set now too (Adrian Lupei)
300- fixed wxMaximizeEvent generation in wxFrame
301- don't send duplicate EVT_COMBOBOX events whenever selection changes any more
302- implemented support for selecting printer bin (Steven Van Ingelgem)
303- fixed wxListCtrl::SetSingleStyle() which was broken since a few releases
304
305wxUniv/X11:
306
307- fixed fatal crash when opening a menu
308
309wxWinCE:
310
311- added native WinCE driven smartphone wxTextCtrl implementation using spinners
312- added native WinCE driven smartphone wxChoice implementation using spinners
313- added automatized but customizable handling of native WinCE driven smartphone menus
314- fixed wxRadioBox and wxStaticBox
315
316wxHTML:
317
318- added support for nested index entries and index entries pointing to more
319 than one page to wxHtmlHelpController
320
321
3222.5.2
323-----
324
325All:
326
327- Hindi translation added (Dhananjaya Sharma)
328- Brazilian Portuguese translation added (E. A. Tacao)
329- wxDynamicCast() now uses static_cast<wxObject *> internally and so using it
330 with anything not deriving from wxObject will fail at compile time (instead
331 of run-time) now
332- when wxUSE_STL == 1 and STL provides quasi-standard hash_map/hash_set,
333 wxHashMap/wxHashSet are just typedefs for them. This makes impossible
334 to forward declare these classes.
335
336All (GUI):
337
338- wxHtmlWindow now delays image scaling until rendering,
339 resulting in much better display of scaled images
340- Added UpdateSize to wxSplitterWindow to allow layout while hidden
341- implemented Freeze/Thaw() for wxGenericTreeCtrl (Kevin Hock)
342- support for KOI8-U encoding added (Yuriy Tkachenko)
343- The old wxADJUST_MINSIZE behaviour is now the default behaviour for
344 sizer items that are windows. This means that GetAdjustedBestSize
345 will now be called by default to determine the minimum size that a
346 window in a sizer should have. If you want to still use the initial
347 size (and not the BestSize) then use the wxFIXED_MINSIZE flag. When
348 windows are added to a sizer their initial size is made the window's
349 min size using SetSizeHints, and calls to wxSizer::SetItemMinSize
350 are also forwarded to SetSizeHints for window items.
351- added wxRegEx::GetMatchCount()
352- it is now possible to display images in wxHtmlListBox
353
354wxMSW:
355
356- wxWindow::Freeze()/Thaw() can now be nested
357- Added wxSP_NO_XP_THEME style to wxSplitterWindow to switch off
358 XP theming (some applications look bad without 3D borders)
359- wxMenuBar::GetLabelTop() doesn't include '&'s in the label any more
360- wxRegConf couldn't read global settings without admin privileges and didn't
361 even try to do it by default -- now it does
362- wxTaskBarIcon must be explicitly destroyed now, otherwise the application
363 won't exit even though there are no top level windows
364- wxFileName::GetModificationTime() works with opened files too now
365- wxDC::GetClippingBox() now works even for clipping regions created by Windows
366- fixed wxFileDataObject in Unicode build (Alex D)
367- subdindented paragraphs support (Tim Kosse)
368
369wxGTK:
370
371- added support for wxTE_RIGHT and wxTE_CENTRE styles under GTK2 (Mart Raudsepp)
372
373wxMotif:
374
375- removed wxMenuItem::DeleteSubMenu()
376- wxButtons use Motif default size, which is smaller than it used to be
377 and closer to wxMSW/wxGTK look. This can be disabled by setting
378 motif.largebuttons system option to 1 (see wxSystemOptions).
379
380wxUniv/X11:
381
382- implemented DrawRoundedRectangle() (clawghoul)
383
384wxHTML:
385
386- improved tables and lists layout algorithms (Tim Kosse)
387- <div> handling fix (Xavier Nodet)
388
389Unix:
390
391- fixed priorities of mailcap entries (David Hart)
392- added "wx-config --libs=std,<extra>" syntax (i.e. support for "std")
393
394wxODBC:
395
396- Full Unicode support is now available
397- BLOB support is working
398
399
4002.5.1
401-----
402
403All:
404
405