diff --git a/bin/make-new-etg-file.py b/bin/make-new-etg-file.py index 5809fa6f..8305a94f 100755 --- a/bin/make-new-etg-file.py +++ b/bin/make-new-etg-file.py @@ -78,7 +78,7 @@ if __name__ == '__main__': unitteststub = """\ import unittest -import wtc +from unittests import wtc import wx #--------------------------------------------------------------------------- diff --git a/demo/PseudoDC.py b/demo/PseudoDC.py index b5364f7d..21b72edd 100644 --- a/demo/PseudoDC.py +++ b/demo/PseudoDC.py @@ -1,6 +1,7 @@ #!/usr/bin/env python import wx +import wx.adv import images import random @@ -10,7 +11,7 @@ W = 2000 H = 2000 SW = 150 SH = 150 -SHAPE_COUNT = 2500 +SHAPE_COUNT = 750 hitradius = 5 #--------------------------------------------------------------------------- @@ -58,7 +59,7 @@ class MyCanvas(wx.ScrolledWindow): self.SetScrollRate(20,20) # create a PseudoDC to record our drawing - self.pdc = wx.PseudoDC() + self.pdc = wx.adv.PseudoDC() self.pen_cache = {} self.brush_cache = {} self.DoDrawing(self.pdc) @@ -81,7 +82,7 @@ class MyCanvas(wx.ScrolledWindow): def OffsetRect(self, r): xView, yView = self.GetViewStart() xDelta, yDelta = self.GetScrollPixelsPerUnit() - r.OffsetXY(-(xView*xDelta),-(yView*yDelta)) + r.Offset(-(xView*xDelta),-(yView*yDelta)) def OnMouse(self, event): global hitradius @@ -123,14 +124,14 @@ class MyCanvas(wx.ScrolledWindow): def RandomPen(self): c = random.choice(colours) t = random.randint(1, 4) - if not self.pen_cache.has_key( (c, t) ): + if (c, t) not in self.pen_cache: self.pen_cache[(c, t)] = wx.Pen(c, t) return self.pen_cache[(c, t)] def RandomBrush(self): c = random.choice(colours) - if not self.brush_cache.has_key(c): + if c not in self.brush_cache: self.brush_cache[c] = wx.Brush(c) return self.brush_cache[c] @@ -144,12 +145,15 @@ class MyCanvas(wx.ScrolledWindow): # wx.PaintDC and then blit the bitmap to it when dc is # deleted. dc = wx.BufferedPaintDC(self) - # use PrepateDC to set position correctly - self.PrepareDC(dc) + # we need to clear the dc BEFORE calling PrepareDC bg = wx.Brush(self.GetBackgroundColour()) dc.SetBackground(bg) dc.Clear() + + # use PrepareDC to set position correctly + self.PrepareDC(dc) + # create a clipping rect from our position and size # and the Update Region xv, yv = self.GetViewStart() @@ -158,9 +162,12 @@ class MyCanvas(wx.ScrolledWindow): rgn = self.GetUpdateRegion() rgn.Offset(x,y) r = rgn.GetBox() - # draw to the dc using the calculated clipping rect + + # Draw the saved drawing operations to the dc using the calculated + # clipping rect self.pdc.DrawToDCClipped(dc,r) + def DoDrawing(self, dc): random.seed() self.objids = [] @@ -298,9 +305,9 @@ def runTest(frame, nb, log): overview = """ -

wx.PseudoDC

+

wx.adv.PseudoDC

-The wx.PseudoDC class provides a way to record operations on a DC and then +The wx.adv.PseudoDC class provides a way to record operations on a DC and then play them back later. The PseudoDC can be passed to a drawing routine as if it were a real DC. All Drawing methods are supported except Blit but GetXXX methods are not supported and none of the drawing methods return @@ -308,11 +315,11 @@ a value. The PseudoDC records the drawing to an operation list. The operations can be played back to a real DC using:
 DrawToDC(dc)
 
-The operations can be tagged with an id in order to associated them with a +The operations can be tagged with an id in order to associate them with a specific object. To do this use:
     SetId(id)
 
-Every operation after this will be associated with id until SetId is called +Every operation after this will be associated with that tag id until SetId is called again. The PseudoDC also supports object level clipping. To enable this use:
     SetIdBounds(id,rect)
 
@@ -320,7 +327,7 @@ for each object that should be clipped. Then use:
     DrawToDCClipped(dc, clippingRect)
 
To draw the PseudoDC to a real dc. This is useful for large scrolled windows -where many objects are offscreen. +where many objects are off screen. Objects can be moved around without re-drawing using:
     TranslateId(id, dx, dy)
diff --git a/docs/classic_vs_phoenix.rst b/docs/classic_vs_phoenix.rst
index b1f79def..fa42dcce 100644
--- a/docs/classic_vs_phoenix.rst
+++ b/docs/classic_vs_phoenix.rst
@@ -22,170 +22,170 @@ Functions and Classes Modifications
 ===========================================================  ===========================================================
 `Classic` Name                                               `Phoenix` Name
 ===========================================================  ===========================================================
-AboutBox                                                     :func:`adv.AboutBox `
-AboutDialogInfo                                              :class:`adv.AboutDialogInfo`
+AboutBox                                                     :func:`wx.adv.AboutBox `
+AboutDialogInfo                                              :class:`wx.adv.AboutDialogInfo`
 AcceleratorEntry_Create                                      ``MISSING``
 ANIHandler                                                   ``MISSING``
 App_CleanUp                                                  ``MISSING``
-ArtProvider_Delete                                           :meth:`ArtProvider.Delete`
-ArtProvider_GetBitmap                                        :meth:`ArtProvider.GetBitmap`
-ArtProvider_GetIcon                                          :meth:`ArtProvider.GetIcon`
-ArtProvider_GetIconBundle                                    :meth:`ArtProvider.GetIconBundle`
-ArtProvider_GetMessageBoxIcon                                :meth:`ArtProvider.GetMessageBoxIcon`
-ArtProvider_GetMessageBoxIconId                              :meth:`ArtProvider.GetMessageBoxIconId`
-ArtProvider_GetNativeSizeHint                                :meth:`ArtProvider.GetNativeSizeHint`
-ArtProvider_GetSizeHint                                      :meth:`ArtProvider.GetSizeHint`
-ArtProvider_HasNativeProvider                                :meth:`ArtProvider.HasNativeProvider`
-ArtProvider_Insert                                           :meth:`ArtProvider.Insert`
-ArtProvider_Pop                                              :meth:`ArtProvider.Pop`
-ArtProvider_Push                                             :meth:`ArtProvider.Push`
-ArtProvider_PushBack                                         :meth:`ArtProvider.PushBack`
-Bitmap.SetBitmapSelected                                     :meth:`Bitmap.SetBitmapPressed`
-BitmapFromBits                                               :class:`Bitmap`
-BitmapFromIcon                                               :class:`Bitmap`
-BitmapFromImage                                              :class:`Bitmap`
-BitmapFromXPMData                                            :class:`Bitmap`
+ArtProvider_Delete                                           :meth:`wx.ArtProvider.Delete`
+ArtProvider_GetBitmap                                        :meth:`wx.ArtProvider.GetBitmap`
+ArtProvider_GetIcon                                          :meth:`wx.ArtProvider.GetIcon`
+ArtProvider_GetIconBundle                                    :meth:`wx.ArtProvider.GetIconBundle`
+ArtProvider_GetMessageBoxIcon                                :meth:`wx.ArtProvider.GetMessageBoxIcon`
+ArtProvider_GetMessageBoxIconId                              :meth:`wx.ArtProvider.GetMessageBoxIconId`
+ArtProvider_GetNativeSizeHint                                :meth:`wx.ArtProvider.GetNativeSizeHint`
+ArtProvider_GetSizeHint                                      :meth:`wx.ArtProvider.GetSizeHint`
+ArtProvider_HasNativeProvider                                :meth:`wx.ArtProvider.HasNativeProvider`
+ArtProvider_Insert                                           :meth:`wx.ArtProvider.Insert`
+ArtProvider_Pop                                              :meth:`wx.ArtProvider.Pop`
+ArtProvider_Push                                             :meth:`wx.ArtProvider.Push`
+ArtProvider_PushBack                                         :meth:`wx.ArtProvider.PushBack`
+Bitmap.SetBitmapSelected                                     :meth:`wx.Bitmap.SetBitmapPressed`
+BitmapFromBits                                               :class:`wx.Bitmap`
+BitmapFromIcon                                               :class:`wx.Bitmap`
+BitmapFromImage                                              :class:`wx.Bitmap`
+BitmapFromXPMData                                            :class:`wx.Bitmap`
 BMPHandler                                                   ``MISSING``
-BookCtrlBase_GetClassDefaultAttributes                       :meth:`BookCtrl.GetClassDefaultAttributes `
-BrushFromBitmap                                              :class:`Brush`
-Button_GetClassDefaultAttributes                             :meth:`Button.GetClassDefaultAttributes `
-Button_GetDefaultSize                                        :meth:`Button.GetDefaultSize`
-CalculateLayoutEvent                                         :class:`adv.CalculateLayoutEvent`
-Caret_GetBlinkTime                                           :meth:`Caret.GetBlinkTime`
-Caret_SetBlinkTime                                           :meth:`Caret.SetBlinkTime`
-CheckBox_GetClassDefaultAttributes                           :meth:`CheckBox.GetClassDefaultAttributes `
-Choice_GetClassDefaultAttributes                             :meth:`Choice.GetClassDefaultAttributes `
-ChoicebookEvent                                              :class:`BookCtrlEvent`
-Clipboard_Get                                                :meth:`Clipboard.Get`
-ClipboardEvent                                               :class:`ClipboardTextEvent`
+BookCtrlBase_GetClassDefaultAttributes                       :meth:`wx.BookCtrl.GetClassDefaultAttributes `
+BrushFromBitmap                                              :class:`wx.Brush`
+Button_GetClassDefaultAttributes                             :meth:`wx.Button.GetClassDefaultAttributes `
+Button_GetDefaultSize                                        :meth:`wx.Button.GetDefaultSize`
+CalculateLayoutEvent                                         :class:`wx.adv.CalculateLayoutEvent`
+Caret_GetBlinkTime                                           :meth:`wx.Caret.GetBlinkTime`
+Caret_SetBlinkTime                                           :meth:`wx.Caret.SetBlinkTime`
+CheckBox_GetClassDefaultAttributes                           :meth:`wx.CheckBox.GetClassDefaultAttributes `
+Choice_GetClassDefaultAttributes                             :meth:`wx.Choice.GetClassDefaultAttributes `
+ChoicebookEvent                                              :class:`wx.BookCtrlEvent`
+Clipboard_Get                                                :meth:`wx.Clipboard.Get`
+ClipboardEvent                                               :class:`wx.ClipboardTextEvent`
 ClipboardLocker                                              ``MISSING``
-Colour.SetFromString                                         :meth:`Colour.Set` 
-ColourRGB                                                    :class:`Colour`
-ComboBox_GetClassDefaultAttributes                           :meth:`ComboBox.GetClassDefaultAttributes `
-CommandLinkButton                                            :class:`adv.CommandLinkButton`
-ConfigBase_Create                                            :meth:`ConfigBase.Create`
-ConfigBase_DontCreateOnDemand                                :meth:`ConfigBase.DontCreateOnDemand`
-ConfigBase_Get                                               :meth:`ConfigBase.Get`
-ConfigBase_Set                                               :meth:`ConfigBase.Set`
-Control_Ellipsize                                            :meth:`Control.Ellipsize`
-Control_EscapeMnemonics                                      :meth:`Control.EscapeMnemonics`
+Colour.SetFromString                                         :meth:`wx.Colour.Set`
+ColourRGB                                                    :class:`wx.Colour`
+ComboBox_GetClassDefaultAttributes                           :meth:`wx.ComboBox.GetClassDefaultAttributes `
+CommandLinkButton                                            :class:`wx.adv.CommandLinkButton`
+ConfigBase_Create                                            :meth:`wx.ConfigBase.Create`
+ConfigBase_DontCreateOnDemand                                :meth:`wx.ConfigBase.DontCreateOnDemand`
+ConfigBase_Get                                               :meth:`wx.ConfigBase.Get`
+ConfigBase_Set                                               :meth:`wx.ConfigBase.Set`
+Control_Ellipsize                                            :meth:`wx.Control.Ellipsize`
+Control_EscapeMnemonics                                      :meth:`wx.Control.EscapeMnemonics`
 Control_FindAccelIndex                                       ``MISSING``
-Control_GetClassDefaultAttributes                            :meth:`Control.GetClassDefaultAttributes `
+Control_GetClassDefaultAttributes                            :meth:`wx.Control.GetClassDefaultAttributes `
 Control_GetCompositeControlsDefaultAttributes                ``MISSING``
-Control_RemoveMnemonics                                      :meth:`Control.RemoveMnemonics`
+Control_RemoveMnemonics                                      :meth:`wx.Control.RemoveMnemonics`
 CPPFileSystemHandler                                         ``REMOVED``
-CreateFileTipProvider                                        :func:`adv.CreateFileTipProvider `
+CreateFileTipProvider                                        :func:`wx.adv.CreateFileTipProvider `
 CURHandler                                                   ``MISSING``
-CursorFromImage                                              :class:`Cursor`
-CustomDataFormat                                             :class:`DataFormat`
-DateEvent                                                    :class:`adv.DateEvent`
-DatePickerCtrl                                               :class:`adv.DatePickerCtrl`
-DatePickerCtrlBase                                           :class:`adv.DatePickerCtrl`
-DateSpan_Day                                                 :meth:`DateSpan.Day`
-DateSpan_Days                                                :meth:`DateSpan.Days`
-DateSpan_Month                                               :meth:`DateSpan.Month`
-DateSpan_Months                                              :meth:`DateSpan.Months`
-DateSpan_Week                                                :meth:`DateSpan.Week`
-DateSpan_Weeks                                               :meth:`DateSpan.Weeks`
-DateSpan_Year                                                :meth:`DateSpan.Year`
-DateSpan_Years                                               :meth:`DateSpan.Years`
-DateTime_ConvertYearToBC                                     :meth:`DateTime.ConvertYearToBC`
-DateTime_GetAmPmStrings                                      :meth:`DateTime.GetAmPmStrings`
-DateTime_GetBeginDST                                         :meth:`DateTime.GetBeginDST`
-DateTime_GetCentury                                          :meth:`DateTime.GetCentury`
-DateTime_GetCountry                                          :meth:`DateTime.GetCountry`
-DateTime_GetCurrentMonth                                     :meth:`DateTime.GetCurrentMonth`
-DateTime_GetCurrentYear                                      :meth:`DateTime.GetCurrentYear`
-DateTime_GetEndDST                                           :meth:`DateTime.GetEndDST`
-DateTime_GetEnglishMonthName                                 :meth:`DateTime.GetEnglishMonthName`
-DateTime_GetEnglishWeekDayName                               :meth:`DateTime.GetEnglishWeekDayName`
-DateTime_GetMonthName                                        :meth:`DateTime.GetMonthName`
+CursorFromImage                                              :class:`wx.Cursor`
+CustomDataFormat                                             :class:`wx.DataFormat`
+DateEvent                                                    :class:`wx.adv.DateEvent`
+DatePickerCtrl                                               :class:`wx.adv.DatePickerCtrl`
+DatePickerCtrlBase                                           :class:`wx.adv.DatePickerCtrl`
+DateSpan_Day                                                 :meth:`wx.DateSpan.Day`
+DateSpan_Days                                                :meth:`wx.DateSpan.Days`
+DateSpan_Month                                               :meth:`wx.DateSpan.Month`
+DateSpan_Months                                              :meth:`wx.DateSpan.Months`
+DateSpan_Week                                                :meth:`wx.DateSpan.Week`
+DateSpan_Weeks                                               :meth:`wx.DateSpan.Weeks`
+DateSpan_Year                                                :meth:`wx.DateSpan.Year`
+DateSpan_Years                                               :meth:`wx.DateSpan.Years`
+DateTime_ConvertYearToBC                                     :meth:`wx.DateTime.ConvertYearToBC`
+DateTime_GetAmPmStrings                                      :meth:`wx.DateTime.GetAmPmStrings`
+DateTime_GetBeginDST                                         :meth:`wx.DateTime.GetBeginDST`
+DateTime_GetCentury                                          :meth:`wx.DateTime.GetCentury`
+DateTime_GetCountry                                          :meth:`wx.DateTime.GetCountry`
+DateTime_GetCurrentMonth                                     :meth:`wx.DateTime.GetCurrentMonth`
+DateTime_GetCurrentYear                                      :meth:`wx.DateTime.GetCurrentYear`
+DateTime_GetEndDST                                           :meth:`wx.DateTime.GetEndDST`
+DateTime_GetEnglishMonthName                                 :meth:`wx.DateTime.GetEnglishMonthName`
+DateTime_GetEnglishWeekDayName                               :meth:`wx.DateTime.GetEnglishWeekDayName`
+DateTime_GetMonthName                                        :meth:`wx.DateTime.GetMonthName`
 DateTime_GetNumberOfDaysInMonth                              ``MISSING``
 DateTime_GetNumberOfDaysinYear                               ``MISSING``
-DateTime_GetWeekDayName                                      :meth:`DateTime.GetWeekDayName`
-DateTime_IsDSTApplicable                                     :meth:`DateTime.IsDSTApplicable`
-DateTime_IsLeapYear                                          :meth:`DateTime.IsLeapYear`
-DateTime_IsWestEuropeanCountry                               :meth:`DateTime.IsWestEuropeanCountry`
-DateTime_Now                                                 :meth:`DateTime.Now`
-DateTime_SetCountry                                          :meth:`DateTime.SetCountry`
-DateTime_SetToWeekOfYear                                     :meth:`DateTime.SetToWeekOfYear`
-DateTime_Today                                               :meth:`DateTime.Today`
-DateTime_UNow                                                :meth:`DateTime.UNow`
-DateTimeFromDateTime                                         :class:`DateTime`
-Dialog_EnableLayoutAdaptation                                :meth:`Dialog.EnableLayoutAdaptation`
-Dialog_GetClassDefaultAttributes                             :meth:`Dialog.GetClassDefaultAttributes `
-Dialog_GetLayoutAdapter                                      :meth:`Dialog.GetLayoutAdapter`
-Dialog_IsLayoutAdaptationEnabled                             :meth:`Dialog.IsLayoutAdaptationEnabled`
-Dialog_SetLayoutAdapter                                      :meth:`Dialog.SetLayoutAdapter`
+DateTime_GetWeekDayName                                      :meth:`wx.DateTime.GetWeekDayName`
+DateTime_IsDSTApplicable                                     :meth:`wx.DateTime.IsDSTApplicable`
+DateTime_IsLeapYear                                          :meth:`wx.DateTime.IsLeapYear`
+DateTime_IsWestEuropeanCountry                               :meth:`wx.DateTime.IsWestEuropeanCountry`
+DateTime_Now                                                 :meth:`wx.DateTime.Now`
+DateTime_SetCountry                                          :meth:`wx.DateTime.SetCountry`
+DateTime_SetToWeekOfYear                                     :meth:`wx.DateTime.SetToWeekOfYear`
+DateTime_Today                                               :meth:`wx.DateTime.Today`
+DateTime_UNow                                                :meth:`wx.DateTime.UNow`
+DateTimeFromDateTime                                         :class:`wx.DateTime`
+Dialog_EnableLayoutAdaptation                                :meth:`wx.Dialog.EnableLayoutAdaptation`
+Dialog_GetClassDefaultAttributes                             :meth:`wx.Dialog.GetClassDefaultAttributes `
+Dialog_GetLayoutAdapter                                      :meth:`wx.Dialog.GetLayoutAdapter`
+Dialog_IsLayoutAdaptationEnabled                             :meth:`wx.Dialog.IsLayoutAdaptationEnabled`
+Dialog_SetLayoutAdapter                                      :meth:`wx.Dialog.SetLayoutAdapter`
 DirItemData                                                  ``MISSING``
-Display_GetCount                                             :meth:`Display.GetCount`
-Display_GetFromPoint                                         :meth:`Display.GetFromPoint`
-Display_GetFromWindow                                        :meth:`Display.GetFromWindow`
+Display_GetCount                                             :meth:`wx.Display.GetCount`
+Display_GetFromPoint                                         :meth:`wx.Display.GetFromPoint`
+Display_GetFromWindow                                        :meth:`wx.Display.GetFromWindow`
 DragIcon                                                     ``MISSING``
 DragListItem                                                 ``MISSING``
 DragString                                                   ``MISSING``
 DragTreeItem                                                 ``MISSING``
 DROP_ICON                                                    ``MISSING``
-EmptyBitmap                                                  :class:`Bitmap`
-EmptyIcon                                                    :class:`Icon`
-EmptyImage                                                   :class:`Image`
+EmptyBitmap                                                  :class:`wx.Bitmap`
+EmptyIcon                                                    :class:`wx.Icon`
+EmptyImage                                                   :class:`wx.Image`
 EncodingConverter                                            ``MISSING``
 EncodingConverter_CanConvert                                 ``MISSING``
 EncodingConverter_GetAllEquivalents                          ``MISSING``
 EncodingConverter_GetPlatformEquivalents                     ``MISSING``
-EventLoopBase_GetActive                                      :meth:`EventLoopBase.GetActive`
-EventLoopBase_SetActive                                      :meth:`EventLoopBase.SetActive`
+EventLoopBase_GetActive                                      :meth:`wx.EventLoopBase.GetActive`
+EventLoopBase_SetActive                                      :meth:`wx.EventLoopBase.SetActive`
 EventProcessInHandlerOnly                                    ``MISSING``
 EVT_COMMAND                                                  ``MISSING``
 EVT_COMMAND_RANGE                                            ``MISSING``
 ExpandEnvVars                                                ``MISSING``
-FFontFromPixelSize                                           :class:`Font`
-FileConfig_GetGlobalFileName                                 :meth:`FileConfig.GetGlobalFileName`
-FileConfig_GetLocalFileName                                  :meth:`FileConfig.GetLocalFileName`
-FileSystem_AddHandler                                        :meth:`FileSystem.AddHandler`
+FFontFromPixelSize                                           :class:`wx.Font`
+FileConfig_GetGlobalFileName                                 :meth:`wx.FileConfig.GetGlobalFileName`
+FileConfig_GetLocalFileName                                  :meth:`wx.FileConfig.GetLocalFileName`
+FileSystem_AddHandler                                        :meth:`wx.FileSystem.AddHandler`
 FileSystem_CleanUpHandlers                                   ``MISSING``
-FileSystem_FileNameToURL                                     :meth:`FileSystem.FileNameToURL`
-FileSystem_RemoveHandler                                     :meth:`FileSystem.RemoveHandler`
-FileSystem_URLToFileName                                     :meth:`FileSystem.URLToFileName`
+FileSystem_FileNameToURL                                     :meth:`wx.FileSystem.FileNameToURL`
+FileSystem_RemoveHandler                                     :meth:`wx.FileSystem.RemoveHandler`
+FileSystem_URLToFileName                                     :meth:`wx.FileSystem.URLToFileName`
 FileSystemHandler_GetAnchor                                  ``MISSING``
 FileSystemHandler_GetLeftLocation                            ``MISSING``
-FileSystemHandler_GetMimeTypeFromExt                         :meth:`FileSystemHandler.GetMimeTypeFromExt`
+FileSystemHandler_GetMimeTypeFromExt                         :meth:`wx.FileSystemHandler.GetMimeTypeFromExt`
 FileSystemHandler_GetProtocol                                ``MISSING``
 FileSystemHandler_GetRightLocation                           ``MISSING``
-FileType_ExpandCommand                                       :meth:`FileType.ExpandCommand`
+FileType_ExpandCommand                                       :meth:`wx.FileType.ExpandCommand`
 FileTypeInfoSequence                                         ``MISSING``
-FindWindowById                                               :meth:`Window.FindWindowById`
-Font2                                                        :class:`Font`
+FindWindowById                                               :meth:`wx.Window.FindWindowById`
+Font2                                                        :class:`wx.Font`
 Font_AdjustToSymbolicSize                                    ``MISSING``
