----------------------------------------------------------------------
+2.3.1
+-----
+Added EVT_GRID_EDITOR_CREATED and wxGridEditorCreatedEvent so the user
+code can get access to the edit control when it is created, (to push
+on a custom event handler for example.)
+
+Added wxTextAttr class and SetStyle, SetDefaultStyle and
+GetDefaultStyle methods to wxTextCtrl.
+
+Added ability to use xml resource files. Still need to add ability to
+subclass wxXmlResourceHandler, etc...
+
+Added wxGridAutoEditMixin to the mixins library package.
+
+Made ColourSelect be derived from wxButton.
+
+Fixed img2py to work correctly with Python 2.1.
+
+Added enhanced wxVTKRenderWindow by Prabhu Ramachandran
+
+
+
+2.3.0
+-----
+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:
+ GetCellHighlightPenWidth
+ GetCellHighlightROPenWidth
+ SetCellHighlightPenWidth
+ SetCellHighlightROPenWidth
+ GetGridWindow
+ GetGridRowLabelWindow
+ GetGridColLabelWindow
+ GetGridCornerLabelWindow
+
+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
+wxPython/samples.
+
+
+
+
+2.2.6
+-----
+
+No changes happened in the Python wrappers for this release, only
+changes and fixes in the wxWindows library.
+
+
+
+2.2.5
+-----
+
+New typemaps for wxString when compiling for Python 2.0 and beyond
+that allow Unicode objects to be passed as well as String objects. If
+a Unicode object is passed PyString_AsStringAndSize is used to convert
+it to a wxString using the default encoding.
+
+Fixed the generic buttons so tool tips work for them.
+
+Fixed a bug in the demo's tree control.
+
+Added a listbox to the listbox demo that shows how to find items with
+a matching prefix as keys are typed.
+
+Added code to the wxListCtrl demo to show how to get text from a
+column in report mode.
+
+Added code to the toolbar demo to clear the long help from the status
+bar after 2 seconds.
+
+Added wxJoystick.
+
+Fixed wxTimer so it can be used as described in the docs, either with
+a Notify method in a subclass, or sending an event to a wxEvtHandler
+object, (usually a window.)
+
+Added wxNotifyEvent.Allow()
+
+Fixed GOBS of reference leaks.
+
+Massive code changes and cleanup to allow wxPython to be split into
+multiple extension modules again. A Python CObject is used to allow
+the "export" of SWIG functions and other common helper functions from
+the wxc module to other modules, even if they are in separate shared
+libraries. Should also be usable from 3rd party code, just include
+wxPython/src/export.h
+
+Changed the default setup so the following are built as separate
+extension modules: calendar, glcanvas, grid, html, ogl, stc, and
+utils. Will probably add more later.
+
+Changed the wxPrinterDC to use the new constructor taking a
+wxPrintData object. The old ctor is still there using the
+wxPrinterDC2 name.
+
+Added wxPython.lib.anchors.py from Riaan Booysen. It contains a class
+that implements Delphi's Anchors with wxLayoutConstraints.
+
+Added wxPython.lib.fancytext from Timothy Hochberg.
+
+Changed the GenericButtons to send their event in idle time, so the
+mouse won't be captured when the event handler is called.
+
+Added wxPython.lib.rpcMixin from Greg Landrum, although it's not
+integrated with the demo yet. It allows a wxPython GUI to be an
+XML-RPC server.
+
+
+
+New in 2.2.2
+------------
+
+Significantly changed how the wxStyledtextCtrl code that wraps
+Scintilla is implemented. Most of it is now automatically generated
+from an interface definition file provided by Scintilla. This means
+that it will be much easier to stay in sync with new Scintilla
+releases, but also means that some of the method and identifier names
+have changed. See wxPython/demo/data/stc.h for a copy of the C++
+interface from which the Python interface is generated. There is now
+some inline documentation in that file that should really help explain
+how things work.
+
+I am now using the Python Distutils to build wxPython and to make some
+of the distribution files. (See http://www.python.org/sigs/distutils-sig/)
+This means no more messing with my kludgy build.py/Makefile hack,
+builds will be more consistent with other Python extensions that also
+use Distutils, and will hopefully make wxPython easier to build for
+platforms where there have been troubles before. If you are building
+wxPython for Python 1.5.2 or for 1.6, then you will need to get and
+install version 1.0 of Distutils from the website above. If you are
+using Python 2.0 then you already have it.
+
+Added wxInputStream and the wxFileSystem family of classes,
+contributed by Joerg Baumann.
+
+Added wxProcess and support for it to wxExecute. wxProcess lets you
+get notified when an asyncronous child process terminates, and also to
+get input/output streams for the child process's stdout, stderr and
+stdin.
+
+Removed the old python sizers.
+
+Added __add__, __sub__ and __cmp__ (equality check only) for wxPoint
+and wxRealPoint.
+
+Changed the build to make one big extension module instead of one for
+the core and each contrib. This allowed me to do away with the
+libwxPyHelpers.so on unix systems.
+
+Lots of little fixes here and there.
+
+Some hacks on wxGTK to try and make the AutoComplete listbox in the
+wxStyledTextCtrl to behave better. It's still not as nice as on
+wxMSW, but at least it's a bit more usable now.
+
+
+
+
+New in 2.2.1
+------------
+
+Various tweaks, fixes, missing methods, etc.
+
+Added example use of wxTaskBarIcon to the demo.
+
+
+
New in 2.2.0
------------