]> git.saurik.com Git - wxWidgets.git/blame_incremental - docs/changes.txt
added some macros to define version strings from version number (instead of having...
[wxWidgets.git] / docs / changes.txt
... / ...
CommitLineData
1----------------------------
2wxWindows 2.5/2.6 Change Log
3----------------------------
4
5INCOMPATIBLE CHANGES SINCE 2.4.x
6================================
7
8OTHER CHANGES
9=============
10
112.5.0
12-----
13
14All:
15
16- added wxCLOSE_BOX style for dialogs and frames
17- added wxDateSpan::operator==() and !=() (Lukasz Michalski)
18- use true/false throughout the library instead of TRUE/FALSE
19- wxStopWatch::Start() resumes the stop watch if paused, as per the docs
20- added wxDirTraverser::OnOpenError() to customize the error handling
21- added wxArray::SetCount()
22- wxFile, wxFFile, wxTextFile and wxTempFile now all use UTF-8 encoding
23 by default in Unicode mode
24- bug in wxDateTime with timezones on systems with tm_gmtoff in struct tm fixed
25- added wx/math.h (John Labenski)
26
27wxBase:
28
29- added Watcom makefiles
30
31All GUI ports:
32
33- added wxSplitterWindow handler to XRC
34- added proportion to wxFlexGridSizer::AddGrowableRow/Col (Maxim Babitski)
35- added wxFlexGridSizer::SetFlexibleDirection() (Szczepan Holyszewski)
36- implemented GetEditControl for wxGenericTreeCtrl (Peter Stieber)
37- improved contrib/utils/convertrc parsing (David J. Cooke)
38- fixed handling of URLs and filenames in wxFileSystem
39- implemented alignment for wxGrid bool editor and renderer
40- support wxListCtrl columns alignment for all platforms and not just MSW
41- added wxToolBar Add/InsertTool(tool) (Janusz Piwowarski)
42- WXR resources can now be used in Unicode builds
43- it is now possible to use several wxFileHistory objects in the same menu
44 by giving them different base IDs (Dimitri Schoolwerth)
45
46- changed to type-safe wxSizerItemList for wxSizer child items
47 Deprecated:
48 wxSizer::Remove( wxWindow* )
49 - it does not function as Remove would usually be expected to
50 and destroy the window, use Detach instead
51 wxSizer::GetOption(),
52 wxSizer::SetOption()
53 - wxSizer 'option' parameter was renamed 'proportion' to better
54 reflect its action, use Get/SetProportion instead
55 wxKeyEvent::KeyCode()
56 - use GetKeyCode instead
57 wxList:: Number, First, Last, Nth
58 - use typesafe GetCount, GetFirst, GetLast, Item instead
59 wxNode:: Next, Previous, Data
60 - use typesafe Get* instead
61 wxListBase::operator wxList&()
62 - use typesafe lists instead
63
64Unix:
65
66- fixed compilation on systems with zlib installed but < 1.1.3 version
67- fixed compilation on Solaris 7 with large files support enabled
68
69wxGTK:
70
71- added native wxMessageDialog implementation for GTK+2 build
72- fixed wxMenu::Remove (John Skiff and Benjamin Williams)
73- made wxTextCtrl::EmulateKeyPress() work for Delete and Backspace
74- fixed wxTopLevelWindow::ShowFullScreen to work with kwin, IceWM and
75 window managers that support _NET_WM_STATE_FULLSCREEN
76- added wxEVT_MENU_OPEN event generation
77- fixed bug in generic file selector causing incomplete file extensions to
78 be appended to filenames with no extension
79
80wxMSW:
81
82- possibility to use DIBs for wxBitmap implementation (Derry Bryson)
83- wxStaticBitmap doesn't stretch its bitmap any longer (like other ports)
84- support for accelerator keys in the owner drawn menus (Derry Bryson)
85- wxCaret::SetSize() doesn't hide the caret any longer as it used to
86- wxCheckListBox::Check() doesn't send CHECKLISTBOX_TOGGLE event any more
87- fixed bug with wxTR_EDIT_LABELS not workign with wxTR_MULTIPLE
88- fixes for compilation with OpenWatcom compiler
89- fixed wxStaticText best size calculation (was wrong by '&' width)
90- fixed calling wxFrame::Maximize(FALSE) before the window is shown
91
92wxMotif:
93
94- made wxFileDialog behaviour with complex wildcards more sensible (it still
95 does not support all the features other ports do); refer to wxFileDialog
96 documentation for a detailed explanation
97- implemented wxWakeUpIdle
98- for Motif 2.0, used the native combobox widget instead of the GPL'd
99 xmcombo; xmcombo is still used for Motif 1.x and Lesstif when compiled
100 with Motif 1.x compatibility
101- implemented wxToggleButton
102- made wxButton a bit smaller by default
103- wxRadioBox and wxStaticBox now use the default shadow (border) style
104 instead of
105wxUniv:
106
107- Controls in toolbars now supported.
108
109
110OLD CHANGES
111===========
112
113INCOMPATIBLE CHANGES SINCE 2.2.x
114================================
115
116 Please take a few minutes to read the following list, especially
117 paying attention to the most important changes which are marked
118 with '!' in the first column.
119
120 Also please note that you should ensure that WXWIN_COMPATIBILITY_2_2
121 is defined to 1 if you wish to retain maximal compatibility with 2.2
122 series -- however you are also strongly encouraged to try to compile
123 your code without this define as it won't be default any longer in
124 2.6 release.
125
126 NB: if you want to build your program with different major versions
127 of wxWindows you will probably find the wxCHECK_VERSION() macro
128 (see the documentation) useful.
129
130
131wxBase:
132
133! wxArray<T>::Remove(size_t) has been removed to fix compilation problems
134 under 64 bit architectures, please replace it with RemoveAt() in your
135 code.
136
137! wxArray<T> macros have been changed to fix runtime problems under 64 bit
138 architectures and as a side effect of this WX_DEFINE_ARRAY() can only be
139 used now for the pointer types, WX_DEFINE_ARRAY_INT should be used for the
140 arrays containing non-pointers.
141
142- wxObject::CopyObject() and Clone() methods were removed because they
143 simply don't make sense for all objects
144
145- wxEvent now has a pure virtual Clone() method which must be implemented
146 by all derived classes, if you have user-defined event classes please
147 add "wxEvent *Clone() const { return new MyEvent(*this); }" line to them
148
149- small change to wxStopWatch::Pause() semantics, please see the documentation
150
151- unlikely but possible incompatibility: the definition of TRUE has changed
152 from "1" to "(bool)1" (and the same thing for FALSE), so the code which
153 could be erroneously compiled previously such as doing "return FALSE" from
154 a function returning a pointer would stop compiling now (but this change
155 is not supposed to have any effects on valid code)
156
157- another minor change: wxApp::OnAssert() has a new "cond" argument, you
158 must modify YourApp::OnAssert() signature if you were using it to override
159 the default assert handling.
160
161All (GUI):
162
163! the event type constants are not constants any more but are dynamically
164 allocated during run-time which means that they can't be used as case labels
165 in the switch()es, you must rewrite them to use if()s instead
166
167 You may also define WXWIN_COMPATIBILITY_EVENT_TYPES to get the old behaviour
168 but this is strongly discouraged, please consider changing your code
169 instead!
170
171! wxDialog does not derive from wxPanel any longer - if you were using it in
172 your code, please update it. The quick fix for the most cases is to replace
173 the occurrences of wxPanel with wxWindow.
174
175! if you handle (and don't skip) EVT_KEY_DOWN, the EVT_CHAR event is not
176 generated at all, so you must call event.Skip() in your OnKeyDown() if
177 you want to get OnChar() as well
178
179- in general, the key events sent for the various non ASCII key combinations
180 have been changed to make them consistent over all supported platforms,
181 please see the wxKeyEvent documentation for details
182
183- wxYES_NO is now wxYES | wxNO and the manifest values of both wxYES and wxNO
184 have changed (to fix some unfortunate clashes), please check your code to
185 ensure that no tests for wxYES or wxNO are broken: for example, the following
186 will *NOT* work any longer:
187
188 if ( flags & wxYES_NO )
189 ... do something ...
190 if ( flags & wxYES )
191 ... do something else ...
192
193- static wxWizard::Create() doesn't exist any more, the wizards are created
194 in the same way as all the other wxWindow objects, i.e. by directly using
195 the ctor
196
197- wxGLCanvas now derives directly from wxWindow, not wxScrolledWindow
198
199- wxGridCellAttrProvider class API changed, you will need to update your code
200 if you derived any classes from it
201
202- wxImage::ComputeHistogram()'s signature changed to
203 unsigned long ComputeHistogram(wxImageHistogram&) const
204
205- wxEvtHandler cannot be copied/assigned any longer - this never worked but
206 now it results in compile-time error instead of run-time crashes
207
208- WXK_NUMLOCK and WXK_SCROLL keys no longer result in EVT_CHAR() events,
209 they only generate EVT_KEY_DOWN/UP() ones
210
211- the dialogs use wxApp::GetTopWindow() as the parent implicitly if the
212 parent specified is NULL, use wxDIALOG_NO_PARENT style to prevent this
213 from happening
214
215- several obsolete synonyms are only retained in WXWIN_COMPATIBILITY_2_2 mode:
216 for example, use wxScrolledWindow::GetViewStart() now instead of ViewStart()
217 and GetCount() instead of Number() in many classes
218
219- wxCmdLineParser does not use wxLog to output messages anymore.
220 to obtain the previous behaviour, add
221 wxMessageOutput::Set(new wxMessageOutputLog); to your program
222 (you will need to #include <wx/msgout.h>)
223
224wxMSW:
225
226! build system changed: setup.h is not a static file in include/wx any more
227 but is created as part of the build process under lib/<toolkit>/wx
228 where <toolkit> is of the form (msw|univ)[dll][u][d]. You'll need to update
229 the include path in your make/project files appropriately. Furthermore,
230 xpm.lib is no longer used by wxMSW, it was superseded by the wxXPMDecoder
231 class. You'll need to remove all references to xpm.lib from your
232 make/project files. Finally, the library names have changed as well and now
233 use the following consistent naming convention: wxmsw[ver][u][d].(lib|dll)
234 where 'u' appears for Unicode version, 'd' -- for the debug one and version
235 is only present for the DLLs builds.
236
237- child frames appear in the taskbar by default now, use wxFRAME_NO_TASKBAR
238 style to avoid it
239
240- all overloads of wxDC::SetClippingRegion() combine the given region with the
241 previously selected one instead of replacing it
242
243- wxGetHomeDir() uses HOME environment variable and if it is set will not
244 return the programs directory any longer but its value (this function has
245 never been meant to return the programs directory anyhow)
246
247- wxHTML apps don't need to include wx/html/msw/wxhtml.rc in resources file
248 anymore. The file was removed from wxMSW
249
250
251Unix ports:
252
253! You should use `wx-config --cxxflags` in your makefiles instead of
254 `wx-config --cflags` for compiling C++ files. CXXFLAGS contains CFLAGS
255 and the compiler flags for C++ files only, CFLAGS should still be used
256 to compile pure C files.
257
258
259wxThread and related classes:
260
261- The thread-related classes have been heavily changed since 2.2.x versions
262 as the old code had many serious problems. This could have resulted in
263 semantical changes other than those mentioned here, please review use of
264 wxThread, wxMutex and wxCondition classes in your code.
265
266! wxCondition now *must* be used with a mutex, please read the (updated) class
267 documentation for details and revise your code accordingly: this change was
268 unfortunately needed as it was impossible to ensure the correct behaviour
269 (i.e. absense of race conditions) using the old API.
270
271- wxMutex is not recursive any more in POSIX implementation (it hasn't been
272 recursive in 2.2.x but was in 2.3.1 and 2.3.2), please refer to the class
273 documentation for the discussion of the recursive mutexes.
274
275- wxMutex::IsLocked() doesn't exist any more and should have never existed:
276 this is was unique example of a thread-unsafe-by-design method.
277
278
279OTHER CHANGES
280=============
281
2822.4.0
283-----
284
285wxMSW:
286
287- fixed loss of client data in wxChoice::SetString()
288
2892.3.4
290-----
291
292All:
293
294- added (partial) Indonesian translations (Bambang Purnomosidi D. P.)
295- added wxSizer::Show()/Hide() (Carl Godkin)
296- fixed bugs in wxDateTime::SetToWeekDay()/GetWeek()
297
298Unix (Base/GUI):
299
300- minor OpenBSD compilation/linking fixes, now builds OOB under OpenBSD 3.1
301- don't include -I/usr/include nor -I/usr/local/include in wx-config output
302- shared library symbols are now versioned on platforms that support it (Linux)
303
304wxGTK:
305- Further work for GTK 2.0 and Unicode support.
306- Addition of native frame site grip.
307
308wxX11:
309- Unicode support through Pango library.
310
311wxMSW:
312
313- fixed crashes in wxListCtrl under XP
314- added context menu for rich edit wxTextCtrl
315
316wxHTML:
317
318- fixed wxHTML to work in Unicode build
319
3202.3.3
321-----
322
323wxBase:
324
325- building wxBase with Borland C++ is now supported (Michael Fieldings)
326- wxSemaphore class added, many fixed to wxCondition and wxThread (K.S. Sreeram)
327- fixes to the command line parsing error and usage messages
328- modified wxFileName::CreateTempFileName() to open the file atomically
329 (if possible) and, especially, not to leak the file descriptors under Unix
330- memory leak in wxHTTP fixed (Dimitri)
331- fixes to AM_PATH_WXCONFIG autoconf macro
332- added wxHashMap class that replaces type-unsafe wxHashTable and is modelled
333 after (non standard) STL hash_map
334- wxLocale now works in Unicode mode
335- wxLocale can now load message catalogs in arbitrary encoding
336- added wxShutdown() function (Marco Cavallini)
337- added wxEXPLICIT macro
338- IPC classes improved and memory leaks fixed (Michael Fielding).
339 Global buffer removed, duplication in docs removed
340- debug new/free implementations made thread-safe
341
342Unix (Base/GUI):
343
344- wxWindows may be built using BSD and Solaris (and possibly other) make
345 programs and not only GNU make
346- wxTCP-based IPC classes now support communicating over Unix domain sockets
347- wxWindows may be built as a dynamic shared library under Darwin / Mac OS X
348 lazy linking issues have been solved by linking a single module (.o) into
349 the shared library (two step link using distrib/mac/shared-ld-sh)
350- fixed thread priority setting under Linux
351
352All (GUI):
353
354- it is now possible to set the icons of different sizes for frames (e.g. a
355 small and big ones) using the new wxIconBundle class
356- implemented radio menu items and radio toolbar buttons
357- added possibility to show text in the toolbar buttons
358- added wxArtProvider class that can be used to customize the look of standard
359 wxWindows dialogs
360- significantly improved native font support
361- wxImage::ComputeHistogram() now uses wxImageHistogram instead of type-unsafe
362 wxHashTable
363- added IFF image handler
364- fixed using custom renderers in wxGrid which was broken in 2.3.2
365- support for multiple images in one file added to wxImage
366 (TIFF, GIF and ICO formats)
367- support for CUR and ANI files in wxImage added (Chris Elliott)
368- wxTextCtrl::GetRange() added
369- added wxGetFontFromUser() convenience function
370- added EVT_MENU_OPEN and EVT_MENU_CLOSE events
371- added Hungarian translations (Janos Vegh)
372- added wxImage::SaveFile(filename) method (Chris Elliott)
373- added wxImage::FloodFill and implemented wxWindowDC::DoFloodFill method
374 for GTK+, Mac, MGL, X11, Motif ports (Chris Elliott)
375- added (platform-dependent) scan code to wxKeyEvent (Bryce Denney)
376- added wxTextCtrl::EmulateKeyPress()
377- Added wxMouseCaptureChangedEvent
378- Added custom character filtering to wxTextValidator
379- wxTreeCtrl now supports incremental keyboard search
380- wxMessageOutput class added
381- wxHelpProvider::RemoveHelp added and called from ~wxWindowBase
382 so that erroneous help strings are no longer found as the hash
383 table fills up
384- updated libpng from 1.0.3 to 1.2.4
385- Added wxView::OnClosingDocument so the application can do cleanup.
386- generic wxListCtrl renamed to wxGenericListCtrl, wxImageList
387 renamed to wxGenericImageList, so they can be used on wxMSW
388 (Rene Rivera).
389- Added wxTreeEvent::IsEditCancelled so the application can tell
390 whether a label edit was cancelled.
391- added static wxFontMapper::Get() accessor (use of wxTheFontMapper is now
392 deprecated)
393
394wxMSW:
395
396- small appearance fixes for native look under Windows XP
397- fixed the bug related to the redrawing on resize introduced in 2.3.2
398- fixed multiple bugs in wxExecute() with IO redirection
399- refresh the buttons properly when the window is resized (Hans Van Leemputten)
400- huge (40*) speed up in wxMask::Create()
401- changing wxWindows styles also changes the underlying Windows window style
402- wxTreeCtrl supports wxTR_HIDE_ROOT style (George Policello)
403- fixed flicker in wxTreeCtrl::SetItemXXX()
404- fixed redraw problems in dynamically resized wxStaticText
405- improvements to wxWindows applications behaviour when the system colours
406 are changed
407- choose implicit parent for the dialog boxes better
408- fixed wxProgressDialog for ranges > 65535
409- wxSpinButton and wxSpinCtrl now support full 32 bit range (if the version
410 of comctl32.dll installed on the system supports it)
411- wxFontEnumerator now returns all fonts, not only TrueType ones
412- bugs in handling wxFrame styles (border/caption related) fixed
413- showing a dialog from EVT_RADIOBUTTON handler doesn't lead to an infinite
414 recursion any more
415- wxTextCtrl with wxTE_RICH flag scrolls to the end when text is appended to it
416- the separators are not seen behind the controls added to the toolbar any more
417- wxLB_SORT style can be used with wxCheckListBox
418- wxWindowDC and wxClientDC::GetSize() works correctly now
419- Added wxTB_NODIVIDER and wxTB_NOALIGN so native toolbar can be used in FL
420- Multiline labels in buttons are now supoprted (simply use "\n" in the label)
421- Implemented wxMouseCaptureChangedEvent and made wxGenericDragImage check it
422 has the capture before release it.
423- fixed bugs in multiple selection wxCheckListBox
424- default button handling is now closer to expected
425- setting tooltips for wxSlider now works
426- disabling a parent window also disables all of its children (as in wxGTK)
427- multiple events avoided in wxComboBox
428- tooltip asserts avoided for read-only wxComboBox
429- fixed a race condition during a thread exit and a join
430- fixed a condition where a thread can hang during message/event processing
431- increased space between wxRadioBox label and first radio button
432- don't fail to register remaining window classes if one fails to register
433- wxFontDialog effects only turned on if a valid colour was
434 provided in wxFontData
435- Added wxTE_LEFT, wxTE_CENTRE and wxTE_RIGHT flags for text control alignment.
436- Bitmap printing uses 24 bits now, not 8.
437
438wxGTK:
439
440- wxDirDialog now presents the file system in standard Unix way
441- wxButton now honours wxBU_EXACTFIT
442- wxStaticBox now honours wxALIGN_XXX styles
443- added support for non alphanumeric simple character accelerators ('-', '=')
444- new behaviour for wxWindow::Refresh() as it now produces a delayed refresh.
445 Call the new wxWindow::Update() to force an immediate update
446- support for more SGI hardware (12-bit mode among others)
447- fixed wxDC::Blit() to honour source DC's logical coordinates
448- implemented wxIdleEvent::RequestMore() for simple background tasks
449- implemented wxChoice::Delete()
450- fixed bad memory leak in wxFileDialog (Chris Elliott)
451- made internal GC pool dynamically growable
452- added GTK+ 2 and Unicode support
453
454wxMotif:
455
456- improved colour settings return values (Ian Brown)
457- improved border style handling for wxStaticText (Ian Brown)
458- improved toolbar control alignment
459- implemented wxSpinButton
460- implemented wxCheckListBox
461- fixed wxSpinCtrl and wxStaticLine when used with sizers
462- wxStaticBitmap now shows transparent icons correctly
463
464wxX11:
465
466- added generic MDI implementation (Hans Van Leemputten)
467- first cut at wxSocket support (not yet working)
468
469wxMac:
470
471- Many improvements
472
473wxOS2:
474
475- First alpha-quality release
476
477wxHTML:
478
479- fixed wxHtmlHelpController's cache files handling on big endian machines
480- added blocking and redirecting capabilities to wxHtmlWindow via
481 wxHtmlWindow::OnOpeningURL()
482- fixed alignment handling in tables
483- fixed <font face="..."> handling to be case insensitive
484
4852.3.2
486-----
487
488New port: wxUniv for Win32/GTK+ is now included in the distribution.
489
490wxBase:
491
492- wxRegEx class added
493- wxGetDiskSpace() function added (Jonothan Farr, Markus Fieber)
494- wxTextBuffer and wxTextFile(wxStream) added (Morten Hanssen)
495- more fixes to wxMBConv classes. Conversion to and from wchar_t now works with
496 glibc 2.2 as well as with glibc 2.1. Unix version now checks for iconv()'s
497 capabilities at runtime instead of in the configure script.
498
499All (GUI):
500
501- support for virtual list control added
502- column images in report mode of the list control
503- wxFindReplaceDialog added (based on work of Markus Greither)
504- wxTextCtrl::SetMaxLength() added (wxMSW/wxGTK)
505- polygon support in wxRegion (Klaas Holwerda)
506- wxStreamToTextRedirector to allow easily redirect cout to wxTextCtrl added
507- fixed bug with using wxExecute() to capture huge amounts of output
508