-Font_GetDefaultEncoding                                      :meth:`Font.GetDefaultEncoding`
-Font_SetDefaultEncoding                                      :meth:`Font.SetDefaultEncoding`
-FontEnumerator_GetEncodings                                  :meth:`FontEnumerator.GetEncodings`
-FontEnumerator_GetFacenames                                  :meth:`FontEnumerator.GetFacenames`
-FontEnumerator_IsValidFacename                               :meth:`FontEnumerator.IsValidFacename`
-FontFromNativeInfo                                           :class:`Font`
-FontFromNativeInfoString                                     :class:`Font`
-FontFromPixelSize                                            :class:`Font`
-FontMapper_Get                                               :meth:`FontMapper.Get`
+Font_GetDefaultEncoding                                      :meth:`wx.Font.GetDefaultEncoding`
+Font_SetDefaultEncoding                                      :meth:`wx.Font.SetDefaultEncoding`
+FontEnumerator_GetEncodings                                  :meth:`wx.FontEnumerator.GetEncodings`
+FontEnumerator_GetFacenames                                  :meth:`wx.FontEnumerator.GetFacenames`
+FontEnumerator_IsValidFacename                               :meth:`wx.FontEnumerator.IsValidFacename`
+FontFromNativeInfo                                           :class:`wx.Font`
+FontFromNativeInfoString                                     :class:`wx.Font`
+FontFromPixelSize                                            :class:`wx.Font`
+FontMapper_Get                                               :meth:`wx.FontMapper.Get`
 FontMapper_GetDefaultConfigPath                              ``MISSING``
-FontMapper_GetEncoding                                       :meth:`FontMapper.GetEncoding`
-FontMapper_GetEncodingDescription                            :meth:`FontMapper.GetEncodingDescription`
-FontMapper_GetEncodingFromName                               :meth:`FontMapper.GetEncodingFromName`
-FontMapper_GetEncodingName                                   :meth:`FontMapper.GetEncodingName`
-FontMapper_GetSupportedEncodingsCount                        :meth:`FontMapper.GetSupportedEncodingsCount`
-FontMapper_Set                                               :meth:`FontMapper.Set`
-Frame_GetClassDefaultAttributes                              :meth:`Frame.GetClassDefaultAttributes `
-FutureCall                                                   :class:`CallLater`
-Gauge_GetClassDefaultAttributes                              :meth:`Gauge.GetClassDefaultAttributes `
-GBSizerItemSizer                                             :class:`GbSizerItem`
-GBSizerItemSpacer                                            :class:`GbSizerItem`
-GBSizerItemWindow                                            :class:`GbSizerItem`
+FontMapper_GetEncoding                                       :meth:`wx.FontMapper.GetEncoding`
+FontMapper_GetEncodingDescription                            :meth:`wx.FontMapper.GetEncodingDescription`
+FontMapper_GetEncodingFromName                               :meth:`wx.FontMapper.GetEncodingFromName`
+FontMapper_GetEncodingName                                   :meth:`wx.FontMapper.GetEncodingName`
+FontMapper_GetSupportedEncodingsCount                        :meth:`wx.FontMapper.GetSupportedEncodingsCount`
+FontMapper_Set                                               :meth:`wx.FontMapper.Set`
+Frame_GetClassDefaultAttributes                              :meth:`wx.Frame.GetClassDefaultAttributes `
+FutureCall                                                   :class:`wx.CallLater`
+Gauge_GetClassDefaultAttributes                              :meth:`wx.Gauge.GetClassDefaultAttributes `
+GBSizerItemSizer                                             :class:`wx.GbSizerItem`
+GBSizerItemSpacer                                            :class:`wx.GbSizerItem`
+GBSizerItemWindow                                            :class:`wx.GbSizerItem`
 GDIObjListBase                                               ``MISSING``
-GenericFindWindowAtPoint                                     :func:`FindWindowAtPoint`
+GenericFindWindowAtPoint                                     :func:`wx.FindWindowAtPoint`
 GetAccelFromString                                           ``MISSING``
 GetCurrentId                                                 ``MISSING``
 GetCurrentTime                                               ``MISSING``
 GetDefaultPyEncoding                                         ``REMOVED``
-GetDisplayDepth                                              :func:`DisplayDepth`
+GetDisplayDepth                                              :func:`wx.DisplayDepth`
 GetFreeMemory                                                ``MISSING``
 GetLocale                                                    ``MISSING``
 GetLocalTime                                                 ``MISSING``
@@ -200,344 +200,344 @@ GetTextFromUser                                              ``MISSING``
 GetUTCTime                                                   ``MISSING``
 GetXDisplay                                                  ``MISSING``
 GIFHandler                                                   ``MISSING``
-GraphicsContext_Create                                       :meth:`GraphicsContext.Create`
-GraphicsContext_CreateFromNative                             :meth:`GraphicsContext.CreateFromNative`
-GraphicsContext_CreateFromNativeWindow                       :meth:`GraphicsContext.CreateFromNativeWindow`
-GraphicsContext_CreateMeasuringContext                       :meth:`GraphicsContext.Create`
-GraphicsRenderer_GetCairoRenderer                            :meth:`GraphicsRenderer.GetCairoRenderer`
-GraphicsRenderer_GetDefaultRenderer                          :meth:`GraphicsRenderer.GetDefaultRenderer`
-HelpProvider_Get                                             :meth:`HelpProvider.Get`
-HelpProvider_Set                                             :meth:`HelpProvider.Set`
+GraphicsContext_Create                                       :meth:`wx.GraphicsContext.Create`
+GraphicsContext_CreateFromNative                             :meth:`wx.GraphicsContext.CreateFromNative`
+GraphicsContext_CreateFromNativeWindow                       :meth:`wx.GraphicsContext.CreateFromNativeWindow`
+GraphicsContext_CreateMeasuringContext                       :meth:`wx.GraphicsContext.Create`
+GraphicsRenderer_GetCairoRenderer                            :meth:`wx.GraphicsRenderer.GetCairoRenderer`
+GraphicsRenderer_GetDefaultRenderer                          :meth:`wx.GraphicsRenderer.GetDefaultRenderer`
+HelpProvider_Get                                             :meth:`wx.HelpProvider.Get`
+HelpProvider_Set                                             :meth:`wx.HelpProvider.Set`
 HtmlListBox                                                  ``MISSING``
-HyperlinkCtrl                                                :class:`adv.HyperlinkCtrl`
-HyperlinkEvent                                               :class:`adv.HyperlinkEvent`
+HyperlinkCtrl                                                :class:`wx.adv.HyperlinkCtrl`
+HyperlinkEvent                                               :class:`wx.adv.HyperlinkEvent`
 ICOHandler                                                   ``MISSING``
-IconBundleFromFile                                           :class:`IconBundle`
-IconBundleFromIcon                                           :class:`IconBundle`
-IconBundleFromStream                                         :class:`IconBundle`
-IconFromBitmap                                               :class:`Icon`
-IconFromLocation                                             :class:`Icon`
-IconFromXPMData                                              :class:`Icon`
-IdleEvent_GetMode                                            :meth:`IdleEvent.GetMode`
-IdleEvent_SetMode                                            :meth:`IdleEvent.SetMode`
-Image_AddHandler                                             :meth:`Image.AddHandler`
-Image_CanRead                                                :meth:`Image.CanRead`
-Image_CanReadStream                                          :meth:`Image.CanRead`
+IconBundleFromFile                                           :class:`wx.IconBundle`
+IconBundleFromIcon                                           :class:`wx.IconBundle`
+IconBundleFromStream                                         :class:`wx.IconBundle`
+IconFromBitmap                                               :class:`wx.Icon`
+IconFromLocation                                             :class:`wx.Icon`
+IconFromXPMData                                              :class:`wx.Icon`
+IdleEvent_GetMode                                            :meth:`wx.IdleEvent.GetMode`
+IdleEvent_SetMode                                            :meth:`wx.IdleEvent.SetMode`
+Image_AddHandler                                             :meth:`wx.Image.AddHandler`
+Image_CanRead                                                :meth:`wx.Image.CanRead`
+Image_CanReadStream                                          :meth:`wx.Image.CanRead`
 Image_GetHandlers                                            ``MISSING``
-Image_GetImageCount                                          :meth:`Image.GetImageCount`
-Image_GetImageExtWildcard                                    :meth:`Image.GetImageExtWildcard`
-Image_HSVtoRGB                                               :meth:`Image.HSVtoRGB`
-Image_HSVValue                                               :class:`HSVValue`
-Image_InsertHandler                                          :meth:`Image.InsertHandler`
-Image_RemoveHandler                                          :meth:`Image.RemoveHandler`
-Image_RGBtoHSV                                               :meth:`Image.RGBtoHSV`
-Image_RGBValue                                               :class:`RGBValue`
-ImageFromMime                                                :class:`Image`
-ImageFromStream                                              :class:`Image`
-ImageFromStreamMime                                          :class:`Image`
-ImageHistogram_MakeKey                                       :meth:`ImageHistogram.MakeKey`
+Image_GetImageCount                                          :meth:`wx.Image.GetImageCount`
+Image_GetImageExtWildcard                                    :meth:`wx.Image.GetImageExtWildcard`
+Image_HSVtoRGB                                               :meth:`wx.Image.HSVtoRGB`
+Image_HSVValue                                               :class:`wx.HSVValue`
+Image_InsertHandler                                          :meth:`wx.Image.InsertHandler`
+Image_RemoveHandler                                          :meth:`wx.Image.RemoveHandler`
+Image_RGBtoHSV                                               :meth:`wx.Image.RGBtoHSV`
+Image_RGBValue                                               :class:`wx.RGBValue`
+ImageFromMime                                                :class:`wx.Image`
+ImageFromStream                                              :class:`wx.Image`
+ImageFromStreamMime                                          :class:`wx.Image`
+ImageHistogram_MakeKey                                       :meth:`wx.ImageHistogram.MakeKey`
 IsStockID                                                    ``MISSING``
 IsStockLabel                                                 ``MISSING``
-Joystick                                                     :class:`adv.Joystick`
+Joystick                                                     :class:`wx.adv.Joystick`
 JPEGHandler                                                  ``MISSING``
-KeyEvent.m_altDown                                           :meth:`~KeyboardState.GetModifiers`
-KeyEvent.m_controlDown                                       :meth:`~KeyboardState.GetModifiers`
-KeyEvent.m_keyCode                                           :attr:`KeyEvent.KeyCode`
-KeyEvent.m_metaDown                                          :meth:`~KeyboardState.GetModifiers`
-KeyEvent.m_shiftDown                                         :meth:`~KeyboardState.GetModifiers`
-KeyEvent.m_x                                                 :attr:`KeyEvent.X`
-KeyEvent.m_y                                                 :attr:`KeyEvent.Y`
-LayoutAlgorithm                                              :class:`adv.LayoutAlgorithm`
-ListbookEvent                                                :class:`BookCtrlEvent`
-ListBox_GetClassDefaultAttributes                            :meth:`ListBox.GetClassDefaultAttributes `
-ListCtrl_GetClassDefaultAttributes                           :meth:`ListCtrl.GetClassDefaultAttributes `
-ListCtrl_HasColumnOrderSupport                               :meth:`ListCtrl.HasColumnOrderSupport`
-ListEvent.m_code                                             :attr:`ListEvent.KeyCode`
-ListEvent.m_col                                              :attr:`ListEvent.Column`
-ListEvent.m_item                                             :attr:`ListEvent.Item`
-ListEvent.m_itemIndex                                        :attr:`ListEvent.Index`
-ListEvent.m_oldItemIndex                                     :attr:`ListEvent.CacheFrom`
-ListEvent.m_pointDrag                                        :attr:`ListEvent.Point`
-ListItem.m_col                                               :attr:`ListItem.Column`
-ListItem.m_data                                              :attr:`ListItem.Data`
-ListItem.m_format                                            :attr:`ListItem.Align`
-ListItem.m_image                                             :attr:`ListItem.Image`
-ListItem.m_itemId                                            :attr:`ListItem.Id`
-ListItem.m_mask                                              :attr:`ListItem.Mask`
-ListItem.m_state                                             :attr:`ListItem.State`
-ListItem.m_stateMask                                         :attr:`ListItem.State`
-ListItem.m_text                                              :attr:`ListItem.Text`
-ListItem.m_width                                             :attr:`ListItem.Width`
-Locale_AddCatalogLookupPathPrefix                            :meth:`Locale.AddCatalogLookupPathPrefix`
-Locale_AddLanguage                                           :meth:`Locale.AddLanguage`
-Locale_FindLanguageInfo                                      :meth:`Locale.FindLanguageInfo`
-Locale_GetInfo                                               :meth:`Locale.GetInfo`
-Locale_GetLanguageCanonicalName                              :meth:`Locale.GetLanguageCanonicalName`
-Locale_GetLanguageInfo                                       :meth:`Locale.GetLanguageInfo`
-Locale_GetLanguageName                                       :meth:`Locale.GetLanguageName`
-Locale_GetSystemEncoding                                     :meth:`Locale.GetSystemEncoding`
-Locale_GetSystemEncodingName                                 :meth:`Locale.GetSystemEncodingName`
-Locale_GetSystemLanguage                                     :meth:`Locale.GetSystemLanguage`
-Locale_IsAvailable                                           :meth:`Locale.IsAvailable`
-Log_AddTraceMask                                             :meth:`Log.AddTraceMask`
-Log_ClearTraceMasks                                          :meth:`Log.ClearTraceMasks`
+KeyEvent.m_altDown                                           :meth:`wx.KeyboardState.GetModifiers`
+KeyEvent.m_controlDown                                       :meth:`wx.KeyboardState.GetModifiers`
+KeyEvent.m_keyCode                                           :attr:`wx.KeyEvent.KeyCode`
+KeyEvent.m_metaDown                                          :meth:`wx.KeyboardState.GetModifiers`
+KeyEvent.m_shiftDown                                         :meth:`wx.KeyboardState.GetModifiers`
+KeyEvent.m_x                                                 :attr:`wx.KeyEvent.X`
+KeyEvent.m_y                                                 :attr:`wx.KeyEvent.Y`
+LayoutAlgorithm                                              :class:`wx.adv.LayoutAlgorithm`
+ListbookEvent                                                :class:`wx.BookCtrlEvent`
+ListBox_GetClassDefaultAttributes                            :meth:`wx.ListBox.GetClassDefaultAttributes `
+ListCtrl_GetClassDefaultAttributes                           :meth:`wx.ListCtrl.GetClassDefaultAttributes `
+ListCtrl_HasColumnOrderSupport                               :meth:`wx.ListCtrl.HasColumnOrderSupport`
+ListEvent.m_code                                             :attr:`wx.ListEvent.KeyCode`
+ListEvent.m_col                                              :attr:`wx.ListEvent.Column`
+ListEvent.m_item                                             :attr:`wx.ListEvent.Item`
+ListEvent.m_itemIndex                                        :attr:`wx.ListEvent.Index`
+ListEvent.m_oldItemIndex                                     :attr:`wx.ListEvent.CacheFrom`
+ListEvent.m_pointDrag                                        :attr:`wx.ListEvent.Point`
+ListItem.m_col                                               :attr:`wx.ListItem.Column`
+ListItem.m_data                                              :attr:`wx.ListItem.Data`
+ListItem.m_format                                            :attr:`wx.ListItem.Align`
+ListItem.m_image                                             :attr:`wx.ListItem.Image`
+ListItem.m_itemId                                            :attr:`wx.ListItem.Id`
+ListItem.m_mask                                              :attr:`wx.ListItem.Mask`
+ListItem.m_state                                             :attr:`wx.ListItem.State`
+ListItem.m_stateMask                                         :attr:`wx.ListItem.State`
+ListItem.m_text                                              :attr:`wx.ListItem.Text`
+ListItem.m_width                                             :attr:`wx.ListItem.Width`
+Locale_AddCatalogLookupPathPrefix                            :meth:`wx.Locale.AddCatalogLookupPathPrefix`
+Locale_AddLanguage                                           :meth:`wx.Locale.AddLanguage`
+Locale_FindLanguageInfo                                      :meth:`wx.Locale.FindLanguageInfo`
+Locale_GetInfo                                               :meth:`wx.Locale.GetInfo`
+Locale_GetLanguageCanonicalName                              :meth:`wx.Locale.GetLanguageCanonicalName`
+Locale_GetLanguageInfo                                       :meth:`wx.Locale.GetLanguageInfo`
+Locale_GetLanguageName                                       :meth:`wx.Locale.GetLanguageName`
+Locale_GetSystemEncoding                                     :meth:`wx.Locale.GetSystemEncoding`
+Locale_GetSystemEncodingName                                 :meth:`wx.Locale.GetSystemEncodingName`
+Locale_GetSystemLanguage                                     :meth:`wx.Locale.GetSystemLanguage`
+Locale_IsAvailable                                           :meth:`wx.Locale.IsAvailable`
+Log_AddTraceMask                                             :meth:`wx.Log.AddTraceMask`
+Log_ClearTraceMasks                                          :meth:`wx.Log.ClearTraceMasks`
 Log_DoCreateOnDemand                                         ``MISSING``
-Log_DontCreateOnDemand                                       :meth:`Log.DontCreateOnDemand`
-Log_EnableLogging                                            :meth:`Log.EnableLogging`
-Log_FlushActive                                              :meth:`Log.FlushActive`
-Log_GetActiveTarget                                          :meth:`Log.GetActiveTarget`
+Log_DontCreateOnDemand                                       :meth:`wx.Log.DontCreateOnDemand`
+Log_EnableLogging                                            :meth:`wx.Log.EnableLogging`
+Log_FlushActive                                              :meth:`wx.Log.FlushActive`
+Log_GetActiveTarget                                          :meth:`wx.Log.GetActiveTarget`
 Log_GetComponentLevel                                        ``MISSING``
-Log_GetLogLevel                                              :meth:`Log.GetLogLevel`
-Log_GetRepetitionCounting                                    :meth:`Log.GetRepetitionCounting`
-Log_GetTimestamp                                             :meth:`Log.GetTimestamp`
+Log_GetLogLevel                                              :meth:`wx.Log.GetLogLevel`
+Log_GetRepetitionCounting                                    :meth:`wx.Log.GetRepetitionCounting`
+Log_GetTimestamp                                             :meth:`wx.Log.GetTimestamp`
 Log_GetTraceMask                                             ``MISSING``
-Log_GetTraceMasks                                            :meth:`Log.GetTraceMasks`
-Log_GetVerbose                                               :meth:`Log.GetVerbose`
-Log_IsAllowedTraceMask                                       :meth:`Log.IsAllowedTraceMask`
-Log_IsEnabled                                                :meth:`Log.IsEnabled`
-Log_IsLevelEnabled                                           :meth:`Log.IsLevelEnabled`
-Log_RemoveTraceMask                                          :meth:`Log.RemoveTraceMask`
-Log_Resume                                                   :meth:`Log.Resume`
-Log_SetActiveTarget                                          :meth:`Log.SetActiveTarget`
-Log_SetComponentLevel                                        :meth:`Log.SetComponentLevel`
-Log_SetLogLevel                                              :meth:`Log.SetLogLevel`
-Log_SetRepetitionCounting                                    :meth:`Log.SetRepetitionCounting`
-Log_SetTimestamp                                             :meth:`Log.SetTimestamp`
+Log_GetTraceMasks                                            :meth:`wx.Log.GetTraceMasks`
+Log_GetVerbose                                               :meth:`wx.Log.GetVerbose`
+Log_IsAllowedTraceMask                                       :meth:`wx.Log.IsAllowedTraceMask`
+Log_IsEnabled                                                :meth:`wx.Log.IsEnabled`
+Log_IsLevelEnabled                                           :meth:`wx.Log.IsLevelEnabled`
+Log_RemoveTraceMask                                          :meth:`wx.Log.RemoveTraceMask`
+Log_Resume                                                   :meth:`wx.Log.Resume`
+Log_SetActiveTarget                                          :meth:`wx.Log.SetActiveTarget`
+Log_SetComponentLevel                                        :meth:`wx.Log.SetComponentLevel`
+Log_SetLogLevel                                              :meth:`wx.Log.SetLogLevel`
+Log_SetRepetitionCounting                                    :meth:`wx.Log.SetRepetitionCounting`
+Log_SetTimestamp                                             :meth:`wx.Log.SetTimestamp`
 Log_SetTraceMask                                             ``MISSING``
-Log_SetVerbose                                               :meth:`Log.SetVerbose`
-Log_Suspend                                                  :meth:`Log.Suspend`
+Log_SetVerbose                                               :meth:`wx.Log.SetVerbose`
+Log_Suspend                                                  :meth:`wx.Log.Suspend`
 Log_TimeStamp                                                ``MISSING``
-LogInfo                                                      :func:`LogMessage`
-LogStatusFrame                                               :func:`LogStatus`
+LogInfo                                                      :func:`wx.LogMessage`
+LogStatusFrame                                               :func:`wx.LogStatus`
 LogTrace                                                     ``MISSING``
-MaskColour                                                   :class:`Colour`
-MemoryDCFromDC                                               :class:`MemoryDC`
-MemoryFSHandler_AddFile                                      :meth:`MemoryFSHandler.AddFile`
-MemoryFSHandler_AddFileWithMimeType                          :meth:`MemoryFSHandler.AddFileWithMimeType`
-MemoryFSHandler_RemoveFile                                   :meth:`MemoryFSHandler.RemoveFile`
+MaskColour                                                   :class:`wx.Colour`
+MemoryDCFromDC                                               :class:`wx.MemoryDC`
+MemoryFSHandler_AddFile                                      :meth:`wx.MemoryFSHandler.AddFile`
+MemoryFSHandler_AddFileWithMimeType                          :meth:`wx.MemoryFSHandler.AddFileWithMimeType`
+MemoryFSHandler_RemoveFile                                   :meth:`wx.MemoryFSHandler.RemoveFile`
 MenuBar_GetAutoWindowMenu                                    ``MISSING``
-MenuBar_MacSetCommonMenuBar                                  :meth:`MenuBar.MacSetCommonMenuBar`
+MenuBar_MacSetCommonMenuBar                                  :meth:`wx.MenuBar.MacSetCommonMenuBar`
 MenuBar_SetAutoWindowMenu                                    ``MISSING``
 MenuItem_GetDefaultMarginWidth                               ``MISSING``
-MenuItem_GetLabelText                                        :meth:`MenuItem.GetLabelText`
-MetaFile                                                     :class:`msw.MemoryDC`
+MenuItem_GetLabelText                                        :meth:`wx.MenuItem.GetLabelText`
+MetaFile                                                     :class:`wx.msw.MemoryDC`
 MetafileDataObject                                           ``MISSING``
-MetaFileDC                                                   :class:`msw.MetafileDC`
-MimeTypesManager_IsOfType                                    :meth:`MimeTypesManager.IsOfType`
+MetaFileDC                                                   :class:`wx.msw.MetafileDC`
+MimeTypesManager_IsOfType                                    :meth:`wx.MimeTypesManager.IsOfType`
 ModalEventLoop                                               ``MISSING``
 MutexGuiEnter                                                ``MISSING``
 MutexGuiLeave                                                ``MISSING``
 MutexGuiLocker                                               ``MISSING``
-NamedColour                                                  :class:`Colour`
+NamedColour                                                  :class:`wx.Colour`
 NativeEncodingInfo                                           ``MISSING``
 NcPaintEvent                                                 ``MISSING``
-Notebook_GetClassDefaultAttributes                           :meth:`Notebook.GetClassDefaultAttributes `
-NotebookEvent                                                :class:`BookCtrlEvent`
+Notebook_GetClassDefaultAttributes                           :meth:`wx.Notebook.GetClassDefaultAttributes `
+NotebookEvent                                                :class:`wx.BookCtrlEvent`
 NotebookPage                                                 ``MISSING``
