----------------------------------------------------------------------
-?????
+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.
+glcanvasc.pyd depends on them, (on wxMSW.)
Changed wxFont, wxPen, wxBrush to not implicitly use the
-wxThe[Font|Pen|Brush]List behind the scenes, but to use normal ctor
-and dtors.
+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.
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 (with its transparency mask intact, if there
-is one) which is essentially a list of strings containing info about
-each pixel. 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. Unfortunatly, there
-is no SaveFile implemented for the XPM image type in wxGTK so the
-tools to create the embedded image files don't work on wxGTK, only on
-wxMSW. The img2xpm.py tool could probably be hacked to use external
-tools, or PIL, to do the XPM conversion on wxGTK. If somebody does
-this please send me a patch.
+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 hacks in my_distutils.py so wxPython can be built with the
-distutils that comes with Python 2.1.
-
+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.