+Added wxPython wrappers for the new wx.Treebook and wx.Toolbook
+classes.
+
+wx.DC.BeginDrawing and EndDrawing have been deprecated in the C++
+code, so since they never really did anything before they are now just
+empty stubs in wxPython.
+
+Solved a problem that has been around for a very long time in how C++
+methods are virtualized for overriding in derived Python classes.
+Previously we couldn't do it for methods that needed to also exist in
+the base class wrappers such that they could be called normally. (The
+reasons are long and complex, but suffice it to say that it was due to
+mixing C++'s dynamic dispatch, and Python's runtime lookup of the
+method attributes resulting in endless recursion of function calls.)
+Because of this problem I used a hack that I have always hated, and
+that is renaming the base class methods with a "base_*" prefix, for
+example wx.Printout.base_OnBeginDocument. Now that the problem has
+finally been solved I have replaced all the base_Whatever() methods
+with the real Whatever() method as well as a simple wrapper named
+base_Whatever that is marked as deprecated. So now instead of writing
+your overridden methods like this::
+
+ def OnBeginDocument(self, start, end):
+ # do something here
+ return self.base_OnBeginDocument(start, end)
+
+You can now call the base class method the normal way, like this::
+
+ def OnBeginDocument(self, start, end):
+ # do something here
+ return Printout.OnBeginDocument(self, start, end)
+
+Or like this with super()::
+
+ def OnBeginDocument(self, start, end):
+ # do something here
+ return super(MyPrintout, self).OnBeginDocument(start, end)
+
+Note that the old way with the "base_*" function still works, but you
+will get a DeprecationWarning from calling base_OnBeginDocument. The
+classes affected by this are:
+
+ * wx.DropSource
+ * wx.DropTarget
+ * wx.TextDropTarget
+ * wx.FileDropTarget
+ * wx.PyLog (also added the ability to override Flush)
+ * wx.PyApp (also added the ability to override ExitMainLoop)
+ * wx.Printout
+ * wx.PyPrintPreview
+ * wx.PyPreviewFrame
+ * wx.PreviewControlBar
+ * wx.Process
+ * wx.PyControl
+ * wx.PyPanel
+ * wx.PyScrolledWindow
+ * wx.PyWindow
+ * wx.Timer
+ * wx.grid.PyGridCellRenderer
+ * wx.grid.PyGridCellEditor
+ * wx.grid.PyGridCellAttrProvider
+ * wx.grid.PyGridTableBase
+ * wx.html.HtmlWindow
+ * wx.wizard.PyWizardPage
+
+
+Added the wx.DC.GradientFillConcentric and wx.DC.GradientFillLinear
+methods.
+
+wxGTK: wx.ListBox and wx.CheckListBox are now using native GTK2
+widgets.
+
+Added wx.ListBox.HitTest() from patch 1446207
+
+Bumped up to SWIG 1.3.29. This provides some more runtime performance
+boosts, gets rid of the dreaded Ptr classes, and some other nice new
+things.
+
+Added wx.Window.GetScreenPosition and GetScreenRect which returns the
+position of the window in screen coordinates, even if the window is
+not a top-level window.
+
+Added GetResourcesDir and GetLocalizedResourcesDir to
+wx.StandardPaths.
+
+Added a GetReceivedFormat method to wx.DataObjectComposite. You can
+use this to find out what format of data object was recieved from the
+source of the clipboard or DnD operation, and then you'll know which
+of the component data objects to use to access the data.
+
+Changed how the stock objects (wx.RED, wx.RED_PEN, wx.RED_BRUSH, etc.)
+are initialized. They are now created as uninitialized instances
+using __new__. Then after the wx.App has been created, but before
+OnInit is called, the .this attribute of each object is initialized.
+This was needed because of some delayed initialization functionality
+that was implemented in wxWidgets, but the end result is cleaner for
+wxPython as well, and allowed me to remove some ugly code previously
+hidden under the covers.
+
+Added wx.StandardPaths.GetDocumentsDir.
+
+Added wx.RendererNative.DrawCheckButton.
+
+wx.ProgressDialog.Update now returns a tuple of two values. The first
+is a continue flag (what was returned before) and the second is a skip
+flag. If the dialog has the wx.PD_CAN_SKIP flag and if the Skip
+button is clicked, then the skip flag is set to True the next time
+Update is called.
+
+A DeprecationWarning is now issued when the old wxPython package is
+imported. If you are still using the old namespace please convert
+your code to use the new wx package instead.
+
+Added wrappers for Julian's new wxRichTextCtrl class, visible in
+wxPython as wx.richtext.RichTextCtrl window. It still needs some more
+work, but it is a great start.
+
+wx.lib.mixins.listctrl.TextEditMixin: Fixed the double END_LABEL_EDIT
+event problem in TextEditMixin by checking if the editor was already
+hidden before continuing with the CloseEditor method. Also added code
+to OpenEditor to send the BEGIN_LABEL_EDIT event and to not allow the
+opening of the editor to continue if the event handler doesn't allow
+it.
+
+wx.StaticBoxSizer now keeps better track of the wx.StaticBox, and it
+will destroy it if the sizer is destroyed before the parent window is.
+
+Added wx.HyperlinkCtrl.
+
+Added battery and power related functions and events (wxMSW only so
+far.) See wx.PowerEvent, wx.GetPowerType and wx.GetBatteryState.
+
+Added wx.ListCtrl.HitTestSubItem which returns the sub-item (i.e. the
+column in report mode) that was hit (if any) in addition to the item
+and flags.
+
+Added wrappers for wx.ColourPickerCtrl, wx.DirPickerCtrl,
+wx.FilePickerCtrl, and wx.FontPickerCtrl.
+
+Patch #1502016 wx.Image.ConvertToGreyscale now retains the alpha
+channel.
+
+Added wrappers for the wxAUI classes, in the wx.aui module.
+
+Added the PseudoDC class from Paul Lanier. It provides a way to
+record operations on a DC and then play them back later.
+
+Upgraded to Scintilla 1.70 for wx.stc.StyledTextCtrl.
+
+Added CanSetTransparent and SetTransparent methods to the
+wx.TopLevelWindow class, with implementations (so far) for wxMSW and
+wxMac.
+
+SetDefaultItem() and GetDefaultItem() are now members of
+wx.TopLevelWindow, not wx.Panel.
+
+wxGTK: Stock items (icons) will be used for menu items with stock
+IDs.
+
+Added wx.lib.combotreebox from Frank Niessink
+
+Added wx.ImageFromBuffer, wx.BitmapFromBuffer and
+wx.BitmapFromBufferRGBA factory functions. They enable loading of an
+image or bitmap directly from a Python object that implements the
+buffer interface, such as strings, arrays, etc.