-NotificationMessage                                          :class:`adv.NotificationMessage`
+NotificationMessage                                          :class:`wx.adv.NotificationMessage`
 NullFileTypeInfo                                             ``MISSING``
 NumberEntryDialog                                            ``MISSING``
-Panel_GetClassDefaultAttributes                              :meth:`Panel.GetClassDefaultAttributes `
+Panel_GetClassDefaultAttributes                              :meth:`wx.Panel.GetClassDefaultAttributes `
 PCXHandler                                                   ``MISSING``
-PlatformInformation_GetOperatingSystemDirectory              :meth:`PlatformInfo.GetOperatingSystemDirectory`
+PlatformInformation_GetOperatingSystemDirectory              :meth:`wx.PlatformInfo.GetOperatingSystemDirectory`
 PNGHandler                                                   ``MISSING``
 PNMHandler                                                   ``MISSING``
-Point2DCopy                                                  :class:`Point2DDouble`
-Point2DFromPoint                                             :class:`Point2DDouble`
-PreBitmapButton                                              :class:`BitmapButton`
-PreButton                                                    :class:`Button`
-PreCheckBox                                                  :class:`CheckBox`
-PreCheckListBox                                              :class:`CheckListBox`
-PreChoice                                                    :class:`Choice`
-PreChoicebook                                                :class:`Choicebook`
-PreCollapsiblePane                                           :class:`CollapsiblePane`
-PreColourPickerCtrl                                          :class:`ColourPickerCtrl`
-PreComboBox                                                  :class:`ComboBox`
-PreCommandLinkButton                                         :class:`adv.CommandLinkButton`
-PreControl                                                   :class:`Control`
-PreDatePickerCtrl                                            :class:`adv.DatePickerCtrl`
-PreDialog                                                    :class:`Dialog`
-PreDirFilterListCtrl                                         :class:`DirFilterListCtrl`
-PreDirPickerCtrl                                             :class:`DirPickerCtrl`
-PreFileCtrl                                                  :class:`FileCtrl`
-PreFilePickerCtrl                                            :class:`FilePickerCtrl`
-PreFindReplaceDialog                                         :class:`FindReplaceDialog`
-PreFontPickerCtrl                                            :class:`FontPickerCtrl`
-PreFrame                                                     :class:`Frame`
-PreGauge                                                     :class:`Gauge`
-PreGenericDirCtrl                                            :class:`GenericDirCtrl`
-PreHScrolledWindow                                           :class:`HScrolledWindow`
+Point2DCopy                                                  :class:`wx.Point2DDouble`
+Point2DFromPoint                                             :class:`wx.Point2DDouble`
+PreBitmapButton                                              :class:`wx.BitmapButton`
+PreButton                                                    :class:`wx.Button`
+PreCheckBox                                                  :class:`wx.CheckBox`
+PreCheckListBox                                              :class:`wx.CheckListBox`
+PreChoice                                                    :class:`wx.Choice`
+PreChoicebook                                                :class:`wx.Choicebook`
+PreCollapsiblePane                                           :class:`wx.CollapsiblePane`
+PreColourPickerCtrl                                          :class:`wx.ColourPickerCtrl`
+PreComboBox                                                  :class:`wx.ComboBox`
+PreCommandLinkButton                                         :class:`wx.adv.CommandLinkButton`
+PreControl                                                   :class:`wx.Control`
+PreDatePickerCtrl                                            :class:`wx.adv.DatePickerCtrl`
+PreDialog                                                    :class:`wx.Dialog`
+PreDirFilterListCtrl                                         :class:`wx.DirFilterListCtrl`
+PreDirPickerCtrl                                             :class:`wx.DirPickerCtrl`
+PreFileCtrl                                                  :class:`wx.FileCtrl`
+PreFilePickerCtrl                                            :class:`wx.FilePickerCtrl`
+PreFindReplaceDialog                                         :class:`wx.FindReplaceDialog`
+PreFontPickerCtrl                                            :class:`wx.FontPickerCtrl`
+PreFrame                                                     :class:`wx.Frame`
+PreGauge                                                     :class:`wx.Gauge`
+PreGenericDirCtrl                                            :class:`wx.GenericDirCtrl`
+PreHScrolledWindow                                           :class:`wx.HScrolledWindow`
 PreHtmlListBox                                               ``MISSING``
-PreHVScrolledWindow                                          :class:`HVScrolledWindow`
-PreHyperlinkCtrl                                             :class:`adv.HyperlinkCtrl`
-PreInfoBar                                                   :class:`InfoBar`
-PreListbook                                                  :class:`Listbook`
-PreListBox                                                   :class:`ListBox`
-PreListCtrl                                                  :class:`ListCtrl`
-PreListView                                                  :class:`ListView`
-PreMDIChildFrame                                             :class:`MDIChildFrame`
-PreMDIClientWindow                                           :class:`MDIClientWindow`
-PreMDIParentFrame                                            :class:`MDIParentFrame`
-PreMiniFrame                                                 :class:`MiniFrame`
-PreNotebook                                                  :class:`Notebook`
-PrePanel                                                     :class:`Panel`
-PrePopupTransientWindow                                      :class:`PopupTransientWindow`
-PrePopupWindow                                               :class:`PopupWindow`
+PreHVScrolledWindow                                          :class:`wx.HVScrolledWindow`
+PreHyperlinkCtrl                                             :class:`wx.adv.HyperlinkCtrl`
+PreInfoBar                                                   :class:`wx.InfoBar`
+PreListbook                                                  :class:`wx.Listbook`
+PreListBox                                                   :class:`wx.ListBox`
+PreListCtrl                                                  :class:`wx.ListCtrl`
+PreListView                                                  :class:`wx.ListView`
+PreMDIChildFrame                                             :class:`wx.MDIChildFrame`
+PreMDIClientWindow                                           :class:`wx.MDIClientWindow`
+PreMDIParentFrame                                            :class:`wx.MDIParentFrame`
+PreMiniFrame                                                 :class:`wx.MiniFrame`
+PreNotebook                                                  :class:`wx.Notebook`
+PrePanel                                                     :class:`wx.Panel`
+PrePopupTransientWindow                                      :class:`wx.PopupTransientWindow`
+PrePopupWindow                                               :class:`wx.PopupWindow`
 PrePyAxBaseWindow                                            ``MISSING``
-PrePyControl                                                 :class:`Control`
-PrePyPanel                                                   :class:`Panel`
-PrePyPickerBase                                              :class:`PickerBase`
-PrePyScrolledWindow                                          :class:`ScrolledWindow`
-PrePyWindow                                                  :class:`Window`
-PreRadioBox                                                  :class:`RadioBox`
-PreRadioButton                                               :class:`RadioButton`
-PreSashLayoutWindow                                          :class:`adv.SashLayoutWindow`
-PreSashWindow                                                :class:`adv.SashWindow`
-PreScrollBar                                                 :class:`ScrollBar`
-PreScrolledWindow                                            :class:`ScrolledWindow`
-PreSearchCtrl                                                :class:`SearchCtrl`
+PrePyControl                                                 :class:`wx.Control`
+PrePyPanel                                                   :class:`wx.Panel`
+PrePyPickerBase                                              :class:`wx.PickerBase`
+PrePyScrolledWindow                                          :class:`wx.ScrolledWindow`
+PrePyWindow                                                  :class:`wx.Window`
+PreRadioBox                                                  :class:`wx.RadioBox`
+PreRadioButton                                               :class:`wx.RadioButton`
+PreSashLayoutWindow                                          :class:`wx.adv.SashLayoutWindow`
+PreSashWindow                                                :class:`wx.adv.SashWindow`
+PreScrollBar                                                 :class:`wx.ScrollBar`
+PreScrolledWindow                                            :class:`wx.ScrolledWindow`
+PreSearchCtrl                                                :class:`wx.SearchCtrl`
 PreSimpleHtmlListBox                                         ``MISSING``
-PreSingleInstanceChecker                                     :class:`SingleInstanceChecker`
-PreSlider                                                    :class:`Slider`
-PreSpinButton                                                :class:`SpinButton`
-PreSpinCtrl                                                  :class:`SpinCtrl`
-PreSpinCtrlDouble                                            :class:`SpinCtrlDouble`
-PreSplitterWindow                                            :class:`SplitterWindow`
-PreStaticBitmap                                              :class:`StaticBitmap`
-PreStaticBox                                                 :class:`StaticBox`
-PreStaticLine                                                :class:`StaticLine`
-PreStaticText                                                :class:`StaticText`
-PreStatusBar                                                 :class:`StatusBar`
-PreTextCtrl                                                  :class:`TextCtrl`
-PreToggleButton                                              :class:`ToggleButton`
-PreToolBar                                                   :class:`ToolBar`
-PreToolbook                                                  :class:`Toolbook`
-PreTreebook                                                  :class:`Treebook`
-PreTreeCtrl                                                  :class:`TreeCtrl`
-PreVListBox                                                  :class:`VListBox`
-PreVScrolledWindow                                           :class:`VScrolledWindow`
-PreWindow                                                    :class:`Window`
-Printer_GetLastError                                         :meth:`Printer.GetLastError`
-Process_Exists                                               :meth:`Process.Exists`
-Process_Kill                                                 :meth:`Process.Kill`
-Process_Open                                                 :meth:`Process.Open`
-PseudoDC                                                     ``MISSING``
-PyApp_GetComCtl32Version                                     :meth:`PyApp.GetComCtl32Version`
-PyApp_GetMacAboutMenuItemId                                  :meth:`PyApp.GetMacAboutMenuItemId`
-PyApp_GetMacExitMenuItemId                                   :meth:`PyApp.GetMacExitMenuItemId`
-PyApp_GetMacHelpMenuTitleName                                :meth:`PyApp.GetMacHelpMenuTitleName`
-PyApp_GetMacPreferencesMenuItemId                            :meth:`PyApp.GetMacPreferencesMenuItemId`
+PreSingleInstanceChecker                                     :class:`wx.SingleInstanceChecker`
+PreSlider                                                    :class:`wx.Slider`
+PreSpinButton                                                :class:`wx.SpinButton`
+PreSpinCtrl                                                  :class:`wx.SpinCtrl`
+PreSpinCtrlDouble                                            :class:`wx.SpinCtrlDouble`
+PreSplitterWindow                                            :class:`wx.SplitterWindow`
+PreStaticBitmap                                              :class:`wx.StaticBitmap`
+PreStaticBox                                                 :class:`wx.StaticBox`
+PreStaticLine                                                :class:`wx.StaticLine`
+PreStaticText                                                :class:`wx.StaticText`
+PreStatusBar                                                 :class:`wx.StatusBar`
+PreTextCtrl                                                  :class:`wx.TextCtrl`
+PreToggleButton                                              :class:`wx.ToggleButton`
+PreToolBar                                                   :class:`wx.ToolBar`
+PreToolbook                                                  :class:`wx.Toolbook`
+PreTreebook                                                  :class:`wx.Treebook`
+PreTreeCtrl                                                  :class:`wx.TreeCtrl`
+PreVListBox                                                  :class:`wx.VListBox`
+PreVScrolledWindow                                           :class:`wx.VScrolledWindow`
+PreWindow                                                    :class:`wx.Window`
+Printer_GetLastError                                         :meth:`wx.Printer.GetLastError`
+Process_Exists                                               :meth:`wx.Process.Exists`
+Process_Kill                                                 :meth:`wx.Process.Kill`
+Process_Open                                                 :meth:`wx.Process.Open`
+PseudoDC                                                     :class:`wx.adv.PseudoDC`
+PyApp_GetComCtl32Version                                     :meth:`wx.PyApp.GetComCtl32Version`
+PyApp_GetMacAboutMenuItemId                                  :meth:`wx.PyApp.GetMacAboutMenuItemId`
+PyApp_GetMacExitMenuItemId                                   :meth:`wx.PyApp.GetMacExitMenuItemId`
+PyApp_GetMacHelpMenuTitleName                                :meth:`wx.PyApp.GetMacHelpMenuTitleName`
+PyApp_GetMacPreferencesMenuItemId                            :meth:`wx.PyApp.GetMacPreferencesMenuItemId`
 PyApp_GetMacSupportPCMenuShortcuts                           ``MISSING``
-PyApp_GetShell32Version                                      :meth:`PyApp.GetShell32Version`
+PyApp_GetShell32Version                                      :meth:`wx.PyApp.GetShell32Version`
 PyApp_GetTraitsIfExists                                      ``MISSING``
-PyApp_IsDisplayAvailable                                     :meth:`PyApp.IsDisplayAvailable`
-PyApp_IsMainLoopRunning                                      :meth:`PyApp.IsMainLoopRunning `
-PyApp_SetMacAboutMenuItemId                                  :meth:`PyApp.SetMacAboutMenuItemId`
-PyApp_SetMacExitMenuItemId                                   :meth:`PyApp.SetMacExitMenuItemId`
-PyApp_SetMacHelpMenuTitleName                                :meth:`PyApp.SetMacHelpMenuTitleName`
-PyApp_SetMacPreferencesMenuItemId                            :meth:`PyApp.SetMacPreferencesMenuItemId`
+PyApp_IsDisplayAvailable                                     :meth:`wx.PyApp.IsDisplayAvailable`
+PyApp_IsMainLoopRunning                                      :meth:`wx.PyApp.IsMainLoopRunning `
+PyApp_SetMacAboutMenuItemId                                  :meth:`wx.PyApp.SetMacAboutMenuItemId`
+PyApp_SetMacExitMenuItemId                                   :meth:`wx.PyApp.SetMacExitMenuItemId`
+PyApp_SetMacHelpMenuTitleName                                :meth:`wx.PyApp.SetMacHelpMenuTitleName`
+PyApp_SetMacPreferencesMenuItemId                            :meth:`wx.PyApp.SetMacPreferencesMenuItemId`
 PyApp_SetMacSupportPCMenuShortcuts                           ``MISSING``
 PyAxBaseWindow_FromHWND                                      ``MISSING``
-PyBitmapDataObject                                           :class:`BitmapDataObject`
-PyControl                                                    :class:`Control`
-PyDataObjectSimple                                           :class:`DataObjectSimple`
+PyBitmapDataObject                                           :class:`wx.BitmapDataObject`
+PyControl                                                    :class:`wx.Control`
+PyDataObjectSimple                                           :class:`wx.DataObjectSimple`
 PyDeadObjectError                                            `RuntimeError`
-PyDropTarget                                                 :class:`DropTarget`
-PyEvtHandler                                                 :class:`EvtHandler`
-PyImageHandler                                               :class:`ImageHandler`
-PyLocale                                                     :class:`Locale`
-PyLog                                                        :class:`Log`
-PyPanel                                                      :class:`Panel`
-PyPickerBase                                                 :class:`PickerBase`
-PyPreviewControlBar                                          :class:`PreviewControlBar`
-PyPreviewFrame                                               :class:`PreviewFrame`
-PyPrintPreview                                               :class:`PrintPreview`
-PyScrolledWindow                                             :class:`ScrolledWindow`
-PySimpleApp                                                  :class:`App`
-PyTextDataObject                                             :class:`TextDataObject`
-PyTimer                                                      :class:`Timer`
-PyTipProvider                                                :class:`adv.TipProvider`
-PyValidator                                                  :class:`Validator`
-PyWindow                                                     :class:`Window`
+PyDropTarget                                                 :class:`wx.DropTarget`
+PyEvtHandler                                                 :class:`wx.EvtHandler`
+PyImageHandler                                               :class:`wx.ImageHandler`
+PyLocale                                                     :class:`wx.Locale`
+PyLog                                                        :class:`wx.Log`
+PyPanel                                                      :class:`wx.Panel`
+PyPickerBase                                                 :class:`wx.PickerBase`
+PyPreviewControlBar                                          :class:`wx.PreviewControlBar`
+PyPreviewFrame                                               :class:`wx.PreviewFrame`
+PyPrintPreview                                               :class:`wx.PrintPreview`
+PyScrolledWindow                                             :class:`wx.ScrolledWindow`
+PySimpleApp                                                  :class:`wx.App`
+PyTextDataObject                                             :class:`wx.TextDataObject`
+PyTimer                                                      :class:`wx.Timer`
+PyTipProvider                                                :class:`wx.adv.TipProvider`
+PyValidator                                                  :class:`wx.Validator`
+PyWindow                                                     :class:`wx.Window`
 Quantize                                                     ``MISSING``
 Quantize_Quantize                                            ``MISSING``
-QueryLayoutInfoEvent                                         :class:`adv.QueryLayoutInfoEvent`
-RadioBox_GetClassDefaultAttributes                           :meth:`RadioBox.GetClassDefaultAttributes `
-RadioButton_GetClassDefaultAttributes                        :meth:`RadioButton.GetClassDefaultAttributes `
-RectPP                                                       :class:`Rect`
-RectPS                                                       :class:`Rect`
-RectS                                                        :class:`Rect`
-Rect.OffsetXY                                                :meth:`Rect.Offset`
-RegionFromBitmap                                             :class:`Region`
-RegionFromBitmapColour                                       :class:`Region`
-RegionFromPoints                                             :class:`Region`
-RendererNative_Get                                           :meth:`RendererNative.Get`
-RendererNative_GetDefault                                    :meth:`RendererNative.GetDefault`
-RendererNative_GetGeneric                                    :meth:`RendererNative.GetGeneric`
-RendererNative_Set                                           :meth:`RendererNative.Set`
-RendererVersion_IsCompatible                                 :meth:`RendererVersion.IsCompatible`
-SashEvent                                                    :class:`adv.SashEvent`
-SashLayoutWindow                                             :class:`adv.SashLayoutWindow`
-SashWindow                                                   :class:`adv.SashWindow`
-ScrollBar_GetClassDefaultAttributes                          :meth:`ScrollBar.GetClassDefaultAttributes `
-ScrolledWindow_GetClassDefaultAttributes                     :meth:`ScrolledWindow.GetClassDefaultAttributes `
-ScrollHelper                                                 :class:`VarHVScrollHelper`
-SearchCtrlBase                                               :class:`SearchCtrl`
+QueryLayoutInfoEvent                                         :class:`wx.adv.QueryLayoutInfoEvent`
+RadioBox_GetClassDefaultAttributes                           :meth:`wx.RadioBox.GetClassDefaultAttributes `
+RadioButton_GetClassDefaultAttributes                        :meth:`wx.RadioButton.GetClassDefaultAttributes `
+RectPP                                                       :class:`wx.Rect`
+RectPS                                                       :class:`wx.Rect`
+RectS                                                        :class:`wx.Rect`
+Rect.OffsetXY                                                :meth:`wx.Rect.Offset`
+RegionFromBitmap                                             :class:`wx.Region`
+RegionFromBitmapColour                                       :class:`wx.Region`
+RegionFromPoints                                             :class:`wx.Region`
+RendererNative_Get                                           :meth:`wx.RendererNative.Get`
+RendererNative_GetDefault                                    :meth:`wx.RendererNative.GetDefault`
+RendererNative_GetGeneric                                    :meth:`wx.RendererNative.GetGeneric`
+RendererNative_Set                                           :meth:`wx.RendererNative.Set`
+RendererVersion_IsCompatible                                 :meth:`wx.RendererVersion.IsCompatible`
+SashEvent                                                    :class:`wx.adv.SashEvent`
+SashLayoutWindow                                             :class:`wx.adv.SashLayoutWindow`
+SashWindow                                                   :class:`wx.adv.SashWindow`
+ScrollBar_GetClassDefaultAttributes                          :meth:`wx.ScrollBar.GetClassDefaultAttributes `
+ScrolledWindow_GetClassDefaultAttributes                     :meth:`wx.ScrolledWindow.GetClassDefaultAttributes `
+ScrollHelper                                                 :class:`wx.VarHVScrollHelper`
+SearchCtrlBase                                               :class:`wx.SearchCtrl`
 SetCursor                                                    ``MISSING``
 SetDefaultPyEncoding                                         ``REMOVED``
-SetBitmapSelected                                            :meth:`AnyButton.SetBitmapPressed`
-ShowTip                                                      :func:`adv.ShowTip `
+SetBitmapSelected                                            :meth:`wx.AnyButton.SetBitmapPressed`
+ShowTip                                                      :func:`wx.adv.ShowTip`
 SimpleHtmlListBox                                            ``MISSING``
-SizerFlags_GetDefaultBorder                                  :meth:`SizerFlags.GetDefaultBorder`
-SizerItemSizer                                               :class:`SizerItem`
-SizerItemSpacer                                              :class:`SizerItem`
-SizerItemWindow                                              :class:`SizerItem`
-Slider_GetClassDefaultAttributes                             :meth:`Slider.GetClassDefaultAttributes `
-Sound                                                        :class:`adv.Sound`
-Sound_PlaySound                                              :meth:`adv.Sound.PlaySound`
-Sound_Stop                                                   :meth:`adv.Sound.Stop`
-SoundFromData                                                :class:`adv.Sound`
-SpinButton_GetClassDefaultAttributes                         :meth:`SpinButton.GetClassDefaultAttributes `
-SpinCtrl_GetClassDefaultAttributes                           :meth:`SpinCtrl.GetClassDefaultAttributes `
-SplashScreen                                                 :class:`adv.SplashScreen`
+SizerFlags_GetDefaultBorder                                  :meth:`wx.SizerFlags.GetDefaultBorder`
+SizerItemSizer                                               :class:`wx.SizerItem`
+SizerItemSpacer                                              :class:`wx.SizerItem`
+SizerItemWindow                                              :class:`wx.SizerItem`
+Slider_GetClassDefaultAttributes                             :meth:`wx.Slider.GetClassDefaultAttributes `
+Sound                                                        :class:`wx.adv.Sound`
+Sound_PlaySound                                              :meth:`wx.adv.Sound.PlaySound`
+Sound_Stop                                                   :meth:`wx.adv.Sound.Stop`
+SoundFromData                                                :class:`wx.adv.Sound`
+SpinButton_GetClassDefaultAttributes                         :meth:`wx.SpinButton.GetClassDefaultAttributes `
+SpinCtrl_GetClassDefaultAttributes                           :meth:`wx.SpinCtrl.GetClassDefaultAttributes `
+SplashScreen                                                 :class:`wx.adv.SplashScreen`
 SplashScreenWindow                                           ``MISSING``
 SplitterWindow.SetSashSize                                   ``REMOVED``
-SplitterWindow_GetClassDefaultAttributes                     :meth:`SplitterWindow.GetClassDefaultAttributes `
+SplitterWindow_GetClassDefaultAttributes                     :meth:`wx.SplitterWindow.GetClassDefaultAttributes `
 StandardDialogLayoutAdapter                                  ``MISSING``
 StandardDialogLayoutAdapter_DoFitWithScrolling               ``MISSING``
 StandardDialogLayoutAdapter_DoMustScroll                     ``MISSING``
 StandardDialogLayoutAdapter_DoReparentControls               ``MISSING``
