]> git.saurik.com Git - wxWidgets.git/blame - wxPython/CHANGES.txt
htmlhelp.h no longer needed -> removed test in configure
[wxWidgets.git] / wxPython / CHANGES.txt
CommitLineData
6d75ea8f
RD
1CHANGES.txt for wxPython
2
3----------------------------------------------------------------------
4
b5a5d647
RD
52.3.3
6-----
b5a5d647
RD
7Added wxSplashScreen.
8
68320e40
RD
9Added wxGenericDirCtrl.
10
ce914f73 11Added wxMultiChoiceDialog.
68320e40 12
769a9cb2
RD
13The calltip window and autocomplete window in wxSTC will now use a
14wxPopupWindow if available so they can extend beyond the client area
15of the STC if needed.
16
f74ff5ef
RD
17Finished wrapping and providing typemaps for wxInputStream and also
18added the stream ctor and other methods for wxImage so images can now
19be loaded from any Python "file-like" object.
20
afb810d9
RD
21Changed the img2py tool to use PNG instead of XPM for embedding image
22data in Python source code, and the generated code now uses streams to
23convert the image data to wxImage, wxBitmap, or wxIcon.
f74ff5ef 24
96de41c2
RD
25Added wxPython.lib.rcsizer which contains RowColSizer. This sizer is
26based on code from Niki Spahiev and lets you specify a row and column
27for each item, as well as optional column or row spanning. Cells with
dae710e7 28no item assigned to it are just left blank. Stretchable rows or
96de41c2
RD
29columns are specified and work the same as in wxFlexGridSizer.
30
18fc9fa3
RD
31Updated XRCed from Roman Rolinsky
32
b5a5d647
RD
33
34
4268f798 352.3.2.1
71f1334b 36-------
4268f798
RD
37Changed (again) how the Python global interpreter lock is handled as
38well as the Python thread state. This time it works on SMP machines
39without barfing and is also still compatible with Python debuggers.
40
41Added some patches from library contributors.
42
43
44
71f1334b 45
ebf4302c 462.3.2
4f3449b4
RD
47-----
48Added EVT_HELP, EVT_HELP_RANGE, EVT_DETAILED_HELP,
49EVT_DETAILED_HELP_RANGE, EVT_CONTEXT_MENU, wxHelpEvent,
50wxContextMenuEvent, wxContextHelp, wxContextHelpButton, wxTipWindow,
51and a demo to show them in action.
52
fea018f8
RD
53Deprecated PyShell and PyShellWindow, added a snapshot of PyCrust (see
54http://sourceforge.net/projects/pycrust/. )
4f3449b4 55
c7e7022c 56Added the new virtual list capabilities to wxListCtrl.
4f3449b4 57
00b6c4e3 58Added a wxSTC style editor from Riaan Booysen to the sample apps.
4f3449b4 59
09f3d4e6
RD
60Added XRCed to the wxPython Tools directory, contributed by Roman
61Rolinsky.
62
63Added a new "constructor" to most of the window classes that calls the
6d19860f 64default C++ contructor, (the one with no parameters) and also added the
09f3d4e6
RD
65coresponding Create(...) method. This allows you to do a 2-step
66creation of windows which is sometimes required for doing things such
67as setting extended style flags before the window is created, or for
68passing the object to the XRC resource system to be created from the
69resource. The name of the new "constructor" is the original name of
70the class with a "Pre" in it. For example, wxPreWindow, wxPreFrame,
71etc.
72
fe0aca37 73Updated to version 1.40 of Scintilla and updated wxStyledTextCtrl
a6978454
RD
74accordingly. While doing this update I dropped the wxLB_SORT style
75from the wxListBox created for the AutoComplete functionality. This
76means that you will have to sort the keyword lists yourself, but you
77are free to do case sensitive or case insensitive sorts and set the
78wxSTC flag accordingly.
4f3449b4 79
6d19860f
RD
80Updated wxColumnSorterMixin to also be able to place sort icons on the
81column headers, and updated the wxListCtrl demo to show it off by
82using wxColumnSorterMixin.
83
53fe40ba 84Added wxGenBitmapTextButton, TablePrint, etc. contribs from Lorne White.
ddcb3d83 85
6d8b4f8d 86Added wxNativeFontInfo and wxFontMapper.
4f3449b4 87
431f4c16 88Added pySketch to the samples.
4f3449b4 89
19a97bd6
RD
90Significantly changed how the Python interpreter lock and thread state
91are managed, which should fix the problem of running on a
92multi-processor machine.
93
76bfdc78
RD
94Added wxPyLog so log targets can be created in Python to handle log
95messages however is wished. See demo/Main.py for an example.
96
0122b7e3
RD
97Added wxFindReplaceDialog.
98
71f1334b
RD
99The second phase of OOR is implemented for wxEvtHandler, wxSizer,
100wxShape and derived classes. This means that functions and methods
101that return an object derived from wxEvtHandler that was originally
102created in Python, will return the original Python object (if it still
103exists) instead of letting SWIG wrap a new shadow object around the
104original C++ pointer.
76bfdc78 105
9d37f964
RD
106Added some optimization methods to wxDC: GetBoundingBox, DrawLineList,
107DrawPointList.
108
79f1bf32
RD
109Added a set of sophisticated Error Dialogs from Chris Fama.
110
729f4276
RD
111Added wxRightTextCtrl from Josu Oyanguren to wxPython.lib for aligning
112text in a wxTextCtrl to the right side.
76bfdc78 113
71f1334b 114Added wxURLDataObject and an example showing drag and drop of URLs to
b37c7e1d
RD
115and from web browsers. It's still not 100% bullet-proof for all types
116of browsers, but it works for the majority of cases with the popular
117browsers on Windows. On wxGTK it seems that only Netscape 4.x works,
118if anybody has any suggestions about this please bring it up on the
119wx-dev list.
120
121Added wxStopWatch.
122
123Added wxMimeTypesManager and wxFileType.
124
c0c84fa0
RD
125Passing None for the handler parameter to one of the EVT_** functions
126will now Disconnect the event.
127
128Added wxPopupWindow and wxPopupTransientWindow.
129
7dbce44a
RD
130Added wxFileHistory.
131
71f1334b 132Added wxDynamicSashWindow, which allows you to endlessly split windows
ebf4302c 133by dragging a little tab next to the scrollbars. Added a demo to show
71f1334b 134this and also the ability of multiple wxStyledTextCtrls to share the
ebf4302c
RD
135same document.
136
611dc22c
RD
137Added wxEditableListBox gizmo.
138
78e8819c
RD
139Updated wxEditor with lots of enhancements from Steve Howell and Adam
140Feuer.
141
142Added the "SplitTree gizmos" which are a collection of classes that
143were designed to operate together and provide a tree control with
144additional columns for each item. The classes are
145wxRemotelyScrolledTreeCtrl, wxTreeCompanionWindow,
146wxThinSplitterWindow, and wxSplitterScrolledWindow, some of which may
147also be useful by themselves.
1918b6f7 148
4a61305d
RD
149Added wxDllWidget from Vaclav Slavik which allows wx widgets derived
150from wxWindow to be loaded from a C++ .dll (or .so) and be used in a
151wxPython program, without the widget having to be SWIGged first. The
152visible API of the widget is limited to wxWindow methods plus a
153SendCommand method, but it is still quite powerful. See
154wxPython/contrib/dllwidget and wxPython/demo/dllwidget for more
155details.
156
b37c7e1d 157
fea018f8
RD
158
159
286e2db6 1602.3.1
bf7945ce
RD
161-----
162Added EVT_GRID_EDITOR_CREATED and wxGridEditorCreatedEvent so the user
163code can get access to the edit control when it is created, (to push
164on a custom event handler for example.)
165
d56cebe7
RD
166Added wxTextAttr class and SetStyle, SetDefaultStyle and
167GetDefaultStyle methods to wxTextCtrl.
168
169Added ability to use xml resource files. Still need to add ability to
170subclass wxXmlResourceHandler, etc...
171
172Added wxGridAutoEditMixin to the mixins library package.
173
174Made ColourSelect be derived from wxButton.
175
286e2db6
RD
176Fixed img2py to work correctly with Python 2.1.
177
178Added enhanced wxVTKRenderWindow by Prabhu Ramachandran
179
bf7945ce 180
9416aa89
RD
181
1822.3.0
19cf4f80
RD
183-----
184Removed initial startup dependency on the OpenGL DLLs so only the
9416aa89 185glcanvasc.pyd depends on them, (on wxMSW.)
19cf4f80
RD
186
187Changed wxFont, wxPen, wxBrush to not implicitly use the
9416aa89
RD
188wxThe[Font|Pen|Brush]List objects behind the scenes, but to use normal
189ctor and dtors.
19cf4f80
RD
190
191Exposed the wxThe[Font|Pen|Brush]List to wxPython.
192
1af9e5c5 193Also added wxTheColourDatabase and added a library module (in the
19cf4f80
RD
194wxPython.lib.colourdb module) to load LOTS more colour names into the
195colour database.
196
6e18ca6c
RD
197Added wxWakeUpMainThread, wxMutexGuiEnter, wxMutexGuiLeave,
198wxMutexGuiLocker and wxThread_IsMain to assist with dealing with GUI
199access from non-GUI threads.
200
1af9e5c5
RD
201wxPyOnDemandOutputWindow is now (more) thread safe if non-GUI threads
202use print, sys.stdout.write, etc.
6e18ca6c 203
6bb38ab6
RD
204Added CreateTextSizer and CreateButtonSizer to wxDialog
205
6bb38ab6
RD
206Added wxPython/lib/infoframe.py from Chris Fama. It contains a class
207that can be used in place of wxPyOnDemandOutputWindow.
208
49875c53
RD
209Added colourselect.py, imagebrowser.py and an updated calendar.py to
210wxPython/lib from Lorne White.
211
e0672e2f
RD
212Added patch to wxPoint_LIST_helper from Tim Hochberg that should make
213it gobs faster in certain situations.
6bb38ab6 214
1af9e5c5
RD
215Added tools that will take an image file in a wx supported format and
216convert it to data embedded in a Python source file. The image is
9416aa89
RD
217converted to XPM format which is essentially a list of strings
218containing info about each pixel. The image's transparency mask is
219included, if there is one, or a mask can be added if a mask colour is
220specified on the command line. It is then pickled and optionally
221compressed and written to a Python source file along with functions to
222convert it to either a wxBitmap or a wxImage. See
223wxPython/demo/images.py for examples, and wxPython/Tools/img2py.py for
224the implementation.
1af9e5c5
RD
225
226Fixed wxStyledTextCtrl to be much faster on wxGTK. There was some
227experimental code that got left in place that ended up causing way too
228many refreshes.
229
d1679124
RD
230A couple more hacks in my_distutils.py so wxPython can be built with
231the distutils that comes with Python 2.1.
1af9e5c5 232
d7ec6564 233Added a ton of missing methods for wxPrintData.
1af9e5c5 234
d7ec6564 235Switched to InnoSetup for MSW distributions.
19cf4f80 236
3b36695d
RD
237Added wxToggleButton.
238
239Fixed bug that prevented wxTreeCtrl.OnCompareItems from being called.
d1679124 240
9416aa89
RD
241Added some methods to wxGrid:
242 GetCellHighlightPenWidth
243 GetCellHighlightROPenWidth
244 SetCellHighlightPenWidth
245 SetCellHighlightROPenWidth
246 GetGridWindow
247 GetGridRowLabelWindow
248 GetGridColLabelWindow
249 GetGridCornerLabelWindow
250
251Added wxGetClientDisplayRect which on wxMSW returns a wxRect
252representing the area on screen not occupied by the taskbar and such.
253On other platforms it is equivallent to wxGetDisplaySize.
254
255
256***---***---***---***---***---***---***---***---***---***---***---
257 Implemented the first phase of OOR (Original Object Return). See
258 the text in the demo for more details of what this means, but in a
259 nutshell methods such as wxWindow.GetParent or FindWindowById will
260 now return a shadow object of the proper type if it can. By
261 "proper type" I mean that if the wxWindow pointer returned from
262 FindWindowById really points to a wxButton then the Python object
263 constructed will be of a wxButtonPtr class instead of wxWindowPtr
264 as before. This should reduce or eliminiate the need for
265 wxPyTypeCast. (Woo Hoo!) The objects returned are still not the
266 original Python object, but that is the next step. (Although it
267 will probably only work on Python 2.1 and beyond because it will
268 use weak references.)
269
270 This first phase of the OOR plan is fairly significant and has
271 required a lot of changes all over wxPython, most of which should
272 be transparent to you, however I'm not 100% sure that it didn't
273 introduce any new bugs that are hiding somewhere and didn't get
274 stomped on during my testing. So please be sure to test everything
275 thoroughly when you install this version and be sure to report any
276 object-type related oddities to me.
277***---***---***---***---***---***---***---***---***---***---***---
278
279There is now a wxObject class that most other classes derive from like
280in C++, but the methods provided don't really match but are wxPython
bf7945ce
RD
281specific. It could have been added long ago but OOR required it so it
282finally got done.
9416aa89
RD
283
284Finally added wxPyLineShape.GetLineControlPoints, which has been on my
285list for a while. The above OOR modification made this easier.
d1679124 286
10e07c70 287Fixed the __cmp__ methods for wxPoint and others.
419c299a 288
493f1553
RD
289Added wxWave.
290
30aaddfe
RD
291Added the wxPython.lib.mixins package to the library, it is where
292useful mix-in classes can be placed. Currently there is one to help
bf7945ce
RD
293make the columns in a wxListCtrl sortable, and the MagicIMageList from
294Mike Fletcher. If you have any custom code that can be factored out
295of existing classes into a mix-in that would be useful to others
30aaddfe
RD
296please send it to me for inclusion in this package.
297
25832b3f
RD
298Added a few little sample applications to help newbies to get started
299by having smaller functional apps to play with. They can be found in
300wxPython/samples.
301
493f1553 302
19cf4f80
RD
303
304
b075a3bb
RD
3052.2.6
306-----
307
308No changes happened in the Python wrappers for this release, only
309changes and fixes in the wxWindows library.
310
1b62f00d 311
19cf4f80 312
1b62f00d 3132.2.5
185d7c3e
RD
314-----
315
316New typemaps for wxString when compiling for Python 2.0 and beyond
317that allow Unicode objects to be passed as well as String objects. If
318a Unicode object is passed PyString_AsStringAndSize is used to convert
319it to a wxString using the default encoding.
320
321Fixed the generic buttons so tool tips work for them.
322
323Fixed a bug in the demo's tree control.
324
325Added a listbox to the listbox demo that shows how to find items with
1e7ecb7b 326a matching prefix as keys are typed.
185d7c3e
RD
327
328Added code to the wxListCtrl demo to show how to get text from a
329column in report mode.
330
331Added code to the toolbar demo to clear the long help from the status
332bar after 2 seconds.
333
334Added wxJoystick.
335
336Fixed wxTimer so it can be used as described in the docs, either with
337a Notify method in a subclass, or sending an event to a wxEvtHandler
338object, (usually a window.)
339
340Added wxNotifyEvent.Allow()
341
de20db99
RD
342Fixed GOBS of reference leaks.
343
1e7ecb7b
RD
344Massive code changes and cleanup to allow wxPython to be split into
345multiple extension modules again. A Python CObject is used to allow
1b62f00d
RD
346the "export" of SWIG functions and other common helper functions from
347the wxc module to other modules, even if they are in separate shared
1e7ecb7b
RD
348libraries. Should also be usable from 3rd party code, just include
349wxPython/src/export.h
350
351Changed the default setup so the following are built as separate
352extension modules: calendar, glcanvas, grid, html, ogl, stc, and
353utils. Will probably add more later.
354
1b62f00d
RD
355Changed the wxPrinterDC to use the new constructor taking a
356wxPrintData object. The old ctor is still there using the
357wxPrinterDC2 name.
358
359Added wxPython.lib.anchors.py from Riaan Booysen. It contains a class
360that implements Delphi's Anchors with wxLayoutConstraints.
361
362Added wxPython.lib.fancytext from Timothy Hochberg.
363
364Changed the GenericButtons to send their event in idle time, so the
365mouse won't be captured when the event handler is called.
366
367Added wxPython.lib.rpcMixin from Greg Landrum, although it's not
368integrated with the demo yet. It allows a wxPython GUI to be an
369XML-RPC server.
370
185d7c3e
RD
371
372
c368d904
RD
373New in 2.2.2
374------------
375
376Significantly changed how the wxStyledtextCtrl code that wraps
377Scintilla is implemented. Most of it is now automatically generated
378from an interface definition file provided by Scintilla. This means
379that it will be much easier to stay in sync with new Scintilla
380releases, but also means that some of the method and identifier names
381have changed. See wxPython/demo/data/stc.h for a copy of the C++
382interface from which the Python interface is generated. There is now
383some inline documentation in that file that should really help explain
384how things work.
385
386I am now using the Python Distutils to build wxPython and to make some
387of the distribution files. (See http://www.python.org/sigs/distutils-sig/)
388This means no more messing with my kludgy build.py/Makefile hack,
389builds will be more consistent with other Python extensions that also
390use Distutils, and will hopefully make wxPython easier to build for
391platforms where there have been troubles before. If you are building
392wxPython for Python 1.5.2 or for 1.6, then you will need to get and
393install version 1.0 of Distutils from the website above. If you are
394using Python 2.0 then you already have it.
395
396Added wxInputStream and the wxFileSystem family of classes,
397contributed by Joerg Baumann.
398
399Added wxProcess and support for it to wxExecute. wxProcess lets you
400get notified when an asyncronous child process terminates, and also to
401get input/output streams for the child process's stdout, stderr and
402stdin.
403
404Removed the old python sizers.
405
406Added __add__, __sub__ and __cmp__ (equality check only) for wxPoint
407and wxRealPoint.
408
409Changed the build to make one big extension module instead of one for
410the core and each contrib. This allowed me to do away with the
411libwxPyHelpers.so on unix systems.
412
413Lots of little fixes here and there.
414
415Some hacks on wxGTK to try and make the AutoComplete listbox in the
416wxStyledTextCtrl to behave better. It's still not as nice as on
417wxMSW, but at least it's a bit more usable now.
418
419
420
421
3ca6a5f0
BP
422New in 2.2.1
423------------
424
425Various tweaks, fixes, missing methods, etc.
426
c368d904
RD
427Added example use of wxTaskBarIcon to the demo.
428
3ca6a5f0
BP
429
430
f6bcfd97
BP
431New in 2.2.0
432------------
433
434Added wxLog and friends.
435
436Added wxFrame.ShowFullScreen for MSW.
437
438Added PyShellWindow to the wxPython.lib package.
439
440
441
442New in 2.1.16
443-------------
444
445Added an attribute named labelDelta to the generic buttons that
446specifies how far to offset the label when the button is in the
447depressed state.
448
449Added wxTipProvider and friends. See the demo for an example.
450
451wxGrid can now change the cell highlight colour.
452
453Added wxDragImage.
454
455Fixed printing on wxGTK.
456
457Added wxDateTime, wxTimeSpan, and wxDateSpan to wxPython.utils.
458
459Added wxCalendarCtrl.
460
461WARNING: A while back I asked what should be done about the Magic
462Method Names. (Methods that are automatically turned into event
463handlers by virtue of their name.) The consensus was that it is more
464confusing to have them than to try and expand them to have greater
465coverage. I am finally getting around to removing the code that
466generates the event binding. This means that if you are using any of
467the following method names without a EVT_* call that you need to
468modify your code to add the EVT_* to hook the event to the method.
469
470 OnChar
471 OnSize
472 OnEraseBackground
473 OnSysColourChanged
474 OnInitDialog
475 OnPaint
476 OnIdle
477 OnActivate
478 OnMenuHighlight
479 OnCloseWindow
480 OnScroll
481
482Added wxSpinCtrl.
483
484
485
486
487New in 2.1.15
164b735b
RD
488-------------
489
490Fixed wxTreeCtrl.HitTest to return both the tree item as well as the
491flags that clairify where the click was in relation to the item.
492
854862f5
RD
493Fixed thread state problem in wxTreeCtrl.GetBoundingBox and
494GetSelections.
164b735b 495
99ab9f3b
RD
496Fixed some problems in OGL. Also wxShape.SetClientData and
497.GetClientData can now deal with Python objects.
714d23b4 498
dcd38683 499Added wxListCtrl.SortItems and changed the demo to show how to use it.
714d23b4 500
f6bcfd97
BP
501Plugged a memory leak.
502
503Wrapped the new wxGrid and friends. The old wxGrid class is no longer
504available. There are some incompatibilities, and unfortunately the
505new classes are not documented yet, (however the methods are more
506consistent with each other now so you may be able to guess pretty
507good...)
508
509Updated filebrowsebutton.py and calendar.py with changes from their
510authors. There is now a FileBrowseButtonWithHistory class (what a
511mouthful!) and wxCalendar has printing support.
512
513Added ActiveXWrapper to the library, and some good demos of it too.
514It works great for embedding a COM (a.k.a OCX, a.k.a ActiveX) control
515in a window and calling its methods. It actually creates a new class
516on the fly that derives from wxWindow, the COM CoClass and others
517needed to make it all work. The resulting class can be instantiated
518just like wxWindow, used in sizers, etc. It also responds to all COM
519method calls, properties, etc., and if the class or a mix-in has
520matching method names, then the COM events will be propogated back to
521them.
522
523Created a typemap that allows a string to be used for parameters
524expecting a wxColour type. The string is either a colour name as
525defined in the wxColourDatabase, or a colour spec of the form
526"#RRGGBB". See the wxStyledTextCtrl demo for an example.
527
528I almost forgot to mention the wxStyledTextCtrl! Yes, the
529wxStyledTextCtrl is finally in wxPython!! (And the crowd goes
530wild...) There's no documentaTion yet (the crowd boos and hisses...)
531but I've included a very readable source file in the
532wxPython/demo/data directory, a couple fairly good examples, and you
533can also refer to the Scintilla documentaion at
534http://www.scintilla.org/ScintillaDoc.html to help fill in the gaps
535until the docs are done. (The croud murmers contentedly as the tool
536provider smiles convincingly and removes his flame-proof suit.)
537
164b735b
RD
538
539
540
9e57c2a0 541What's new in 2.1.13
6d75ea8f 542--------------------
9e57c2a0
RD
543Skipped a version number to match what has been released for wxGTK.
544
6d75ea8f
RD
545Updated wxMVCTree and added a demo for it, also fixed layout on GTK
546and some flicker problems.
547
548Added a wrapper class for the Visualization ToolKit (or VTK) in the
549wxPython.lib.vtk module. (http://www.kitware.com/)
550
551Fixed wxTreeCtrl.SetItemImage and GetItemImage to recognise the new
552"which" parameter.
553
554Added wxPython.lib.spashscreen from Mike Fletcher.
555
556Added wxPython.lib.filebrowsebutton also from Mike Fletcher.
557
558Renamed wxTreeCtrl.GetParent to GetItemParent to avoid a name clash
559with wxWindow.GetParent.
560
561Added wxIntersectRect to compute the intersection of two wxRect's.
562It is used like this:
563
564 intersect = wxIntersectRect(rect1, rect2)
565
566If r1 and r2 don't intersect then None is returned, otherwise the
567rectangle representing the intersection is returned.
568
569Some bug fixes for Clipboard and Drag-n-Drop.
570
9b3d3bc4 571Rotated text!!! WooHoo! (See wxDC.DrawRotatedText())
6999b0d8
RD
572
573Added a set of Generic Buttons to the library. These are simple
574window classes that look and act like native buttons, but you can have
575a bit more control over them. The bezel width can be set in addition
576to colours, fonts, etc. There is a ToggleButton as well as Bitmap
9e57c2a0
RD
577versions too. They should also serve as a good example of how to
578create your own classes derived from wxControl.
6d75ea8f 579
9b3d3bc4
RD
580The C++ wxToolBar classes have been redone, and so have the wxPython
581wrappers. There have been slight modifications to some of the methods
582but shouldn't impact anybody too much. I took the opportunity to add
583support for setting user data on each toolbar tool. The new AddTool
584methods look like this:
585
586 def AddTool(ID,
587 bitmap,
588 pushedBitmap = wxNullBitmap,
589 toggle = FALSE,
590 clientData = NULL,
591 shortHelpString = "",
592 longHelpString = "")
593
594 def AddSimpleTool(ID,
595 bitmap,
596 shortHelpString = "",
597 longHelpString = "",
598 toggle=FALSE)
599
600
601There are also coresponding InsertTool and InsertSimpleTool methods
602that additionally take an integer position as the first parameter.
603
9e57c2a0 604Added a wrapper for the new PCX and TIFF ImageHandlers.
9b3d3bc4
RD
605
606wxRect now simulates attributes named left, right, top and bottom.
607
d2103cf2
RD
608Removed all non wx stuff from the glcanvas module since DA's PyOpenGL
609is better and compatible with the wxGLCanvas. You can get it at
610http://starship.python.net:9673/crew/da/Code/PyOpenGL.
9b3d3bc4 611
3af4e610 612Added some missing EVT_ functions.
9b3d3bc4 613
1b55cabf
RD
614Added Dirk Holtwic's editor classes to the wxPython.lib.editor
615package.
616
eec92d76
RD
617Changed all the "LIST" parameter names to "choices" to match the docs.
618
fe366bc9
RD
619More fixes for the wxFloatBar, and it now works on wxGTK even better
620than wxMSW! (The feat is accomplished by using the wxTB_DOCKABLE
621style flag instead of trying to float it ourselves.)
622
9b3d3bc4 623
6d75ea8f
RD
624
625
626What's new in 2.1.11
627--------------------
628Skipped a few version numbers so wxMSW, wxGTK and wxPython are all
629syncronized.
630
631wxImage.SetData now makes a copy of the image data before giving it to
632wxImage. I mistakenly thought that wxImage would copy the data
633itself.
634
635Fixed wxMSW's notebook so the pages get their size set as they are
636being added. This should remove the need for our
637wxNotebook.ResizeChildren hack.
638
639wxPanels now support AutoLayout, and wxNotebooks and wxSplitterWindows
640no longer tell their children to Layout() themselves. This will
641probably only effect you if you have a wxWindow with AutoLayout inside
642a notebook or splitter. If so, either change it to a wxPanel or add
643an EVT_SIZE handler that calls Layout().
644
645Fixed deadlock problem that happened when using threads.
646
647Added new HTML printing classes.
648
649Added wxWindow.GetHandle
650
651Apparently wxMouseEvent.Position has been depreciated in wxWindows as
652it is no longer available by default. You can use GetPositionTuple
653(returning a tuple with x,y) instead, or GetPosition (returning a
654wxPoint.)
655
656Added wxPostEvent function that allows events to be posted and then
657processed later. This is a thread-safe way to interact with the GUI
658thread from other threads.
659
660Added Clipboard and Drag-and-Drop classes.
661
662Added wxFontEnumerator.
663
664Many updates to wxMenu, wxMenuBar.
665
666wxPyEvent and wxPyCommandEvent derived classes now give you the actual
667Python object in the event handler instead of a new shadow.
668
669Added a Calendar widget from Lorne White to the library.
670
671Made some fixes to the wxFloatbar. It still has some troubles on
672wxGTK...
673
674Added an MVC tree control from Bryn Keller to the library.
675
676
677
678
679What's new in 2.1.5
680-------------------
681This is a quick bug-fix release to take care of a few nasties that
682crept in at the last minute before 2.1.4 was called done. No new
683major features.
684
685
686
687What's new in 2.1.4
688--------------------
689
690This release is NOT syncronized with a snapshot release of wxGTK or
691wxMSW. For MSW this isn't much of a problem since you can get the
692binaries from the web site. For other platforms you'll have to build
693wxGTK from CVS. (See http://web.ukonline.co.uk/julian.smart/wxwin/cvs.htm)
694To get the same set of sources from CVS that I used, checkout using
695the wxPy-2-1-4 tag.
696
697Now back to what's new...
698
699Much more support for event-less callbacks and add-on modules.
700
701Created add-on module with wxOGL classes.
702
703Added wxWindow.GetChildren(). Be careful of this. It returns a *copy*
704of the list of the window's children. While you are using the list if
705anything changes in the real list (a child is deleted, etc.) then the
706list you are holding will suddenly have window references to garbage
707memory and your app will likely crash. But if you are careful it works
708great!
709
710Added a bunch of new and missing methods to wxTreeCrtl. The
711SortChildren method is now supported, but currently only for the
712default sort order.
713
714Added typemaps for wxSize, wxPoint, wxRealPoint, and wxRect that allow
715either the actual objects or Python sequence values to be used. For
716example, the following are equivallent:
717
718 win = wxWindow(parent, size = wxSize(100, 100))
719 win = wxWindow(parent, size = (100, 100))
720
721Super-charged the wxHtml module. You can now create your own tag
722handlers and also have access to the parser and cell classes. There
723is a tag handler in the library at wxPython.lib.wxpTag that
724understands the WXP tag and is able to place wxPython windows on HTML
725pages. See the demo for an example.
726
727A bunch of the methods of wxMenuBar were previously ifdef'd out for
728wxGTK. Added them back in since the methods exist now.
729
730Wrapped the wxHtmlHelpController and related classes.
731
732Wrapped the C++ versions of wxSizer and friends. The Python-only
733versions are still in the library, but depreciated. (You will get a
734warning message if you try to use them, but the warning can be
735disabled.) The usage of the C++ versions is slightly different, and
736the functionality of wxBorderSizer is now part of wxBoxSizer. I have
737added a few methods to wxSizer to try and make the transition as
738smooth as possible, I combined all Add methods into a single method
739that handles all cases, added an AddMany method, etc. One step I did
740not take was to make the default value of flag in the Add method be
741wxGROW. This would have made it more backward compatible, but less
742portable to and from wxWin C++ code. Please see the docs and demo for
743further details.
744
745Added wxPyEvent and wxPyCommandEvent classes, derived from wxEvent and
746wxCommandEvent. Each of them has SetPyData and GetPyData methods that
747accept or return a single Python object. You can use these classes
748directly or derive from them to create your own types of event objects
749that can pass through the wxWindows event system without loosing their
750Python parts (as long as they are stored with SetPyData.) Stay tuned
751for more info and examples in future releases.
752
753Added wxPython.lib.grids as an example of how to derive a new sizer
754from the C++ sizers. In this module you will find wxGridSizer and
755wxFlexGridSizer. wxGridSizer arrainges its items in a grid in which
756all the widths and heights are the same. wxFlexgridSizer allows
757different widths and heights, and you can also specify rows and/or
758columns that are growable. See the demo for a couple examples for how
759to use them.
760
761Added the wxValidator class, and created a class named wxPyValidator
762that should be used for the base class of any Python validators. See
763the demo for an example. Please note that you MUST implement a Clone
764method in your validator classes because of the way some things work
765in the underlying C++ library. I did not add wxTextValidator because
766of some issues of how it transfers data to and from a wxString, which
767in wxPython is automatically translated to and from Python strings, so
768there would never be a concrete wxString that would hang around long
769enough for the validator to do its job. On the other hand, it should
770be real easy to duplicate the functionality of wxTextValidator in a
771pure Python class derived from wxPyValidator.
772
773I've finally added a feature that has been on my list for close to two
774years! Ever wondered what that zero is for when you create your app
775object? Well now you can leave it out or explicitly set it to a true
776value. This value now controls what is to be done with sys.stdout and
777sys.stderr. A false value leaves them alone, and a true value sets
778them to an instance of wxPyOnDemandOutputWindow. (On windows the
779default is true, on unix platforms the default is false.) This class
780creates a frame containing a wxTextCtrl as soon as anything is written
781to sys.stdout or sys.stderr. If you close the window it will come
782back again the next time something is written. (You can call
783app.RestoreStdio to turn this off.) If you would rather that the stdio be
784redirected to a file, you can provide a second parameter to your app
785object's constructor that is a filename. If you want to use your own
786class instead of wxPyOnDemandOutputWindow you can either implement
787RedirectStdio() in you app class or change the value of
788wxApp.outputWindowClass like this:
789
790 class MyApp(wxApp):
791 outputWindowClass = MyClass
792
793 def OnInit(self):
794 frame = MyFrame()
795 self.SetTopWindow(frame)
796 return true
797
798Please see the implementation of wxPyOnDemandOutputWindow and wxApp in
799wx.py for more details. A few words of caution: if you are running
800your app in a debugger, changing sys.stdout and sys.stderr is likely
801to really screw things up.
802
803Added wxCaret. Unfortunately it's author has still not documented it
804in the wxWindows docs...
805
806Some new 3rd party contributions in wxPython.lib. PyShell, in
807shell.py is an interesting implementaion of an interactive Python
808shell in wxWindows. floatbar.py has a class derived from wxToolBar
809that can sense mouse drags and then reparent itself into another
810frame. Moving the new frame close to where it came from puts the tool
811bar back into the original parent. (Unfortunately there is currently
812a bug in wxGTK's wxFrame.SetToolBar so the FloatBar has some
813problems...)
814
815
816
817
818What's new in 2.1b3
819--------------------
820
821This release is syncronized with release 2.1 snapshot 9 of wxWindows.
822
823Switched to using SWIG from CVS (see http://swig.cs.uchicago.edu/cvs.html)
824for some of the new features and such. Also they have encorporated my
825patches so there is really no reason to stick with the current (very
826old) release... This version of SWIG gives the following new
827features:
828
829 1. Keyword arguments. You no longer have to specify all the
830 parameters with defaults to a method just to specify a
831 non-default value on the end. You can now do this instead:
832
833 win = wxWindow(parent, -1, style = mystyle)
834
835 2. There is now an an equivalence between Python's None and C++'s
836 NULL. This means that any methods that might return NULL will
837 now return None and you can use none where wxWindows might be
838 expecting NULL. This makes things much more snake-ish.
839
840
841There is a new build system based on a new Python program instead of
842raw makefiles. Now wxPython builds are virtually the same on MSW or
843Unix systems. See the end of this file for new build instructions and
844see distrib/build.py for more details.
845
846wxDC.Bilt now includes the useMask parameter, and has been split into
847two different versions. wxDC.BlitXY is like what was there before and
848takes raw coordinants and sizes, and the new wxDC.Blit is for the new
849interface using wxPoints and a wxSize.
850
851
852
853
854
855What's new in 2.1b2
856--------------------
857
858Added the missing wxWindow.GetUpdateRegion() method.
859
860Made a new change in SWIG (update your patches everybody) that
861provides a fix for global shadow objects that get an exception in
862their __del__ when their extension module has already been deleted.
863It was only a 1 line change in .../SWIG/Modules/pycpp.cxx at about
864line 496 if you want to do it by hand.
865
866It is now possible to run through MainLoop more than once in any one
867process. The cleanup that used to happen as MainLoop completed (and
868prevented it from running again) has been delayed until the wxc module
869is being unloaded by Python.
870
871I fixed a bunch of stuff in the C++ version of wxGrid so it wouldn't
872make wxPython look bad.
873
874wxWindow.PopupMenu() now takes a wxPoint instead of x,y. Added
875wxWindow.PopupMenuXY to be consistent with some other methods.
876
877Added wxGrid.SetEditInPlace and wxGrid.GetEditInPlace.
878
879You can now provide your own app.MainLoop method. See
880wxPython/demo/demoMainLoop.py for an example and some explaination.
881
882Got the in-place-edit for the wxTreeCtrl fixed and added some demo
883code to show how to use it.
884
885Put the wxIcon constructor back in for GTK as it now has one that
886matches MSW's.
887
888Added wxGrid.GetCells
889
890Added wxSystemSettings static methods as functions with names like
891wxSystemSettings_GetSystemColour.
892
893Removed wxPyMenu since using menu callbacks have been depreciated in
894wxWindows. Use wxMenu and events instead.
895
896Added alternate wxBitmap constructor (for MSW only) as
897 wxBitmapFromData(data, type, width, height, depth = 1)
898
899Added a helper function named wxPyTypeCast that can convert shadow
900objects of one type into shadow objects of another type. (Like doing
901a down-cast.) See the implementation in wx.py for some docs.
902
903Fixed wxImage GetData and SetData to properly use String objects for
904data transfer.
905
906Added access methods to wxGridEvent.
907
908New Makefile/Setup files supporting multiple dynamic extension modules
909for unix systems.
910
911Fixes for the wxGLCanvas demo to work around a strange bug in gtk.
912
913SWIG support routines now compiled separately instead of being bundled
914in wx.cpp.
915
916
917
918
919
920What's new in 2.1b1
921--------------------
922Fixed wxComboBox.SetSelection so that it actually sets the selected
923item. (Actually just removed it from wxPython and let it default to
924wxChoice.SetSelection which was already doing the right thing.)
925
926Added the Printing Framework.
927
928Switched back to using the wxWindows DLL for the pre-built Win32
929version. The problem was needing to reinitialize static class info
930data after loading each extension module.
931
932Lots of little tweaks and additions to reflect changes to various
933wxWindows classes.
934
935Fixed a bug with attaching objects to tree items. Actually was a
936symptom of a larger problem with not obtaining the interpreter lock
937when doing any Py_DECREFs.
938
939wxSizer and friends. Sizers are layout tools that manage a colection
940of windows and sizers. Different types of sizers apply different
941types of layout algorithms. You saw it here first! These classes are
942not even in the wxWindows C++ library yet!
943
944
945
946What's new in 2.0b9
947-------------------
948Bug fix for ListCtrl in test4.py (Was a missing file... DSM!)
949
950Bug fix for occassional GPF on Win32 systems upon termination of a
951wxPython application.
952
953Added wxListBox.GetSelections returning selections as a Tuple.
954
955Added a wxTreeItemData that is able to hold any Python object and be
956associated with items in a wxTreeCtrl. Added test pytree.py to show
957this feature off.
958
959Added wxSafeYield function.
960
961OpenGL Canvas can be optionally compiled in to wxPython.
962
963Awesome new Demo Framework for showing off wxPython and for learning
964how it all works.
965
966The pre-built Win32 version is no longer distributing the wxWindows
967DLL. It is statically linked with the wxWindows library instead.
968
969Added a couple missing items from the docs.
970
971Added wxImage, wxImageHandler, wxPNGHandler, wxJPEGHandler,
972wxGIFHandler and wxBMPHandler.
973
974Added new methods to wxTextCtrl.
975
976Fixed some problems with how SWIG was wrapping some wxTreeCtrl
977methods.
978
979
980
981What's new in 2.0b8
982-------------------
983Support for using Python threads in wxPython apps.
984
985Several missing methods from various classes.
986
987Various bug fixes.
988
989
990
991What's new in 2.0b7
992-------------------
993Added DLG_PNT and DLG_SZE convienience methods to wxWindow class.
994
995Added missing constructor and other methods for wxMenuItem.
996
997
998
999What's new in 2.0b6
1000-------------------
1001Just a quickie update to fix the self-installer to be compatible with
1002Python 1.5.2b2's Registry settings.
1003
1004
1005What's new in 2.0b5
1006-------------------
1007Well obviously the numbering scheme has changed. I did this to
1008reflect the fact that this truly is the second major revision of
1009wxPython, (well the third actually if you count the one I did for
1010wxWindows 1.68 and then threw away...) and also that it is associated
1011with the 2.0 version of wxWindows.
1012
1013I have finally started documenting wxPython. There are several pages
1014in the wxWindows documentation tree specifically about wxPython, and I
1015have added notes within the class references about where and how wxPython
1016diverges from wxWindows.
1017
1018Added wxWindow_FromHWND(hWnd) for wxMSW to construct a wxWindow from a
1019window handle. If you can get the window handle into the python code,
1020it should just work... More news on this later.
1021
1022Added wxImageList, wxToolTip.
1023
1024Re-enabled wxConfig.DeleteAll() since it is reportedly fixed for the
1025wxRegConfig class.
1026
1027As usual, some bug fixes, tweaks, etc.
1028
1029
1030
1031What's new in 0.5.3
1032-------------------
1033Added wxSashWindow, wxSashEvent, wxLayoutAlgorithm, etc.
1034
1035Various cleanup, tweaks, minor additions, etc. to maintain
1036compatibility with the current wxWindows.
1037
1038
1039
1040What's new in 0.5.0
1041-------------------
1042Changed the import semantics from "from wxPython import *" to "from
1043wxPython.wx import *" This is for people who are worried about
1044namespace pollution, they can use "from wxPython import wx" and then
1045prefix all the wxPython identifiers with "wx."
1046
1047Added wxTaskbarIcon for wxMSW.
1048
1049Made the events work for wxGrid.
1050
1051Added wxConfig.
1052
1053Added wxMiniFrame for wxGTK.
1054
1055Changed many of the args and return values that were pointers to gdi
1056objects to references to reflect changes in the wxWindows API.
1057
1058Other assorted fixes and additions.
1059
1060
1061
1062
1063What's new in 0.4.2
1064-------------------
1065
1066wxPython on wxGTK works!!! Both dynamic and static on Linux and
1067static on Solaris have been tested. Many thanks go to Harm
1068<H.v.d.Heijden@phys.tue.nl> for his astute detective work on tracking
1069down a nasty DECREF bug. Okay so I have to confess that it was just a
1070DSM (Dumb Stupid Mistake) on my part but it was nasty none the less
1071because the behavior was so different on different platforms.
1072
1073The dynamicly loaded module on Solaris is still segfaulting, so it
1074must have been a different issue all along...
1075
1076
1077
1078What's New in 0.4
1079-----------------
1080
10811. Worked on wxGTK compatibility. It is partially working. On a
1082Solaris/Sparc box wxPython is working but only when it is statically
1083linked with the Python interpreter. When built as a dyamically loaded
1084extension module, things start acting weirdly and it soon seg-faults.
1085And on Linux both the statically linked and the dynamically linked
1086version segfault shortly after starting up.
1087
10882. Added Toolbar, StatusBar and SplitterWindow classes.
1089
10903. Varioius bug fixes, enhancements, etc.
1091
1092----------------------------------------------------------------------