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