-StandardPaths_Get                                            :meth:`StandardPaths.Get`
-StaticBitmap_GetClassDefaultAttributes                       :meth:`StaticBitmap.GetClassDefaultAttributes `
-StaticBox_GetClassDefaultAttributes                          :meth:`StaticBox.GetClassDefaultAttributes `
-StaticLine_GetClassDefaultAttributes                         :meth:`StaticLine.GetClassDefaultAttributes `
-StaticLine_GetDefaultSize                                    :meth:`StaticLine.GetDefaultSize`
-StaticText_GetClassDefaultAttributes                         :meth:`StaticText.GetClassDefaultAttributes `
-StatusBar_GetClassDefaultAttributes                          :meth:`StatusBar.GetClassDefaultAttributes `
-StockCursor                                                  :class:`Cursor`
-StockGDI_DeleteAll                                           :meth:`StockGDI.DeleteAll`
-StockGDI_GetBrush                                            :meth:`StockGDI.GetBrush`
-StockGDI_GetColour                                           :meth:`StockGDI.GetColour`
-StockGDI_GetCursor                                           :meth:`StockGDI.GetCursor`
-StockGDI_GetPen                                              :meth:`StockGDI.GetPen`
-StockGDI_instance                                            :meth:`StockGDI.instance`
+StandardPaths_Get                                            :meth:`wx.StandardPaths.Get`
+StaticBitmap_GetClassDefaultAttributes                       :meth:`wx.StaticBitmap.GetClassDefaultAttributes `
+StaticBox_GetClassDefaultAttributes                          :meth:`wx.StaticBox.GetClassDefaultAttributes `
+StaticLine_GetClassDefaultAttributes                         :meth:`wx.StaticLine.GetClassDefaultAttributes `
+StaticLine_GetDefaultSize                                    :meth:`wx.StaticLine.GetDefaultSize`
+StaticText_GetClassDefaultAttributes                         :meth:`wx.StaticText.GetClassDefaultAttributes `
+StatusBar_GetClassDefaultAttributes                          :meth:`wx.StatusBar.GetClassDefaultAttributes `
+StockCursor                                                  :class:`wx.Cursor`
+StockGDI_DeleteAll                                           :meth:`wx.StockGDI.DeleteAll`
+StockGDI_GetBrush                                            :meth:`wx.StockGDI.GetBrush`
+StockGDI_GetColour                                           :meth:`wx.StockGDI.GetColour`
+StockGDI_GetCursor                                           :meth:`wx.StockGDI.GetCursor`
+StockGDI_GetPen                                              :meth:`wx.StockGDI.GetPen`
+StockGDI_instance                                            :meth:`wx.StockGDI.instance`
 StopWatch                                                    ``MISSING``
 StyledTextCtrl.SetUseAntiAliasing						     ``REMOVED``
-SystemOptions_GetOption                                      :meth:`SystemOptions.GetOption`
-SystemOptions_GetOptionInt                                   :meth:`SystemOptions.GetOptionInt`
-SystemOptions_HasOption                                      :meth:`SystemOptions.HasOption`
-SystemOptions_IsFalse                                        :meth:`SystemOptions.IsFalse`
-SystemOptions_SetOption                                      :meth:`SystemOptions.SetOption`
-SystemOptions_SetOptionInt                                   :meth:`SystemOptions.SetOption`
-SystemSettings_GetColour                                     :meth:`SystemSettings.GetColour`
-SystemSettings_GetFont                                       :meth:`SystemSettings.GetFont`
-SystemSettings_GetMetric                                     :meth:`SystemSettings.GetMetric`
-SystemSettings_GetScreenType                                 :meth:`SystemSettings.GetScreenType`
-SystemSettings_HasFeature                                    :meth:`SystemSettings.HasFeature`
+SystemOptions_GetOption                                      :meth:`wx.SystemOptions.GetOption`
+SystemOptions_GetOptionInt                                   :meth:`wx.SystemOptions.GetOptionInt`
+SystemOptions_HasOption                                      :meth:`wx.SystemOptions.HasOption`
+SystemOptions_IsFalse                                        :meth:`wx.SystemOptions.IsFalse`
+SystemOptions_SetOption                                      :meth:`wx.SystemOptions.SetOption`
+SystemOptions_SetOptionInt                                   :meth:`wx.SystemOptions.SetOption`
+SystemSettings_GetColour                                     :meth:`wx.SystemSettings.GetColour`
+SystemSettings_GetFont                                       :meth:`wx.SystemSettings.GetFont`
+SystemSettings_GetMetric                                     :meth:`wx.SystemSettings.GetMetric`
+SystemSettings_GetScreenType                                 :meth:`wx.SystemSettings.GetScreenType`
+SystemSettings_HasFeature                                    :meth:`wx.SystemSettings.HasFeature`
 SystemSettings_SetScreenType                                 ``MISSING``
-TaskBarIcon                                                  :class:`adv.TaskBarIcon`
-TaskBarIcon_IsAvailable                                      :meth:`adv.TaskBarIcon.IsAvailable`
-TaskBarIconEvent                                             :class:`adv.TaskBarIconEvent`
+TaskBarIcon                                                  :class:`wx.adv.TaskBarIcon`
+TaskBarIcon_IsAvailable                                      :meth:`wx.adv.TaskBarIcon.IsAvailable`
+TaskBarIconEvent                                             :class:`wx.adv.TaskBarIconEvent`
 TestFontEncoding                                             ``MISSING``
 TextAreaBase                                                 ``NONE (implementation detail)``
 TextAttr_BitlistsEqPartial                                   ``MISSING``
@@ -546,167 +546,167 @@ TextAttr_CombineBitlists                                     ``MISSING``
 TextAttr_RemoveStyle                                         ``MISSING``
 TextAttr_SplitParaCharStyles                                 ``MISSING``
 TextAttr_TabsEq                                              ``MISSING``
-TextCtrl_GetClassDefaultAttributes                           :meth:`TextCtrl.GetClassDefaultAttributes `
+TextCtrl_GetClassDefaultAttributes                           :meth:`wx.TextCtrl.GetClassDefaultAttributes `
 TextCtrlBase                                                 ``NONE (implementation detail)``
 TextCtrlIface                                                ``NONE (implementation detail)``
 TextEntryBase                                                ``NONE (implementation detail)``
 TextUrlEvent                                                 ``MISSING``
 TGAHandler                                                   ``MISSING``
-Thread_IsMain                                                :meth:`IsMainThread`
+Thread_IsMain                                                :meth:`wx.IsMainThread`
 ThreadEvent                                                  ``MISSING``
 TIFFHandler                                                  ``MISSING``
-TimeSpan_Day                                                 :meth:`TimeSpan.Day`
-TimeSpan_Days                                                :meth:`TimeSpan.Days`
-TimeSpan_Hour                                                :meth:`TimeSpan.Hour`
-TimeSpan_Hours                                               :meth:`TimeSpan.Hours`
-TimeSpan_Millisecond                                         :meth:`TimeSpan.Millisecond`
-TimeSpan_Milliseconds                                        :meth:`TimeSpan.Milliseconds`
-TimeSpan_Minute                                              :meth:`TimeSpan.Minute`
-TimeSpan_Minutes                                             :meth:`TimeSpan.Minutes`
-TimeSpan_Second                                              :meth:`TimeSpan.Second`
-TimeSpan_Seconds                                             :meth:`TimeSpan.Seconds`
-TimeSpan_Week                                                :meth:`TimeSpan.Week`
-TimeSpan_Weeks                                               :meth:`TimeSpan.Weeks`
-TipProvider                                                  :class:`adv.TipProvider`
-ToggleButton_GetClassDefaultAttributes                       :meth:`ToggleButton.GetClassDefaultAttributes `
-ToolBar_GetClassDefaultAttributes                            :meth:`ToolBar.GetClassDefaultAttributes `
-ToolbookEvent                                                :class:`BookCtrlEvent`
-ToolTip_Enable                                               :meth:`ToolTip.Enable`
-ToolTip_SetAutoPop                                           :meth:`ToolTip.SetAutoPop`
-ToolTip_SetDelay                                             :meth:`ToolTip.SetDelay`
-ToolTip_SetMaxWidth                                          :meth:`ToolTip.SetMaxWidth`
-ToolTip_SetReshow                                            :meth:`ToolTip.SetReshow`
-TopLevelWindow_GetDefaultSize                                :meth:`TopLevelWindow.GetDefaultSize`
+TimeSpan_Day                                                 :meth:`wx.TimeSpan.Day`
+TimeSpan_Days                                                :meth:`wx.TimeSpan.Days`
+TimeSpan_Hour                                                :meth:`wx.TimeSpan.Hour`
+TimeSpan_Hours                                               :meth:`wx.TimeSpan.Hours`
+TimeSpan_Millisecond                                         :meth:`wx.TimeSpan.Millisecond`
+TimeSpan_Milliseconds                                        :meth:`wx.TimeSpan.Milliseconds`
+TimeSpan_Minute                                              :meth:`wx.TimeSpan.Minute`
+TimeSpan_Minutes                                             :meth:`wx.TimeSpan.Minutes`
+TimeSpan_Second                                              :meth:`wx.TimeSpan.Second`
+TimeSpan_Seconds                                             :meth:`wx.TimeSpan.Seconds`
+TimeSpan_Week                                                :meth:`wx.TimeSpan.Week`
+TimeSpan_Weeks                                               :meth:`wx.TimeSpan.Weeks`
+TipProvider                                                  :class:`wx.adv.TipProvider`
+ToggleButton_GetClassDefaultAttributes                       :meth:`wx.ToggleButton.GetClassDefaultAttributes `
+ToolBar_GetClassDefaultAttributes                            :meth:`wx.ToolBar.GetClassDefaultAttributes `
+ToolbookEvent                                                :class:`wx.BookCtrlEvent`
+ToolTip_Enable                                               :meth:`wx.ToolTip.Enable`
+ToolTip_SetAutoPop                                           :meth:`wx.ToolTip.SetAutoPop`
+ToolTip_SetDelay                                             :meth:`wx.ToolTip.SetDelay`
+ToolTip_SetMaxWidth                                          :meth:`wx.ToolTip.SetMaxWidth`
+ToolTip_SetReshow                                            :meth:`wx.ToolTip.SetReshow`
+TopLevelWindow_GetDefaultSize                                :meth:`wx.TopLevelWindow.GetDefaultSize`
 Trap                                                         ``MISSING``
-TreebookEvent                                                :class:`BookCtrlEvent`
-TreeCtrl_GetClassDefaultAttributes                           :meth:`TreeCtrl.GetClassDefaultAttributes `
+TreebookEvent                                                :class:`wx.BookCtrlEvent`
+TreeCtrl_GetClassDefaultAttributes                           :meth:`wx.TreeCtrl.GetClassDefaultAttributes `
 TreeItemData                                                 ``REMOVED`` (a MappedType is being used instead to handle setting any PyObject as item data.)
-UpdateUIEvent_CanUpdate                                      :meth:`UpdateUIEvent.CanUpdate`
-UpdateUIEvent_GetMode                                        :meth:`UpdateUIEvent.GetMode`
-UpdateUIEvent_GetUpdateInterval                              :meth:`UpdateUIEvent.GetUpdateInterval`
-UpdateUIEvent_ResetUpdateTime                                :meth:`UpdateUIEvent.ResetUpdateTime`
-UpdateUIEvent_SetMode                                        :meth:`UpdateUIEvent.SetMode`
-UpdateUIEvent_SetUpdateInterval                              :meth:`UpdateUIEvent.SetUpdateInterval`
-Validator_IsSilent                                           :meth:`Validator.IsSilent`
+UpdateUIEvent_CanUpdate                                      :meth:`wx.UpdateUIEvent.CanUpdate`
+UpdateUIEvent_GetMode                                        :meth:`wx.UpdateUIEvent.GetMode`
+UpdateUIEvent_GetUpdateInterval                              :meth:`wx.UpdateUIEvent.GetUpdateInterval`
+UpdateUIEvent_ResetUpdateTime                                :meth:`wx.UpdateUIEvent.ResetUpdateTime`
+UpdateUIEvent_SetMode                                        :meth:`wx.UpdateUIEvent.SetMode`
+UpdateUIEvent_SetUpdateInterval                              :meth:`wx.UpdateUIEvent.SetUpdateInterval`
+Validator_IsSilent                                           :meth:`wx.Validator.IsSilent`
 Validator_SetBellOnError                                     ``REMOVED``
-Validator_SuppressBellOnError                                :meth:`Validator.SuppressBellOnError`
+Validator_SuppressBellOnError                                :meth:`wx.Validator.SuppressBellOnError`
 WakeUpMainThread                                             ``MISSING``
-Window_FindFocus                                             :meth:`Window.FindFocus`
+Window_FindFocus                                             :meth:`wx.Window.FindFocus`
 Window_FromHWND                                              ``MISSING``
-Window_GetCapture                                            :meth:`Window.GetCapture`
-Window_GetClassDefaultAttributes                             :meth:`Window.GetClassDefaultAttributes`
-Window_NewControlId                                          :meth:`Window.NewControlId`
-Window_UnreserveControlId                                    :meth:`Window.UnreserveControlId`
+Window_GetCapture                                            :meth:`wx.Window.GetCapture`
+Window_GetClassDefaultAttributes                             :meth:`wx.Window.GetClassDefaultAttributes`
+Window_NewControlId                                          :meth:`wx.Window.NewControlId`
+Window_UnreserveControlId                                    :meth:`wx.Window.UnreserveControlId`
 XPMHandler                                                   ``MISSING``
-YieldIfNeeded                                                :meth:`App.Yield` wx.GetApp().Yield(onlyIfNeeded=True) 
+YieldIfNeeded                                                :meth:`wx.App.Yield` wx.GetApp().Yield(onlyIfNeeded=True)
 ===========================================================  ===========================================================
 
 
-:class:`DC` Modifications
+:class:`wx.DC` Modifications
 -------------------------
 
 ===========================================================  ===========================================================
 `Classic` Name                                               `Phoenix` Name
 ===========================================================  ===========================================================
 BeginDrawing                                                 ``REMOVED``
-BlitPointSize                                                :meth:`~DC.Blit`
-CalcBoundingBoxPoint                                         :meth:`~DC.CalcBoundingBox`
-CrossHairPoint                                               :meth:`~DC.CrossHair`
-DrawArcPoint                                                 :meth:`~DC.DrawArc`
-DrawBitmapPoint                                              :meth:`~DC.DrawBitmap`
-DrawCheckMarkRect                                            :meth:`~DC.DrawCheckMark`
-DrawCirclePoint                                              :meth:`~DC.DrawCircle`
-DrawEllipsePointSize                                         :meth:`~DC.DrawEllipse`
-DrawEllipseRect                                              :meth:`~DC.DrawEllipse`
-DrawEllipticArcPointSize                                     :meth:`~DC.DrawEllipticArc`
-DrawIconPoint                                                :meth:`~DC.DrawIcon`
-DrawLinePoint                                                :meth:`~DC.DrawLine`
-DrawPointPoint                                               :meth:`~DC.DrawPoint`
-DrawRectanglePointSize                                       :meth:`~DC.DrawRectangle`
-DrawRectangleRect                                            :meth:`~DC.DrawRectangle`
-DrawRotatedTextPoint                                         :meth:`~DC.DrawRotatedText`
-DrawRoundedRectanglePointSize                                :meth:`~DC.DrawRoundedRectangle`
-DrawRoundedRectangleRect                                     :meth:`~DC.DrawRoundedRectangle`
-DrawTextPoint                                                :meth:`~DC.DrawText`
+BlitPointSize                                                :meth:`wx.DC.Blit`
+CalcBoundingBoxPoint                                         :meth:`wx.DC.CalcBoundingBox`
+CrossHairPoint                                               :meth:`wx.DC.CrossHair`
+DrawArcPoint                                                 :meth:`wx.DC.DrawArc`
+DrawBitmapPoint                                              :meth:`wx.DC.DrawBitmap`
+DrawCheckMarkRect                                            :meth:`wx.DC.DrawCheckMark`
+DrawCirclePoint                                              :meth:`wx.DC.DrawCircle`
+DrawEllipsePointSize                                         :meth:`wx.DC.DrawEllipse`
+DrawEllipseRect                                              :meth:`wx.DC.DrawEllipse`
+DrawEllipticArcPointSize                                     :meth:`wx.DC.DrawEllipticArc`
+DrawIconPoint                                                :meth:`wx.DC.DrawIcon`
+DrawLinePoint                                                :meth:`wx.DC.DrawLine`
+DrawPointPoint                                               :meth:`wx.DC.DrawPoint`
+DrawRectanglePointSize                                       :meth:`wx.DC.DrawRectangle`
+DrawRectangleRect                                            :meth:`wx.DC.DrawRectangle`
+DrawRotatedTextPoint                                         :meth:`wx.DC.DrawRotatedText`
+DrawRoundedRectanglePointSize                                :meth:`wx.DC.DrawRoundedRectangle`
+DrawRoundedRectangleRect                                     :meth:`wx.DC.DrawRoundedRectangle`
+DrawTextPoint                                                :meth:`wx.DC.DrawText`
 EndDrawing                                                   ``REMOVED``
-FloodFillPoint                                               :meth:`~DC.FloodFill`
-GetDeviceOriginTuple                                         :meth:`~DC.GetDeviceOrigin`
+FloodFillPoint                                               :meth:`wx.DC.FloodFill`
+GetDeviceOriginTuple                                         :meth:`wx.DC.GetDeviceOrigin`
 GetImpl                                                      ``REMOVED``
-GetLogicalOriginTuple                                        :meth:`~DC.GetLogicalOrigin`
-GetMultiLineTextExtent                                       :meth:`~DC.GetFullMultiLineTextExtent`
+GetLogicalOriginTuple                                        :meth:`wx.DC.GetLogicalOrigin`
+GetMultiLineTextExtent                                       :meth:`wx.DC.GetFullMultiLineTextExtent`
 GetOptimization                                              ``REMOVED``
-GetPixelPoint                                                :meth:`~DC.GetPixel`
-GetResolution                                                :meth:`~DC.GetPPI`
-GetSizeMMTuple                                               :meth:`~DC.GetSizeMM`
-Ok                                                           :meth:`~DC.IsOk`
-SetClippingRect                                              :meth:`~DC.SetClippingRegion`
-SetClippingRegionAsRegion                                    :meth:`~DC.SetClippingRegion`
-SetClippingRegionPointSize                                   :meth:`~DC.SetClippingRegion`
-SetDeviceOriginPoint                                         :meth:`~DC.SetDeviceOrigin`
-SetLogicalOriginPoint                                        :meth:`~DC.SetLogicalOrigin`
+GetPixelPoint                                                :meth:`wx.DC.GetPixel`
+GetResolution                                                :meth:`wx.DC.GetPPI`
+GetSizeMMTuple                                               :meth:`wx.DC.GetSizeMM`
+Ok                                                           :meth:`wx.DC.IsOk`
+SetClippingRect                                              :meth:`wx.DC.SetClippingRegion`
+SetClippingRegionAsRegion                                    :meth:`wx.DC.SetClippingRegion`
+SetClippingRegionPointSize                                   :meth:`wx.DC.SetClippingRegion`
+SetDeviceOriginPoint                                         :meth:`wx.DC.SetDeviceOrigin`
+SetLogicalOriginPoint                                        :meth:`wx.DC.SetLogicalOrigin`
 SetOptimization                                              ``REMOVED``
-StretchBlitPointSize                                         :meth:`~DC.StretchBlit`
+StretchBlitPointSize                                         :meth:`wx.DC.StretchBlit`
 ===========================================================  ===========================================================
 
 
-:class:`Window` Modifications
+:class:`wx.Window` Modifications
 -----------------------------
 
 ===========================================================  ===========================================================
 `Classic` Name                                               `Phoenix` Name
 ===========================================================  ===========================================================
-ClientToScreenXY                                             :meth:`~Window.ClientToScreen`
-ConvertDialogPointToPixels                                   :meth:`~Window.ConvertDialogToPixels`
-ConvertDialogSizeToPixels                                    :meth:`~Window.ConvertDialogToPixels`
-GetAdjustedBestSize                                          :meth:`~Window.GetEffectiveMinSize`
-GetBestFittingSize                                           :meth:`~Window.GetEffectiveMinSize`
-GetBestSizeTuple                                             :meth:`~Window.GetBestSize`
-GetClientSizeTuple                                           :meth:`~Window.GetClientSize`
-GetScreenPositionTuple                                       :meth:`~Window.GetScreenPosition`
-GetSizeTuple                                                 :meth:`~Window.GetSize`
-GetToolTipString                                             :meth:`~Window.GetToolTipText`
-HitTestXY                                                    :meth:`~Window.HitTest`
-IsExposedPoint                                               :meth:`~Window.IsExposed`
-IsExposedRect                                                :meth:`~Window.IsExposed`
+ClientToScreenXY                                             :meth:`wx.Window.ClientToScreen`
+ConvertDialogPointToPixels                                   :meth:`wx.Window.ConvertDialogToPixels`
+ConvertDialogSizeToPixels                                    :meth:`wx.Window.ConvertDialogToPixels`
+GetAdjustedBestSize                                          :meth:`wx.Window.GetEffectiveMinSize`
+GetBestFittingSize                                           :meth:`wx.Window.GetEffectiveMinSize`
+GetBestSizeTuple                                             :meth:`wx.Window.GetBestSize`
+GetClientSizeTuple                                           :meth:`wx.Window.GetClientSize`
+GetScreenPositionTuple                                       :meth:`wx.Window.GetScreenPosition`
+GetSizeTuple                                                 :meth:`wx.Window.GetSize`
+GetToolTipString                                             :meth:`wx.Window.GetToolTipText`
+HitTestXY                                                    :meth:`wx.Window.HitTest`
+IsExposedPoint                                               :meth:`wx.Window.IsExposed`
+IsExposedRect                                                :meth:`wx.Window.IsExposed`
 MakeModal                                                    ``REMOVED``
-PopupMenuXY                                                  :meth:`~Window.PopupMenu`
-ScreenToClientXY                                             :meth:`~Window.ScreenToClient`
-SetBestFittingSize                                           :meth:`~Window.SetInitialSize`
-SetClientSizeWH                                              :meth:`~Window.SetClientSize`
-SetDimensions                                                :meth:`~Window.SetSize`
-SetHelpTextForId                                             :meth:`~Window.SetHelpText`
-SetSizeHintsSz                                               :meth:`~Window.SetSizeHints`
-SetToolTipString                                             :meth:`~Window.SetToolTip`
+PopupMenuXY                                                  :meth:`wx.Window.PopupMenu`
+ScreenToClientXY                                             :meth:`wx.Window.ScreenToClient`
+SetBestFittingSize                                           :meth:`wx.Window.SetInitialSize`
+SetClientSizeWH                                              :meth:`wx.Window.SetClientSize`
+SetDimensions                                                :meth:`wx.Window.SetSize`
+SetHelpTextForId                                             :meth:`wx.Window.SetHelpText`
+SetSizeHintsSz                                               :meth:`wx.Window.SetSizeHints`
+SetToolTipString                                             :meth:`wx.Window.SetToolTip`
 SetVirtualSizeHints                                          ``REMOVED``
 SetVirtualSizeHintsSz                                        ``REMOVED``
 ===========================================================  ===========================================================
 
 
-:class:`Sizer` Modifications
+:class:`wx.Sizer` Modifications
 ----------------------------
 
 ===========================================================  ===========================================================
 `Classic` Name                                               `Phoenix` Name
 ===========================================================  ===========================================================
-AddF                                                         :meth:`~Sizer.Add`
-AddItem                                                      :meth:`~Sizer.Add`
-AddSizer                                                     :meth:`~Sizer.Add`
-AddWindow                                                    :meth:`~Sizer.Add`
-DeleteWindows                                                :meth:`~Sizer.Clear`
-GetItemIndex                                                 :meth:`~Sizer.GetItem`
-GetMinSizeTuple                                              :meth:`~Sizer.GetMinSize`
-GetPositionTuple                                             :meth:`~Sizer.GetPosition`
-InsertF                                                      :meth:`~Sizer.Insert`
-InsertItem                                                   :meth:`~Sizer.Insert`
-InsertSizer                                                  :meth:`~Sizer.Insert`
-InsertWindow                                                 :meth:`~Sizer.Insert`
-PrependF                                                     :meth:`~Sizer.Prepend`
-PrependItem                                                  :meth:`~Sizer.Prepend`
-PrependSizer                                                 :meth:`~Sizer.Prepend`
-PrependWindow                                                :meth:`~Sizer.Prepend`
-RemovePos                                                    :meth:`~Sizer.Remove`
-RemoveSizer                                                  :meth:`~Sizer.Remove`
-RemoveWindow                                                 :meth:`~Sizer.Remove`
+AddF                                                         :meth:`wx.Sizer.Add`
+AddItem                                                      :meth:`wx.Sizer.Add`
+AddSizer                                                     :meth:`wx.Sizer.Add`
+AddWindow                                                    :meth:`wx.Sizer.Add`
+DeleteWindows                                                :meth:`wx.Sizer.Clear`
+GetItemIndex                                                 :meth:`wx.Sizer.GetItem`
+GetMinSizeTuple                                              :meth:`wx.Sizer.GetMinSize`
+GetPositionTuple                                             :meth:`wx.Sizer.GetPosition`
+InsertF                                                      :meth:`wx.Sizer.Insert`
+InsertItem                                                   :meth:`wx.Sizer.Insert`
+InsertSizer                                                  :meth:`wx.Sizer.Insert`
+InsertWindow                                                 :meth:`wx.Sizer.Insert`
+PrependF                                                     :meth:`wx.Sizer.Prepend`
+PrependItem                                                  :meth:`wx.Sizer.Prepend`
+PrependSizer                                                 :meth:`wx.Sizer.Prepend`
+PrependWindow                                                :meth:`wx.Sizer.Prepend`
+RemovePos                                                    :meth:`wx.Sizer.Remove`
+RemoveSizer                                                  :meth:`wx.Sizer.Remove`
+RemoveWindow                                                 :meth:`wx.Sizer.Remove`
 ===========================================================  ===========================================================
 
 
