+<h1><a name="id1">2.5.3.1</a></h1>
+<p>wxMac focus and border refreshes corrected.</p>
+<p>Updated internal PNG library.</p>
+<p>wxMac fix for metal appearance on wx.ToolBar.</p>
+<p>wx.grid.Grid fix allowing DoGetBestSize to be called before CreateGrid
+(which means that a min size doesn't need to be specified.)</p>
+<p>wxMac fix for not sending a native click to a control if it is not
+enabled (does an enable itself)</p>
+<p>Added wx.lib.ogl.DrawnShape, and fixed various little bugs in the new
+OGL.</p>
+<p>Added support to XRC and XRCed for the 3-state checkbox flags and also
+for wx.ToggleButton. Updated the generic window styles supported by
+XRCed.</p>
+<p>It is now possible to create "stock" buttons. Basically this means
+that you only have to provide one of the stock IDs (and either an
+empty label or a label that matches the stock label) when creating the
+button and wxWidgets will choose the stock label to go with it
+automatically. Additionally on the platforms that have a native
+concept of a stock button (currently only GTK2) then the native stock
+button will be used. For example, the following will result in a
+button with "Cancel" as the label and an accelerator on the "C", and
+if run on wxGTK2 then there will also be an image of a red X:</p>
+<pre class="literal-block">
+b = wx.Button(parent, wx.ID_CANCEL)
+</pre>
+<p>Added wx.lib.ticker.Ticker class from Chris Mellon.</p>
+<p>Fix some incorrect clipping regions in wxSTC on wxGTK.</p>
+<p>Added wrapper for wx.grid.Grid.GetOrCreateCellAttr.</p>
+<p>Removed my copy of distutils from the wxPython source tree. Now that
+I am no longer doing builds on Python 2.1 the newest distutils is no
+longer needed. (There is still one small bug in Python 2.2 distutils
+on win32, but it is easily worked around.) This sovles the problem of
+incorrect builds on some systems where the system installed distutils
+has been patched to behave slightly differently, for example SuSE on
+x86_64 or Chandler's build.</p>
+<p>Updated to SWIG 1.3.22 (plus my patch.) See wxPython/SWIG/README.txt
+in the source tree if you need to use SWIG when building your own copy
+of wxPython, or other extension modules that need to integrate with
+the wxPython modules.</p>
+<p>Added wx.Frame.RequestUserAttention which, if the platform suports it,
+will do something (such as flash the task bar item) to suggest to the
+user that they should look at that window.</p>
+<p>"Fixed" wx.grid.Grid.SetDefaultEditor and SetDefaultRenderer by making
+them register the editor or renderer for the "string" data type.</p>
+<p>Added depth param to wx.Image.ConvertToBitmap.</p>
+<p>Extended the wx.calendar.CalendarCtrl class with methods that get/set
+a Python datetime or date object. (These will only work with Python
+2.3+) The methods are PySetDate, PyGetDate, PySetLowerDateLimit,
+PySetUpperDateLimit, PySetDateRange, PyGetLowerDateLimit, and
+PyGetUpperDateLimit. Also, CalendarEvent was extended with PySetDate
+and PyGetDate methods.</p>
+<p>wxMSW: SetBackgroundColour on a wx.Choice or a wx.ComboBox will now
+also set the colour of the dropdown.</p>
+<p>wxMac: MessageDialog now supports wx.NO_DEFAULT style</p>
+<p>wxMSW: added AssociateHandle and DissociateHandle to wx.Window</p>
+<p>wxMac: fix for toolbar tooltips</p>
+<p>wx.Sizer.Show (and Hide) now take an optional parameter specifying if
+the item to be shown should be searched for recursivly in subsizers,
+and return a boolean value indicating if the item was found.</p>
+<p>wxMSW: fixed MaximizeEvent generation in wx.Frame</p>
+<p>wxMSW: fixed sending duplicate EVT_COMBOBOX events</p>
+<p>Smoother time estimation updates in wx.ProgressDialog (patch 992813)</p>
+<p>Made wx.Listbook events more consistent with wx.Notebook ones (patch
+1001271)</p>
+<p>Fixed rounding errors in variable status bar panes widths computation
+(patch 1030021)</p>
+<p>Added possibility to specify printer bin (patch 910272)</p>
+<p>wxMSW: fixed wx.ListCtrl's SetWindowStyleFlag() to not remove
+WS_VISIBLE; also refresh the control automatically (closes bug
+1019440)</p>
+<p>Added wx.Choicebook, yet another notebook-like control.</p>
+<p>wxMSW: Make radiobutton tab behaviour the same on MSW as in standard
+MSW app, i.e. tab into the activated, not necessarily the first radio
+button.</p>
+<p>Added limited support for wxEventLoop (you can't derive from a
+wx.PyEventLoop version yet...) Updated and moved the sample showing
+how to replace the MainLoop to samples/mainloop/mainloop.py.</p>
+<p>The C++ xrc lib has been moved out of contrib and into the core, so it
+is always built by default. wxPython's build has also changed
+accordingly and will build the xrc module as part of the core set of
+modules built by default. If you were axplicitly using BUILD_XRC then
+it will no longer be recognized as a build option, otherwise you
+should notice no difference.</p>
+<p>wxMac: Fixed radio toolbar buttons to correctly untoggle the others
+when a new one is selected.</p>
+<p>wxMac: Fixed GetLineLength and GetLineText for MLTE text controls</p>
+<p>wxMac: wx.TaskBarIcon is implemented by allowing you to change the
+app's icon on the Dock and also specifying a menu that should be
+merged with the normal dock popup menu. See the MigrationGuide for
+more details and a warning.</p>
+<p>Added wx.TopLevelWindow.IsActive() which tells you if the frame or
+dialog is or containts the active window with the keyboard focus.</p>
+<p>Added ability to create a font based on pixel size rather than point
+size via the FontFromPixelSize constructor.</p>
+<p>Updated the Scintilla used by StyledTextCtrl to version 1.61</p>
+<p>Improved image HitTest for TreeListCtrl.</p>
+<p>Added wx.App.IsMainLoopRunning.</p>
+<p>wxGTK: Make wxComboBox spit out a bit fewer surplus events when
+holding down the mouse button.</p>
+<p>wxGTK: Enable key based navigation through notebook tabs as in the
+native control with Left and right keys. Support for vetoing.</p>
+<p>FloatCanvas updates from Chris Barker</p>
+<dl>
+<dt>PyPlot updates from Gordon Williams:</dt>
+<dd><ul class="first last simple">
+<li>Added bar graph demo</li>
+<li>Modified line end shape from round to square.</li>
+<li>Removed FloatDCWrapper for conversion to ints and ints in
+arguments</li>
+<li>Imported modules given leading underscore to name.</li>
+<li>Added Cursor Line Tracking and User Point Labels.</li>
+<li>Demo for Cursor Line Tracking and Point Labels.</li>
+<li>Size of plot preview frame adjusted to show page better.</li>
+<li>Added helper functions PositionUserToScreen and
+PositionScreenToUser in PlotCanvas.</li>
+<li>Added functions GetClosestPoints (all curves) and GetClosestPoint
+(only closest curve) can be in either user coords or screen
+coords.</li>
+</ul>
+</dd>
+<dt>MaskedEdit updates from Will Sadkin:</dt>
+<dd><ul class="first last simple">
+<li>Added '*' mask char that means "all ansii chars" (ords 32-255)</li>
+<li>Added proper unicode support to masked controls and wx.tools.dbg</li>
+<li>Fixed two reported missing import bugs introduced by package
+creation</li>
+<li>Converted masked package doc strings to reST format for better
+epydoc support</li>
+<li>lots of doc string improvements and function hiding to better
+reflect package's public contents.</li>
+</ul>
+</dd>
+</dl>
+<p>Restructured the installer packages slightly to help facilitate having
+multiple versions of wxPython installed at the same time. See the
+Migrarion Guide for more information.</p>
+<dl>
+<dt>Applied patch from Pim Van Heuven that modifies 4 files:</dt>
+<dd><ul class="first last simple">
+<li>wxPython/demo/ListCtrl_edit.py (new demo)</li>
+<li>wxPython/demo/Main.py (include new demo in demo app)</li>
+<li>wxPython/wx/lib/mixins/listctrl.py (several improvements to
+TextEditMixin)</li>
+<li>wxPython/wx/lib/wxpTag.py (some small fixes)</li>
+</ul>
+</dd>
+</dl>
+<p>Added (thanks to Kevin Ollivier!) wrappers for wx.WebKitCtrl for the
+OSX build. Other platforms will raise an exception if you try to use
+it.</p>
+<p>wxPython on OSX can now be built in Unicode mode, can support multiple
+version installs, and comes with an uninstaller script.</p>
+</div>
+<div class="section" id="id2">
+<h1><a name="id2">2.5.2.8</a></h1>
+<p>Predominantly a bug-fix release.</p>
+<blockquote>
+<ul class="simple">
+<li>Fixed fatal error due to improper wrapping of wx.FSFile.</li>
+<li>Fixed return type of EditableListBox.GetListCtrl</li>
+<li>Give generic tree and list controls a DoGetBestSize so they play
+nicer with sizers when there is no minimal size.</li>
+<li>Some tweaks in the demo and samples to correct layout, some
+flicker problems, and namespace use.</li>
+<li>Add wx.Image.ConvertAlphaToMask</li>
+<li>Minor corrections in wx.lib.dialogs</li>
+<li>wx.FileHistory constructor now accepts the documented 2nd
+parameter.</li>
+<li>Corrections for exceptions in the new ogl</li>
+<li>Fixed XRCed to not use reparenting of windows to implement caching
+of property panels, since Reparent on wxMac is not implemented.</li>
+<li>Add support for wxTAB_TRAVERSAL to the XRC handler for
+wxScrolledWindow.</li>
+<li>Add support for all wxListBox styles to the XRC handler for
+wxCheckListBox.</li>
+<li>Fix for wx.Listbook.DeleteAllPages to really delete everything.</li>
+<li>wxGTK2 now supports alpha blended bitmap drawing</li>
+<li>Made wx.grid.Grid play nicer with sizers.</li>
+<li>etc.</li>
+</ul>
+</blockquote>
+</div>
+<div class="section" id="id3">
+<h1><a name="id3">2.5.2.7</a></h1>
+<p>wx.ADJUST_MINSIZE is now the default behaviour for window items in
+sizers. This means that the item's GetMinSize and/or GetBestSize will
+be called when calculating layout and the return value from that will
+be used for the minimum size used by the sizer. The wx.FIXED_MINSIZE
+flag was added that will cause the sizer to use the old behaviour in
+that it will <em>not</em> call the window's methods to determine the new best
+size, instead the minsize that the window had when added to the sizer
+(or the size the window was created with) will always be used. Please
+see the Sizers section in the Migration Guide for more details.</p>
+<p>Added new MaskedEditControl code from Will Sadkin. The modules are
+now locaed in their own sub-package, wx.lib.masked. Demos updated.</p>
+<p>The changes that implemented the incompatible wx.DC methods in 2.5.1.5
+have been reverted. The wx.DC methods are now compatible with the 2.4
+implemetation. In addition a set of renamed methods have been added
+that take wx.Point and/or wx.Size objects instead of individual
+parameters.</p>
+<p>Added wx.lib.mixins.listctrl.TextEditMixin, a mixin class that allows
+all columns of a wx.ListCtrl in report mode to be edited.</p>
+<p>Deprecated the wx.iewin module.</p>
+<p>Deprecated the wx.Sizer.AddWindow, AddSizer, AddSpacer methods as well
+as their Insert* and Prepend* counterparts.</p>
+<p>Added a generic StaticBitmap class in wx.lib.statbmp for the same
+reasons that stattext was created, so it could be mouse sensitive on
+all platforms like normal windows. Also updated stattext.py and
+buttons.py to handle attribute (font & colour) defaults and
+inheritance the new way. If you have custom controls of your own you
+should review stattxt.py or one of the others to see how it is to be
+done.</p>
+<p>wx.InitAllImageHandlers is now an empty function that does nothing but
+exist for backwards compatibility. The C++ version is now called
+automatically when wxPython is initialized. Since all the handlers
+are included in the wxWidgets shared library anyway, this imposes only
+a very small amount of overhead and removes several unneccessary
+problems.</p>
+<p>Replaced wx/lib/pubsub.py with a version that uses weak references to
+track the subscribers, plus other fixes/additions. Thanks go to
+Oliver Schoenborn and Robb Shecter.</p>
+<p>wxGTK now uses gtk_init_check so wxPython can raise an exception if
+there is no DISPLAY available or other initializaion problem.</p>
+<p>wx.GetKeyState now has an implementation for wxGTK and is able to
+detect the up/down or toggle state of modifier and toggle keys.</p>
+<p>The LC_NUMERIC locale is now reset back to "C" (compatibility) when
+running on wxGTK to work around the fact that GTK requires the locale
+to be set to the system settings but Python depends on LC_NUMERIC
+remaining compatible with "C".</p>
+<p>Switched gizmos.TreeListCtrl to the newer version of the code from the
+wxCode project.</p>
+<p>OGL is dead! LONG LIVE OGL! (Oops, sorry. A bit of my dramatic side
+leaked out there...) The wx.ogl module has been deprecated in favor
+of the new Python port of the OGL library located at wx.lib.ogl
+contributed by Pierre Hjälm. This will hopefully greatly extend the
+life of OGL within wxPython by making it more easily maintainable and
+less prone to getting rusty as there seems to be less and less
+interest in maintaining the C++ version. At this point there are just
+a couple minor known compatibility differences, please see the
+<a class="reference" href="MigrationGuide.html">MigrationGuide</a> file for details.</p>
+<p>EVT_STC_POSCHANGED has been removed as it has been deprecated in
+Scintilla for several releases now.</p>
+<p>All the Window and GDI (pen, bitmap, etc.) class constructors and also
+many toplevel functions and static methods will now check that a
+wx.App object has already been created and will raise a
+wx.PyNoAppError exception if not.</p>
+<p>Added more default args as needed to allow most window types to be
+constructed with only the parent window arg. In some cases other args
+may be required for normal operation, but they can usually be set
+after construction.</p>
+<p>Removed the deprecated ErrorDialogs and PythonBitmaps modules. If you
+were using these in your apps then please join wxPython-dev and assist
+with a more modern reimplementation.</p>
+<p>Added a new version (0.8.3) of FloatCanvas from Chris Barker. It's now
+in a subpackage of wx.lib.</p>
+<p>It is now possible to change the tab traversal order of controls on a
+panel or dialog. For details see the new MoveAfterInTabOrder and
+MoveBeforeInTabOrder methods of wx.Window.</p>
+<p>Applied (and heavily modified) a patch from Eugene
+<<a class="reference" href="mailto:svip123@fastmail.fm">svip123@fastmail.fm</a>> that allows the sample modules in the demo to be
+edited and reloaded, all from within the demo. You can switch back
+and forth between the default and your edited version, and any errors
+ocurring upon the reload are reported on the Demo tab.</p>
+<p>Added a menu item in the demo that will open a PyShell window that has
+the app and demo frame preloaded in the namespace. This is another
+good way to explore and play with the objects in the currently running
+sample. For example, load the Button sample and then do the following
+in the PyShell:</p>
+<pre class="literal-block">
+>>> b = frame.demoPage.GetChildren()[0]
+>>> for x in range(0, 500, 10):
+... b.Move((x, 50))
+... app.Yield(True)
+... wx.MilliSleep(10)
+</pre>
+</div>
+<div class="section" id="id4">
+<h1><a name="id4">2.5.1.5</a></h1>
+<p>(See also the <a class="reference" href="MigrationGuide.html">MigrationGuide</a> file for details about some of the