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