@@ -719,11 +719,11 @@ wx.lib Modifications
 ===========================================================  ===========================================================
 `Classic` Name                                               `Phoenix` Name
 ===========================================================  ===========================================================
-wx.lib.buttonpanel                                           :mod:`lib.agw.buttonpanel`
-wx.lib.customtreectrl                                        :mod:`lib.agw.customtreectrl`
-wx.lib.flatnotebook                                          :mod:`lib.agw.flatnotebook`
-wx.lib.foldpanelbar                                          :mod:`lib.agw.foldpanelbar`
-wx.lib.hyperlink                                             :mod:`lib.agw.hyperlink`
+wx.lib.buttonpanel                                           :mod:`wx.lib.agw.buttonpanel`
+wx.lib.customtreectrl                                        :mod:`wx.lib.agw.customtreectrl`
+wx.lib.flatnotebook                                          :mod:`wx.lib.agw.flatnotebook`
+wx.lib.foldpanelbar                                          :mod:`wx.lib.agw.foldpanelbar`
+wx.lib.hyperlink                                             :mod:`wx.lib.agw.hyperlink`
 wx.lib.grids                                                 ``REMOVED``
 wx.lib.pyshell                                               ``REMOVED``
 wx.lib.rightalign                                            ``REMOVED``
@@ -741,17 +741,17 @@ Modules which have moved
 ===========================================================  ===========================================================
 `Classic` Name                                               `Phoenix` Name
 ===========================================================  ===========================================================
-wx.calendar.CalendarCtrl                                     :mod:`adv.CalendarCtrl`
-wx.animate.Animation                                         :mod:`adv.Animation`
-wx.animate.AnimationCtrl                                     :mod:`adv.AnimationCtrl`
-wx.combo.OwnerDrawnComboBox                                  :mod:`adv.OwnerDrawnComboBox`
-wx.gizmos.EditableListBox                                    :mod:`adv.EditableListBox`
-wx.gizmos.TreeListCtrl                                       :mod:`dataview.TreeListCtrl`
-wx.AboutBox                                                  :meth:`adv.AboutBox`
-wx.AboutDialogInfo                                           :mod:`adv.AboutDialogInfo`
-wx.DatePickerCtrl                                            :mod:`adv.DatePickerCtrl`
-wx.GenericDatePickerCtrl                                     :mod:`adv.GenericPickerCtrl`
-wx.TaskBarIcon                                               :mod:`adv.TaskBarIcon`
-wx.SplashScreen                                              :mod:`adv.SplashScreen`
-wx.wizard.Wizard                                             :mod:`adv.Wizard`
+wx.calendar.CalendarCtrl                                     :mod:`wx.adv.CalendarCtrl`
+wx.animate.Animation                                         :mod:`wx.adv.Animation`
+wx.animate.AnimationCtrl                                     :mod:`wx.adv.AnimationCtrl`
+wx.combo.OwnerDrawnComboBox                                  :mod:`wx.adv.OwnerDrawnComboBox`
+wx.gizmos.EditableListBox                                    :mod:`wx.adv.EditableListBox`
+wx.gizmos.TreeListCtrl                                       :mod:`wx.dataview.TreeListCtrl`
+wx.AboutBox                                                  :meth:`wx.adv.AboutBox`
+wx.AboutDialogInfo                                           :mod:`wx.adv.AboutDialogInfo`
+wx.DatePickerCtrl                                            :mod:`wx.adv.DatePickerCtrl`
+wx.GenericDatePickerCtrl                                     :mod:`wx.adv.GenericPickerCtrl`
+wx.TaskBarIcon                                               :mod:`wx.adv.TaskBarIcon`
+wx.SplashScreen                                              :mod:`wx.adv.SplashScreen`
+wx.wizard.Wizard                                             :mod:`wx.adv.Wizard`
 ===========================================================  ===========================================================
diff --git a/docs/sphinx/itemToModuleMap.json b/docs/sphinx/itemToModuleMap.json
index a8170d22..d734eb53 100644
--- a/docs/sphinx/itemToModuleMap.json
+++ b/docs/sphinx/itemToModuleMap.json
@@ -2514,6 +2514,7 @@
 "ProgressDialog":"wx.",
 "PropagateOnce":"wx.",
 "PropagationDisabler":"wx.",
+"PseudoDC":"wx.adv.",
 "PyApp":"wx.",
 "PyAxBaseWindow":"wx.msw.",
 "PyCommandEvent":"wx.",
diff --git a/etg/_adv.py b/etg/_adv.py
index 4ffc5b33..6104ab25 100644
--- a/etg/_adv.py
+++ b/etg/_adv.py
@@ -52,6 +52,7 @@ INCLUDES = [
              'richtooltip',
              'timectrl',
              'wizard',
+             'pseudodc',
              ]
 
 
diff --git a/etg/pseudodc.py b/etg/pseudodc.py
new file mode 100644
index 00000000..b81f5d30
--- /dev/null
+++ b/etg/pseudodc.py
@@ -0,0 +1,687 @@
+#---------------------------------------------------------------------------
+# Name:        etg/pseudodc.py
+# Author:      Robin Dunn
+#
+# Created:     26-Jul-2016
+# Copyright:   (c) 2016 by Total Control Software
+# License:     wxWindows License
+#---------------------------------------------------------------------------
+
+import etgtools
+import etgtools.tweaker_tools as tools
+from etgtools.extractors import ClassDef, MethodDef, ParamDef
+
+
+PACKAGE   = "wx"   
+MODULE    = "_adv"
+NAME      = "pseudodc"   # Base name of the file to generate to for this script
+DOCSTRING = ""
+
+# The classes and/or the basename of the Doxygen XML files to be processed by
+# this script. 
+ITEMS  = [ ]
+
+OTHERDEPS = [ 'src/pseudodc.h',
+              'src/pseudodc.cpp',
+              ]
+
+#---------------------------------------------------------------------------
+
+def run():
+    # Parse the XML file(s) building a collection of Extractor objects
+    module = etgtools.ModuleDef(PACKAGE, MODULE, NAME, DOCSTRING)
+    etgtools.parseDoxyXML(module, ITEMS)
+    
+    #-----------------------------------------------------------------
+    # Tweak the parsed meta objects in the module object as needed for
+    # customizing the generated code and docstrings.
+
+    # The PseudoDC class is not in wxWidgets, so there is no Doxygen XML for
+    # them. That means we'll have to construct the extractor objects here,
+    # from scratch.
+
+    module.addHeaderCode('#include "pseudodc.h"')
+    module.includeCppCode('src/pseudodc.cpp')
+
+
+
+    cls = ClassDef(name='wxPseudoDC', bases=['wxObject'],
+        briefDoc="""\
+            A PseudoDC is an object that can be used much like real
+            :class:`wx.DC`, however it provides some additional features for
+            object recording and manipulation beyond what a ``wx.DC`` can
+            provide.
+
+            All commands issued to the ``PseudoDC`` are stored in a list.  You
+            can then play these commands back to a real DC object as often as
+            needed, using the :meth:`DrawToDC` method or one of the similar
+            methods.  Commands in the command list can be tagged by an ID. You
+            can use this ID to clear the operations associated with a single
+            ID, redraw the objects associated with that ID, grey them, adjust
+            their position, etc.
+            """,
+        items=[
+            # ----------------------------------------------
+            # Constructor and Destructor
+
+            MethodDef(name='wxPseudoDC', isCtor=True, items=[],
+                briefDoc="""\
+                    Constructs a new Pseudo device context for recording and
+                    replaying DC operations."""),
+
+            MethodDef(name='~wxPseudoDC', isDtor=True),
+
+
+            # ----------------------------------------------
+            # PseudoDC-specific functionality
+
+            MethodDef(type='void', name='RemoveAll', items=[],
+                briefDoc="Removes all objects and operations from the recorded list."),
+
+            MethodDef(type='int', name='GetLen', items=[],
+                briefDoc="Returns the number of operations in the recorded list."),
+
+            MethodDef(type='void', name='SetId',
+                items=[ParamDef(type='int', name='id')],
+                briefDoc="Sets the id to be associated with subsequent operations."),
+
+            MethodDef(type='void', name='ClearId',
+                items=[ParamDef(type='int', name='id')],
+                briefDoc="Removes all operations associated with id so the object can be redrawn."),
+
+            MethodDef(type='void', name='RemoveId',
+                items=[ParamDef(type='int', name='id')],
+                briefDoc="Remove the object node (and all operations) associated with an id."),
+
+            MethodDef(type='void', name='TranslateId',
+                items=[ParamDef(type='int', name='id'),
+                       ParamDef(type='wxCoord', name='dx'),
+                       ParamDef(type='wxCoord', name='dy'),
+                       ],
+                briefDoc="Translate the position of the operations of tag `id` by (`dx`, `dy`)."),
+
+            MethodDef(type='void', name='SetIdGreyedOut',
+                items=[ParamDef(type='int', name='id'),
+                       ParamDef(type='bool', name='greyout'),
+                       ],
+                briefDoc="Set whether the set of objects with tag `id` are drawn greyed out or not."),
+
+            MethodDef(type='bool', name='GetIdGreyedOut',
+                items=[ParamDef(type='int', name='id')],
+                briefDoc="Get whether the set of objects with tag `id` are drawn greyed out or not."),
+
+
+            MethodDef(type='PyObject*', name='FindObjects',
+                items=[ ParamDef(type='wxCoord', name='x'),
+                        ParamDef(type='wxCoord', name='y'),
+                        ParamDef(type='wxCoord', name='radius', default='1'),
+                        ParamDef(type='const wxColour &', name='bg', default='*wxWHITE'),
+                        ],
+                briefDoc="""\
+                    Returns a list of all the id's that draw a pixel with
+                    color not equal to bg within radius of (x,y). Returns an
+                    empty list if nothing is found.  The list is in reverse
+                    drawing order so list[0] is the top id."""),
+
+
+            MethodDef(type='PyObject*', name='FindObjectsByBBox',
+                items=[ ParamDef(type='wxCoord', name='x'),
+                        ParamDef(type='wxCoord', name='y')],
+                briefDoc="""\
+                    Returns a list of all the id's whose bounding boxes include (x,y).
+                    Returns an empty list if nothing is found.  The list is in
+                    reverse drawing order so list[0] is the top id."""),
+
+
+            MethodDef(type='void', name='DrawIdToDC',
+                items=[ ParamDef(type='int', name='id'),
+                        ParamDef(type='wxDC *', name='dc')],
+                briefDoc="Draw recorded operations tagged with id to dc."),
+
+
+            MethodDef(type='void', name='SetIdBounds',
+                items=[ ParamDef(type='int', name='id'),
+                        ParamDef(type='wxRect &', name='rect')],
+                briefDoc="""\
+                    Set the bounding rect of a given object.
+                    This will create an object node if one doesn't exist."""),
+
+
+            MethodDef(type='wxRect', name='GetIdBounds',
+                items=[ParamDef(type='int', name='id')],
+                briefDoc="""\
+                    Returns the bounding rectangle previously set with `SetIdBounds`.
+                    If no bounds have been set, it returns wx.Rect(0,0,0,0)."""),
+
+
+            MethodDef(type='void', name='DrawToDCClipped',
+                items=[ ParamDef(type='wxDC *', name='dc'),
+                        ParamDef(type='const wxRect &', name='rect')],
+                briefDoc="""\
+                    Draws the recorded operations to dc,
+                    unless the operation is known to be outside of rect."""),
+
+            MethodDef(type='void', name='DrawToDCClippedRgn',
+                      items=[ParamDef(type='wxDC *', name='dc'),
+                             ParamDef(type='const wxRegion &', name='region')],
+                      briefDoc="""\
+                    Draws the recorded operations to dc,
+                    unless the operation is known to be outside the given region."""),
+
+            MethodDef(type='void', name='DrawToDC',
+                      items=[ParamDef(type='wxDC *', name='dc')],
+                      briefDoc="Draws the recorded operations to dc."),
+
+
+            #----------------------------------------------
+            # Methods which mirror the wxDC API
+
+
+            MethodDef(type='void', name='FloodFill',
+                items=[ ParamDef(type='wxCoord', name='x'),
+                        ParamDef(type='wxCoord', name='y'),
+                        ParamDef(type='const wxColour &', name='col'),
+                        ParamDef(type='wxFloodFillStyle', name='style', default='wxFLOOD_SURFACE')],
+                briefDoc="""\
+                    Flood fills the device context starting from the given point,
+                    using the current brush colour, and using a style:
+
+                        - ``wx.FLOOD_SURFACE``: the flooding occurs until a colour other than the given colour is encountered.
+
+                        - ``wx.FLOOD_BORDER``: the area to be flooded is bounded by the given colour.
+                    """,
+                overloads=[
+                    MethodDef(type='void', name='FloodFill',
+                        items=[ ParamDef(type='const wxPoint &', name='pt'),
+                                ParamDef(type='const wxColour &', name='col'),
+                                ParamDef(type='wxFloodFillStyle', name='style', default='wxFLOOD_SURFACE')]),
+                ]),
+
+
+            MethodDef(type='void', name='DrawLine',
+                items=[ ParamDef(type='wxCoord', name='x1'),
+                        ParamDef(type='wxCoord', name='y1'),
+                        ParamDef(type='wxCoord', name='x2'),
+                        ParamDef(type='wxCoord', name='y2')],
+                briefDoc="""\
+                    Draws a line from the first point to the second.
+                    The current pen is used for drawing the line. Note that
+                    the second point is *not* part of the line and is not
+                    drawn by this function (this is consistent with the
+                    behaviour of many other toolkits).
+                    """,
+                overloads=[
+                    MethodDef(type='void', name='DrawLine',
+                        items=[ ParamDef(type='const wxPoint &', name='pt1'),
+                                ParamDef(type='const wxPoint &', name='pt2')])
+                ]),
+
+            MethodDef(type='void', name='CrossHair',
+                items=[ ParamDef(type='wxCoord', name='x'),
+                        ParamDef(type='wxCoord', name='y')],
+                briefDoc="""\
+                    Displays a cross hair using the current pen. This is a
+                    vertical and horizontal line the height and width of the
+                    window, centred on the given point.""",
+                overloads=[
+                    MethodDef(type='void', name='CrossHair',
+                        items=[ ParamDef(type='const wxPoint &', name='pt') ])
+                ]),
+
+
+            MethodDef(type='void', name='DrawArc',
+                items=[ ParamDef(type='wxCoord', name='x1'),
+                        ParamDef(type='wxCoord', name='y1'),
+                        ParamDef(type='wxCoord', name='x2'),
+                        ParamDef(type='wxCoord', name='y2'),
+                        ParamDef(type='wxCoord', name='xc'),
+                        ParamDef(type='wxCoord', name='yc'),],
+                briefDoc="""\
+                    Draws an arc of a circle, centred on the *center* point
+                    (xc, yc), from the first point to the second. The current
+                    pen is used for the outline and the current brush for
+                    filling the shape.
+
+                    The arc is drawn in an anticlockwise direction from the
+                    start point to the end point.
+                    """,
+                overload=[
+                    MethodDef(type='void', name='DrawArc',
+                              items=[ParamDef(type='wxCoord', name='x1'),
+                                     ParamDef(type='wxCoord', name='xc'),
+                                     ParamDef(type='wxCoord', name='yc'), ]),
+                    ]),
+
+
+            MethodDef(type='void', name='DrawCheckMark',
+                items=[ ParamDef(type='wxCoord', name='x'),
+                        ParamDef(type='wxCoord', name='y'),
+                        ParamDef(type='wxCoord', name='width'),
+                        ParamDef(type='wxCoord', name='height')],
+                briefDoc="Draws a check mark inside the given rectangle",
+                overloads=[
+                    MethodDef(type='void', name='DrawCheckMark',
+                        items=[ ParamDef(type='const wxRect &', name='rect') ])
+                    ]),
+
+
+            MethodDef(type='void', name='DrawEllipticArc',
+                items=[ ParamDef(type='wxCoord', name='x'),
+                        ParamDef(type='wxCoord', name='y'),
+                        ParamDef(type='wxCoord', name='w'),
+                        ParamDef(type='wxCoord', name='h'),
+                        ParamDef(type='double', name='start'),
+                        ParamDef(type='double', name='end')],
+                briefDoc="""\
+                    Draws an arc of an ellipse, with the given rectangle
+                    defining the bounds of the ellipse. The current pen is
+                    used for drawing the arc and the current brush is used for
+                    drawing the pie.
+
+                    The *start* and *end* parameters specify the start and end
+                    of the arc relative to the three-o'clock position from the
+                    center of the rectangle. Angles are specified in degrees
+                    (360 is a complete circle). Positive values mean
+                    counter-clockwise motion. If start is equal to end, a
+                    complete ellipse will be drawn.""",
+                overloads=[
+                    MethodDef(type='void', name='DrawEllipticArc',
+                        items=[ ParamDef(type='const wxPoint &', name='pt'),
+                                ParamDef(type='const wxSize &', name='sz'),
+                                ParamDef(type='double', name='start'),
+                                ParamDef(type='double', name='end')])
+                    ]),
+
+
+            MethodDef(type='void', name='DrawPoint',
+                items=[ParamDef(type='wxCoord', name='x'),
+                       ParamDef(type='wxCoord', name='y')],
+                briefDoc="Draws a point using the current pen.",
+                overloads=[
+                    MethodDef(type='void', name='DrawPoint',
+                        items=[ParamDef(type='const wxPoint &', name='pt') ])
+                ]),
+
+
+            MethodDef(type='void', name='DrawRectangle',
+                items=[ ParamDef(type='wxCoord', name='x'),
+                        ParamDef(type='wxCoord', name='y'),
+                        ParamDef(type='wxCoord', name='width'),
+                        ParamDef(type='wxCoord', name='height') ],
+                briefDoc="""\
+                    Draws a rectangle with the given top left corner, and with
+                    the given size. The current pen is used for the outline
+                    and the current brush for filling the shape.
+                    """,
+                overloads=[
+                    MethodDef(type='void', name='DrawRectangle',
+                        items=[ ParamDef(type='const wxRect &', name='rect') ]),
+                    MethodDef(type='void', name='DrawRectangle',
+                        items=[ ParamDef(type='const wxPoint &', name='pt'),
+                                ParamDef(type='const wxSize &', name='sz') ])
+                ]),
+
+
+
+
+            MethodDef(type='void', name='DrawRoundedRectangle',
+                items=[ ParamDef(type='wxCoord', name='x'),
+                        ParamDef(type='wxCoord', name='y'),
+                        ParamDef(type='wxCoord', name='width'),
+                        ParamDef(type='wxCoord', name='height'),
+                        ParamDef(type='double', name='radius')],
+                briefDoc="""\
+                    Draws a rectangle with the given top left corner, and with
+                    the given size. The current pen is used for the outline
+                    and the current brush for filling the shape.
+                    """,
+                overloads=[
+                    MethodDef(type='void', name='DrawRoundedRectangle',
+                        items=[ ParamDef(type='const wxRect &', name='rect'),
+                                ParamDef(type='double', name='radius') ]),
+                    MethodDef(type='void', name='DrawRoundedRectangle',
+                        items=[ ParamDef(type='const wxPoint &', name='pt'),
+                                ParamDef(type='const wxSize &', name='sz'),
+                                ParamDef(type='double', name='radius') ])
+                ]),
+
+
+            MethodDef(type='void', name='DrawCircle',
+                items=[ ParamDef(type='wxCoord', name='x'),
+                        ParamDef(type='wxCoord', name='y'),
+                        ParamDef(type='wxCoord', name='radius'),],
+                briefDoc="""\
+                    Draws a circle with the given center point and radius.
+                    The current pen is used for the outline and the current
+                    brush for filling the shape.
+
+                    :see: `DrawEllipse`
+                    """,
+                overloads=[
+                    MethodDef(type='void', name='DrawCircle',
+                        items=[ ParamDef(type='const wxPoint &', name='pt'),
+                                ParamDef(type='wxCoord', name='radius') ]),
+                    ]),
+
+
+            MethodDef(type='void', name='DrawEllipse',
+                items=[ ParamDef(type='wxCoord', name='x'),
+                        ParamDef(type='wxCoord', name='y'),
+                        ParamDef(type='wxCoord', name='width'),
+                        ParamDef(type='wxCoord', name='height')],
+                briefDoc="""\
+                    Draws an ellipse contained in the specified rectangle. The current pen
+                    is used for the outline and the current brush for filling the shape.", "
+
+                    :see: `DrawCircle`
+                    """,
+                overloads=[
+                    MethodDef(type='void', name='DrawEllipse',
+                        items=[ ParamDef(type='const wxRect &', name='rect') ]),
+                    MethodDef(type='void', name='DrawEllipse',
+                        items=[ ParamDef(type='const wxPoint &', name='pt'),
+                                ParamDef(type='const wxSize &', name='sz') ])
+                ]),
+
+
+            MethodDef(type='void', name='DrawIcon',
+                items=[ ParamDef(type='const wxIcon &', name='icon'),
+                        ParamDef(type='wxCoord', name='x'),
+                        ParamDef(type='wxCoord', name='y')
+                        ],
+                briefDoc="Draw an icon on the display at the given position.",
+                overloads=[
+                    MethodDef(type='void', name='DrawIcon',
+                              items=[ ParamDef(type='const wxIcon &', name='icon'),
+                                      ParamDef(type='const wxPoint &', name='pt') ])
+                                     ]),
+
+
+            MethodDef(type='void', name='DrawBitmap',
+                items=[ ParamDef(type='const wxBitmap &', name='bmp'),
+                        ParamDef(type='wxCoord', name='x'),
+                        ParamDef(type='wxCoord', name='y'),
+                        ParamDef(type='bool', name='useMask', default='false') ],
+                briefDoc="""\
+                    Draw a bitmap on the device context at the specified
+                    point. If *useMask* is true and the bitmap has a
+                    transparency mask, (or alpha channel on the platforms that
+                    support it) then the bitmap will be drawn transparently.
+
+                    When drawing a mono-bitmap, the current text foreground
+                    colour will be used to draw the foreground of the bitmap
+                    (all bits set to 1), and the current text background
+                    colour to draw the background (all bits set to 0).
+
+                    :see: `SetTextForeground`, `SetTextBackground` and `wx.MemoryDC`
+                    """,
+                overloads=[
+                    MethodDef(type='void', name='DrawBitmap',
+                        items=[ ParamDef(type='const wxBitmap &', name='bmp'),
+                                ParamDef(type='const wxPoint &', name='pt'),
+                                ParamDef(type='bool', name='useMask', default='false') ])
+                    ]),
+
+
+            MethodDef(type='void', name='DrawText',
+                items=[ ParamDef(type='const wxString &', name='text'),
+                        ParamDef(type='wxCoord', name='x'),
+                        ParamDef(type='wxCoord', name='y') ],
+                briefDoc="""\
+                    Draws a text string at the specified point, using the
+                    current text font, and the current text foreground and
+                    background colours.
+
+                    The coordinates refer to the top-left corner of the
+                    rectangle bounding the string. See `wx.DC.GetTextExtent`
+                    for how to get the dimensions of a text string, which can
+                    be used to position the text more precisely, (you will
+                    need to use a real DC with GetTextExtent as wx.PseudoDC
+                    does not implement it.)
+
+                    **NOTE**: under wxGTK the current logical function is used
+                    *by this function but it is ignored by wxMSW. Thus, you
+                    *should avoid using logical functions with this function
+                    *in portable programs.", "
+
+                    :see: `DrawRotatedText`
+                    """,
+                overloads=[
+                    MethodDef(type='void', name='DrawText',
+                        items=[ ParamDef(type='const wxString &', name='text'),
+                                ParamDef(type='const wxPoint &', name='pt') ])
+                    ]),
+
+
+            MethodDef(type='void', name='DrawRotatedText',
+                items=[ ParamDef(type='const wxString &', name='text'),
+                        ParamDef(type='wxCoord', name='x'),
+                        ParamDef(type='wxCoord', name='y'),
+                        ParamDef(type='double', name='angle') ],
+                briefDoc="Draws the text rotated by *angle* degrees, if supported by the platform.",
+                overloads=[
+                    MethodDef(type='void', name='DrawRotatedText',
+                        items=[ ParamDef(type='const wxString &', name='text'),
+                                ParamDef(type='const wxPoint &', name='pt'),
+                                ParamDef(type='double', name='angle') ])
+                    ]),
+
+
+            MethodDef(type='void', name='DrawLabel',
+                items=[ ParamDef(type='const wxString &', name='text'),
+                        ParamDef(type='const wxRect &', name='rect'),
+                        ParamDef(type='int', name='alignment', default='wxALIGN_LEFT|wxALIGN_TOP'),
+                        ParamDef(type='int', name='indexAccel', default='-1'),
+                        ],
+                briefDoc="""\
+                    Draw *text* within the specified rectangle, abiding by the
+                    alignment flags.  Will additionally emphasize the
+                    character at *indexAccel* if it is not -1.
+                    """,
+                overloads=[
+                    MethodDef(type='void', name='DrawLabel',
+                    items=[ ParamDef(type='const wxString &', name='text'),
+                            ParamDef(type='const wxBitmap &', name='image'),
+                            ParamDef(type='const wxRect &', name='rect'),
+                            ParamDef(type='int', name='alignment', default='wxALIGN_LEFT|wxALIGN_TOP'),
+                            ParamDef(type='int', name='indexAccel', default='-1'),
+                            ],
+                briefDoc="""\
+                    Draw *text* and an image (which may be ``wx.NullBitmap`` to skip
+                    drawing it) within the specified rectangle, abiding by the alignment
+                    flags.  Will additionally emphasize the character at *indexAccel* if
+                    it is not -1.
+                    """)]
+                ),
+
+
+
+            MethodDef(type='void', name='Clear',
+                items=[],
+                briefDoc="Clears the device context using the current background brush.",
+                overloads=[]),
+
+
+            MethodDef(type='void', name='SetFont',
+                items=[ ParamDef(type='const wxFont &', name='font') ],
+                briefDoc="""\
+                    Sets the current font for the DC. It must be a valid font, in
+                    particular you should not pass ``wx.NullFont`` to this method.
+
+                    :see: `wx.Font`
+                    """,
+                overloads=[]),
+
+            MethodDef(type='void', name='SetPen',
+                items=[ParamDef(type='const wxPen &', name='pen')],
+                briefDoc="""\
+                    Sets the current pen for the DC.
+
+                    If the argument is ``wx.NullPen``, the current pen is selected out of the
+                    device context, and the original pen restored.
+
+                    :see: `wx.Pen`
+                    """,
+                overloads=[]),
+
+
+            MethodDef(type='void', name='SetBrush',
+                items=[ParamDef(type='const wxBrush &', name='brush')],
+                briefDoc="""\
+                    Sets the current brush for the DC.
+
+                    If the argument is ``wx.NullBrush``, the current brush is selected out
+                    of the device context, and the original brush restored, allowing the
+                    current brush to be destroyed safely.
+
+                    :see: `wx.Brush`
+                    """,
+                overloads=[]),
+
+
+            MethodDef(type='void', name='SetBackground',
+                items=[ ParamDef(type='const wxBrush &', name='brush') ],
+                briefDoc="Sets the current background brush for the DC.",
+                overloads=[]),
+
+
+            MethodDef(type='void', name='SetBackgroundMode',
+                items=[ ParamDef(type='int', name='mode') ],
+                briefDoc="""\
+                    The *mode* parameter may be one of ``wx.SOLID`` and
+                    ``wx.TRANSPARENT``. This setting determines whether text
+                    will be drawn with a background colour or not.
+                    """,
+                overloads=[]),
+
+
+            MethodDef(type='void', name='SetTextForeground',
+                items=[ ParamDef(type='const wxColour &', name='colour') ],
+                briefDoc="Sets the current text foreground colour for the DC.",
+                overloads=[]),
+
+
+            MethodDef(type='void', name='SetTextBackground',
+                items=[ ParamDef(type='const wxColour&', name='colour') ],
+                briefDoc="Sets the current text background colour for the DC.",
+                overloads=[]),
+
+
+            MethodDef(type='void', name='SetLogicalFunction',
+                items=[ ParamDef(type='wxRasterOperationMode', name='function') ],
+                briefDoc="""\
+                    Sets the current logical function for the device context. This
+                    determines how a source pixel (from a pen or brush colour, combines
+                    with a destination pixel in the current device context.
+
+                    The possible values and their meaning in terms of source and
+                    destination pixel values are defined in the :ref:`wx.RasterOperationMode`
+                    enumeration.
+
+                    The default is wx.COPY, which simply draws with the current
+                    colour. The others combine the current colour and the background using
+                    a logical operation. wx.INVERT is commonly used for drawing rubber
+                    bands or moving outlines, since drawing twice reverts to the original
+                    colour.
+                    """,
+                overloads=[]),
+
+
+            MethodDef(type='void', name='DrawLines',
+                items=[ ParamDef(type='const wxPointList *', name='points'),
+                        ParamDef(type='wxCoord', name='xoffset', default='0'),
+                        ParamDef(type='wxCoord', name='yoffset', default='0')],
+                briefDoc="""\
+                    Draws lines using a sequence of `wx.Point` objects, adding the
+                    optional offset coordinate. The current pen is used for drawing the
+                    lines.
+                    """,
+                overloads=[]),
+
+
+            MethodDef(type='void', name='DrawPolygon',
+                items=[ ParamDef(type='const wxPointList *', name='points'),
+                        ParamDef(type='wxCoord', name='xoffset', default='0'),
+                        ParamDef(type='wxCoord', name='yoffset', default='0'),
+                        ParamDef(type='wxPolygonFillMode', name='fillStyle', default='wxODDEVEN_RULE'),
+                        ],
+                briefDoc="""\
+                    Draws a filled polygon using a sequence of `wx.Point` objects, adding
+                    the optional offset coordinate.  The last argument specifies the fill
+                    rule: ``wx.ODDEVEN_RULE`` (the default) or ``wx.WINDING_RULE``.
+
+                    The current pen is used for drawing the outline, and the current brush
+                    for filling the shape. Using a transparent brush suppresses
+                    filling. Note that wxWidgets automatically closes the first and last
+                    points.
+                    """,
+                overloads=[]),
+
+
+            MethodDef(type='void', name='DrawSpline',
+                items=[ ParamDef(type='const wxPointList *', name='points') ],
+                briefDoc="""\
+                    Draws a spline between all given control points, (a list of `wx.Point`
+                    objects) using the current pen. The spline is drawn using a series of
+                    lines, using an algorithm taken from the X drawing program 'XFIG'.
+                    """,
+                overloads=[]),
+
+        ])
+
+    # add deprecation warnings for the old method names
+    cls.addPyCode("""\
+        PseudoDC.BeginDrawing = wx.deprecated(lambda *args: None, 'BeginDrawing has been removed.')
+        PseudoDC.EndDrawing = wx.deprecated(lambda *args: None, 'EndDrawing has been removed.')
+        PseudoDC.FloodFillPoint = wx.deprecated(PseudoDC.FloodFill, 'Use FloodFill instead.')
+        PseudoDC.DrawLinePoint = wx.deprecated(PseudoDC.DrawLine, 'Use DrawLine instead.')
+        PseudoDC.CrossHairPoint = wx.deprecated(PseudoDC.CrossHair, 'Use CrossHair instead.')
+        PseudoDC.DrawArcPoint = wx.deprecated(PseudoDC.DrawArc, 'Use DrawArc instead.')
+        PseudoDC.DrawCheckMarkRect = wx.deprecated(PseudoDC.DrawCheckMark, 'Use DrawArc instead.')
+        PseudoDC.DrawEllipticArcPointSize = wx.deprecated(PseudoDC.DrawEllipticArc, 'Use DrawEllipticArc instead.')
+        PseudoDC.DrawPointPoint = wx.deprecated(PseudoDC.DrawPoint, 'Use DrawPoint instead.')
+        PseudoDC.DrawRectangleRect = wx.deprecated(PseudoDC.DrawRectangle, 'Use DrawRectangle instead.')
+        PseudoDC.DrawRectanglePointSize = wx.deprecated(PseudoDC.DrawRectangle, 'Use DrawRectangle instead.')
+        PseudoDC.DrawRoundedRectangleRect = wx.deprecated(PseudoDC.DrawRoundedRectangle, 'Use DrawRectangle instead.')
+        PseudoDC.DrawRoundedRectanglePointSize = wx.deprecated(PseudoDC.DrawRoundedRectangle, 'Use DrawRectangle instead.')
+        PseudoDC.DrawCirclePoint = wx.deprecated(PseudoDC.DrawCircle, 'Use DrawCircle instead.')
+        PseudoDC.DrawEllipseRect = wx.deprecated(PseudoDC.DrawEllipse, 'Use DrawEllipse instead.')
+        PseudoDC.DrawEllipsePointSize = wx.deprecated(PseudoDC.DrawEllipse, 'Use DrawEllipse instead.')
+        PseudoDC.DrawIconPoint = wx.deprecated(PseudoDC.DrawIcon, 'Use DrawIcon instead.')
+        PseudoDC.DrawBitmapPoint = wx.deprecated(PseudoDC.DrawBitmap, 'Use DrawBitmap instead.')
+        PseudoDC.DrawTextPoint = wx.deprecated(PseudoDC.DrawText, 'Use DrawText instead.')
+        PseudoDC.DrawRotatedTextPoint = wx.deprecated(PseudoDC.DrawRotatedText, 'Use DrawRotatedText instead.')
+        PseudoDC.DrawImageLabel = wx.deprecated(PseudoDC.DrawLabel, 'Use DrawLabel instead.')
+        """)
+
+
+
+    # Other stuff not wrapped yet
+    # // Figure out a good typemap for this...
+    # //        Convert the first 3 args from a sequence of sequences?
+    # //     void DrawPolyPolygon(int n, int count[], wxPoint points[],
+    # //                           wxCoord xoffset = 0, wxCoord yoffset = 0,
+    # //                           int fillStyle = wxODDEVEN_RULE);
+    #
+    #
+    # DocDeclStr(
+    #     virtual void , SetPalette(const wxPalette& palette),
+    #     "If this is a window DC or memory DC, assigns the given palette to the
+    #     window or bitmap associated with the DC. If the argument is
+    #     ``wx.NullPalette``, the current palette is selected out of the device
+    #     context, and the original palette restored.", "
+    #
+    #     :see: `wx.Palette`");
+
+
+    module.addItem(cls)
+
+    #-----------------------------------------------------------------
+    tools.doCommonTweaks(module)
+    tools.runGenerators(module)
+    
+    
+#---------------------------------------------------------------------------
+if __name__ == '__main__':
+    run()
+
diff --git a/sphinxtools/utilities.py b/sphinxtools/utilities.py
index 0493d382..18a40164 100644
--- a/sphinxtools/utilities.py
+++ b/sphinxtools/utilities.py
@@ -180,6 +180,8 @@ def replaceCppItems(line):
 
         if 'wxString' in item:
             item = 'string'
