[ANNOUNCE] wxPython 2.3.0

Robin Dunn robin at alldunn.com
Fri May 25 13:24:51 EDT 2001

wxPython 2.3.0 is now available for download.  Unfortunately the shell
server at sourceforge is down for a few days and so I can't update the
wxPython.org web page, but in the meantime you can get the files directly


Sources and binaries for win32 and Linux for Python 1.5.2, 2.0 and 2.1 are
available.  (The win32 binaries with "-hybrid" in the name are built with
extra debugging code enabled so some things that caused mysterious problems
before will now pop-up a slightly less mysterious message dialog.)

There have been a large number of changes for this release.  I'll include
the relevant portion of CHANGES.txt here:

Removed initial startup dependency on the OpenGL DLLs so only the
glcanvasc.pyd depends on them, (on wxMSW.)

Changed wxFont, wxPen, wxBrush to not implicitly use the
wxThe[Font|Pen|Brush]List objects behind the scenes, but to use normal
ctor and dtors.

Exposed the wxThe[Font|Pen|Brush]List to wxPython.

Also added wxTheColourDatabase and added a library module (in the
wxPython.lib.colourdb module) to load LOTS more colour names into the
colour database.

Added wxWakeUpMainThread, wxMutexGuiEnter, wxMutexGuiLeave,
wxMutexGuiLocker and wxThread_IsMain to assist with dealing with GUI
access from non-GUI threads.

wxPyOnDemandOutputWindow is now (more) thread safe if non-GUI threads
use print, sys.stdout.write, etc.

Added CreateTextSizer and CreateButtonSizer to wxDialog

Added wxPython/lib/infoframe.py from Chris Fama.  It contains a class
that can be used in place of wxPyOnDemandOutputWindow.

Added colourselect.py, imagebrowser.py and an updated calendar.py to
wxPython/lib from Lorne White.

Added patch to wxPoint_LIST_helper from Tim Hochberg that should make
it gobs faster in certain situations.

Added tools that will take an image file in a wx supported format and
convert it to data embedded in a Python source file.  The image is
converted to XPM format which is essentially a list of strings
containing info about each pixel.  The image's transparency mask is
included, if there is one, or a mask can be added if a mask colour is
specified on the command line.  It is then pickled and optionally
compressed and written to a Python source file along with functions to
convert it to either a wxBitmap or a wxImage.  See
wxPython/demo/images.py for examples, and wxPython/Tools/img2py.py for
the implementation.

Fixed wxStyledTextCtrl to be much faster on wxGTK.  There was some
experimental code that got left in place that ended up causing way too
many refreshes.

A couple more hacks in my_distutils.py so wxPython can be built with
the distutils that comes with Python 2.1.

Added a ton of missing methods for wxPrintData.

Switched to InnoSetup for MSW distributions.

Added wxToggleButton.

Fixed bug that prevented wxTreeCtrl.OnCompareItems from being called.

Added some methods to wxGrid:

Added wxGetClientDisplayRect which on wxMSW returns a wxRect
representing the area on screen not occupied by the taskbar and such.
On other platforms it is equivallent to wxGetDisplaySize.

   Implemented the first phase of OOR (Original Object Return).  See
   the text in the demo for more details of what this means, but in a
   nutshell methods such as wxWindow.GetParent or FindWindowById will
   now return a shadow object of the proper type if it can.  By
   "proper type" I mean that if the wxWindow pointer returned from
   FindWindowById really points to a wxButton then the Python object
   constructed will be of a wxButtonPtr class instead of wxWindowPtr
   as before.  This should reduce or eliminiate the need for
   wxPyTypeCast.  (Woo Hoo!)  The objects returned are still not the
   original Python object, but that is the next step.  (Although it
   will probably only work on Python 2.1 and beyond because it will
   use weak references.)

   This first phase of the OOR plan is fairly significant and has
   required a lot of changes all over wxPython, most of which should
   be transparent to you, however I'm not 100% sure that it didn't
   introduce any new bugs that are hiding somewhere and didn't get
   stomped on during my testing.  So please be sure to test everything
   thoroughly when you install this version and be sure to report any
   object-type related oddities to me.

There is now a wxObject class that most other classes derive from like
in C++, but the methods provided don't really match but are wxPython
specific.  It could have been added long ago but OOR required it so
it finally got done.

Finally added wxPyLineShape.GetLineControlPoints, which has been on my
list for a while.  The above OOR modification made this easier.

Fixed the __cmp__ methods for wxPoint and others.

Added wxWave.

Added the wxPython.lib.mixins package to the library, it is where
useful mix-in classes can be placed.  Currently there is one to help
make the columns in a wxListCtrl sortable, and the MagicIMageList
from Mike Fletcher.  If you have any custom code that can be factored
out of existing classes into a mix-in that would be useful to others
please send it to me for inclusion in this package.

Added a few little sample applications to help newbies to get started
by having smaller functional apps to play with.  They can be found in

Robin Dunn
Software Craftsman
robin at AllDunn.com       Java give you jitters?
http://wxPython.org      Relax with wxPython!

More information about the Python-list mailing list