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