+        elif 'wxCoord' == item:
+            item = 'int'
         elif item == 'char':
             item = 'int'
         elif item == 'double':
diff --git a/src/core_ex.py b/src/core_ex.py
index 3f58e593..5ade3b4e 100644
--- a/src/core_ex.py
+++ b/src/core_ex.py
@@ -64,7 +64,7 @@ def deprecated(item, msg='', useName=False):
     elif callable(item):
         # wrap a new function around the callable
         def deprecated_func(*args, **kw):
-            warnings.warn("Call to deprecated item %s. %s" % (name, msg),
+            warnings.warn("Call to deprecated item%s. %s" % (name, msg),
                           wxPyDeprecationWarning, stacklevel=2)
             if not kw:
                 return item(*args)
diff --git a/src/pseudodc.cpp b/src/pseudodc.cpp
new file mode 100644
index 00000000..0a3d127a
--- /dev/null
+++ b/src/pseudodc.cpp
@@ -0,0 +1,661 @@
+/////////////////////////////////////////////////////////////////////////////
+// Name:        src/pseudodc.cpp
+// Purpose:     Implementation of the wxPseudoDC classes
+// Author:      Paul Lanier
+// Modified by: Robin Dunn
+//
+// Created:     05/25/06
+// Copyright:   (c) 2006-2016 Total Control Software
+// Licence:     wxWindows licence
+/////////////////////////////////////////////////////////////////////////////
+
+// For compilers that support precompilation, includes "wx.h".
+//include "wx/wxprec.h"
+
+//#undef DEBUG
+
+// wxList based class definitions
+#include 
+WX_DEFINE_LIST(pdcOpList);
+WX_DEFINE_LIST(pdcObjectList);
+
+//----------------------------------------------------------------------------
+// Helper functions used for drawing greyed out versions of objects
+//----------------------------------------------------------------------------
+wxColour &MakeColourGrey(const wxColour &c)
+{
+    static wxColour rval;
+    rval.Set(byte((230-c.Red())*0.7+c.Red()),
+             byte((230-c.Green())*0.7+c.Green()),
+             byte((230-c.Blue())*0.7+c.Blue()));
+    return rval;
+}
+wxBrush &GetGreyBrush(wxBrush &brush)
+{
+    static wxBrush b;
+    wxColour c;
+    b = brush;
+    c = MakeColourGrey(brush.GetColour());
+    b.SetColour(c);
+    return b;
+}
+
+wxPen &GetGreyPen(wxPen &pen)
+{
+    static wxPen p;
+    wxColour c;
+    p = pen;
+    c = MakeColourGrey(pen.GetColour());
+    p.SetColour(c);
+    return p;
+}
+
+void GreyOutImage(wxImage &img)
+{
+    unsigned char *data = img.GetData();
+    unsigned char r,g,b;
+    unsigned char mr,mg,mb;
+    int i, tst;
+    int len = img.GetHeight()*img.GetWidth()*3;
+    if (img.HasMask())
+    {
+        mr = img.GetMaskRed();
+        mg = img.GetMaskGreen();
+        mb = img.GetMaskBlue();
+    }
+    tst=0;
+    for (i=0;ibegin(); iter != points->end(); iter++)
+    {
+        // The first * gives us a wxPoint ptr, second * dereferences that ptr
+        m_points->push_back(new wxPoint(**iter));
+    }
+}
+
+
+pdcDrawLinesOp::~pdcDrawLinesOp()
+{
+    m_points->clear();
+    delete m_points;
+    m_points = NULL;
+}
+
+
+void pdcDrawLinesOp::Translate(wxCoord dx, wxCoord dy)
+{
+    wxPointList::const_iterator iter;
+    for (iter = m_points->begin(); iter != m_points->end(); iter++)
+    {
+        (*iter)->x += dx;
+        (*iter)->y += dy;
+    }
+}
+
+// ----------------------------------------------------------------------------
+// pdcDrawPolygonOp
+// ----------------------------------------------------------------------------
+pdcDrawPolygonOp::pdcDrawPolygonOp(const wxPointList* points,
+                                   wxCoord xoffset,
+                                   wxCoord yoffset,
+                                   wxPolygonFillMode fillStyle)
+{
+    m_xoffset = xoffset;
+    m_yoffset = yoffset;
+    m_fillStyle = fillStyle;
+
+    m_points = new wxPointList;
+    wxPointList::const_iterator iter;
+    for (iter = points->begin(); iter != points->end(); ++iter)
+    {
+        // The first * gives us a wxPoint ptr, second * dereferences that ptr
+        m_points->push_back(new wxPoint(**iter));
+    }
+}
+
+
+pdcDrawPolygonOp::~pdcDrawPolygonOp()
+{
+    m_points->clear();
+    delete m_points;
+}
+
+
+void pdcDrawPolygonOp::Translate(wxCoord dx, wxCoord dy)
+{
+    wxPointList::const_iterator iter;
+    for (iter = m_points->begin(); iter != m_points->end(); iter++)
+    {
+        (*iter)->x += dx;
+        (*iter)->y += dy;
+    }
+}
+
+#if wxUSE_SPLINES
+// ----------------------------------------------------------------------------
+// pdcDrawSplineOp
+// ----------------------------------------------------------------------------
+pdcDrawSplineOp::pdcDrawSplineOp(const wxPointList* points)
+{
+    m_points = new wxPointList;
+    wxPointList::const_iterator iter;
+    for (iter = points->begin(); iter != points->end(); iter++)
+    {
+        // The first * gives us a wxPoint ptr, second * dereferences that ptr
+        m_points->push_back(new wxPoint(**iter));
+    }
+}
+
+
+pdcDrawSplineOp::~pdcDrawSplineOp()
+{
+    m_points->clear();
+    delete m_points;
+}
+
+
+void pdcDrawSplineOp::Translate(wxCoord dx, wxCoord dy)
+{
+    wxPointList::const_iterator iter;
+    for (iter = m_points->begin(); iter != m_points->end(); iter++)
+    {
+        (*iter)->x += dx;
+        (*iter)->y += dy;
+    }
+}
+
+#endif // wxUSE_SPLINES
+
+// ============================================================================
+// pdcObject implementation
+// ============================================================================
+
+// ----------------------------------------------------------------------------
+// DrawToDC - play back the op list to the DC 
+// ----------------------------------------------------------------------------
+void pdcObject::DrawToDC(wxDC *dc)
+{
+    pdcOpList::compatibility_iterator node = m_oplist.GetFirst(); 
+    while(node)
+    {
+        node->GetData()->DrawToDC(dc, m_greyedout);
+        node = node->GetNext();
+    }
+}
+
+// ----------------------------------------------------------------------------
+// Translate - translate all the operations by some dx,dy
+// ----------------------------------------------------------------------------
+void pdcObject::Translate(wxCoord dx, wxCoord dy)
+{
+    pdcOpList::compatibility_iterator node = m_oplist.GetFirst(); 
+    while(node)
+    {
+        node->GetData()->Translate(dx,dy);
+        node = node->GetNext();
+    }
+    if (m_bounded) 
+    {
+        m_bounds.x += dx;
+        m_bounds.y += dy;
+    }
+}
+
+// ----------------------------------------------------------------------------
+// SetGreyedOut - set the greyout member and cache grey versions of everything
+// if greyout is true
+// ----------------------------------------------------------------------------
+void pdcObject::SetGreyedOut(bool greyout) 
+{
+    m_greyedout=greyout;
+    if (greyout)
+    {
+        pdcOpList::compatibility_iterator node = m_oplist.GetFirst(); 
+        pdcOp *obj;
+        while(node)
+        {
+            obj = node->GetData();
+            obj->CacheGrey();
+            node = node->GetNext();
+        }
+    }
+}
+
+// ============================================================================
+// wxPseudoDC implementation
+// ============================================================================
+
+// ----------------------------------------------------------------------------
+// Destructor
+// ----------------------------------------------------------------------------
+wxPseudoDC::~wxPseudoDC()
+{
+    // delete all the nodes in the list
+    RemoveAll();
+    
+}
+
+// ----------------------------------------------------------------------------
+// ClearAll - remove all nodes from list
+// ----------------------------------------------------------------------------
+void wxPseudoDC::RemoveAll(void)
+{
+    m_objectlist.Clear();
+    m_objectIndex.clear();
+    m_currId = -1;
+    m_lastObject = NULL;
+    
+}
+
+// ----------------------------------------------------------------------------
+// GetLen - return the number of operations in the current op list
+// ----------------------------------------------------------------------------
+int wxPseudoDC::GetLen(void)
+{
+    pdcObjectList::compatibility_iterator pt = m_objectlist.GetFirst();
+    int len=0;
+    while (pt) 
+    {
+        len += pt->GetData()->GetLen();
+        pt = pt->GetNext();
+    }
+    return len;
+}
+
+// ----------------------------------------------------------------------------
+// FindObject - find and return an object node by id.  If node doesn't exist
+//               and create is true then create one and return it.  Otherwise
+//               return NULL.
+// ----------------------------------------------------------------------------
+pdcObject *wxPseudoDC::FindObject(int id, bool create)
+{
+    // see if last operation was for same id
+    //~ if (m_lastObject && m_lastObject->GetId() == id)
+        //~ return m_lastObject;
+    // if not then search for it    
+    pdcObjectHash::iterator lookup = m_objectIndex.find(id);
+    if (lookup == m_objectIndex.end()) {//not found
+        if (create) {
+            m_lastObject = new pdcObject(id);
+            m_objectlist.Append(m_lastObject);
+            pdcObjectHash::value_type insert(id, m_lastObject);
+            m_objectIndex.insert(insert);
+            return m_lastObject;
+        } else {
+            return NULL;
+        }
+    } else { //found
+        return lookup->second;
+    }
+}
+
+// ----------------------------------------------------------------------------
+// AddToList - Add a node to the list at the end (preserve draw order)
+// ----------------------------------------------------------------------------
+void wxPseudoDC::AddToList(pdcOp *newOp)
+{
+    pdcObject *obj = FindObject(m_currId, true);
+    obj->AddOp(newOp);
+}
+
+// ----------------------------------------------------------------------------
+// ClearID - remove all the operations associated with a single ID
+// ----------------------------------------------------------------------------
+void wxPseudoDC::ClearId(int id)
+{
+    pdcObject *obj = FindObject(id);
+    if (obj) obj->Clear();
+}
+
+// ----------------------------------------------------------------------------
+// RemoveID - Remove the object node (and all operations) associated with an id
+// ----------------------------------------------------------------------------
+void wxPseudoDC::RemoveId(int id)
+{
+    pdcObject *obj = FindObject(id);
+    if (obj) 
+    {
+        if (m_lastObject == obj)
+            m_lastObject = obj;
+        m_objectlist.DeleteObject(obj);
+    }
+    m_objectIndex.erase(id);
+}
+
+// ----------------------------------------------------------------------------
+// SetIdBounds - Set the bounding rect for a given id
+// ----------------------------------------------------------------------------
+void wxPseudoDC::SetIdBounds(int id, wxRect& rect)
+{
+    pdcObject *obj = FindObject(id, true);
+    obj->SetBounds(rect);
+}
+
+// ----------------------------------------------------------------------------
+// GetIdBounds - Get the bounding rect for a given id
+// ----------------------------------------------------------------------------
+wxRect wxPseudoDC::GetIdBounds(int id)
+{
+    wxRect rect;
+
+    pdcObject *obj = FindObject(id);
+    if (obj && obj->IsBounded())
+        rect = obj->GetBounds();
+    else
+        rect.x = rect.y = rect.width = rect.height = 0;
+    return rect;
+}
+
+// ----------------------------------------------------------------------------
+// TranslateId - Translate all the operations of a single id
+// ----------------------------------------------------------------------------
+void wxPseudoDC::TranslateId(int id, wxCoord dx, wxCoord dy)
+{
+    pdcObject *obj = FindObject(id);
+    if (obj) obj->Translate(dx,dy);
+}
+
+// ----------------------------------------------------------------------------
+// DrawIdToDC - Draw a specific id to the dc passed in
+// ----------------------------------------------------------------------------
+void wxPseudoDC::DrawIdToDC(int id, wxDC *dc)
+{
+    pdcObject *obj = FindObject(id);
+    if (obj) obj->DrawToDC(dc);
+}
+
+// ----------------------------------------------------------------------------
+// SetIdGreyedOut - Set the greyedout member of id
+// ----------------------------------------------------------------------------
+void wxPseudoDC::SetIdGreyedOut(int id, bool greyout)
+{
+    pdcObject *obj = FindObject(id);
+    if (obj) obj->SetGreyedOut(greyout);
+}
+
+// ----------------------------------------------------------------------------
+// GetIdGreyedOut - Get the greyedout member of id
+// ----------------------------------------------------------------------------
+bool wxPseudoDC::GetIdGreyedOut(int id)
+{
+    pdcObject *obj = FindObject(id);
+    if (obj) return obj->GetGreyedOut();
+    else return false;
+}
+
+// ----------------------------------------------------------------------------
+// FindObjectsByBBox - Return a list of all the ids whose bounding boxes
+//                     contain (x,y)
+// ----------------------------------------------------------------------------
+PyObject *wxPseudoDC::FindObjectsByBBox(wxCoord x, wxCoord y)
+{
+    //wxPyBlock_t blocked = wxPyBeginBlockThreads();
+    pdcObjectList::compatibility_iterator pt = m_objectlist.GetFirst();
+    pdcObject *obj;
+    PyObject* pyList = NULL;
+    pyList = PyList_New(0);
+    wxRect r;
+    while (pt) 
+    {
+        obj = pt->GetData();
+        r = obj->GetBounds();
+        if (obj->IsBounded() && r.Contains(x,y))
+        {
+            PyObject* pyObj = wxPyInt_FromLong((long)obj->GetId());
+            PyList_Insert(pyList, 0, pyObj);
+            Py_DECREF(pyObj);
+        }
+        pt = pt->GetNext();
+    }
+    //wxPyEndBlockThreads(blocked);
+    return pyList;
+}
+
+// ----------------------------------------------------------------------------
+// FindObjects - Return a list of all the ids that draw to (x,y)
+// ----------------------------------------------------------------------------
+PyObject *wxPseudoDC::FindObjects(wxCoord x, wxCoord y, 
+                                  wxCoord radius, const wxColor& bg)
+{
+    //wxPyBlock_t blocked = wxPyBeginBlockThreads();
+    pdcObjectList::compatibility_iterator pt = m_objectlist.GetFirst();
+    pdcObject *obj;
+    PyObject* pyList = NULL;
+    pyList = PyList_New(0);
+    wxBrush bgbrush(bg);
+    wxPen bgpen(bg);
+    // special case radius = 0
+    if (radius == 0)
+    {
+        wxBitmap bmp(4,4,24);
+        wxMemoryDC memdc;
+        wxColor pix;
+        wxRect viewrect(x-2,y-2,4,4);
+        // setup the memdc for rendering
+        memdc.SelectObject(bmp);
+        memdc.SetBackground(bgbrush);
+        memdc.Clear();
+        memdc.SetDeviceOrigin(2-x,2-y);
+        while (pt) 
+        {
+            obj = pt->GetData();
+            if (obj->IsBounded() && obj->GetBounds().Contains(x,y))
+            {
+                // start clean
+                memdc.SetBrush(bgbrush);
+                memdc.SetPen(bgpen);
+                memdc.DrawRectangle(viewrect);
+                // draw the object
+                obj->DrawToDC(&memdc);
+                memdc.GetPixel(x,y,&pix);
+                // clear and update rgn2
+                if (pix != bg)
+                {
+                    PyObject* pyObj = wxPyInt_FromLong((long)obj->GetId());
+                    PyList_Insert(pyList, 0, pyObj);
+                    Py_DECREF(pyObj);
+                }
+            }
+            pt = pt->GetNext();
+        }
+        memdc.SelectObject(wxNullBitmap);
+    }
+    else
+    {
+        wxRect viewrect(x-radius,y-radius,2*radius,2*radius);
+        wxBitmap maskbmp(2*radius,2*radius,24);
+        wxMemoryDC maskdc;
+        // create bitmap with circle for masking
+        maskdc.SelectObject(maskbmp);
+        maskdc.SetBackground(*wxBLACK_BRUSH);
+        maskdc.Clear();
+        maskdc.SetBrush(*wxWHITE_BRUSH);
+        maskdc.SetPen(*wxWHITE_PEN);
+        maskdc.DrawCircle(radius,radius,radius);
+        // now setup a memdc for rendering our object
+        wxBitmap bmp(2*radius,2*radius,24);
+        wxMemoryDC memdc;
+        memdc.SelectObject(bmp);
+        // set the origin so (x,y) is in the bmp center
+        memdc.SetDeviceOrigin(radius-x,radius-y);
+        // a region will be used to see if the result is empty
+        wxRegion rgn2;
+        while (pt) 
+        {
+            obj = pt->GetData();
+            if (obj->IsBounded() && viewrect.Intersects(obj->GetBounds()))
+            {
+                // start clean
+                //memdc.Clear();
+                memdc.SetBrush(bgbrush);
+                memdc.SetPen(bgpen);
+                memdc.DrawRectangle(viewrect);
+                // draw the object
+                obj->DrawToDC(&memdc);
+                // remove background color
+                memdc.SetLogicalFunction(wxXOR);
+                memdc.SetBrush(bgbrush);
+                memdc.SetPen(bgpen);
+                memdc.DrawRectangle(viewrect);
+                memdc.SetLogicalFunction(wxCOPY);
+                memdc.Blit(x-radius,y-radius,2*radius,2*radius,&maskdc,0,0,wxCOPY);
+                // clear and update rgn2
+                memdc.SelectObject(wxNullBitmap);
+                rgn2.Clear();
+                rgn2.Union(bmp, *wxBLACK);
+                //rgn2.Intersect(rgn);
+                memdc.SelectObject(bmp);
+                if (!rgn2.IsEmpty())
+                {
+                    PyObject* pyObj = wxPyInt_FromLong((long)obj->GetId());
+                    PyList_Insert(pyList, 0, pyObj);
+                    Py_DECREF(pyObj);
+                }
+            }
+            pt = pt->GetNext();
+        }
+        maskdc.SelectObject(wxNullBitmap);
+        memdc.SelectObject(wxNullBitmap);
+    }
+    //wxPyEndBlockThreads(blocked);
+    return pyList;
+}
+
+// ----------------------------------------------------------------------------
+// DrawToDCClipped - play back the op list to the DC but clip any objects
+//                   known to be not in rect.  This is a coarse level of 
+//                   clipping to speed things up when lots of objects are off 
+//                   screen and doesn't affect the dc level clipping
+// ----------------------------------------------------------------------------
+void wxPseudoDC::DrawToDCClipped(wxDC *dc, const wxRect& rect)
+{
+    pdcObjectList::compatibility_iterator pt = m_objectlist.GetFirst();
+    pdcObject *obj;
+    while (pt) 
+    {
+        obj = pt->GetData();
+        if (!obj->IsBounded() || rect.Intersects(obj->GetBounds()))
+            obj->DrawToDC(dc);
+        pt = pt->GetNext();
+    }
+}
+void wxPseudoDC::DrawToDCClippedRgn(wxDC *dc, const wxRegion& region)
+{
+    pdcObjectList::compatibility_iterator pt = m_objectlist.GetFirst();
+    pdcObject *obj;
+    while (pt) 
+    {
+        obj = pt->GetData();
+        if (!obj->IsBounded() || 
+            (region.Contains(obj->GetBounds()) != wxOutRegion))
+            obj->DrawToDC(dc);
+        pt = pt->GetNext();
+    }
+}
+
+// ----------------------------------------------------------------------------
+// DrawToDC - play back the op list to the DC 
+// ----------------------------------------------------------------------------
+void wxPseudoDC::DrawToDC(wxDC *dc)
+{
+    pdcObjectList::compatibility_iterator pt = m_objectlist.GetFirst();
+    while (pt) 
+    {
+        pt->GetData()->DrawToDC(dc);
+        pt = pt->GetNext();
+    }
+}
+        
diff --git a/src/pseudodc.h b/src/pseudodc.h
new file mode 100644
index 00000000..0be2a5b0
--- /dev/null
+++ b/src/pseudodc.h
@@ -0,0 +1,817 @@
+/////////////////////////////////////////////////////////////////////////////
+// Name:        pseudodc.h
+// Purpose:     wxPseudoDC classes
+// Author:      Paul Lanier
+// Modified by: Robin Dunn
+//
+// Created:     05/25/06
+// Copyright:   (c) 2006-2016 Total Control Software
+// Licence:     wxWindows licence
+/////////////////////////////////////////////////////////////////////////////
+
+#ifndef _WX_PSUEDO_DC_H_BASE_
+#define _WX_PSUEDO_DC_H_BASE_
+
+//----------------------------------------------------------------------------
+// Base class for all pdcOp classes
+//----------------------------------------------------------------------------
+class pdcOp
+{
+    public:
+        // Constructor and Destructor
+        pdcOp() {}
+        virtual ~pdcOp() {}
+
+        // Virtual Drawing Methods
+        virtual void DrawToDC(wxDC *dc, bool grey=false)=0;
+        virtual void Translate(wxCoord WXUNUSED(dx), wxCoord WXUNUSED(dy)) {}
+        virtual void CacheGrey() {}
+};
+
+//----------------------------------------------------------------------------
+// declare a list class for list of pdcOps
+//----------------------------------------------------------------------------
+WX_DECLARE_LIST(pdcOp, pdcOpList);
+
+
+//----------------------------------------------------------------------------
+// Helper functions used for drawing greyed out versions of objects
+//----------------------------------------------------------------------------
+wxColour &MakeColourGrey(const wxColour &c);
+wxBrush &GetGreyBrush(wxBrush &brush);
+wxPen &GetGreyPen(wxPen &pen);
+wxIcon &GetGreyIcon(wxIcon &icon);
+wxBitmap &GetGreyBitmap(wxBitmap &bmp);
+
+//----------------------------------------------------------------------------
+// Classes derived from pdcOp
+// There is one class for each method mirrored from wxDC to wxPseudoDC
+//----------------------------------------------------------------------------
+class pdcSetFontOp : public pdcOp
+{
+    public:
+        pdcSetFontOp(const wxFont& font) 
+            {m_font=font;}
+        virtual void DrawToDC(wxDC *dc, bool WXUNUSED(grey)=false) {dc->SetFont(m_font);}
+    protected:
+        wxFont m_font;
+};
+
+class pdcSetBrushOp : public pdcOp
+{
+    public:
+        pdcSetBrushOp(const wxBrush& brush) 
+            {m_greybrush=m_brush=brush;} 
+        virtual void DrawToDC(wxDC *dc, bool grey=false) 
+        {
+            if (!grey) dc->SetBrush(m_brush);
+            else dc->SetBrush(m_greybrush);
+        }
+        virtual void CacheGrey() {m_greybrush=GetGreyBrush(m_brush);}
+    protected:
+        wxBrush m_brush;
+        wxBrush m_greybrush;
+};
+
+class pdcSetBackgroundOp : public pdcOp
+{
+    public:
+        pdcSetBackgroundOp(const wxBrush& brush) 
+            {m_greybrush=m_brush=brush;} 
+        virtual void DrawToDC(wxDC *dc, bool grey=false)
+        {
+            if (!grey) dc->SetBackground(m_brush);
+            else dc->SetBackground(m_greybrush);
+        }
+        virtual void CacheGrey() {m_greybrush=GetGreyBrush(m_brush);}
+    protected:
+        wxBrush m_brush;
+        wxBrush m_greybrush;
+};
+
+class pdcSetPenOp : public pdcOp
+{
+    public:
+        pdcSetPenOp(const wxPen& pen) 
+            {m_greypen=m_pen=pen;}
+        virtual void DrawToDC(wxDC *dc, bool grey=false)
+        {
+            if (!grey) dc->SetPen(m_pen);
+            else dc->SetPen(m_greypen);
+        }
+        virtual void CacheGrey() {m_greypen=GetGreyPen(m_pen);}
+    protected:
+        wxPen m_pen;
+        wxPen m_greypen;
+};
+
+class pdcSetTextBackgroundOp : public pdcOp
+{
+    public:
+        pdcSetTextBackgroundOp(const wxColour& colour) 
+            {m_colour=colour;}
+        virtual void DrawToDC(wxDC *dc, bool grey=false) 
+        {
+            if (!grey) dc->SetTextBackground(m_colour);
+            else dc->SetTextBackground(MakeColourGrey(m_colour));
+        }
+    protected:
+        wxColour m_colour;
+};
+
+class pdcSetTextForegroundOp : public pdcOp
+{
+    public:
+        pdcSetTextForegroundOp(const wxColour& colour) 
+            {m_colour=colour;}
+        virtual void DrawToDC(wxDC *dc, bool grey=false)
+        {
+            if (!grey) dc->SetTextForeground(m_colour);
+            else dc->SetTextForeground(MakeColourGrey(m_colour));
+        }
+    protected:
+        wxColour m_colour;
+};
+
+class pdcDrawRectangleOp : public pdcOp
+{
+    public:
+        pdcDrawRectangleOp(wxCoord x, wxCoord y, wxCoord w, wxCoord h)
+            {m_x=x; m_y=y; m_w=w; m_h=h;}
+        virtual void DrawToDC(wxDC *dc, bool WXUNUSED(grey)=false) {dc->DrawRectangle(m_x,m_y,m_w,m_h);}
+        virtual void Translate(wxCoord dx, wxCoord dy) 
+            {m_x+=dx;m_y+=dy;}
+    protected:
+        wxCoord m_x,m_y,m_w,m_h;
+};
+
+class pdcDrawLineOp : public pdcOp
+{
+    public:
+        pdcDrawLineOp(wxCoord x1, wxCoord y1, wxCoord x2, wxCoord y2)
+            {m_x1=x1; m_y1=y1; m_x2=x2; m_y2=y2;}
+        virtual void DrawToDC(wxDC *dc, bool WXUNUSED(grey)=false) {dc->DrawLine(m_x1,m_y1,m_x2,m_y2);}
+        virtual void Translate(wxCoord dx, wxCoord dy) 
+            {m_x1+=dx; m_y1+=dy; m_x2+=dx; m_y2+=dy;}
+    protected:
+        wxCoord m_x1,m_y1,m_x2,m_y2;
+};
+
+class pdcSetBackgroundModeOp : public pdcOp
+{
+    public:
+        pdcSetBackgroundModeOp(int mode) {m_mode=mode;}
+        virtual void DrawToDC(wxDC *dc, bool WXUNUSED(grey)=false) {dc->SetBackgroundMode(m_mode);}
+    protected:
+        int m_mode;
+};
+
+class pdcDrawTextOp : public pdcOp
+{
+    public:
+        pdcDrawTextOp(const wxString& text, wxCoord x, wxCoord y)
+            {m_text=text; m_x=x; m_y=y;}
+        virtual void DrawToDC(wxDC *dc, bool WXUNUSED(grey)=false) {dc->DrawText(m_text, m_x, m_y);}
+        virtual void Translate(wxCoord dx, wxCoord dy) 
+            {m_x+=dx; m_y+=dy;}
+    protected:
+        wxString m_text;
+        wxCoord m_x, m_y;
+};
+
+class pdcClearOp : public pdcOp
+{
+    public:
+        pdcClearOp() {}
+        virtual void DrawToDC(wxDC *dc, bool WXUNUSED(grey)=false) {dc->Clear();}
+};
+
+class pdcBeginDrawingOp : public pdcOp
+{
+    public:
+        pdcBeginDrawingOp() {}
+        virtual void DrawToDC(wxDC *WXUNUSED(dc), bool WXUNUSED(grey)=false) {}
+};
+
+class pdcEndDrawingOp : public pdcOp
+{
+    public:
+        pdcEndDrawingOp() {}
+        virtual void DrawToDC(wxDC *WXUNUSED(dc), bool WXUNUSED(grey)=false) {}
+};
+
+class pdcFloodFillOp : public pdcOp
+{
+    public:
+        pdcFloodFillOp(wxCoord x, wxCoord y, const wxColour& col,
+                   wxFloodFillStyle style) {m_x=x; m_y=y; m_col=col; m_style=style;}
+        virtual void DrawToDC(wxDC *dc, bool grey=false) 
+        {
+            if (!grey) dc->FloodFill(m_x,m_y,m_col,m_style);
+            else dc->FloodFill(m_x,m_y,MakeColourGrey(m_col),m_style);
+        }
+        virtual void Translate(wxCoord dx, wxCoord dy) 
+            {m_x+=dx; m_y+=dy;}
+    protected:
+        wxCoord m_x,m_y;
+        wxColour m_col;
+        wxFloodFillStyle m_style;
+};
+
+class pdcCrossHairOp : public pdcOp
+{
+    public:
+        pdcCrossHairOp(wxCoord x, wxCoord y) {m_x=x; m_y=y;}
+        virtual void DrawToDC(wxDC *dc, bool WXUNUSED(grey)=false) {dc->CrossHair(m_x,m_y);}
+        virtual void Translate(wxCoord dx, wxCoord dy) 
+            {m_x+=dx; m_y+=dy;}
+    protected:
+        wxCoord m_x,m_y;
+};
+
+class pdcDrawArcOp : public pdcOp
+{
+    public:
+        pdcDrawArcOp(wxCoord x1, wxCoord y1, wxCoord x2, wxCoord y2,
+                         wxCoord xc, wxCoord yc) 
+            {m_x1=x1; m_y1=y1; m_x2=x2; m_y2=y2; m_xc=xc; m_yc=yc;}
+        virtual void DrawToDC(wxDC *dc, bool WXUNUSED(grey)=false) 
+            {dc->DrawArc(m_x1,m_y1,m_x2,m_y2,m_xc,m_yc);}
+        virtual void Translate(wxCoord dx, wxCoord dy) 
+            {m_x1+=dx; m_x2+=dx; m_y1+=dy; m_y2+=dy;}
+    protected:
+        wxCoord m_x1,m_x2,m_xc;
+        wxCoord m_y1,m_y2,m_yc;
+};
+
+class pdcDrawCheckMarkOp : public pdcOp
+{
+    public:
+        pdcDrawCheckMarkOp(wxCoord x, wxCoord y,
+                       wxCoord width, wxCoord height) 
+            {m_x=x; m_y=y; m_w=width; m_h=height;}
+        virtual void DrawToDC(wxDC *dc, bool WXUNUSED(grey)=false) 
+            {dc->DrawCheckMark(m_x,m_y,m_w,m_h);}
+        virtual void Translate(wxCoord dx, wxCoord dy) 
+            {m_x+=dx; m_y+=dy;}
+    protected:
+        wxCoord m_x,m_y,m_w,m_h;
+};
+
+class pdcDrawEllipticArcOp : public pdcOp
+{
+    public:
+        pdcDrawEllipticArcOp(wxCoord x, wxCoord y, wxCoord w, wxCoord h,
+                         double sa, double ea) 
+            {m_x=x; m_y=y; m_w=w; m_h=h; m_sa=sa; m_ea=ea;}
+        virtual void DrawToDC(wxDC *dc, bool WXUNUSED(grey)=false) 
+            {dc->DrawEllipticArc(m_x,m_y,m_w,m_h,m_sa,m_ea);}
+        virtual void Translate(wxCoord dx, wxCoord dy) 
+            {m_x+=dx; m_y+=dy;}
+    protected:
+        wxCoord m_x,m_y,m_w,m_h;
+        double m_sa,m_ea;
+};
+
+class pdcDrawPointOp : public pdcOp
+{
+    public:
+        pdcDrawPointOp(wxCoord x, wxCoord y) 
+            {m_x=x; m_y=y;}
+        virtual void DrawToDC(wxDC *dc, bool WXUNUSED(grey)=false) {dc->DrawPoint(m_x,m_y);}
+        virtual void Translate(wxCoord dx, wxCoord dy) 
+            {m_x+=dx; m_y+=dy;}
+    protected:
+        wxCoord m_x,m_y;
+};
+
+class pdcDrawRoundedRectangleOp : public pdcOp
+{
+    public:
+        pdcDrawRoundedRectangleOp(wxCoord x, wxCoord y, wxCoord width, 
+                                  wxCoord height, double radius) 
+            {m_x=x; m_y=y; m_w=width; m_h=height; m_r=radius;}
+        virtual void DrawToDC(wxDC *dc, bool WXUNUSED(grey)=false) 
+            {dc->DrawRoundedRectangle(m_x,m_y,m_w,m_h,m_r);}
+        virtual void Translate(wxCoord dx, wxCoord dy) 
+            {m_x+=dx; m_y+=dy;}
+    protected:
+        wxCoord m_x,m_y,m_w,m_h;
+        double m_r;
+};
+
+class pdcDrawEllipseOp : public pdcOp
+{
+    public:
+        pdcDrawEllipseOp(wxCoord x, wxCoord y, wxCoord width, wxCoord height) 
+            {m_x=x; m_y=y; m_w=width; m_h=height;}
+        virtual void DrawToDC(wxDC *dc, bool WXUNUSED(grey)=false) {dc->DrawEllipse(m_x,m_y,m_w,m_h);}
+        virtual void Translate(wxCoord dx, wxCoord dy) 
+            {m_x+=dx; m_y+=dy;}
+    protected:
+        wxCoord m_x,m_y,m_w,m_h;
+};
+
+class pdcDrawIconOp : public pdcOp
+{
+    public:
+        pdcDrawIconOp(const wxIcon& icon, wxCoord x, wxCoord y) 
+            {m_icon=icon; m_x=x; m_y=y;}
+        virtual void DrawToDC(wxDC *dc, bool grey=false) 
+        {
+            if (grey) dc->DrawIcon(m_greyicon,m_x,m_y);
+            else dc->DrawIcon(m_icon,m_x,m_y);
+        }
+        virtual void CacheGrey() {m_greyicon=GetGreyIcon(m_icon);}
+        virtual void Translate(wxCoord dx, wxCoord dy) 
+            {m_x+=dx; m_y+=dy;}
+    protected:
+        wxIcon m_icon;
+        wxIcon m_greyicon;
+        wxCoord m_x,m_y;
+};
+
+class pdcDrawLinesOp : public pdcOp
+{
+    public:
+        pdcDrawLinesOp(const wxPointList* points,
+                       wxCoord xoffset = 0,
+                       wxCoord yoffset = 0);
+        virtual ~pdcDrawLinesOp();
+
+        virtual void DrawToDC(wxDC *dc, bool WXUNUSED(grey)=false)
+            { dc->DrawLines(m_points, m_xoffset, m_yoffset); }
+
+        virtual void Translate(wxCoord dx, wxCoord dy);
+
+    protected:
+        wxPointList* m_points;
+        wxCoord m_xoffset;
+        wxCoord m_yoffset;
+};
+
+class pdcDrawPolygonOp : public pdcOp
+{
+    public:
+        pdcDrawPolygonOp(const wxPointList* points,
+                         wxCoord xoffset = 0,
+                         wxCoord yoffset = 0,
+                         wxPolygonFillMode fillStyle = wxODDEVEN_RULE);
+        virtual ~pdcDrawPolygonOp();
+
+        virtual void DrawToDC(wxDC *dc, bool WXUNUSED(grey)=false) 
+            { dc->DrawPolygon(m_points, m_xoffset, m_yoffset, m_fillStyle); }
+        
+        virtual void Translate(wxCoord dx, wxCoord dy);
+
+    protected:
+        wxPointList* m_points;
+        wxCoord m_xoffset;
+        wxCoord m_yoffset;
+        wxPolygonFillMode m_fillStyle;
+};
+
+class pdcDrawPolyPolygonOp : public pdcOp
+{
+    public:
+        pdcDrawPolyPolygonOp(int n, int count[], wxPoint points[],
+                         wxCoord xoffset = 0, wxCoord yoffset = 0,
+                         wxPolygonFillMode fillStyle = wxODDEVEN_RULE);
+        virtual ~pdcDrawPolyPolygonOp();
+        virtual void DrawToDC(wxDC *dc, bool WXUNUSED(grey)=false) 
+            {dc->DrawPolyPolygon(m_n,m_count,m_points,
+                    m_xoffset,m_yoffset,m_fillStyle);}
+        virtual void Translate(wxCoord dx, wxCoord dy)
+        { 
+            for(int i=0; iDrawRotatedText(m_text,m_x,m_y,m_angle);}
+        virtual void Translate(wxCoord dx, wxCoord dy) 
+            {m_x+=dx; m_y+=dy;}
+    protected:
+        wxString m_text;
+        wxCoord m_x,m_y;
+        double m_angle;
+};
+
+class pdcDrawBitmapOp : public pdcOp
+{
+    public:
+        pdcDrawBitmapOp(const wxBitmap &bmp, wxCoord x, wxCoord y,
+                        bool useMask = false) 
+            {m_bmp=bmp; m_x=x; m_y=y; m_useMask=useMask;}
+        virtual void DrawToDC(wxDC *dc, bool grey=false) 
+        {
+            if (grey) dc->DrawBitmap(m_greybmp,m_x,m_y,m_useMask);
+            else dc->DrawBitmap(m_bmp,m_x,m_y,m_useMask);
+        }
+        virtual void CacheGrey() {m_greybmp=GetGreyBitmap(m_bmp);}
+        virtual void Translate(wxCoord dx, wxCoord dy) 
+            {m_x+=dx; m_y+=dy;}
+    protected:
+        wxBitmap m_bmp;
+        wxBitmap m_greybmp;
+        wxCoord m_x,m_y;
+        bool m_useMask;
+};
+
+class pdcDrawLabelOp : public pdcOp
+{
+    public:
+        pdcDrawLabelOp(const wxString& text,
+                           const wxBitmap& image,
+                           const wxRect& rect,
+                           int alignment = wxALIGN_LEFT | wxALIGN_TOP,
+                           int indexAccel = -1)
+            {m_text=text; m_image=image; m_rect=rect; 
+             m_align=alignment; m_iAccel=indexAccel;}
+        virtual void DrawToDC(wxDC *dc, bool WXUNUSED(grey)=false) 
+            {dc->DrawLabel(m_text,m_image,m_rect,m_align,m_iAccel);}
+        virtual void Translate(wxCoord dx, wxCoord dy) 
+            {m_rect.x+=dx; m_rect.y+=dy;}
+    protected:
+        wxString m_text;
+        wxBitmap m_image;
+        wxRect m_rect;
+        int m_align;
+        int m_iAccel;
+};
+
+#if wxUSE_SPLINES
+class pdcDrawSplineOp : public pdcOp
+{
+    public:
+        pdcDrawSplineOp(const wxPointList* points);
+        virtual ~pdcDrawSplineOp();
+        virtual void DrawToDC(wxDC *dc, bool WXUNUSED(grey)=false)
+            { dc->DrawSpline(m_points); }
+
+        virtual void Translate(wxCoord dx, wxCoord dy);
+
+    protected:
+        wxPointList* m_points;
+};
+#endif // wxUSE_SPLINES
+
+#if wxUSE_PALETTE
+class pdcSetPaletteOp : public pdcOp
+{
+    public:
+        pdcSetPaletteOp(const wxPalette& palette) {m_palette=palette;}
+        virtual void DrawToDC(wxDC *dc, bool WXUNUSED(grey)=false) {dc->SetPalette(m_palette);}
+    protected:
+        wxPalette m_palette;
+};
+#endif // wxUSE_PALETTE
+
+class pdcSetLogicalFunctionOp : public pdcOp
+{
+    public:
+        pdcSetLogicalFunctionOp(wxRasterOperationMode function) {m_function=function;}
+        virtual void DrawToDC(wxDC *dc, bool WXUNUSED(grey)=false) {dc->SetLogicalFunction(m_function);}
+    protected:
+        wxRasterOperationMode m_function;
+};
+
+//----------------------------------------------------------------------------
+// pdcObject type to contain list of operations for each real (Python) object
+//----------------------------------------------------------------------------
+class pdcObject
+{
+    public:
+        pdcObject(int id) 
+            {m_id=id; m_bounded=false; m_oplist.DeleteContents(true);
+             m_greyedout=false;}
+
+        virtual ~pdcObject() {m_oplist.Clear();}
+        
+        // Protected Member Access
+        void SetId(int id) {m_id=id;}
+        int  GetId() {return m_id;}
+        void   SetBounds(wxRect& rect) {m_bounds=rect; m_bounded=true;}
+        wxRect GetBounds() {return m_bounds;}
+        void SetBounded(bool bounded) {m_bounded=bounded;}
+        bool IsBounded() {return m_bounded;}
+        void SetGreyedOut(bool greyout=true);
+        bool GetGreyedOut() {return m_greyedout;}
+    
+        // Op List Management Methods
+        void Clear() {m_oplist.Clear();}
+        void AddOp(pdcOp *op) 
+        {
+            m_oplist.Append(op);
+            if (m_greyedout) op->CacheGrey();
+        }
+        int  GetLen() {return m_oplist.GetCount();}
+        virtual void Translate(wxCoord dx, wxCoord dy);
+        
+        // Drawing Method
+        virtual void DrawToDC(wxDC *dc);
+    protected:
+        int m_id; // id of object (associates this pdcObject
+                  //               with a Python object with same id)
+        wxRect m_bounds;  // bounding rect of this object
+        bool m_bounded;   // true if bounds is valid, false by default
+        pdcOpList m_oplist; // list of operations for this object
+        bool m_greyedout; // if true then draw this object in greys only
+};
+
+
+//----------------------------------------------------------------------------
+// Declare a wxList to hold all the objects.  List order reflects drawing
+// order (Z order) and is the same order as objects are added to the list
+//----------------------------------------------------------------------------
+class pdcObjectList;
+WX_DECLARE_LIST(pdcObject, pdcObjectList);
+
+//Declare a hashmap that maps from ids to nodes in the object list.
+WX_DECLARE_HASH_MAP(
+    int,
+    pdcObject *,
+    wxIntegerHash,
+    wxIntegerEqual,
+    pdcObjectHash
+);
+
+
+// ----------------------------------------------------------------------------
+// wxPseudoDC class
+// ----------------------------------------------------------------------------
+// This is the actual PseudoDC class
+// This class stores a list of recorded dc operations in m_list
+// and plays them back to a real dc using DrawToDC or DrawToDCClipped.
+// Drawing methods are mirrored from wxDC but add nodes to m_list 
+// instead of doing any real drawing.
+// ----------------------------------------------------------------------------
+class wxPseudoDC : public wxObject
+{
+public:
+    wxPseudoDC() 
+        {m_currId=-1; m_lastObject=NULL; m_objectlist.DeleteContents(true);m_objectIndex.clear();}
+    ~wxPseudoDC();
+    // ------------------------------------------------------------------------
+    // List management methods
+    // 
+    void RemoveAll();
+    int GetLen();
+    
+    // ------------------------------------------------------------------------
+    // methods for managing operations by ID
+    // 
+    // Set the Id for all subsequent operations (until SetId is called again)
+    void SetId(int id) {m_currId = id;}
+    // Remove all the operations associated with an id so it can be redrawn
+    void ClearId(int id);
+    // Remove the object node (and all operations) associated with an id
+    void RemoveId(int id);
+    // Set the bounding rect of a given object
+    // This will create an object node if one doesn't exist
+    void SetIdBounds(int id, wxRect& rect);
+    wxRect GetIdBounds(int id);
+    // Translate all the operations for this id
+    void TranslateId(int id, wxCoord dx, wxCoord dy);
+    // Grey-out an object
+    void SetIdGreyedOut(int id, bool greyout=true);
+    bool GetIdGreyedOut(int id);
+    // Find Objects at a point.  Returns Python list of id's
+    // sorted in reverse drawing order (result[0] is top object)
+    // This version looks at drawn pixels
+    PyObject *FindObjects(wxCoord x, wxCoord y, 
+                          wxCoord radius=1, const wxColor& bg=*wxWHITE);
+    // This version only looks at bounding boxes
+    PyObject *FindObjectsByBBox(wxCoord x, wxCoord y);
+
+    // ------------------------------------------------------------------------
+    // Playback Methods
+    //
+    // draw to dc but skip objects known to be outside of rect
+    // This is a coarse level of clipping to speed things up 
+    // when lots of objects are off screen and doesn't affect the dc level 
+    // clipping
+    void DrawToDCClipped(wxDC *dc, const wxRect& rect);
+        void DrawToDCClippedRgn(wxDC *dc, const wxRegion& region);
+    // draw to dc with no clipping (well the dc will still clip)
+    void DrawToDC(wxDC *dc);
+    // draw a single object to the dc
+    void DrawIdToDC(int id, wxDC *dc);
+
+    // ------------------------------------------------------------------------
+    // Hit Detection Methods
+    //
+    // returns list of object with a drawn pixel within radius pixels of (x,y)
+    // the list is in reverse draw order so last drawn is first in list
+    // PyObject *HitTest(wxCoord x, wxCoord y, double radius)
+    // returns list of objects whose bounding boxes include (x,y)
+    // PyObject *HitTestBB(wxCoord x, wxCoord y)
+    
+        
+    // ------------------------------------------------------------------------
+    // Methods mirrored from wxDC
+    //
+    void FloodFill(wxCoord x, wxCoord y, const wxColour& col,
+                   wxFloodFillStyle style = wxFLOOD_SURFACE)
+        {AddToList(new pdcFloodFillOp(x,y,col,style));}
+    void FloodFill(const wxPoint& pt, const wxColour& col,
+                   wxFloodFillStyle style = wxFLOOD_SURFACE)
+        { FloodFill(pt.x, pt.y, col, style); }
+
+    void DrawLine(wxCoord x1, wxCoord y1, wxCoord x2, wxCoord y2)
+        {AddToList(new pdcDrawLineOp(x1, y1, x2, y2));}
+    void DrawLine(const wxPoint& pt1, const wxPoint& pt2)
+        { DrawLine(pt1.x, pt1.y, pt2.x, pt2.y); }
+
+    void CrossHair(wxCoord x, wxCoord y)
+        {AddToList(new pdcCrossHairOp(x,y));}
+    void CrossHair(const wxPoint& pt)
+        { CrossHair(pt.x, pt.y); }
+
+    void DrawArc(wxCoord x1, wxCoord y1, wxCoord x2, wxCoord y2,
+                 wxCoord xc, wxCoord yc)
+        {AddToList(new pdcDrawArcOp(x1,y1,x2,y2,xc,yc));}
+    void DrawArc(const wxPoint& pt1, const wxPoint& pt2, const wxPoint& centre)
+        { DrawArc(pt1.x, pt1.y, pt2.x, pt2.y, centre.x, centre.y); }
+
+    void DrawCheckMark(wxCoord x, wxCoord y,
+                       wxCoord width, wxCoord height)
+        {AddToList(new pdcDrawCheckMarkOp(x,y,width,height));}
+    void DrawCheckMark(const wxRect& rect)
+        { DrawCheckMark(rect.x, rect.y, rect.width, rect.height); }
+
+    void DrawEllipticArc(wxCoord x, wxCoord y, wxCoord w, wxCoord h,
+                         double sa, double ea)
+        {AddToList(new pdcDrawEllipticArcOp(x,y,w,h,sa,ea));}
+    void DrawEllipticArc(const wxPoint& pt, const wxSize& sz,
+                         double sa, double ea)
+        { DrawEllipticArc(pt.x, pt.y, sz.x, sz.y, sa, ea); }
+
+    void DrawPoint(wxCoord x, wxCoord y)
+        {AddToList(new pdcDrawPointOp(x,y));}
+    void DrawPoint(const wxPoint& pt)
+        { DrawPoint(pt.x, pt.y); }
+
+    void DrawPolygon(const wxPointList* points,
+                     wxCoord xoffset = 0,
+                     wxCoord yoffset = 0,
+                     wxPolygonFillMode fillStyle = wxODDEVEN_RULE)
+        {AddToList(new pdcDrawPolygonOp(points, xoffset, yoffset, fillStyle));}
+
+    void DrawPolyPolygon(int n, int count[], wxPoint points[],
+                         wxCoord xoffset = 0, wxCoord yoffset = 0,
+                         wxPolygonFillMode fillStyle = wxODDEVEN_RULE)
+        {AddToList(new pdcDrawPolyPolygonOp(n,count,points,xoffset,yoffset,fillStyle));}
+
+    void DrawRectangle(wxCoord x, wxCoord y, wxCoord width, wxCoord height)
+        {AddToList(new pdcDrawRectangleOp(x, y, width, height));}
+    void DrawRectangle(const wxPoint& pt, const wxSize& sz)
+        { DrawRectangle(pt.x, pt.y, sz.x, sz.y); }
+    void DrawRectangle(const wxRect& rect)
+        { DrawRectangle(rect.x, rect.y, rect.width, rect.height); }
+
+    void DrawRoundedRectangle(wxCoord x, wxCoord y, wxCoord width, wxCoord height,
+                              double radius)
+        {AddToList(new pdcDrawRoundedRectangleOp(x,y,width,height,radius));}
+    void DrawRoundedRectangle(const wxPoint& pt, const wxSize& sz,
+                             double radius)
+        { DrawRoundedRectangle(pt.x, pt.y, sz.x, sz.y, radius); }
+    void DrawRoundedRectangle(const wxRect& r, double radius)
+        { DrawRoundedRectangle(r.x, r.y, r.width, r.height, radius); }
+
+    void DrawCircle(wxCoord x, wxCoord y, wxCoord radius)
+        { DrawEllipse(x - radius, y - radius, 2*radius, 2*radius); }
+    void DrawCircle(const wxPoint& pt, wxCoord radius)
+        { DrawCircle(pt.x, pt.y, radius); }
+
+    void DrawEllipse(wxCoord x, wxCoord y, wxCoord width, wxCoord height)
+        {AddToList(new pdcDrawEllipseOp(x,y,width,height));}
+    void DrawEllipse(const wxPoint& pt, const wxSize& sz)
+        { DrawEllipse(pt.x, pt.y, sz.x, sz.y); }
+    void DrawEllipse(const wxRect& rect)
+        { DrawEllipse(rect.x, rect.y, rect.width, rect.height); }
+
+    void DrawIcon(const wxIcon& icon, wxCoord x, wxCoord y)
+        {AddToList(new pdcDrawIconOp(icon,x,y));}
+    void DrawIcon(const wxIcon& icon, const wxPoint& pt)
+        { DrawIcon(icon, pt.x, pt.y); }
+
+    void DrawLines(const wxPointList* points,
+                   wxCoord xoffset = 0, wxCoord yoffset = 0)
+        { AddToList(new pdcDrawLinesOp(points, xoffset, yoffset)); }
+
+    void DrawBitmap(const wxBitmap &bmp, wxCoord x, wxCoord y,
+                    bool useMask = false)
+        {AddToList(new pdcDrawBitmapOp(bmp,x,y,useMask));}
+    void DrawBitmap(const wxBitmap &bmp, const wxPoint& pt,
+                    bool useMask = false)
+        { DrawBitmap(bmp, pt.x, pt.y, useMask); }
+
+    void DrawText(const wxString& text, wxCoord x, wxCoord y)
+        {AddToList(new pdcDrawTextOp(text, x, y));}
+    void DrawText(const wxString& text, const wxPoint& pt)
+        { DrawText(text, pt.x, pt.y); }
+
+    void DrawRotatedText(const wxString& text, wxCoord x, wxCoord y, double angle)
+        {AddToList(new pdcDrawRotatedTextOp(text,x,y,angle));}
+    void DrawRotatedText(const wxString& text, const wxPoint& pt, double angle)
+        { DrawRotatedText(text, pt.x, pt.y, angle); }
+
+    // this version puts both optional bitmap and the text into the given
+    // rectangle and aligns is as specified by alignment parameter; it also
+    // will emphasize the character with the given index if it is != -1 
+    void DrawLabel(const wxString& text,
+                           const wxBitmap& image,
+                           const wxRect& rect,
+                           int alignment = wxALIGN_LEFT | wxALIGN_TOP,
+                           int indexAccel = -1)
+        {AddToList(new pdcDrawLabelOp(text,image,rect,alignment,indexAccel));}
+
+    void DrawLabel(const wxString& text, const wxRect& rect,
+                   int alignment = wxALIGN_LEFT | wxALIGN_TOP,
+                   int indexAccel = -1)
+        { DrawLabel(text, wxNullBitmap, rect, alignment, indexAccel); }
+
+/*?????? I don't think that the source dc would stick around
+    void Blit(wxCoord xdest, wxCoord ydest, wxCoord width, wxCoord height,
+              wxDC *source, wxCoord xsrc, wxCoord ysrc,
+              int rop = wxCOPY, bool useMask = false, wxCoord xsrcMask = wxDefaultCoord, wxCoord ysrcMask = wxDefaultCoord)
+                {AddToList(new pdcBlitOp(xdest,ydest,width,height,source,xsrc,
+                                         ysrc,rop,useMask,xsrcMask,ysrcMask));}
+    void Blit(const wxPoint& destPt, const wxSize& sz,
+              wxDC *source, const wxPoint& srcPt,
+              int rop = wxCOPY, bool useMask = false, const wxPoint& srcPtMask = wxDefaultPosition)
+    {
+        Blit(destPt.x, destPt.y, sz.x, sz.y, source, srcPt.x, srcPt.y, 
+             rop, useMask, srcPtMask.x, srcPtMask.y);
+    }
+??????*/
+
+#if wxUSE_SPLINES
+    void DrawSpline(const wxPointList* points)
+        { AddToList(new pdcDrawSplineOp(points)); }
+#endif // wxUSE_SPLINES
+
+#if wxUSE_PALETTE
+    void SetPalette(const wxPalette& palette)
+        {AddToList(new pdcSetPaletteOp(palette));}
+#endif // wxUSE_PALETTE
+
+    void SetLogicalFunction(wxRasterOperationMode function)
+        {AddToList(new pdcSetLogicalFunctionOp(function));}
+    void SetFont(const wxFont& font) 
+        {AddToList(new pdcSetFontOp(font));}
+    void SetPen(const wxPen& pen)
+        {AddToList(new pdcSetPenOp(pen));}
+    void SetBrush(const wxBrush& brush)
+        {AddToList(new pdcSetBrushOp(brush));}
+    void SetBackground(const wxBrush& brush)
+        {AddToList(new pdcSetBackgroundOp(brush));}
+    void SetBackgroundMode(int mode)
+        {AddToList(new pdcSetBackgroundModeOp(mode));}
+    void SetTextBackground(const wxColour& colour)
+        {AddToList(new pdcSetTextBackgroundOp(colour));}
+    void SetTextForeground(const wxColour& colour)
+        {AddToList(new pdcSetTextForegroundOp(colour));}
+
+    void Clear()
+        {AddToList(new pdcClearOp());}
+    void BeginDrawing()
+        {AddToList(new pdcBeginDrawingOp());}
+    void EndDrawing()
+        {AddToList(new pdcEndDrawingOp());}
+
+protected:
+    // ------------------------------------------------------------------------
+    // protected helper methods
+    void AddToList(pdcOp *newOp);
+    pdcObject *FindObject(int id, bool create=false);
+    
+    // ------------------------------------------------------------------------
+    // Data members
+    // 
+    int m_currId; // id to use for operations done on the PseudoDC
+    pdcObject *m_lastObject; // used to find last used object quickly
+    pdcObjectList m_objectlist; // list of objects
+    pdcObjectHash m_objectIndex; //id->object lookup index
+    
+};
+
+#endif
+
diff --git a/unittests/test_pseudodc.py b/unittests/test_pseudodc.py
new file mode 100644
index 00000000..d673d823
--- /dev/null
+++ b/unittests/test_pseudodc.py
@@ -0,0 +1,117 @@
+import unittest
+from unittests import wtc
+import wx
+import wx.adv
+
+WAITFOR = 250
+
+#---------------------------------------------------------------------------
+
+class pseudodc_Tests(wtc.WidgetTestCase):
+
+    def setUp(self):
+        super(pseudodc_Tests, self).setUp()
+        self.pnl = wx.Panel(self.frame)
+        self.pnl.Bind(wx.EVT_PAINT, self._paintIt)
+        self.pdc = wx.adv.PseudoDC()
+
+        self.pdc.SetBackground(wx.Brush('pink'))
+        self.pdc.Clear()
+        self.pdc.SetPen(wx.Pen('navy', 2))
+        self.pdc.SetBrush(wx.Brush('white'))
+
+
+    def _paintIt(self, evt):
+        # Paint event handler for the panel
+        dc = wx.PaintDC(self.pnl)
+        if 'wxMac' not in wx.PlatformInfo:
+            dc = wx.GCDC(dc)
+        self.pdc.DrawToDC(dc)
+
+    def _showIt(self):
+        self.pnl.Refresh()
+        self.waitFor(WAITFOR)
+
+
+    def test_pseudodc01(self):
+        assert self.pdc.GetLen() == 4
+        assert self.pdc.Len == 4
+
+
+    def test_pseudodc02(self):
+        self.pdc.DrawRectangle(10, 10, 50, 25)
+        self.pdc.DrawRectangle(wx.Rect(10, 40, 50, 25))
+        self.pdc.DrawRectangle((10, 70), (50,25))
+        self._showIt()
+
+
+    def test_pseudodc03(self):
+        self.pdc.DrawRoundedRectangle(10, 10, 50, 25, 4.5)
+        self.pdc.DrawRoundedRectangle(wx.Rect(10, 40, 50, 25), 4.5)
+        self.pdc.DrawRoundedRectangle((10, 70), (50,25), 4.5)
+        self._showIt()
+
+
+    def test_pseudodc04(self):
+        points = [ (10, 10),
+                   (50, 10),
+                   (50, 50),
+                   (10, 50),
+                   (10, 90),
+                   (50, 90),
+                   ]
+        self.pdc.DrawLines(points)
+        self._showIt()
+
+
+    def test_pseudodc05(self):
+        for offset in range(0, 300, 10):
+            self.pdc.DrawLine(0, offset, offset, 0)
+        self._showIt()
+
+
+    def test_pseudodc06(self):
+        for offset in range(0, 300, 10):
+            self.pdc.DrawLine((0, offset), (offset, 0))
+        self._showIt()
+
+
+    def test_pseudodc07(self):
+        points = [ (10, 10),
+                   (25, 50),
+                   (10, 75),
+                   (75, 100)]
+        self.pdc.DrawSpline(points)
+        self._showIt()
+
+
+    def test_pseudodc08(self):
+        points = [ (10, 10),
+                   (50, 10),
+                   (50, 50),
+                   (10, 50),
+                   (10, 90),
+                   (50, 90),
+                   ]
+        self.pdc.DrawPolygon(points)
+        self._showIt()
+
+
+    def test_pseudodc09(self):
+        self.pdc.DrawEllipse(10, 10, 50, 25)
+        self.pdc.DrawEllipse(wx.Rect(10, 40, 50, 25))
+        self.pdc.DrawEllipse((10, 70), (50,25))
+        self._showIt()
+
+
+    def test_pseudodc10(self):
+        self.pdc.SetId(123)
+        self.test_pseudodc02()
+        self.pdc.TranslateId(123, 25, 25)
+        self._showIt()
+
+
+#---------------------------------------------------------------------------
+
+if __name__ == '__main__':
+    unittest.main()
diff --git a/unittests/test_wxdatetime.py b/unittests/test_wxdatetime.py
index 7579c897..4dc78ae6 100644
--- a/unittests/test_wxdatetime.py
+++ b/unittests/test_wxdatetime.py
@@ -192,9 +192,12 @@ class datetime_Tests(wtc.WidgetTestCase):
 
     def test_datetimeParseRfc822Date(self):        
         d = wx.DateTime()
-        val = d.ParseRfc822Date('Wed, 25 Feb 2015 13:34:45 -0800')
+        rfc822str = 'Wed, 25 Feb 2015 13:34:45 -0800'
+        import email.utils as eu
+        st = time.localtime(eu.mktime_tz(eu.parsedate_tz(rfc822str)))
+        val = d.ParseRfc822Date(rfc822str)
         self.assertEqual(val, 31)
-        self.assertEqual(d.hour, 13)
+        self.assertEqual(d.hour, st.tm_hour)
         self.assertEqual(d.minute, 34)