<div class="document" id="recent-changes-for-wxpython">
<h1 class="title">Recent Changes for wxPython</h1>
<div class="section" id="id1">
-<h1><a name="id1">2.5.2.1</a></h1>
+<h1><a name="id1">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="id2">
+<h1><a name="id2">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
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.</p>
-<p>Related to the above, when controls and some other window types are
-created either the size passed to the constructor, or their "best
-size" if an explicit size was not passed in, is set as the window's
-minimal size. For non top-level windows that hasn't meant much in the
-past, but now the sizers are sensitive to the window's minimal size.
-The key point to understand here is that it is no longer the window's
-size it has when added to the sizer that matters, but its minimal
-size. So you might have some issues to iron out if you create a
-control without a size and then set its size to something before
-adding it to the sizer. Since it's minimal size is probably not the
-size you set then the sizer will appear to be misbehaving. The fix is
-to either set the size when calling the window's constructor, or to
-reset the min size by calling SetSizeHints. You can call SetSizeHints
-at anytime to change the minsize of a window, just call the sizer's
-Layout method to redistribute the controls as needed.</p>
+(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
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="id2">
-<h1><a name="id2">2.5.1.5</a></h1>
+<div class="section" id="id3">
+<h1><a name="id3">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
big changes that have happened in this release and how you should
adapt your code.)</p>
MigrationGuide for more details on using the new module.</p>
<p>Floats are allowed again as function parameters where ints are expected.</p>
</div>
-<div class="section" id="id4">
-<h1><a name="id4">2.4.2.4</a></h1>
+<div class="section" id="id5">
+<h1><a name="id5">2.4.2.4</a></h1>
<p>Use wxSTC in the demo for displaying the soucre code of the samples.</p>
<p>Lots of bug fixes and such from the wxWindows folks.</p>
<p>Added wxPython.lib.newevent from Miki Tebeka. Its usage is
<p>Added wxMaskedNumCtrl.</p>
<p>Added Chris Barker's FloatCanvas.</p>
</div>
-<div class="section" id="id5">
-<h1><a name="id5">2.4.1.2</a></h1>
+<div class="section" id="id6">
+<h1><a name="id6">2.4.1.2</a></h1>
<p>Added wxScrolledPanel from Will Sadkin</p>
<p>Added SetShape method to top level windows (e.g. wxFrame.)</p>
<p>Changed wxSWIG to not generate Python code using apply, (since it will
and Spacers can be specified with a wxSize (or 2-tuple) parameter</p>
<p>Added wxCursorFromBits.</p>
</div>
-<div class="section" id="id6">
-<h1><a name="id6">2.4.0.7</a></h1>
+<div class="section" id="id7">
+<h1><a name="id7">2.4.0.7</a></h1>
<p>Gave up on generating a warning upon the use of the old true/false or
TRUE/FALSE values.</p>
<p>Fixed wxGenericTreeCtrl (used on wxGTK and wxMac for wxTreeCtrl) so
<p>Updated pycolourchooser.</p>
<p>Updated to 0.9b of PyCrust.</p>
</div>
-<div class="section" id="id7">
-<h1><a name="id7">2.4.0.4</a></h1>
+<div class="section" id="id8">
+<h1><a name="id8">2.4.0.4</a></h1>
<p>Added missing wxRect methods</p>
<p>Add OOR support for wxApp objects too.</p>
<p>Added wxCursorFromImage, which works on wxMSW and wxGTK so far.</p>
<p>Fixed typemaps for wxGridCellCoordsArray.</p>
<p>Updated to the 0.9a version of PyCrust</p>
</div>
-<div class="section" id="id8">
-<h1><a name="id8">2.4.0.2</a></h1>
+<div class="section" id="id9">
+<h1><a name="id9">2.4.0.2</a></h1>
<p>Several bug fixes.</p>
<p>Added wxIntCtrl from Will Sadkin.</p>
<p>Added wxPyColourChooser by Michael Gilfix.</p>
</div>
-<div class="section" id="id9">
-<h1><a name="id9">2.4.0.1</a></h1>
+<div class="section" id="id10">
+<h1><a name="id10">2.4.0.1</a></h1>
<p>No major new features since 2.3.4.2, mostly bug fixes and minor
enhancements.</p>
<p>Added function wrappers for the common dialogs from Kevin Altis. See
wxPython/lib/dialogs.py for more details.</p>
</div>
-<div class="section" id="id10">
-<h1><a name="id10">2.3.4.2</a></h1>
+<div class="section" id="id11">
+<h1><a name="id11">2.3.4.2</a></h1>
<p>Various bug fixes.</p>
</div>
-<div class="section" id="id11">
-<h1><a name="id11">2.3.4.1</a></h1>
+<div class="section" id="id12">
+<h1><a name="id12">2.3.4.1</a></h1>
<p>Updated XRCed and wxTimeCtrl contribs.</p>
<p>Show a couple new wxGrid features in the demo.</p>
<p>Several bug fixes in wxWindows.</p>
HTMLHelp viewer does. Changed how the wxPythonDocs tarball is built
and added a script to launch the doc viewer.</p>
</div>
-<div class="section" id="id12">
-<h1><a name="id12">2.3.3.1</a></h1>
+<div class="section" id="id13">
+<h1><a name="id13">2.3.3.1</a></h1>
<p>Added wxSplashScreen.</p>
<p>Added wxGenericDirCtrl.</p>
<p>Added wxMultiChoiceDialog.</p>
<p>Added wxPython.lib.mixins.rubberband module from Robb Shecter.</p>
<p>Added wxTimeCtrl from Will Sadkin.</p>
</div>
-<div class="section" id="id13">
-<h1><a name="id13">2.3.2.1</a></h1>
+<div class="section" id="id14">
+<h1><a name="id14">2.3.2.1</a></h1>
<p>Changed (again) how the Python global interpreter lock is handled as
well as the Python thread state. This time it works on SMP machines
without barfing and is also still compatible with Python debuggers.</p>
<p>Added some patches from library contributors.</p>
</div>
-<div class="section" id="id14">
-<h1><a name="id14">2.3.2</a></h1>
+<div class="section" id="id15">
+<h1><a name="id15">2.3.2</a></h1>
<p>Added EVT_HELP, EVT_HELP_RANGE, EVT_DETAILED_HELP,
EVT_DETAILED_HELP_RANGE, EVT_CONTEXT_MENU, wxHelpEvent,
wxContextMenuEvent, wxContextHelp, wxContextHelpButton, wxTipWindow,
wxPython/contrib/dllwidget and wxPython/demo/dllwidget for more
details.</p>
</div>
-<div class="section" id="id15">
-<h1><a name="id15">2.3.1</a></h1>
+<div class="section" id="id16">
+<h1><a name="id16">2.3.1</a></h1>
<p>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.)</p>
<p>Fixed img2py to work correctly with Python 2.1.</p>
<p>Added enhanced wxVTKRenderWindow by Prabhu Ramachandran</p>
</div>
-<div class="section" id="id16">
-<h1><a name="id16">2.3.0</a></h1>
+<div class="section" id="id17">
+<h1><a name="id17">2.3.0</a></h1>
<p>Removed initial startup dependency on the OpenGL DLLs so only the
glcanvasc.pyd depends on them, (on wxMSW.)</p>
<p>Changed wxFont, wxPen, wxBrush to not implicitly use the
by having smaller functional apps to play with. They can be found in
wxPython/samples.</p>
</div>
-<div class="section" id="id17">
-<h1><a name="id17">2.2.6</a></h1>
+<div class="section" id="id18">
+<h1><a name="id18">2.2.6</a></h1>
<p>No changes happened in the Python wrappers for this release, only
changes and fixes in the wxWindows library.</p>
</div>
-<div class="section" id="id18">
-<h1><a name="id18">2.2.5</a></h1>
+<div class="section" id="id19">
+<h1><a name="id19">2.2.5</a></h1>
<p>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