]> git.saurik.com Git - wxWidgets.git/blame - wxPython/CHANGES.txt
Some new interfaces in common code requires an updated module definition file.
[wxWidgets.git] / wxPython / CHANGES.txt
CommitLineData
6d75ea8f
RD
1CHANGES.txt for wxPython
2
3----------------------------------------------------------------------
4
19cf4f80
RD
5?????
6-----
7Removed initial startup dependency on the OpenGL DLLs so only the
8glcanvasc.pyd depends on them.
9
10Changed wxFont, wxPen, wxBrush to not implicitly use the
11wxThe[Font|Pen|Brush]List behind the scenes, but to use normal ctor
12and dtors.
13
14Exposed the wxThe[Font|Pen|Brush]List to wxPython.
15
16Also wxTheColourDatabase and added a library module (in the
17wxPython.lib.colourdb module) to load LOTS more colour names into the
18colour database.
19
6e18ca6c
RD
20Added wxWakeUpMainThread, wxMutexGuiEnter, wxMutexGuiLeave,
21wxMutexGuiLocker and wxThread_IsMain to assist with dealing with GUI
22access from non-GUI threads.
23
24wxPyOnDemandOutputWindow is now thread safe if non-GUI threads use
25print, sys.stdout.write, etc.
26
19cf4f80
RD
27
28
29
b075a3bb
RD
302.2.6
31-----
32
33No changes happened in the Python wrappers for this release, only
34changes and fixes in the wxWindows library.
35
1b62f00d 36
19cf4f80 37
1b62f00d 382.2.5
185d7c3e
RD
39-----
40
41New typemaps for wxString when compiling for Python 2.0 and beyond
42that allow Unicode objects to be passed as well as String objects. If
43a Unicode object is passed PyString_AsStringAndSize is used to convert
44it to a wxString using the default encoding.
45
46Fixed the generic buttons so tool tips work for them.
47
48Fixed a bug in the demo's tree control.
49
50Added a listbox to the listbox demo that shows how to find items with
1e7ecb7b 51a matching prefix as keys are typed.
185d7c3e
RD
52
53Added code to the wxListCtrl demo to show how to get text from a
54column in report mode.
55
56Added code to the toolbar demo to clear the long help from the status
57bar after 2 seconds.
58
59Added wxJoystick.
60
61Fixed wxTimer so it can be used as described in the docs, either with
62a Notify method in a subclass, or sending an event to a wxEvtHandler
63object, (usually a window.)
64
65Added wxNotifyEvent.Allow()
66
de20db99
RD
67Fixed GOBS of reference leaks.
68
1e7ecb7b
RD
69Massive code changes and cleanup to allow wxPython to be split into
70multiple extension modules again. A Python CObject is used to allow
1b62f00d
RD
71the "export" of SWIG functions and other common helper functions from
72the wxc module to other modules, even if they are in separate shared
1e7ecb7b
RD
73libraries. Should also be usable from 3rd party code, just include
74wxPython/src/export.h
75
76Changed the default setup so the following are built as separate
77extension modules: calendar, glcanvas, grid, html, ogl, stc, and
78utils. Will probably add more later.
79
1b62f00d
RD
80Changed the wxPrinterDC to use the new constructor taking a
81wxPrintData object. The old ctor is still there using the
82wxPrinterDC2 name.
83
84Added wxPython.lib.anchors.py from Riaan Booysen. It contains a class
85that implements Delphi's Anchors with wxLayoutConstraints.
86
87Added wxPython.lib.fancytext from Timothy Hochberg.
88
89Changed the GenericButtons to send their event in idle time, so the
90mouse won't be captured when the event handler is called.
91
92Added wxPython.lib.rpcMixin from Greg Landrum, although it's not
93integrated with the demo yet. It allows a wxPython GUI to be an
94XML-RPC server.
95
185d7c3e
RD
96
97
c368d904
RD
98New in 2.2.2
99------------
100
101Significantly changed how the wxStyledtextCtrl code that wraps
102Scintilla is implemented. Most of it is now automatically generated
103from an interface definition file provided by Scintilla. This means
104that it will be much easier to stay in sync with new Scintilla
105releases, but also means that some of the method and identifier names
106have changed. See wxPython/demo/data/stc.h for a copy of the C++
107interface from which the Python interface is generated. There is now
108some inline documentation in that file that should really help explain
109how things work.
110
111I am now using the Python Distutils to build wxPython and to make some
112of the distribution files. (See http://www.python.org/sigs/distutils-sig/)
113This means no more messing with my kludgy build.py/Makefile hack,
114builds will be more consistent with other Python extensions that also
115use Distutils, and will hopefully make wxPython easier to build for
116platforms where there have been troubles before. If you are building
117wxPython for Python 1.5.2 or for 1.6, then you will need to get and
118install version 1.0 of Distutils from the website above. If you are
119using Python 2.0 then you already have it.
120
121Added wxInputStream and the wxFileSystem family of classes,
122contributed by Joerg Baumann.
123
124Added wxProcess and support for it to wxExecute. wxProcess lets you
125get notified when an asyncronous child process terminates, and also to
126get input/output streams for the child process's stdout, stderr and
127stdin.
128
129Removed the old python sizers.
130
131Added __add__, __sub__ and __cmp__ (equality check only) for wxPoint
132and wxRealPoint.
133
134Changed the build to make one big extension module instead of one for
135the core and each contrib. This allowed me to do away with the
136libwxPyHelpers.so on unix systems.
137
138Lots of little fixes here and there.
139
140Some hacks on wxGTK to try and make the AutoComplete listbox in the
141wxStyledTextCtrl to behave better. It's still not as nice as on
142wxMSW, but at least it's a bit more usable now.
143
144
145
146
3ca6a5f0
BP
147New in 2.2.1
148------------
149
150Various tweaks, fixes, missing methods, etc.
151
c368d904
RD
152Added example use of wxTaskBarIcon to the demo.
153
3ca6a5f0
BP
154
155
f6bcfd97
BP
156New in 2.2.0
157------------
158
159Added wxLog and friends.
160
161Added wxFrame.ShowFullScreen for MSW.
162
163Added PyShellWindow to the wxPython.lib package.
164
165
166
167New in 2.1.16
168-------------
169
170Added an attribute named labelDelta to the generic buttons that
171specifies how far to offset the label when the button is in the
172depressed state.
173
174Added wxTipProvider and friends. See the demo for an example.
175
176wxGrid can now change the cell highlight colour.
177
178Added wxDragImage.
179
180Fixed printing on wxGTK.
181
182Added wxDateTime, wxTimeSpan, and wxDateSpan to wxPython.utils.
183
184Added wxCalendarCtrl.
185
186WARNING: A while back I asked what should be done about the Magic
187Method Names. (Methods that are automatically turned into event
188handlers by virtue of their name.) The consensus was that it is more
189confusing to have them than to try and expand them to have greater
190coverage. I am finally getting around to removing the code that
191generates the event binding. This means that if you are using any of
192the following method names without a EVT_* call that you need to
193modify your code to add the EVT_* to hook the event to the method.
194
195 OnChar
196 OnSize
197 OnEraseBackground
198 OnSysColourChanged
199 OnInitDialog
200 OnPaint
201 OnIdle
202 OnActivate
203 OnMenuHighlight
204 OnCloseWindow
205 OnScroll
206
207Added wxSpinCtrl.
208
209
210
211
212New in 2.1.15
164b735b
RD
213-------------
214
215Fixed wxTreeCtrl.HitTest to return both the tree item as well as the
216flags that clairify where the click was in relation to the item.
217
854862f5
RD
218Fixed thread state problem in wxTreeCtrl.GetBoundingBox and
219GetSelections.
164b735b 220
99ab9f3b
RD
221Fixed some problems in OGL. Also wxShape.SetClientData and
222.GetClientData can now deal with Python objects.
714d23b4 223
dcd38683 224Added wxListCtrl.SortItems and changed the demo to show how to use it.
714d23b4 225
f6bcfd97
BP
226Plugged a memory leak.
227
228Wrapped the new wxGrid and friends. The old wxGrid class is no longer
229available. There are some incompatibilities, and unfortunately the
230new classes are not documented yet, (however the methods are more
231consistent with each other now so you may be able to guess pretty
232good...)
233
234Updated filebrowsebutton.py and calendar.py with changes from their
235authors. There is now a FileBrowseButtonWithHistory class (what a
236mouthful!) and wxCalendar has printing support.
237
238Added ActiveXWrapper to the library, and some good demos of it too.
239It works great for embedding a COM (a.k.a OCX, a.k.a ActiveX) control
240in a window and calling its methods. It actually creates a new class
241on the fly that derives from wxWindow, the COM CoClass and others
242needed to make it all work. The resulting class can be instantiated
243just like wxWindow, used in sizers, etc. It also responds to all COM
244method calls, properties, etc., and if the class or a mix-in has
245matching method names, then the COM events will be propogated back to
246them.
247
248Created a typemap that allows a string to be used for parameters
249expecting a wxColour type. The string is either a colour name as
250defined in the wxColourDatabase, or a colour spec of the form
251"#RRGGBB". See the wxStyledTextCtrl demo for an example.
252
253I almost forgot to mention the wxStyledTextCtrl! Yes, the
254wxStyledTextCtrl is finally in wxPython!! (And the crowd goes
255wild...) There's no documentaTion yet (the crowd boos and hisses...)
256but I've included a very readable source file in the
257wxPython/demo/data directory, a couple fairly good examples, and you
258can also refer to the Scintilla documentaion at
259http://www.scintilla.org/ScintillaDoc.html to help fill in the gaps
260until the docs are done. (The croud murmers contentedly as the tool
261provider smiles convincingly and removes his flame-proof suit.)
262
164b735b
RD
263
264
265
9e57c2a0 266What's new in 2.1.13
6d75ea8f 267--------------------
9e57c2a0
RD
268Skipped a version number to match what has been released for wxGTK.
269
6d75ea8f
RD
270Updated wxMVCTree and added a demo for it, also fixed layout on GTK
271and some flicker problems.
272
273Added a wrapper class for the Visualization ToolKit (or VTK) in the
274wxPython.lib.vtk module. (http://www.kitware.com/)
275
276Fixed wxTreeCtrl.SetItemImage and GetItemImage to recognise the new
277"which" parameter.
278
279Added wxPython.lib.spashscreen from Mike Fletcher.
280
281Added wxPython.lib.filebrowsebutton also from Mike Fletcher.
282
283Renamed wxTreeCtrl.GetParent to GetItemParent to avoid a name clash
284with wxWindow.GetParent.
285
286Added wxIntersectRect to compute the intersection of two wxRect's.
287It is used like this:
288
289 intersect = wxIntersectRect(rect1, rect2)
290
291If r1 and r2 don't intersect then None is returned, otherwise the
292rectangle representing the intersection is returned.
293
294Some bug fixes for Clipboard and Drag-n-Drop.
295
9b3d3bc4 296Rotated text!!! WooHoo! (See wxDC.DrawRotatedText())
6999b0d8
RD
297
298Added a set of Generic Buttons to the library. These are simple
299window classes that look and act like native buttons, but you can have
300a bit more control over them. The bezel width can be set in addition
301to colours, fonts, etc. There is a ToggleButton as well as Bitmap
9e57c2a0
RD
302versions too. They should also serve as a good example of how to
303create your own classes derived from wxControl.
6d75ea8f 304
9b3d3bc4
RD
305The C++ wxToolBar classes have been redone, and so have the wxPython
306wrappers. There have been slight modifications to some of the methods
307but shouldn't impact anybody too much. I took the opportunity to add
308support for setting user data on each toolbar tool. The new AddTool
309methods look like this:
310
311 def AddTool(ID,
312 bitmap,
313 pushedBitmap = wxNullBitmap,
314 toggle = FALSE,
315 clientData = NULL,
316 shortHelpString = "",
317 longHelpString = "")
318
319 def AddSimpleTool(ID,
320 bitmap,
321 shortHelpString = "",
322 longHelpString = "",
323 toggle=FALSE)
324
325
326There are also coresponding InsertTool and InsertSimpleTool methods
327that additionally take an integer position as the first parameter.
328
9e57c2a0 329Added a wrapper for the new PCX and TIFF ImageHandlers.
9b3d3bc4
RD
330
331wxRect now simulates attributes named left, right, top and bottom.
332
d2103cf2
RD
333Removed all non wx stuff from the glcanvas module since DA's PyOpenGL
334is better and compatible with the wxGLCanvas. You can get it at
335http://starship.python.net:9673/crew/da/Code/PyOpenGL.
9b3d3bc4 336
3af4e610 337Added some missing EVT_ functions.
9b3d3bc4 338
1b55cabf
RD
339Added Dirk Holtwic's editor classes to the wxPython.lib.editor
340package.
341
eec92d76
RD
342Changed all the "LIST" parameter names to "choices" to match the docs.
343
fe366bc9
RD
344More fixes for the wxFloatBar, and it now works on wxGTK even better
345than wxMSW! (The feat is accomplished by using the wxTB_DOCKABLE
346style flag instead of trying to float it ourselves.)
347
9b3d3bc4 348
6d75ea8f
RD
349
350
351What's new in 2.1.11
352--------------------
353Skipped a few version numbers so wxMSW, wxGTK and wxPython are all
354syncronized.
355
356wxImage.SetData now makes a copy of the image data before giving it to
357wxImage. I mistakenly thought that wxImage would copy the data
358itself.
359
360Fixed wxMSW's notebook so the pages get their size set as they are
361being added. This should remove the need for our
362wxNotebook.ResizeChildren hack.
363
364wxPanels now support AutoLayout, and wxNotebooks and wxSplitterWindows
365no longer tell their children to Layout() themselves. This will
366probably only effect you if you have a wxWindow with AutoLayout inside
367a notebook or splitter. If so, either change it to a wxPanel or add
368an EVT_SIZE handler that calls Layout().
369
370Fixed deadlock problem that happened when using threads.
371
372Added new HTML printing classes.
373
374Added wxWindow.GetHandle
375
376Apparently wxMouseEvent.Position has been depreciated in wxWindows as
377it is no longer available by default. You can use GetPositionTuple
378(returning a tuple with x,y) instead, or GetPosition (returning a
379wxPoint.)
380
381Added wxPostEvent function that allows events to be posted and then
382processed later. This is a thread-safe way to interact with the GUI
383thread from other threads.
384
385Added Clipboard and Drag-and-Drop classes.
386
387Added wxFontEnumerator.
388
389Many updates to wxMenu, wxMenuBar.
390
391wxPyEvent and wxPyCommandEvent derived classes now give you the actual
392Python object in the event handler instead of a new shadow.
393
394Added a Calendar widget from Lorne White to the library.
395
396Made some fixes to the wxFloatbar. It still has some troubles on
397wxGTK...
398
399Added an MVC tree control from Bryn Keller to the library.
400
401
402
403
404What's new in 2.1.5
405-------------------
406This is a quick bug-fix release to take care of a few nasties that
407crept in at the last minute before 2.1.4 was called done. No new
408major features.
409
410
411
412What's new in 2.1.4
413--------------------
414
415This release is NOT syncronized with a snapshot release of wxGTK or
416wxMSW. For MSW this isn't much of a problem since you can get the
417binaries from the web site. For other platforms you'll have to build
418wxGTK from CVS. (See http://web.ukonline.co.uk/julian.smart/wxwin/cvs.htm)
419To get the same set of sources from CVS that I used, checkout using
420the wxPy-2-1-4 tag.
421
422Now back to what's new...
423
424Much more support for event-less callbacks and add-on modules.
425
426Created add-on module with wxOGL classes.
427
428Added wxWindow.GetChildren(). Be careful of this. It returns a *copy*
429of the list of the window's children. While you are using the list if
430anything changes in the real list (a child is deleted, etc.) then the
431list you are holding will suddenly have window references to garbage
432memory and your app will likely crash. But if you are careful it works
433great!
434
435Added a bunch of new and missing methods to wxTreeCrtl. The
436SortChildren method is now supported, but currently only for the
437default sort order.
438
439Added typemaps for wxSize, wxPoint, wxRealPoint, and wxRect that allow
440either the actual objects or Python sequence values to be used. For
441example, the following are equivallent:
442
443 win = wxWindow(parent, size = wxSize(100, 100))
444 win = wxWindow(parent, size = (100, 100))
445
446Super-charged the wxHtml module. You can now create your own tag
447handlers and also have access to the parser and cell classes. There
448is a tag handler in the library at wxPython.lib.wxpTag that
449understands the WXP tag and is able to place wxPython windows on HTML
450pages. See the demo for an example.
451
452A bunch of the methods of wxMenuBar were previously ifdef'd out for
453wxGTK. Added them back in since the methods exist now.
454
455Wrapped the wxHtmlHelpController and related classes.
456
457Wrapped the C++ versions of wxSizer and friends. The Python-only
458versions are still in the library, but depreciated. (You will get a
459warning message if you try to use them, but the warning can be
460disabled.) The usage of the C++ versions is slightly different, and
461the functionality of wxBorderSizer is now part of wxBoxSizer. I have
462added a few methods to wxSizer to try and make the transition as
463smooth as possible, I combined all Add methods into a single method
464that handles all cases, added an AddMany method, etc. One step I did
465not take was to make the default value of flag in the Add method be
466wxGROW. This would have made it more backward compatible, but less
467portable to and from wxWin C++ code. Please see the docs and demo for
468further details.
469
470Added wxPyEvent and wxPyCommandEvent classes, derived from wxEvent and
471wxCommandEvent. Each of them has SetPyData and GetPyData methods that
472accept or return a single Python object. You can use these classes
473directly or derive from them to create your own types of event objects
474that can pass through the wxWindows event system without loosing their
475Python parts (as long as they are stored with SetPyData.) Stay tuned
476for more info and examples in future releases.
477
478Added wxPython.lib.grids as an example of how to derive a new sizer
479from the C++ sizers. In this module you will find wxGridSizer and
480wxFlexGridSizer. wxGridSizer arrainges its items in a grid in which
481all the widths and heights are the same. wxFlexgridSizer allows
482different widths and heights, and you can also specify rows and/or
483columns that are growable. See the demo for a couple examples for how
484to use them.
485
486Added the wxValidator class, and created a class named wxPyValidator
487that should be used for the base class of any Python validators. See
488the demo for an example. Please note that you MUST implement a Clone
489method in your validator classes because of the way some things work
490in the underlying C++ library. I did not add wxTextValidator because
491of some issues of how it transfers data to and from a wxString, which
492in wxPython is automatically translated to and from Python strings, so
493there would never be a concrete wxString that would hang around long
494enough for the validator to do its job. On the other hand, it should
495be real easy to duplicate the functionality of wxTextValidator in a
496pure Python class derived from wxPyValidator.
497
498I've finally added a feature that has been on my list for close to two
499years! Ever wondered what that zero is for when you create your app
500object? Well now you can leave it out or explicitly set it to a true
501value. This value now controls what is to be done with sys.stdout and
502sys.stderr. A false value leaves them alone, and a true value sets
503them to an instance of wxPyOnDemandOutputWindow. (On windows the
504default is true, on unix platforms the default is false.) This class
505creates a frame containing a wxTextCtrl as soon as anything is written
506to sys.stdout or sys.stderr. If you close the window it will come
507back again the next time something is written. (You can call
508app.RestoreStdio to turn this off.) If you would rather that the stdio be
509redirected to a file, you can provide a second parameter to your app
510object's constructor that is a filename. If you want to use your own
511class instead of wxPyOnDemandOutputWindow you can either implement
512RedirectStdio() in you app class or change the value of
513wxApp.outputWindowClass like this:
514
515 class MyApp(wxApp):
516 outputWindowClass = MyClass
517
518 def OnInit(self):
519 frame = MyFrame()
520 self.SetTopWindow(frame)
521 return true
522
523Please see the implementation of wxPyOnDemandOutputWindow and wxApp in
524wx.py for more details. A few words of caution: if you are running
525your app in a debugger, changing sys.stdout and sys.stderr is likely
526to really screw things up.
527
528Added wxCaret. Unfortunately it's author has still not documented it
529in the wxWindows docs...
530
531Some new 3rd party contributions in wxPython.lib. PyShell, in
532shell.py is an interesting implementaion of an interactive Python
533shell in wxWindows. floatbar.py has a class derived from wxToolBar
534that can sense mouse drags and then reparent itself into another
535frame. Moving the new frame close to where it came from puts the tool
536bar back into the original parent. (Unfortunately there is currently
537a bug in wxGTK's wxFrame.SetToolBar so the FloatBar has some
538problems...)
539
540
541
542
543What's new in 2.1b3
544--------------------
545
546This release is syncronized with release 2.1 snapshot 9 of wxWindows.
547
548Switched to using SWIG from CVS (see http://swig.cs.uchicago.edu/cvs.html)
549for some of the new features and such. Also they have encorporated my
550patches so there is really no reason to stick with the current (very
551old) release... This version of SWIG gives the following new
552features:
553
554 1. Keyword arguments. You no longer have to specify all the
555 parameters with defaults to a method just to specify a
556 non-default value on the end. You can now do this instead:
557
558 win = wxWindow(parent, -1, style = mystyle)
559
560 2. There is now an an equivalence between Python's None and C++'s
561 NULL. This means that any methods that might return NULL will
562 now return None and you can use none where wxWindows might be
563 expecting NULL. This makes things much more snake-ish.
564
565
566There is a new build system based on a new Python program instead of
567raw makefiles. Now wxPython builds are virtually the same on MSW or
568Unix systems. See the end of this file for new build instructions and
569see distrib/build.py for more details.
570
571wxDC.Bilt now includes the useMask parameter, and has been split into
572two different versions. wxDC.BlitXY is like what was there before and
573takes raw coordinants and sizes, and the new wxDC.Blit is for the new
574interface using wxPoints and a wxSize.
575
576
577
578
579
580What's new in 2.1b2
581--------------------
582
583Added the missing wxWindow.GetUpdateRegion() method.
584
585Made a new change in SWIG (update your patches everybody) that
586provides a fix for global shadow objects that get an exception in
587their __del__ when their extension module has already been deleted.
588It was only a 1 line change in .../SWIG/Modules/pycpp.cxx at about
589line 496 if you want to do it by hand.
590
591It is now possible to run through MainLoop more than once in any one
592process. The cleanup that used to happen as MainLoop completed (and
593prevented it from running again) has been delayed until the wxc module
594is being unloaded by Python.
595
596I fixed a bunch of stuff in the C++ version of wxGrid so it wouldn't
597make wxPython look bad.
598
599wxWindow.PopupMenu() now takes a wxPoint instead of x,y. Added
600wxWindow.PopupMenuXY to be consistent with some other methods.
601
602Added wxGrid.SetEditInPlace and wxGrid.GetEditInPlace.
603
604You can now provide your own app.MainLoop method. See
605wxPython/demo/demoMainLoop.py for an example and some explaination.
606
607Got the in-place-edit for the wxTreeCtrl fixed and added some demo
608code to show how to use it.
609
610Put the wxIcon constructor back in for GTK as it now has one that
611matches MSW's.
612
613Added wxGrid.GetCells
614
615Added wxSystemSettings static methods as functions with names like
616wxSystemSettings_GetSystemColour.
617
618Removed wxPyMenu since using menu callbacks have been depreciated in
619wxWindows. Use wxMenu and events instead.
620
621Added alternate wxBitmap constructor (for MSW only) as
622 wxBitmapFromData(data, type, width, height, depth = 1)
623
624Added a helper function named wxPyTypeCast that can convert shadow
625objects of one type into shadow objects of another type. (Like doing
626a down-cast.) See the implementation in wx.py for some docs.
627
628Fixed wxImage GetData and SetData to properly use String objects for
629data transfer.
630
631Added access methods to wxGridEvent.
632
633New Makefile/Setup files supporting multiple dynamic extension modules
634for unix systems.
635
636Fixes for the wxGLCanvas demo to work around a strange bug in gtk.
637
638SWIG support routines now compiled separately instead of being bundled
639in wx.cpp.
640
641
642
643
644
645What's new in 2.1b1
646--------------------
647Fixed wxComboBox.SetSelection so that it actually sets the selected
648item. (Actually just removed it from wxPython and let it default to
649wxChoice.SetSelection which was already doing the right thing.)
650
651Added the Printing Framework.
652
653Switched back to using the wxWindows DLL for the pre-built Win32
654version. The problem was needing to reinitialize static class info
655data after loading each extension module.
656
657Lots of little tweaks and additions to reflect changes to various
658wxWindows classes.
659
660Fixed a bug with attaching objects to tree items. Actually was a
661symptom of a larger problem with not obtaining the interpreter lock
662when doing any Py_DECREFs.
663
664wxSizer and friends. Sizers are layout tools that manage a colection
665of windows and sizers. Different types of sizers apply different
666types of layout algorithms. You saw it here first! These classes are
667not even in the wxWindows C++ library yet!
668
669
670
671What's new in 2.0b9
672-------------------
673Bug fix for ListCtrl in test4.py (Was a missing file... DSM!)
674
675Bug fix for occassional GPF on Win32 systems upon termination of a
676wxPython application.
677
678Added wxListBox.GetSelections returning selections as a Tuple.
679
680Added a wxTreeItemData that is able to hold any Python object and be
681associated with items in a wxTreeCtrl. Added test pytree.py to show
682this feature off.
683
684Added wxSafeYield function.
685
686OpenGL Canvas can be optionally compiled in to wxPython.
687
688Awesome new Demo Framework for showing off wxPython and for learning
689how it all works.
690
691The pre-built Win32 version is no longer distributing the wxWindows
692DLL. It is statically linked with the wxWindows library instead.
693
694Added a couple missing items from the docs.
695
696Added wxImage, wxImageHandler, wxPNGHandler, wxJPEGHandler,
697wxGIFHandler and wxBMPHandler.
698
699Added new methods to wxTextCtrl.
700
701Fixed some problems with how SWIG was wrapping some wxTreeCtrl
702methods.
703
704
705
706What's new in 2.0b8
707-------------------
708Support for using Python threads in wxPython apps.
709
710Several missing methods from various classes.
711
712Various bug fixes.
713
714
715
716What's new in 2.0b7
717-------------------
718Added DLG_PNT and DLG_SZE convienience methods to wxWindow class.
719
720Added missing constructor and other methods for wxMenuItem.
721
722
723
724What's new in 2.0b6
725-------------------
726Just a quickie update to fix the self-installer to be compatible with
727Python 1.5.2b2's Registry settings.
728
729
730What's new in 2.0b5
731-------------------
732Well obviously the numbering scheme has changed. I did this to
733reflect the fact that this truly is the second major revision of
734wxPython, (well the third actually if you count the one I did for
735wxWindows 1.68 and then threw away...) and also that it is associated
736with the 2.0 version of wxWindows.
737
738I have finally started documenting wxPython. There are several pages
739in the wxWindows documentation tree specifically about wxPython, and I
740have added notes within the class references about where and how wxPython
741diverges from wxWindows.
742
743Added wxWindow_FromHWND(hWnd) for wxMSW to construct a wxWindow from a
744window handle. If you can get the window handle into the python code,
745it should just work... More news on this later.
746
747Added wxImageList, wxToolTip.
748
749Re-enabled wxConfig.DeleteAll() since it is reportedly fixed for the
750wxRegConfig class.
751
752As usual, some bug fixes, tweaks, etc.
753
754
755
756What's new in 0.5.3
757-------------------
758Added wxSashWindow, wxSashEvent, wxLayoutAlgorithm, etc.
759
760Various cleanup, tweaks, minor additions, etc. to maintain
761compatibility with the current wxWindows.
762
763
764
765What's new in 0.5.0
766-------------------
767Changed the import semantics from "from wxPython import *" to "from
768wxPython.wx import *" This is for people who are worried about
769namespace pollution, they can use "from wxPython import wx" and then
770prefix all the wxPython identifiers with "wx."
771
772Added wxTaskbarIcon for wxMSW.
773
774Made the events work for wxGrid.
775
776Added wxConfig.
777
778Added wxMiniFrame for wxGTK.
779
780Changed many of the args and return values that were pointers to gdi
781objects to references to reflect changes in the wxWindows API.
782
783Other assorted fixes and additions.
784
785
786
787
788What's new in 0.4.2
789-------------------
790
791wxPython on wxGTK works!!! Both dynamic and static on Linux and
792static on Solaris have been tested. Many thanks go to Harm
793<H.v.d.Heijden@phys.tue.nl> for his astute detective work on tracking
794down a nasty DECREF bug. Okay so I have to confess that it was just a
795DSM (Dumb Stupid Mistake) on my part but it was nasty none the less
796because the behavior was so different on different platforms.
797
798The dynamicly loaded module on Solaris is still segfaulting, so it
799must have been a different issue all along...
800
801
802
803What's New in 0.4
804-----------------
805
8061. Worked on wxGTK compatibility. It is partially working. On a
807Solaris/Sparc box wxPython is working but only when it is statically
808linked with the Python interpreter. When built as a dyamically loaded
809extension module, things start acting weirdly and it soon seg-faults.
810And on Linux both the statically linked and the dynamically linked
811version segfault shortly after starting up.
812
8132. Added Toolbar, StatusBar and SplitterWindow classes.
814
8153. Varioius bug fixes, enhancements, etc.
816
817----------------------------------------------------------------------