<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<meta name="generator" content="Docutils 0.3.1: http://docutils.sourceforge.net/" />
-<title>Building wxPython 2.5 for Development and Testing</title>
+<title>Building wxPython 2.6 for Development and Testing</title>
<link rel="stylesheet" href="default.css" type="text/css" />
</head>
<body>
-<div class="document" id="building-wxpython-2-5-for-development-and-testing">
-<h1 class="title">Building wxPython 2.5 for Development and Testing</h1>
+<div class="document" id="building-wxpython-2-6-for-development-and-testing">
+<h1 class="title">Building wxPython 2.6 for Development and Testing</h1>
<p>This file describes how I build wxWidgets and wxPython while doing
development and testing, and is meant to help other people that want
to do the same thing. I'll assume that you are using either a CVS
snapshot from <a class="reference" href="http://wxWidgets.org/snapshots/">http://wxWidgets.org/snapshots/</a>, a checkout from CVS, or
-one of the released wxPython-src-2.5.* tarballs. I'll also assume that
+one of the released wxPython-src-2.6.* tarballs. I'll also assume that
you know your way around your system, the compiler, etc. and most
importantly, that you know what you are doing! ;-)</p>
<p>If you want to also install the version of wxPython you build to be in
cd $WXDIR
mkdir bld
cd bld
-../configure --prefix=/opt/wx/2.5 \
+../configure --prefix=/opt/wx/2.6 \
--with-gtk \
--with-opengl \
--enable-debug \
<pre class="literal-block">
--enable-monolithic \
</pre>
-<p>By default GTK2 will be selected if its development pacakge is
-installed on your build system. To force the use of GTK 1.2.x
-instead add this flag:</p>
+<p>By default GTK 2.x will be used for the build. If you woudl rather
+use GTK 1.2.x for some reason then you can force configure to use
+it by changing the --with-gtk flag to specify it like this:</p>
<pre class="literal-block">
---disable-gtk2 \
+--with-gtk=1 \
</pre>
<p>To make the wxWidgets build be unicode enabled (strongly
recommended if you are building with GTK2) then add the following.
<pre class="literal-block">
--enable-unicode \
</pre>
-<p>Notice that I used a prefix of /opt/wx/2.5. You can use whatever
+<p>Notice that I used a prefix of /opt/wx/2.6. You can use whatever
path you want, such as a path in your HOME dir or even one of the
standard prefix paths such as /usr or /usr/local if you like, but
using /opt this way lets me easily have multiple versions and ports
of wxWidgets "installed" and makes it easy to switch between them,
without impacting any versions of wxWidgets that may have been
installed via an RPM or whatever. For the rest of the steps below
-be sure to also substitute "/opt/wx/2.5" with whatever prefix you
+be sure to also substitute "/opt/wx/2.6" with whatever prefix you
choose for your build.</p>
<p>If you want to use the image and zlib libraries included with
wxWidgets instead of those already installed on your system, (for
.make install
</pre>
<p>When it's done you should have an installed set of files under
-/opt/wx/2.5 containing just wxWidgets. Now to use this version of
-wxWidgets you just need to add /opt/wx/2.5/bin to the PATH and set
-LD_LIBRARY_PATH (or DYLD_LIBRARY_PATH on OS X) to /opt/wx/2.5/lib.</p>
+/opt/wx/2.6 containing just wxWidgets. Now to use this version of
+wxWidgets you just need to add /opt/wx/2.6/bin to the PATH and set
+LD_LIBRARY_PATH (or DYLD_LIBRARY_PATH on OS X) to /opt/wx/2.6/lib.</p>
</li>
<li><p class="first">I also have a script to help me build wxPython and it is checked in
to the CVS as wxWidgets/wxPython/b, but you probably don't want to
other version of it found first, then you can add this to the
command line to ensure your new one is used instead:</p>
<pre class="literal-block">
-WX_CONFIG=/opt/wx/2.5/bin/wx-config
+WX_CONFIG=/opt/wx/2.6/bin/wx-config
</pre>
<p>By default setup.py will assume that you built wxWidgets to use
GTK2. If you built wxWidgets to use GTK 1.2.x then you should add
PYTHONPATH to the wxPython dir located in the source tree. For
example:</p>
<pre class="literal-block">
-export LD_LIBRARY_PATH=/opt/wx/2.5/lib
+export LD_LIBRARY_PATH=/opt/wx/2.6/lib
export PYTHONPATH=$WXDIR/wxPython
cd $WXDIR/wxPython/demo
python2.3 demo.py
<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.5.0</a></h1>
+<h1><a name="id1">2.6.0.0</a></h1>
+<p>wxMSW: Fixed wx.TransientPopupWindow (and therefore wx.TipWindow) to
+auto-dismiss when the mouse is clicked outside of the popup like it is
+supposed to.</p>
+<p>wxMSW: Fixed bug #1167891 wx.Notebook display problem with wx.NB_MULTILINE.</p>
+<p>wxMSW: Fixed bad cliping of hidden windows inside of wx.StaticBox.</p>
+<p>wxGTK: The configure flags for selecting GTK+ 1.2.x or 2.x has
+changed slightly. It is now --with-gtk[=VERSION] where VERSION is
+either '1', '2' or 'any'. The default is '2'.</p>
+<p>wx.stc.StyledTextCtrl: Added the following methods for alternate ways
+to set and fetch text from the document buffer. They work similarly
+to the existing methods of the same name, except that they don't go
+through the same string/unicode <--> wxString conversions. The "Raw"
+methods will do no conversions at all and in a unicode build of
+wxPython the strings will be in the utf-8 encoding and in an ansi
+build no assumption is made about the encoding. The "UTF8" functions
+will attempt to always get/set utf-8 text, which it will always be
+able to do in a unicode build, and in an ansi build it will depend on
+the content of the utf-8 used being compatible with the current
+encoding, (you'll get an exception otherwise.)</p>
+<blockquote>
+<table border class="table">
+<colgroup>
+<col width="49%" />
+<col width="51%" />
+</colgroup>
+<tbody valign="top">
+<tr><td>AddTextRaw</td>
+<td>AddTextUTF8</td>
+</tr>
+<tr><td>InsertTextRaw</td>
+<td>InsertTextUTF8</td>
+</tr>
+<tr><td>GetCurLineRaw</td>
+<td>GetCurLineUTF8</td>
+</tr>
+<tr><td>GetLineRaw</td>
+<td>GetLineUTF8</td>
+</tr>
+<tr><td>GetSelectedTextRaw</td>
+<td>GetSelectedTextUTF8</td>
+</tr>
+<tr><td>GetTextRangeRaw</td>
+<td>GetTextRangeUTF8</td>
+</tr>
+<tr><td>SetTextRaw</td>
+<td>SetTextUTF8</td>
+</tr>
+<tr><td>GetTextRaw</td>
+<td>GetTextUTF8</td>
+</tr>
+<tr><td>AppendTextRaw</td>
+<td>AppendTextUTF8</td>
+</tr>
+</tbody>
+</table>
+</blockquote>
+<p>wx.stc.StyledTextCtrl: Added the StyleSetFontEncoding(style, enc)
+method that allows you to set the encoding to be used by the font for
+a particular style.</p>
+<p>wxMac: Fixed wx.ComboBox to forward the EVT_CHAR, EVT_KEY_DOWN,
+EVT_KEY_UP and EVT_TEXT events from its embedded text control.</p>
+<p>wxMac: Corrected refresh bugs in wxGrid.</p>
+</div>
+<div class="section" id="id2">
+<h1><a name="id2">2.5.5.1</a></h1>
<p>wxMSW: Fixed bug #1022383, 'several ComboBoxes appear selected'</p>
<p>wx.grid.Grid: Fixed bug #1163384. Moved the code that handles
activating the cell editors to a EVT_CHAR event handler. This is done
<dt>wx.lib.mixins.listctrl: Patches from Toni Brkic:</dt>
<dd><ul class="first last simple">
<li>Bugfix for TextEditMixin when the view can't be scrolled</li>
-<li>Enhancement for ListCtrlAutoWidthMixin, allowing it to manage
+<li>Enhancement for ListCtrlAutoWidthMixin, allowing it to manage
the width of any column.</li>
</ul>
</dd>
folks.</p>
<p>Added the ActiveGrid IDE as a sample application.</p>
</div>
-<div class="section" id="id2">
-<h1><a name="id2">2.5.4.1</a></h1>
+<div class="section" id="id3">
+<h1><a name="id3">2.5.4.1</a></h1>
<p>wx.Sizer Add, Insert, and Prepend functions now return a reference to the
wx.SizerItem that was added to the sizer, and the wx.SizerItem has a
GetRect accessor to give the position of the item on the parent window.</p>
out-of-sync assert is generated when clicking on a radio button and
then calling GetValue().</p>
<dl>
-<dt>Some XRC changes: </dt>
+<dt>Some XRC changes:</dt>
<dd><ul class="first last simple">
<li>Added 'icon' property to wxFrame and wxDialog</li>
<li>No longer ignores menu bitmaps on non-MSW platforms</li>
</dd>
</dl>
</div>
-<div class="section" id="id3">
-<h1><a name="id3">2.5.3.1</a></h1>
+<div class="section" id="id4">
+<h1><a name="id4">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>
button with "Cancel" as the label 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)
+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>
<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
+<li>wxPython/wx/lib/mixins/listctrl.py (several improvements to
TextEditMixin)</li>
<li>wxPython/wx/lib/wxpTag.py (some small fixes)</li>
</ul>
<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="id4">
-<h1><a name="id4">2.5.2.8</a></h1>
+<div class="section" id="id5">
+<h1><a name="id5">2.5.2.8</a></h1>
<p>Predominantly a bug-fix release.</p>
<blockquote>
<ul class="simple">
</ul>
</blockquote>
</div>
-<div class="section" id="id5">
-<h1><a name="id5">2.5.2.7</a></h1>
+<div class="section" id="id6">
+<h1><a name="id6">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
<p>wxGTK: Applied wxNO_BORDER patch (#1098374) for text control and combo
box.</p>
</div>
-<div class="section" id="id6">
-<h1><a name="id6">2.5.1.5</a></h1>
+<div class="section" id="id7">
+<h1><a name="id7">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="id8">
-<h1><a name="id8">2.4.2.4</a></h1>
+<div class="section" id="id9">
+<h1><a name="id9">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="id9">
-<h1><a name="id9">2.4.1.2</a></h1>
+<div class="section" id="id10">
+<h1><a name="id10">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="id10">
-<h1><a name="id10">2.4.0.7</a></h1>
+<div class="section" id="id11">
+<h1><a name="id11">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="id11">
-<h1><a name="id11">2.4.0.4</a></h1>
+<div class="section" id="id12">
+<h1><a name="id12">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="id12">
-<h1><a name="id12">2.4.0.2</a></h1>
+<div class="section" id="id13">
+<h1><a name="id13">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="id13">
-<h1><a name="id13">2.4.0.1</a></h1>
+<div class="section" id="id14">
+<h1><a name="id14">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="id14">
-<h1><a name="id14">2.3.4.2</a></h1>
+<div class="section" id="id15">
+<h1><a name="id15">2.3.4.2</a></h1>
<p>Various bug fixes.</p>
</div>
-<div class="section" id="id15">
-<h1><a name="id15">2.3.4.1</a></h1>
+<div class="section" id="id16">
+<h1><a name="id16">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="id16">
-<h1><a name="id16">2.3.3.1</a></h1>
+<div class="section" id="id17">
+<h1><a name="id17">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="id17">
-<h1><a name="id17">2.3.2.1</a></h1>
+<div class="section" id="id18">
+<h1><a name="id18">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="id18">
-<h1><a name="id18">2.3.2</a></h1>
+<div class="section" id="id19">
+<h1><a name="id19">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="id19">
-<h1><a name="id19">2.3.1</a></h1>
+<div class="section" id="id20">
+<h1><a name="id20">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="id20">
-<h1><a name="id20">2.3.0</a></h1>
+<div class="section" id="id21">
+<h1><a name="id21">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="id21">
-<h1><a name="id21">2.2.6</a></h1>
+<div class="section" id="id22">
+<h1><a name="id22">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="id22">
-<h1><a name="id22">2.2.5</a></h1>
+<div class="section" id="id23">
+<h1><a name="id23">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
</div>
<div class="section" id="what-s-new-in-0-5-0">
<h1><a name="what-s-new-in-0-5-0">What's new in 0.5.0</a></h1>
-<p>Changed the import semantics from <tt class="literal"><span class="pre">"from</span> <span class="pre">wxPython</span> <span class="pre">import</span> <span class="pre">*"</span></tt> to
+<p>Changed the import semantics from <tt class="literal"><span class="pre">"from</span> <span class="pre">wxPython</span> <span class="pre">import</span> <span class="pre">*"</span></tt> to
<tt class="literal"><span class="pre">"from</span> <span class="pre">wxPython.wx</span> <span class="pre">import</span> <span class="pre">*"</span></tt> This is for people who are worried about
namespace pollution, they can use "from wxPython import wx" and then
prefix all the wxPython identifiers with "wx."</p>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<meta name="generator" content="Docutils 0.3.1: http://docutils.sourceforge.net/" />
-<title>wxPython 2.5 Migration Guide</title>
+<title>wxPython 2.6 Migration Guide</title>
<link rel="stylesheet" href="default.css" type="text/css" />
</head>
<body>
-<div class="document" id="wxpython-2-5-migration-guide">
-<h1 class="title">wxPython 2.5 Migration Guide</h1>
+<div class="document" id="wxpython-2-6-migration-guide">
+<h1 class="title">wxPython 2.6 Migration Guide</h1>
<p>This document will help explain some of the major changes in wxPython
-2.5 since the 2.4 series and let you know what you need to do to adapt
+2.6 since the 2.4 series and let you know what you need to do to adapt
your programs to those changes. Be sure to also check in the <a class="reference" href="CHANGES.html">CHANGES</a>
file like usual to see info about the not so major changes and other
things that have been added to wxPython.</p>
<p>wxPython's setup.py script now expects to use existing libraries for
the contribs (gizmos, stc, xrc, etc.) rather than building local
copies of them. If you build your own copies of wxPython please be
-aware that you now need to also build the ogl, stc, xrc, and gizmos
+aware that you now need to also build the stc, xrc, animate and gizmos
libraries in addition to the main wx lib.</p>
<p>The wxPython.h and other header files are now in
.../wxPython/include/wx/wxPython instead of in wxPython/src. You
<div class="section" id="ogl-is-dead-long-live-ogl">
<h1><a name="ogl-is-dead-long-live-ogl">OGL is dead! LONG LIVE OGL!</a></h1>
<p><strong>[Changed in 2.5.2.x]</strong></p>
-<p>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.</p>
+<p>The wx.ogl module was deprecated in version 2.5.2 in favor of the new
+Python port of the OGL library located at wx.lib.ogl contributed by
+Pierre Hjälm. Starting in version 2.5.5 the old ogl is no longer
+being built in the distributed binaries, however the source code is
+still in the source tree so people can built it themselves if desired.</p>
+<p>The reason this changes was done was to 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.</p>
<p>There are only a few known compatibility issues at this time. First
-is that the ogl.DrawnShape has not been reimplemented yet. Next is the
-location of OGL. The deprecated version is located in the wx.ogl
-module, and the new version is in the wx.lib.ogl package. So this
-just means that to start using the new version you need to adjust your
-imports. So if your code currently has something like this:</p>
+is the location of OGL. The old version was located in the
+wx.ogl module, and the new version is in the wx.lib.ogl package. So
+this just means that to start using the new version you need to adjust
+your imports. So if your code currently has something like this:</p>
<pre class="literal-block">
import wx
import wx.ogl as ogl