]> git.saurik.com Git - wxWidgets.git/blobdiff - wxPython/src/msw/_gdi.py
buttonbar.cpp/.h must be in GUI_CMN_SRC/HDR as toolbkg.cpp which is in common depends...
[wxWidgets.git] / wxPython / src / msw / _gdi.py
index cc9ad77c397885c1ab3b2b536dd641a9a3270b41..830e4383d7514af25dac05193a95564efb8f7ff5 100644 (file)
@@ -1,46 +1,75 @@
-# This file was created automatically by SWIG.
+# This file was created automatically by SWIG 1.3.29.
 # Don't modify this file, modify the SWIG interface instead.
 
 import _gdi_
+import new
+new_instancemethod = new.instancemethod
+def _swig_setattr_nondynamic(self,class_type,name,value,static=1):
+    if (name == "thisown"): return self.this.own(value)
+    if (name == "this"):
+        if type(value).__name__ == 'PySwigObject':
+            self.__dict__[name] = value
+            return
+    method = class_type.__swig_setmethods__.get(name,None)
+    if method: return method(self,value)
+    if (not static) or hasattr(self,name):
+        self.__dict__[name] = value
+    else:
+        raise AttributeError("You cannot add attributes to %s" % self)
+
+def _swig_setattr(self,class_type,name,value):
+    return _swig_setattr_nondynamic(self,class_type,name,value,0)
+
+def _swig_getattr(self,class_type,name):
+    if (name == "thisown"): return self.this.own()
+    method = class_type.__swig_getmethods__.get(name,None)
+    if method: return method(self)
+    raise AttributeError,name
+
+def _swig_repr(self):
+    try: strthis = "proxy of " + self.this.__repr__()
+    except: strthis = ""
+    return "<%s.%s; %s >" % (self.__class__.__module__, self.__class__.__name__, strthis,)
+
+import types
+try:
+    _object = types.ObjectType
+    _newclass = 1
+except AttributeError:
+    class _object : pass
+    _newclass = 0
+del types
+
+
+def _swig_setattr_nondynamic_method(set):
+    def set_attr(self,name,value):
+        if (name == "thisown"): return self.this.own(value)
+        if hasattr(self,name) or (name == "this"):
+            set(self,name,value)
+        else:
+            raise AttributeError("You cannot add attributes to %s" % self)
+    return set_attr
+
 
 import _core
 wx = _core 
 #---------------------------------------------------------------------------
 
 class GDIObject(_core.Object):
-    def __repr__(self):
-        return "<%s.%s; proxy of C++ wxGDIObject instance at %s>" % (self.__class__.__module__, self.__class__.__name__, self.this,)
-    def __init__(self, *args, **kwargs):
+    """Proxy of C++ GDIObject class"""
+    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc='The membership flag')
+    __repr__ = _swig_repr
+    def __init__(self, *args, **kwargs): 
         """__init__(self) -> GDIObject"""
-        newobj = _gdi_.new_GDIObject(*args, **kwargs)
-        self.this = newobj.this
-        self.thisown = 1
-        del newobj.thisown
-    def __del__(self, destroy=_gdi_.delete_GDIObject):
-        """__del__(self)"""
-        try:
-            if self.thisown: destroy(self)
-        except: pass
-
-    def GetVisible(*args, **kwargs):
-        """GetVisible(self) -> bool"""
-        return _gdi_.GDIObject_GetVisible(*args, **kwargs)
-
-    def SetVisible(*args, **kwargs):
-        """SetVisible(self, bool visible)"""
-        return _gdi_.GDIObject_SetVisible(*args, **kwargs)
-
+        _gdi_.GDIObject_swiginit(self,_gdi_.new_GDIObject(*args, **kwargs))
+    __swig_destroy__ = _gdi_.delete_GDIObject
+    __del__ = lambda self : None;
     def IsNull(*args, **kwargs):
         """IsNull(self) -> bool"""
         return _gdi_.GDIObject_IsNull(*args, **kwargs)
 
-
-class GDIObjectPtr(GDIObject):
-    def __init__(self, this):
-        self.this = this
-        if not hasattr(self,"thisown"): self.thisown = 0
-        self.__class__ = GDIObject
-_gdi_.GDIObject_swigregister(GDIObjectPtr)
+GDIObject_swigregister = _gdi_.GDIObject_swigregister
+GDIObject_swigregister(GDIObject)
 
 #---------------------------------------------------------------------------
 
@@ -51,13 +80,15 @@ class Colour(_core.Object):
     window colours, etc.  Valid RGB values are in the range 0 to 255.
 
     In wxPython there are typemaps that will automatically convert from a
-    colour name, or from a '#RRGGBB' colour hex value string to a
-    wx.Colour object when calling C++ methods that expect a wxColour.
-    This means that the following are all equivallent::
+    colour name, from a '#RRGGBB' colour hex value string, or from a 3
+    integer tuple to a wx.Colour object when calling C++ methods that
+    expect a wxColour.  This means that the following are all
+    equivallent::
 
         win.SetBackgroundColour(wxColour(0,0,255))
         win.SetBackgroundColour('BLUE')
         win.SetBackgroundColour('#0000FF')
+        win.SetBackgroundColour((0,0,255))
 
     Additional colour names and their coresponding values can be added
     using `wx.ColourDatabase`.  Various system colours (as set in the
@@ -65,9 +96,9 @@ class Colour(_core.Object):
     `wx.SystemSettings.GetColour`.
 
     """
-    def __repr__(self):
-        return "<%s.%s; proxy of C++ wxColour instance at %s>" % (self.__class__.__module__, self.__class__.__name__, self.this,)
-    def __init__(self, *args, **kwargs):
+    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc='The membership flag')
+    __repr__ = _swig_repr
+    def __init__(self, *args, **kwargs): 
         """
         __init__(self, byte red=0, byte green=0, byte blue=0) -> Colour
 
@@ -76,16 +107,9 @@ class Colour(_core.Object):
         :see: Alternate constructors `wx.NamedColour` and `wx.ColourRGB`.
 
         """
-        newobj = _gdi_.new_Colour(*args, **kwargs)
-        self.this = newobj.this
-        self.thisown = 1
-        del newobj.thisown
-    def __del__(self, destroy=_gdi_.delete_Colour):
-        """__del__(self)"""
-        try:
-            if self.thisown: destroy(self)
-        except: pass
-
+        _gdi_.Colour_swiginit(self,_gdi_.new_Colour(*args, **kwargs))
+    __swig_destroy__ = _gdi_.delete_Colour
+    __del__ = lambda self : None;
     def Red(*args, **kwargs):
         """
         Red(self) -> byte
@@ -156,17 +180,17 @@ class Colour(_core.Object):
 
     def __eq__(*args, **kwargs):
         """
-        __eq__(self, Colour colour) -> bool
+        __eq__(self, PyObject other) -> bool
 
-        Compare colours for equality
+        Compare colours for equality.
         """
         return _gdi_.Colour___eq__(*args, **kwargs)
 
     def __ne__(*args, **kwargs):
         """
-        __ne__(self, Colour colour) -> bool
+        __ne__(self, PyObject other) -> bool
 
-        Compare colours for inequality
+        Compare colours for inequality.
         """
         return _gdi_.Colour___ne__(*args, **kwargs)
 
@@ -193,13 +217,8 @@ class Colour(_core.Object):
     __safe_for_unpickling__ = True
     def __reduce__(self):               return (Colour, self.Get())
 
-
-class ColourPtr(Colour):
-    def __init__(self, this):
-        self.this = this
-        if not hasattr(self,"thisown"): self.thisown = 0
-        self.__class__ = Colour
-_gdi_.Colour_swigregister(ColourPtr)
+Colour_swigregister = _gdi_.Colour_swigregister
+Colour_swigregister(Colour)
 
 def NamedColour(*args, **kwargs):
     """
@@ -209,7 +228,6 @@ def NamedColour(*args, **kwargs):
     ``wx.TheColourDatabase``.
     """
     val = _gdi_.new_NamedColour(*args, **kwargs)
-    val.thisown = 1
     return val
 
 def ColourRGB(*args, **kwargs):
@@ -219,7 +237,6 @@ def ColourRGB(*args, **kwargs):
     Constructs a colour from a packed RGB value.
     """
     val = _gdi_.new_ColourRGB(*args, **kwargs)
-    val.thisown = 1
     return val
 
 Color = Colour
@@ -227,58 +244,45 @@ NamedColor = NamedColour
 ColorRGB = ColourRGB
 
 class Palette(GDIObject):
-    def __repr__(self):
-        return "<%s.%s; proxy of C++ wxPalette instance at %s>" % (self.__class__.__module__, self.__class__.__name__, self.this,)
-    def __init__(self, *args, **kwargs):
+    """Proxy of C++ Palette class"""
+    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc='The membership flag')
+    __repr__ = _swig_repr
+    def __init__(self, *args, **kwargs): 
         """__init__(self, int n, unsigned char red, unsigned char green, unsigned char blue) -> Palette"""
-        newobj = _gdi_.new_Palette(*args, **kwargs)
-        self.this = newobj.this
-        self.thisown = 1
-        del newobj.thisown
-    def __del__(self, destroy=_gdi_.delete_Palette):
-        """__del__(self)"""
-        try:
-            if self.thisown: destroy(self)
-        except: pass
-
+        _gdi_.Palette_swiginit(self,_gdi_.new_Palette(*args, **kwargs))
+    __swig_destroy__ = _gdi_.delete_Palette
+    __del__ = lambda self : None;
     def GetPixel(*args, **kwargs):
         """GetPixel(self, byte red, byte green, byte blue) -> int"""
         return _gdi_.Palette_GetPixel(*args, **kwargs)
 
     def GetRGB(*args, **kwargs):
-        """GetRGB(int pixel) -> (R,G,B)"""
+        """GetRGB(self, int pixel) -> (R,G,B)"""
         return _gdi_.Palette_GetRGB(*args, **kwargs)
 
+    def GetColoursCount(*args, **kwargs):
+        """GetColoursCount(self) -> int"""
+        return _gdi_.Palette_GetColoursCount(*args, **kwargs)
+
     def Ok(*args, **kwargs):
         """Ok(self) -> bool"""
         return _gdi_.Palette_Ok(*args, **kwargs)
 
     def __nonzero__(self): return self.Ok() 
-
-class PalettePtr(Palette):
-    def __init__(self, this):
-        self.this = this
-        if not hasattr(self,"thisown"): self.thisown = 0
-        self.__class__ = Palette
-_gdi_.Palette_swigregister(PalettePtr)
+Palette_swigregister = _gdi_.Palette_swigregister
+Palette_swigregister(Palette)
 
 #---------------------------------------------------------------------------
 
 class Pen(GDIObject):
-    def __repr__(self):
-        return "<%s.%s; proxy of C++ wxPen instance at %s>" % (self.__class__.__module__, self.__class__.__name__, self.this,)
-    def __init__(self, *args, **kwargs):
+    """Proxy of C++ Pen class"""
+    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc='The membership flag')
+    __repr__ = _swig_repr
+    def __init__(self, *args, **kwargs): 
         """__init__(self, Colour colour, int width=1, int style=SOLID) -> Pen"""
-        newobj = _gdi_.new_Pen(*args, **kwargs)
-        self.this = newobj.this
-        self.thisown = 1
-        del newobj.thisown
-    def __del__(self, destroy=_gdi_.delete_Pen):
-        """__del__(self)"""
-        try:
-            if self.thisown: destroy(self)
-        except: pass
-
+        _gdi_.Pen_swiginit(self,_gdi_.new_Pen(*args, **kwargs))
+    __swig_destroy__ = _gdi_.delete_Pen
+    __del__ = lambda self : None;
     def GetCap(*args, **kwargs):
         """GetCap(self) -> int"""
         return _gdi_.Pen_GetCap(*args, **kwargs)
@@ -324,7 +328,7 @@ class Pen(GDIObject):
         return _gdi_.Pen_SetWidth(*args, **kwargs)
 
     def SetDashes(*args, **kwargs):
-        """SetDashes(self, int dashes, wxDash dashes_array)"""
+        """SetDashes(self, int dashes)"""
         return _gdi_.Pen_SetDashes(*args, **kwargs)
 
     def GetDashes(*args, **kwargs):
@@ -362,13 +366,8 @@ class Pen(GDIObject):
         return _gdi_.Pen___ne__(*args, **kwargs)
 
     def __nonzero__(self): return self.Ok() 
-
-class PenPtr(Pen):
-    def __init__(self, this):
-        self.this = this
-        if not hasattr(self,"thisown"): self.thisown = 0
-        self.__class__ = Pen
-_gdi_.Pen_swigregister(PenPtr)
+Pen_swigregister = _gdi_.Pen_swigregister
+Pen_swigregister(Pen)
 
 #---------------------------------------------------------------------------
 
@@ -378,24 +377,17 @@ class Brush(GDIObject):
     painting the background of rectangles, ellipses, etc. when drawing on
     a `wx.DC`.  It has a colour and a style.
     """
-    def __repr__(self):
-        return "<%s.%s; proxy of C++ wxBrush instance at %s>" % (self.__class__.__module__, self.__class__.__name__, self.this,)
-    def __init__(self, *args, **kwargs):
+    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc='The membership flag')
+    __repr__ = _swig_repr
+    def __init__(self, *args, **kwargs): 
         """
         __init__(self, Colour colour, int style=SOLID) -> Brush
 
         Constructs a brush from a `wx.Colour` object and a style.
         """
-        newobj = _gdi_.new_Brush(*args, **kwargs)
-        self.this = newobj.this
-        self.thisown = 1
-        del newobj.thisown
-    def __del__(self, destroy=_gdi_.delete_Brush):
-        """__del__(self)"""
-        try:
-            if self.thisown: destroy(self)
-        except: pass
-
+        _gdi_.Brush_swiginit(self,_gdi_.new_Brush(*args, **kwargs))
+    __swig_destroy__ = _gdi_.delete_Brush
+    __del__ = lambda self : None;
     def SetColour(*args, **kwargs):
         """
         SetColour(self, Colour col)
@@ -447,6 +439,14 @@ class Brush(GDIObject):
         """
         return _gdi_.Brush_GetStipple(*args, **kwargs)
 
+    def IsHatch(*args, **kwargs):
+        """
+        IsHatch(self) -> bool
+
+        Is the current style a hatch type?
+        """
+        return _gdi_.Brush_IsHatch(*args, **kwargs)
+
     def Ok(*args, **kwargs):
         """
         Ok(self) -> bool
@@ -456,13 +456,17 @@ class Brush(GDIObject):
         return _gdi_.Brush_Ok(*args, **kwargs)
 
     def __nonzero__(self): return self.Ok() 
+Brush_swigregister = _gdi_.Brush_swigregister
+Brush_swigregister(Brush)
 
-class BrushPtr(Brush):
-    def __init__(self, this):
-        self.this = this
-        if not hasattr(self,"thisown"): self.thisown = 0
-        self.__class__ = Brush
-_gdi_.Brush_swigregister(BrushPtr)
+def BrushFromBitmap(*args, **kwargs):
+    """
+    BrushFromBitmap(Bitmap stippleBitmap) -> Brush
+
+    Constructs a stippled brush using a bitmap.
+    """
+    val = _gdi_.new_BrushFromBitmap(*args, **kwargs)
+    return val
 
 class Bitmap(GDIObject):
     """
@@ -473,28 +477,17 @@ class Bitmap(GDIObject):
     be copied to a window or memory device context using `wx.DC.Blit`, or
     to be used as a drawing surface.
     """
-    def __repr__(self):
-        return "<%s.%s; proxy of C++ wxBitmap instance at %s>" % (self.__class__.__module__, self.__class__.__name__, self.this,)
-    def __init__(self, *args, **kwargs):
+    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc='The membership flag')
+    __repr__ = _swig_repr
+    def __init__(self, *args, **kwargs): 
         """
         __init__(self, String name, int type=BITMAP_TYPE_ANY) -> Bitmap
 
         Loads a bitmap from a file.
         """
-        newobj = _gdi_.new_Bitmap(*args, **kwargs)
-        self.this = newobj.this
-        self.thisown = 1
-        del newobj.thisown
-    def __del__(self, destroy=_gdi_.delete_Bitmap):
-        """__del__(self)"""
-        try:
-            if self.thisown: destroy(self)
-        except: pass
-
-    def SetPalette(*args, **kwargs):
-        """SetPalette(self, Palette palette)"""
-        return _gdi_.Bitmap_SetPalette(*args, **kwargs)
-
+        _gdi_.Bitmap_swiginit(self,_gdi_.new_Bitmap(*args, **kwargs))
+    __swig_destroy__ = _gdi_.delete_Bitmap
+    __del__ = lambda self : None;
     def GetHandle(*args, **kwargs):
         """GetHandle(self) -> long"""
         return _gdi_.Bitmap_GetHandle(*args, **kwargs)
@@ -609,6 +602,14 @@ class Bitmap(GDIObject):
         """
         return _gdi_.Bitmap_LoadFile(*args, **kwargs)
 
+    def GetPalette(*args, **kwargs):
+        """GetPalette(self) -> Palette"""
+        return _gdi_.Bitmap_GetPalette(*args, **kwargs)
+
+    def SetPalette(*args, **kwargs):
+        """SetPalette(self, Palette palette)"""
+        return _gdi_.Bitmap_SetPalette(*args, **kwargs)
+
     def CopyFromIcon(*args, **kwargs):
         """CopyFromIcon(self, Icon icon) -> bool"""
         return _gdi_.Bitmap_CopyFromIcon(*args, **kwargs)
@@ -649,14 +650,6 @@ class Bitmap(GDIObject):
         """CopyFromCursor(self, Cursor cursor) -> bool"""
         return _gdi_.Bitmap_CopyFromCursor(*args, **kwargs)
 
-    def GetQuality(*args, **kwargs):
-        """GetQuality(self) -> int"""
-        return _gdi_.Bitmap_GetQuality(*args, **kwargs)
-
-    def SetQuality(*args, **kwargs):
-        """SetQuality(self, int q)"""
-        return _gdi_.Bitmap_SetQuality(*args, **kwargs)
-
     def __nonzero__(self): return self.Ok() 
     def __eq__(*args, **kwargs):
         """__eq__(self, Bitmap other) -> bool"""
@@ -666,13 +659,8 @@ class Bitmap(GDIObject):
         """__ne__(self, Bitmap other) -> bool"""
         return _gdi_.Bitmap___ne__(*args, **kwargs)
 
-
-class BitmapPtr(Bitmap):
-    def __init__(self, this):
-        self.this = this
-        if not hasattr(self,"thisown"): self.thisown = 0
-        self.__class__ = Bitmap
-_gdi_.Bitmap_swigregister(BitmapPtr)
+Bitmap_swigregister = _gdi_.Bitmap_swigregister
+Bitmap_swigregister(Bitmap)
 
 def EmptyBitmap(*args, **kwargs):
     """
@@ -680,10 +668,9 @@ def EmptyBitmap(*args, **kwargs):
 
     Creates a new bitmap of the given size.  A depth of -1 indicates the
     depth of the current screen or visual. Some platforms only support 1
-    for monochrome and -1 for the current colour setting.
+    for monochrome and -1 for the current display depth.
     """
     val = _gdi_.new_EmptyBitmap(*args, **kwargs)
-    val.thisown = 1
     return val
 
 def BitmapFromIcon(*args, **kwargs):
@@ -693,7 +680,6 @@ def BitmapFromIcon(*args, **kwargs):
     Create a new bitmap from a `wx.Icon` object.
     """
     val = _gdi_.new_BitmapFromIcon(*args, **kwargs)
-    val.thisown = 1
     return val
 
 def BitmapFromImage(*args, **kwargs):
@@ -707,7 +693,6 @@ def BitmapFromImage(*args, **kwargs):
     that a colour reduction may have to take place.
     """
     val = _gdi_.new_BitmapFromImage(*args, **kwargs)
-    val.thisown = 1
     return val
 
 def BitmapFromXPMData(*args, **kwargs):
@@ -717,7 +702,6 @@ def BitmapFromXPMData(*args, **kwargs):
     Construct a Bitmap from a list of strings formatted as XPM data.
     """
     val = _gdi_.new_BitmapFromXPMData(*args, **kwargs)
-    val.thisown = 1
     return val
 
 def BitmapFromBits(*args, **kwargs):
@@ -730,7 +714,6 @@ def BitmapFromBits(*args, **kwargs):
     bit depths, the behaviour is platform dependent.
     """
     val = _gdi_.new_BitmapFromBits(*args, **kwargs)
-    val.thisown = 1
     return val
 
 class Mask(_core.Object):
@@ -745,9 +728,9 @@ class Mask(_core.Object):
     `wx.MemoryDC` with a `wx.Bitmap` selected into it that contains a
     mask.
     """
-    def __repr__(self):
-        return "<%s.%s; proxy of C++ wxMask instance at %s>" % (self.__class__.__module__, self.__class__.__name__, self.this,)
-    def __init__(self, *args, **kwargs):
+    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc='The membership flag')
+    __repr__ = _swig_repr
+    def __init__(self, *args, **kwargs): 
         """
         __init__(self, Bitmap bitmap, Colour colour=NullColour) -> Mask
 
@@ -759,34 +742,22 @@ class Mask(_core.Object):
 
         :see: `wx.Bitmap`, `wx.Colour`
         """
-        newobj = _gdi_.new_Mask(*args, **kwargs)
-        self.this = newobj.this
-        self.thisown = 1
-        del newobj.thisown
-
-class MaskPtr(Mask):
-    def __init__(self, this):
-        self.this = this
-        if not hasattr(self,"thisown"): self.thisown = 0
-        self.__class__ = Mask
-_gdi_.Mask_swigregister(MaskPtr)
+        _gdi_.Mask_swiginit(self,_gdi_.new_Mask(*args, **kwargs))
+    __swig_destroy__ = _gdi_.delete_Mask
+    __del__ = lambda self : None;
+Mask_swigregister = _gdi_.Mask_swigregister
+Mask_swigregister(Mask)
 
 MaskColour = wx._deprecated(Mask, "wx.MaskColour is deprecated, use `wx.Mask` instead.") 
 class Icon(GDIObject):
-    def __repr__(self):
-        return "<%s.%s; proxy of C++ wxIcon instance at %s>" % (self.__class__.__module__, self.__class__.__name__, self.this,)
-    def __init__(self, *args, **kwargs):
+    """Proxy of C++ Icon class"""
+    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc='The membership flag')
+    __repr__ = _swig_repr
+    def __init__(self, *args, **kwargs): 
         """__init__(self, String name, int type, int desiredWidth=-1, int desiredHeight=-1) -> Icon"""
-        newobj = _gdi_.new_Icon(*args, **kwargs)
-        self.this = newobj.this
-        self.thisown = 1
-        del newobj.thisown
-    def __del__(self, destroy=_gdi_.delete_Icon):
-        """__del__(self)"""
-        try:
-            if self.thisown: destroy(self)
-        except: pass
-
+        _gdi_.Icon_swiginit(self,_gdi_.new_Icon(*args, **kwargs))
+    __swig_destroy__ = _gdi_.delete_Icon
+    __del__ = lambda self : None;
     def LoadFile(*args, **kwargs):
         """LoadFile(self, String name, int type) -> bool"""
         return _gdi_.Icon_LoadFile(*args, **kwargs)
@@ -836,53 +807,38 @@ class Icon(GDIObject):
         return _gdi_.Icon_CopyFromBitmap(*args, **kwargs)
 
     def __nonzero__(self): return self.Ok() 
-
-class IconPtr(Icon):
-    def __init__(self, this):
-        self.this = this
-        if not hasattr(self,"thisown"): self.thisown = 0
-        self.__class__ = Icon
-_gdi_.Icon_swigregister(IconPtr)
+Icon_swigregister = _gdi_.Icon_swigregister
+Icon_swigregister(Icon)
 
 def EmptyIcon(*args, **kwargs):
     """EmptyIcon() -> Icon"""
     val = _gdi_.new_EmptyIcon(*args, **kwargs)
-    val.thisown = 1
     return val
 
 def IconFromLocation(*args, **kwargs):
     """IconFromLocation(IconLocation loc) -> Icon"""
     val = _gdi_.new_IconFromLocation(*args, **kwargs)
-    val.thisown = 1
     return val
 
 def IconFromBitmap(*args, **kwargs):
     """IconFromBitmap(Bitmap bmp) -> Icon"""
     val = _gdi_.new_IconFromBitmap(*args, **kwargs)
-    val.thisown = 1
     return val
 
 def IconFromXPMData(*args, **kwargs):
     """IconFromXPMData(PyObject listOfStrings) -> Icon"""
     val = _gdi_.new_IconFromXPMData(*args, **kwargs)
-    val.thisown = 1
     return val
 
 class IconLocation(object):
-    def __repr__(self):
-        return "<%s.%s; proxy of C++ wxIconLocation instance at %s>" % (self.__class__.__module__, self.__class__.__name__, self.this,)
-    def __init__(self, *args, **kwargs):
+    """Proxy of C++ IconLocation class"""
+    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc='The membership flag')
+    __repr__ = _swig_repr
+    def __init__(self, *args, **kwargs): 
         """__init__(self, String filename=&wxPyEmptyString, int num=0) -> IconLocation"""
-        newobj = _gdi_.new_IconLocation(*args, **kwargs)
-        self.this = newobj.this
-        self.thisown = 1
-        del newobj.thisown
-    def __del__(self, destroy=_gdi_.delete_IconLocation):
-        """__del__(self)"""
-        try:
-            if self.thisown: destroy(self)
-        except: pass
-
+        _gdi_.IconLocation_swiginit(self,_gdi_.new_IconLocation(*args, **kwargs))
+    __swig_destroy__ = _gdi_.delete_IconLocation
+    __del__ = lambda self : None;
     def IsOk(*args, **kwargs):
         """IsOk(self) -> bool"""
         return _gdi_.IconLocation_IsOk(*args, **kwargs)
@@ -904,29 +860,18 @@ class IconLocation(object):
         """GetIndex(self) -> int"""
         return _gdi_.IconLocation_GetIndex(*args, **kwargs)
 
-
-class IconLocationPtr(IconLocation):
-    def __init__(self, this):
-        self.this = this
-        if not hasattr(self,"thisown"): self.thisown = 0
-        self.__class__ = IconLocation
-_gdi_.IconLocation_swigregister(IconLocationPtr)
+IconLocation_swigregister = _gdi_.IconLocation_swigregister
+IconLocation_swigregister(IconLocation)
 
 class IconBundle(object):
-    def __repr__(self):
-        return "<%s.%s; proxy of C++ wxIconBundle instance at %s>" % (self.__class__.__module__, self.__class__.__name__, self.this,)
-    def __init__(self, *args, **kwargs):
+    """Proxy of C++ IconBundle class"""
+    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc='The membership flag')
+    __repr__ = _swig_repr
+    def __init__(self, *args, **kwargs): 
         """__init__(self) -> IconBundle"""
-        newobj = _gdi_.new_IconBundle(*args, **kwargs)
-        self.this = newobj.this
-        self.thisown = 1
-        del newobj.thisown
-    def __del__(self, destroy=_gdi_.delete_IconBundle):
-        """__del__(self)"""
-        try:
-            if self.thisown: destroy(self)
-        except: pass
-
+        _gdi_.IconBundle_swiginit(self,_gdi_.new_IconBundle(*args, **kwargs))
+    __swig_destroy__ = _gdi_.delete_IconBundle
+    __del__ = lambda self : None;
     def AddIcon(*args, **kwargs):
         """AddIcon(self, Icon icon)"""
         return _gdi_.IconBundle_AddIcon(*args, **kwargs)
@@ -939,24 +884,17 @@ class IconBundle(object):
         """GetIcon(self, Size size) -> Icon"""
         return _gdi_.IconBundle_GetIcon(*args, **kwargs)
 
-
-class IconBundlePtr(IconBundle):
-    def __init__(self, this):
-        self.this = this
-        if not hasattr(self,"thisown"): self.thisown = 0
-        self.__class__ = IconBundle
-_gdi_.IconBundle_swigregister(IconBundlePtr)
+IconBundle_swigregister = _gdi_.IconBundle_swigregister
+IconBundle_swigregister(IconBundle)
 
 def IconBundleFromFile(*args, **kwargs):
     """IconBundleFromFile(String file, long type) -> IconBundle"""
     val = _gdi_.new_IconBundleFromFile(*args, **kwargs)
-    val.thisown = 1
     return val
 
 def IconBundleFromIcon(*args, **kwargs):
     """IconBundleFromIcon(Icon icon) -> IconBundle"""
     val = _gdi_.new_IconBundleFromIcon(*args, **kwargs)
-    val.thisown = 1
     return val
 
 class Cursor(GDIObject):
@@ -971,29 +909,19 @@ class Cursor(GDIObject):
     global `wx.SetCursor` function is also available for use on MS Windows.
 
     """
-    def __repr__(self):
-        return "<%s.%s; proxy of C++ wxCursor instance at %s>" % (self.__class__.__module__, self.__class__.__name__, self.this,)
-    def __init__(self, *args, **kwargs):
+    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc='The membership flag')
+    __repr__ = _swig_repr
+    def __init__(self, *args, **kwargs): 
         """
         __init__(self, String cursorName, long type, int hotSpotX=0, int hotSpotY=0) -> Cursor
 
         Construct a Cursor from a file.  Specify the type of file using
-        wx.BITAMP_TYPE* constants, and specify the hotspot if not using a cur
+        wx.BITAMP_TYPE* constants, and specify the hotspot if not using a .cur
         file.
-
-        This constructor is not available on wxGTK, use ``wx.StockCursor``,
-        ``wx.CursorFromImage``, or ``wx.CursorFromBits`` instead.
         """
-        newobj = _gdi_.new_Cursor(*args, **kwargs)
-        self.this = newobj.this
-        self.thisown = 1
-        del newobj.thisown
-    def __del__(self, destroy=_gdi_.delete_Cursor):
-        """__del__(self)"""
-        try:
-            if self.thisown: destroy(self)
-        except: pass
-
+        _gdi_.Cursor_swiginit(self,_gdi_.new_Cursor(*args, **kwargs))
+    __swig_destroy__ = _gdi_.delete_Cursor
+    __del__ = lambda self : None;
     def GetHandle(*args, **kwargs):
         """
         GetHandle(self) -> long
@@ -1043,36 +971,27 @@ class Cursor(GDIObject):
         """SetSize(self, Size size)"""
         return _gdi_.Cursor_SetSize(*args, **kwargs)
 
-
-class CursorPtr(Cursor):
-    def __init__(self, this):
-        self.this = this
-        if not hasattr(self,"thisown"): self.thisown = 0
-        self.__class__ = Cursor
-_gdi_.Cursor_swigregister(CursorPtr)
+Cursor_swigregister = _gdi_.Cursor_swigregister
+Cursor_swigregister(Cursor)
 
 def StockCursor(*args, **kwargs):
     """
     StockCursor(int id) -> Cursor
 
     Create a cursor using one of the stock cursors.  Note that not all
-    cursors are available on all platforms.
+    stock cursors are available on all platforms.
     """
     val = _gdi_.new_StockCursor(*args, **kwargs)
-    val.thisown = 1
     return val
 
 def CursorFromImage(*args, **kwargs):
     """
     CursorFromImage(Image image) -> Cursor
 
-    Constructs a cursor from a wxImage. The cursor is monochrome, colors
-    with the RGB elements all greater than 127 will be foreground, colors
-    less than this background. The mask (if any) will be used as
-    transparent.
+    Constructs a cursor from a `wx.Image`. The mask (if any) will be used
+    for setting the transparent portions of the cursor.
     """
     val = _gdi_.new_CursorFromImage(*args, **kwargs)
-    val.thisown = 1
     return val
 
 #---------------------------------------------------------------------------
@@ -1081,20 +1000,14 @@ OutRegion = _gdi_.OutRegion
 PartRegion = _gdi_.PartRegion
 InRegion = _gdi_.InRegion
 class Region(GDIObject):
-    def __repr__(self):
-        return "<%s.%s; proxy of C++ wxRegion instance at %s>" % (self.__class__.__module__, self.__class__.__name__, self.this,)
-    def __init__(self, *args, **kwargs):
+    """Proxy of C++ Region class"""
+    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc='The membership flag')
+    __repr__ = _swig_repr
+    def __init__(self, *args, **kwargs): 
         """__init__(self, int x=0, int y=0, int width=0, int height=0) -> Region"""
-        newobj = _gdi_.new_Region(*args, **kwargs)
-        self.this = newobj.this
-        self.thisown = 1
-        del newobj.thisown
-    def __del__(self, destroy=_gdi_.delete_Region):
-        """__del__(self)"""
-        try:
-            if self.thisown: destroy(self)
-        except: pass
-
+        _gdi_.Region_swiginit(self,_gdi_.new_Region(*args, **kwargs))
+    __swig_destroy__ = _gdi_.delete_Region
+    __del__ = lambda self : None;
     def Clear(*args, **kwargs):
         """Clear(self)"""
         return _gdi_.Region_Clear(*args, **kwargs)
@@ -1187,47 +1100,33 @@ class Region(GDIObject):
         """UnionBitmapColour(self, Bitmap bmp, Colour transColour, int tolerance=0) -> bool"""
         return _gdi_.Region_UnionBitmapColour(*args, **kwargs)
 
-
-class RegionPtr(Region):
-    def __init__(self, this):
-        self.this = this
-        if not hasattr(self,"thisown"): self.thisown = 0
-        self.__class__ = Region
-_gdi_.Region_swigregister(RegionPtr)
+Region_swigregister = _gdi_.Region_swigregister
+Region_swigregister(Region)
 
 def RegionFromBitmap(*args, **kwargs):
     """RegionFromBitmap(Bitmap bmp) -> Region"""
     val = _gdi_.new_RegionFromBitmap(*args, **kwargs)
-    val.thisown = 1
     return val
 
 def RegionFromBitmapColour(*args, **kwargs):
     """RegionFromBitmapColour(Bitmap bmp, Colour transColour, int tolerance=0) -> Region"""
     val = _gdi_.new_RegionFromBitmapColour(*args, **kwargs)
-    val.thisown = 1
     return val
 
 def RegionFromPoints(*args, **kwargs):
-    """RegionFromPoints(int points, Point points_array, int fillStyle=WINDING_RULE) -> Region"""
+    """RegionFromPoints(int points, int fillStyle=WINDING_RULE) -> Region"""
     val = _gdi_.new_RegionFromPoints(*args, **kwargs)
-    val.thisown = 1
     return val
 
 class RegionIterator(_core.Object):
-    def __repr__(self):
-        return "<%s.%s; proxy of C++ wxRegionIterator instance at %s>" % (self.__class__.__module__, self.__class__.__name__, self.this,)
-    def __init__(self, *args, **kwargs):
+    """Proxy of C++ RegionIterator class"""
+    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc='The membership flag')
+    __repr__ = _swig_repr
+    def __init__(self, *args, **kwargs): 
         """__init__(self, Region region) -> RegionIterator"""
-        newobj = _gdi_.new_RegionIterator(*args, **kwargs)
-        self.this = newobj.this
-        self.thisown = 1
-        del newobj.thisown
-    def __del__(self, destroy=_gdi_.delete_RegionIterator):
-        """__del__(self)"""
-        try:
-            if self.thisown: destroy(self)
-        except: pass
-
+        _gdi_.RegionIterator_swiginit(self,_gdi_.new_RegionIterator(*args, **kwargs))
+    __swig_destroy__ = _gdi_.delete_RegionIterator
+    __del__ = lambda self : None;
     def GetX(*args, **kwargs):
         """GetX(self) -> int"""
         return _gdi_.RegionIterator_GetX(*args, **kwargs)
@@ -1272,13 +1171,8 @@ class RegionIterator(_core.Object):
         """__nonzero__(self) -> bool"""
         return _gdi_.RegionIterator___nonzero__(*args, **kwargs)
 
-
-class RegionIteratorPtr(RegionIterator):
-    def __init__(self, this):
-        self.this = this
-        if not hasattr(self,"thisown"): self.thisown = 0
-        self.__class__ = RegionIterator
-_gdi_.RegionIterator_swigregister(RegionIteratorPtr)
+RegionIterator_swigregister = _gdi_.RegionIterator_swigregister
+RegionIterator_swigregister(RegionIterator)
 
 #---------------------------------------------------------------------------
 
@@ -1409,20 +1303,14 @@ FONTENCODING_SHIFT_JIS = _gdi_.FONTENCODING_SHIFT_JIS
 #---------------------------------------------------------------------------
 
 class NativeFontInfo(object):
-    def __repr__(self):
-        return "<%s.%s; proxy of C++ wxNativeFontInfo instance at %s>" % (self.__class__.__module__, self.__class__.__name__, self.this,)
-    def __init__(self, *args, **kwargs):
+    """Proxy of C++ NativeFontInfo class"""
+    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc='The membership flag')
+    __repr__ = _swig_repr
+    def __init__(self, *args, **kwargs): 
         """__init__(self) -> NativeFontInfo"""
-        newobj = _gdi_.new_NativeFontInfo(*args, **kwargs)
-        self.this = newobj.this
-        self.thisown = 1
-        del newobj.thisown
-    def __del__(self, destroy=_gdi_.delete_NativeFontInfo):
-        """__del__(self)"""
-        try:
-            if self.thisown: destroy(self)
-        except: pass
-
+        _gdi_.NativeFontInfo_swiginit(self,_gdi_.new_NativeFontInfo(*args, **kwargs))
+    __swig_destroy__ = _gdi_.delete_NativeFontInfo
+    __del__ = lambda self : None;
     def Init(*args, **kwargs):
         """Init(self)"""
         return _gdi_.NativeFontInfo_Init(*args, **kwargs)
@@ -1515,31 +1403,20 @@ class NativeFontInfo(object):
         """ToUserString(self) -> String"""
         return _gdi_.NativeFontInfo_ToUserString(*args, **kwargs)
 
-
-class NativeFontInfoPtr(NativeFontInfo):
-    def __init__(self, this):
-        self.this = this
-        if not hasattr(self,"thisown"): self.thisown = 0
-        self.__class__ = NativeFontInfo
-_gdi_.NativeFontInfo_swigregister(NativeFontInfoPtr)
+NativeFontInfo_swigregister = _gdi_.NativeFontInfo_swigregister
+NativeFontInfo_swigregister(NativeFontInfo)
 
 class NativeEncodingInfo(object):
-    def __repr__(self):
-        return "<%s.%s; proxy of C++ wxNativeEncodingInfo instance at %s>" % (self.__class__.__module__, self.__class__.__name__, self.this,)
+    """Proxy of C++ NativeEncodingInfo class"""
+    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc='The membership flag')
+    __repr__ = _swig_repr
     facename = property(_gdi_.NativeEncodingInfo_facename_get, _gdi_.NativeEncodingInfo_facename_set)
     encoding = property(_gdi_.NativeEncodingInfo_encoding_get, _gdi_.NativeEncodingInfo_encoding_set)
-    def __init__(self, *args, **kwargs):
+    def __init__(self, *args, **kwargs): 
         """__init__(self) -> NativeEncodingInfo"""
-        newobj = _gdi_.new_NativeEncodingInfo(*args, **kwargs)
-        self.this = newobj.this
-        self.thisown = 1
-        del newobj.thisown
-    def __del__(self, destroy=_gdi_.delete_NativeEncodingInfo):
-        """__del__(self)"""
-        try:
-            if self.thisown: destroy(self)
-        except: pass
-
+        _gdi_.NativeEncodingInfo_swiginit(self,_gdi_.new_NativeEncodingInfo(*args, **kwargs))
+    __swig_destroy__ = _gdi_.delete_NativeEncodingInfo
+    __del__ = lambda self : None;
     def FromString(*args, **kwargs):
         """FromString(self, String s) -> bool"""
         return _gdi_.NativeEncodingInfo_FromString(*args, **kwargs)
@@ -1548,39 +1425,28 @@ class NativeEncodingInfo(object):
         """ToString(self) -> String"""
         return _gdi_.NativeEncodingInfo_ToString(*args, **kwargs)
 
-
-class NativeEncodingInfoPtr(NativeEncodingInfo):
-    def __init__(self, this):
-        self.this = this
-        if not hasattr(self,"thisown"): self.thisown = 0
-        self.__class__ = NativeEncodingInfo
-_gdi_.NativeEncodingInfo_swigregister(NativeEncodingInfoPtr)
+NativeEncodingInfo_swigregister = _gdi_.NativeEncodingInfo_swigregister
+NativeEncodingInfo_swigregister(NativeEncodingInfo)
 
 
 def GetNativeFontEncoding(*args, **kwargs):
-    """GetNativeFontEncoding(int encoding) -> NativeEncodingInfo"""
-    return _gdi_.GetNativeFontEncoding(*args, **kwargs)
+  """GetNativeFontEncoding(int encoding) -> NativeEncodingInfo"""
+  return _gdi_.GetNativeFontEncoding(*args, **kwargs)
 
 def TestFontEncoding(*args, **kwargs):
-    """TestFontEncoding(NativeEncodingInfo info) -> bool"""
-    return _gdi_.TestFontEncoding(*args, **kwargs)
+  """TestFontEncoding(NativeEncodingInfo info) -> bool"""
+  return _gdi_.TestFontEncoding(*args, **kwargs)
 #---------------------------------------------------------------------------
 
 class FontMapper(object):
-    def __repr__(self):
-        return "<%s.%s; proxy of C++ wxFontMapper instance at %s>" % (self.__class__.__module__, self.__class__.__name__, self.this,)
-    def __init__(self, *args, **kwargs):
+    """Proxy of C++ FontMapper class"""
+    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc='The membership flag')
+    __repr__ = _swig_repr
+    def __init__(self, *args, **kwargs): 
         """__init__(self) -> FontMapper"""
-        newobj = _gdi_.new_FontMapper(*args, **kwargs)
-        self.this = newobj.this
-        self.thisown = 1
-        del newobj.thisown
-    def __del__(self, destroy=_gdi_.delete_FontMapper):
-        """__del__(self)"""
-        try:
-            if self.thisown: destroy(self)
-        except: pass
-
+        _gdi_.FontMapper_swiginit(self,_gdi_.new_FontMapper(*args, **kwargs))
+    __swig_destroy__ = _gdi_.delete_FontMapper
+    __del__ = lambda self : None;
     def Get(*args, **kwargs):
         """Get() -> FontMapper"""
         return _gdi_.FontMapper_Get(*args, **kwargs)
@@ -1620,10 +1486,6 @@ class FontMapper(object):
         return _gdi_.FontMapper_GetEncodingFromName(*args, **kwargs)
 
     GetEncodingFromName = staticmethod(GetEncodingFromName)
-    def SetConfig(*args, **kwargs):
-        """SetConfig(self, ConfigBase config)"""
-        return _gdi_.FontMapper_SetConfig(*args, **kwargs)
-
     def SetConfigPath(*args, **kwargs):
         """SetConfigPath(self, String prefix)"""
         return _gdi_.FontMapper_SetConfigPath(*args, **kwargs)
@@ -1649,70 +1511,98 @@ class FontMapper(object):
         """SetDialogTitle(self, String title)"""
         return _gdi_.FontMapper_SetDialogTitle(*args, **kwargs)
 
+FontMapper_swigregister = _gdi_.FontMapper_swigregister
+FontMapper_swigregister(FontMapper)
 
-class FontMapperPtr(FontMapper):
-    def __init__(self, this):
-        self.this = this
-        if not hasattr(self,"thisown"): self.thisown = 0
-        self.__class__ = FontMapper
-_gdi_.FontMapper_swigregister(FontMapperPtr)
-
-def FontMapper_Get(*args, **kwargs):
-    """FontMapper_Get() -> FontMapper"""
-    return _gdi_.FontMapper_Get(*args, **kwargs)
+def FontMapper_Get(*args):
+  """FontMapper_Get() -> FontMapper"""
+  return _gdi_.FontMapper_Get(*args)
 
 def FontMapper_Set(*args, **kwargs):
-    """FontMapper_Set(FontMapper mapper) -> FontMapper"""
-    return _gdi_.FontMapper_Set(*args, **kwargs)
+  """FontMapper_Set(FontMapper mapper) -> FontMapper"""
+  return _gdi_.FontMapper_Set(*args, **kwargs)
 
-def FontMapper_GetSupportedEncodingsCount(*args, **kwargs):
-    """FontMapper_GetSupportedEncodingsCount() -> size_t"""
-    return _gdi_.FontMapper_GetSupportedEncodingsCount(*args, **kwargs)
+def FontMapper_GetSupportedEncodingsCount(*args):
+  """FontMapper_GetSupportedEncodingsCount() -> size_t"""
+  return _gdi_.FontMapper_GetSupportedEncodingsCount(*args)
 
 def FontMapper_GetEncoding(*args, **kwargs):
-    """FontMapper_GetEncoding(size_t n) -> int"""
-    return _gdi_.FontMapper_GetEncoding(*args, **kwargs)
+  """FontMapper_GetEncoding(size_t n) -> int"""
+  return _gdi_.FontMapper_GetEncoding(*args, **kwargs)
 
 def FontMapper_GetEncodingName(*args, **kwargs):
-    """FontMapper_GetEncodingName(int encoding) -> String"""
-    return _gdi_.FontMapper_GetEncodingName(*args, **kwargs)
+  """FontMapper_GetEncodingName(int encoding) -> String"""
+  return _gdi_.FontMapper_GetEncodingName(*args, **kwargs)
 
 def FontMapper_GetEncodingDescription(*args, **kwargs):
-    """FontMapper_GetEncodingDescription(int encoding) -> String"""
-    return _gdi_.FontMapper_GetEncodingDescription(*args, **kwargs)
+  """FontMapper_GetEncodingDescription(int encoding) -> String"""
+  return _gdi_.FontMapper_GetEncodingDescription(*args, **kwargs)
 
 def FontMapper_GetEncodingFromName(*args, **kwargs):
-    """FontMapper_GetEncodingFromName(String name) -> int"""
-    return _gdi_.FontMapper_GetEncodingFromName(*args, **kwargs)
+  """FontMapper_GetEncodingFromName(String name) -> int"""
+  return _gdi_.FontMapper_GetEncodingFromName(*args, **kwargs)
 
-def FontMapper_GetDefaultConfigPath(*args, **kwargs):
-    """FontMapper_GetDefaultConfigPath() -> String"""
-    return _gdi_.FontMapper_GetDefaultConfigPath(*args, **kwargs)
+def FontMapper_GetDefaultConfigPath(*args):
+  """FontMapper_GetDefaultConfigPath() -> String"""
+  return _gdi_.FontMapper_GetDefaultConfigPath(*args)
 
 #---------------------------------------------------------------------------
 
 class Font(GDIObject):
-    def __repr__(self):
-        return "<%s.%s; proxy of C++ wxFont instance at %s>" % (self.__class__.__module__, self.__class__.__name__, self.this,)
-    def __init__(self, *args, **kwargs):
+    """
+    A font is an object which determines the appearance of text. Fonts are
+    used for drawing text to a device context, and setting the appearance
+    of a window's text.
+
+    You can retrieve the current system font settings with `wx.SystemSettings`.
+    """
+    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc='The membership flag')
+    __repr__ = _swig_repr
+    def __init__(self, *args, **kwargs): 
         """
         __init__(self, int pointSize, int family, int style, int weight, bool underline=False, 
             String face=EmptyString, 
             int encoding=FONTENCODING_DEFAULT) -> Font
+
+        Creates a font object with the specified attributes.
+
+            :param pointSize:  The size of the font in points.
+
+            :param family: Font family.  A generic way of referring to fonts
+                without specifying actual facename.  It can be One of 
+                the ``wx.FONTFAMILY_xxx`` constants.
+
+            :param style: One of the ``wx.FONTSTYLE_xxx`` constants.
+
+            :param weight: Font weight, sometimes also referred to as font
+                boldness. One of the ``wx.FONTWEIGHT_xxx`` constants.
+
+            :param underline: The value can be ``True`` or ``False`` and
+                indicates whether the font will include an underline.  This
+                may not be supported on all platforms.
+
+            :param face: An optional string specifying the actual typeface to
+                be used. If it is an empty string, a default typeface will be
+                chosen based on the family.
+
+            :param encoding: An encoding which may be one of the
+                ``wx.FONTENCODING_xxx`` constants.  If the specified encoding isn't
+                available, no font is created.
+
+        :see: `wx.FFont`, `wx.FontFromPixelSize`, `wx.FFontFromPixelSize`,
+            `wx.FontFromNativeInfoString`, `wx.FontFromNativeInfo`
+
         """
         if kwargs.has_key('faceName'): kwargs['face'] = kwargs['faceName'];del kwargs['faceName']
-        newobj = _gdi_.new_Font(*args, **kwargs)
-        self.this = newobj.this
-        self.thisown = 1
-        del newobj.thisown
-    def __del__(self, destroy=_gdi_.delete_Font):
-        """__del__(self)"""
-        try:
-            if self.thisown: destroy(self)
-        except: pass
-
+        _gdi_.Font_swiginit(self,_gdi_.new_Font(*args, **kwargs))
+    __swig_destroy__ = _gdi_.delete_Font
+    __del__ = lambda self : None;
     def Ok(*args, **kwargs):
-        """Ok(self) -> bool"""
+        """
+        Ok(self) -> bool
+
+        Returns ``True`` if this font was successfully created.
+        """
         return _gdi_.Font_Ok(*args, **kwargs)
 
     def __nonzero__(self): return self.Ok() 
@@ -1725,111 +1615,234 @@ class Font(GDIObject):
         return _gdi_.Font___ne__(*args, **kwargs)
 
     def GetPointSize(*args, **kwargs):
-        """GetPointSize(self) -> int"""
+        """
+        GetPointSize(self) -> int
+
+        Gets the point size.
+        """
         return _gdi_.Font_GetPointSize(*args, **kwargs)
 
     def GetPixelSize(*args, **kwargs):
-        """GetPixelSize(self) -> Size"""
+        """
+        GetPixelSize(self) -> Size
+
+        Returns the size in pixels if the font was constructed with a pixel
+        size.
+        """
         return _gdi_.Font_GetPixelSize(*args, **kwargs)
 
     def IsUsingSizeInPixels(*args, **kwargs):
-        """IsUsingSizeInPixels(self) -> bool"""
+        """
+        IsUsingSizeInPixels(self) -> bool
+
+        Returns ``True`` if the font is using a pixelSize.
+        """
         return _gdi_.Font_IsUsingSizeInPixels(*args, **kwargs)
 
     def GetFamily(*args, **kwargs):
-        """GetFamily(self) -> int"""
+        """
+        GetFamily(self) -> int
+
+        Gets the font family. 
+        """
         return _gdi_.Font_GetFamily(*args, **kwargs)
 
     def GetStyle(*args, **kwargs):
-        """GetStyle(self) -> int"""
+        """
+        GetStyle(self) -> int
+
+        Gets the font style.
+        """
         return _gdi_.Font_GetStyle(*args, **kwargs)
 
     def GetWeight(*args, **kwargs):
-        """GetWeight(self) -> int"""
+        """
+        GetWeight(self) -> int
+
+        Gets the font weight. 
+        """
         return _gdi_.Font_GetWeight(*args, **kwargs)
 
     def GetUnderlined(*args, **kwargs):
-        """GetUnderlined(self) -> bool"""
+        """
+        GetUnderlined(self) -> bool
+
+        Returns ``True`` if the font is underlined, ``False`` otherwise.
+        """
         return _gdi_.Font_GetUnderlined(*args, **kwargs)
 
     def GetFaceName(*args, **kwargs):
-        """GetFaceName(self) -> String"""
+        """
+        GetFaceName(self) -> String
+
+        Returns the typeface name associated with the font, or the empty
+        string if there is no typeface information.
+        """
         return _gdi_.Font_GetFaceName(*args, **kwargs)
 
     def GetEncoding(*args, **kwargs):
-        """GetEncoding(self) -> int"""
+        """
+        GetEncoding(self) -> int
+
+        Get the font's encoding.
+        """
         return _gdi_.Font_GetEncoding(*args, **kwargs)
 
     def GetNativeFontInfo(*args, **kwargs):
-        """GetNativeFontInfo(self) -> NativeFontInfo"""
+        """
+        GetNativeFontInfo(self) -> NativeFontInfo
+
+        Constructs a `wx.NativeFontInfo` object from this font.
+        """
         return _gdi_.Font_GetNativeFontInfo(*args, **kwargs)
 
     def IsFixedWidth(*args, **kwargs):
-        """IsFixedWidth(self) -> bool"""
+        """
+        IsFixedWidth(self) -> bool
+
+        Returns true if the font is a fixed width (or monospaced) font, false
+        if it is a proportional one or font is invalid.
+        """
         return _gdi_.Font_IsFixedWidth(*args, **kwargs)
 
     def GetNativeFontInfoDesc(*args, **kwargs):
-        """GetNativeFontInfoDesc(self) -> String"""
+        """
+        GetNativeFontInfoDesc(self) -> String
+
+        Returns the platform-dependent string completely describing this font
+        or an empty string if the font isn't valid.
+        """
         return _gdi_.Font_GetNativeFontInfoDesc(*args, **kwargs)
 
     def GetNativeFontInfoUserDesc(*args, **kwargs):
-        """GetNativeFontInfoUserDesc(self) -> String"""
+        """
+        GetNativeFontInfoUserDesc(self) -> String
+
+        Returns a human readable version of `GetNativeFontInfoDesc`.
+        """
         return _gdi_.Font_GetNativeFontInfoUserDesc(*args, **kwargs)
 
     def SetPointSize(*args, **kwargs):
-        """SetPointSize(self, int pointSize)"""
+        """
+        SetPointSize(self, int pointSize)
+
+        Sets the point size.
+        """
         return _gdi_.Font_SetPointSize(*args, **kwargs)
 
     def SetPixelSize(*args, **kwargs):
-        """SetPixelSize(self, Size pixelSize)"""
+        """
+        SetPixelSize(self, Size pixelSize)
+
+        Sets the size in pixels rather than points.  If there is platform API
+        support for this then it is used, otherwise a font with the closest
+        size is found using a binary search.
+        """
         return _gdi_.Font_SetPixelSize(*args, **kwargs)
 
     def SetFamily(*args, **kwargs):
-        """SetFamily(self, int family)"""
+        """
+        SetFamily(self, int family)
+
+        Sets the font family.
+        """
         return _gdi_.Font_SetFamily(*args, **kwargs)
 
     def SetStyle(*args, **kwargs):
-        """SetStyle(self, int style)"""
+        """
+        SetStyle(self, int style)
+
+        Sets the font style.
+        """
         return _gdi_.Font_SetStyle(*args, **kwargs)
 
     def SetWeight(*args, **kwargs):
-        """SetWeight(self, int weight)"""
+        """
+        SetWeight(self, int weight)
+
+        Sets the font weight.
+        """
         return _gdi_.Font_SetWeight(*args, **kwargs)
 
     def SetFaceName(*args, **kwargs):
-        """SetFaceName(self, String faceName)"""
+        """
+        SetFaceName(self, String faceName)
+
+        Sets the facename for the font.  The facename, which should be a valid
+        font installed on the end-user's system.
+
+        To avoid portability problems, don't rely on a specific face, but
+        specify the font family instead or as well. A suitable font will be
+        found on the end-user's system. If both the family and the facename
+        are specified, wxWidgets will first search for the specific face, and
+        then for a font belonging to the same family.
+        """
         return _gdi_.Font_SetFaceName(*args, **kwargs)
 
     def SetUnderlined(*args, **kwargs):
-        """SetUnderlined(self, bool underlined)"""
+        """
+        SetUnderlined(self, bool underlined)
+
+        Sets underlining.
+        """
         return _gdi_.Font_SetUnderlined(*args, **kwargs)
 
     def SetEncoding(*args, **kwargs):
-        """SetEncoding(self, int encoding)"""
+        """
+        SetEncoding(self, int encoding)
+
+        Set the font encoding.
+        """
         return _gdi_.Font_SetEncoding(*args, **kwargs)
 
     def SetNativeFontInfo(*args, **kwargs):
-        """SetNativeFontInfo(self, NativeFontInfo info)"""
+        """
+        SetNativeFontInfo(self, NativeFontInfo info)
+
+        Set the font's attributes from a `wx.NativeFontInfo` object.
+        """
         return _gdi_.Font_SetNativeFontInfo(*args, **kwargs)
 
     def SetNativeFontInfoFromString(*args, **kwargs):
-        """SetNativeFontInfoFromString(self, String info)"""
+        """
+        SetNativeFontInfoFromString(self, String info)
+
+        Set the font's attributes from string representation of a
+        `wx.NativeFontInfo` object.
+        """
         return _gdi_.Font_SetNativeFontInfoFromString(*args, **kwargs)
 
     def SetNativeFontInfoUserDesc(*args, **kwargs):
-        """SetNativeFontInfoUserDesc(self, String info)"""
+        """
+        SetNativeFontInfoUserDesc(self, String info)
+
+        Set the font's attributes from a string formerly returned from
+        `GetNativeFontInfoDesc`.
+        """
         return _gdi_.Font_SetNativeFontInfoUserDesc(*args, **kwargs)
 
     def GetFamilyString(*args, **kwargs):
-        """GetFamilyString(self) -> String"""
+        """
+        GetFamilyString(self) -> String
+
+        Returns a string representation of the font family.
+        """
         return _gdi_.Font_GetFamilyString(*args, **kwargs)
 
     def GetStyleString(*args, **kwargs):
-        """GetStyleString(self) -> String"""
+        """
+        GetStyleString(self) -> String
+
+        Returns a string representation of the font style.
+        """
         return _gdi_.Font_GetStyleString(*args, **kwargs)
 
     def GetWeightString(*args, **kwargs):
-        """GetWeightString(self) -> String"""
+        """
+        GetWeightString(self) -> String
+
+        Return a string representation of the font weight.
+        """
         return _gdi_.Font_GetWeightString(*args, **kwargs)
 
     def SetNoAntiAliasing(*args, **kwargs):
@@ -1841,45 +1854,73 @@ class Font(GDIObject):
         return _gdi_.Font_GetNoAntiAliasing(*args, **kwargs)
 
     def GetDefaultEncoding(*args, **kwargs):
-        """GetDefaultEncoding() -> int"""
+        """
+        GetDefaultEncoding() -> int
+
+        Returns the encoding used for all fonts created with an encoding of
+        ``wx.FONTENCODING_DEFAULT``.
+        """
         return _gdi_.Font_GetDefaultEncoding(*args, **kwargs)
 
     GetDefaultEncoding = staticmethod(GetDefaultEncoding)
     def SetDefaultEncoding(*args, **kwargs):
-        """SetDefaultEncoding(int encoding)"""
+        """
+        SetDefaultEncoding(int encoding)
+
+        Sets the default font encoding.
+        """
         return _gdi_.Font_SetDefaultEncoding(*args, **kwargs)
 
     SetDefaultEncoding = staticmethod(SetDefaultEncoding)
-
-class FontPtr(Font):
-    def __init__(self, this):
-        self.this = this
-        if not hasattr(self,"thisown"): self.thisown = 0
-        self.__class__ = Font
-_gdi_.Font_swigregister(FontPtr)
+Font_swigregister = _gdi_.Font_swigregister
+Font_swigregister(Font)
 
 def FontFromNativeInfo(*args, **kwargs):
-    """FontFromNativeInfo(NativeFontInfo info) -> Font"""
+    """
+    FontFromNativeInfo(NativeFontInfo info) -> Font
+
+    Construct a `wx.Font` from a `wx.NativeFontInfo` object.
+    """
     if kwargs.has_key('faceName'): kwargs['face'] = kwargs['faceName'];del kwargs['faceName']
     val = _gdi_.new_FontFromNativeInfo(*args, **kwargs)
-    val.thisown = 1
     return val
 
 def FontFromNativeInfoString(*args, **kwargs):
-    """FontFromNativeInfoString(String info) -> Font"""
+    """
+    FontFromNativeInfoString(String info) -> Font
+
+    Construct a `wx.Font` from the string representation of a
+    `wx.NativeFontInfo` object.
+    """
     if kwargs.has_key('faceName'): kwargs['face'] = kwargs['faceName'];del kwargs['faceName']
     val = _gdi_.new_FontFromNativeInfoString(*args, **kwargs)
-    val.thisown = 1
     return val
 
-def Font2(*args, **kwargs):
+def FFont(*args, **kwargs):
     """
-    Font2(int pointSize, int family, int flags=FONTFLAG_DEFAULT, 
+    FFont(int pointSize, int family, int flags=FONTFLAG_DEFAULT, 
         String face=EmptyString, int encoding=FONTENCODING_DEFAULT) -> Font
+
+    A bit of a simpler way to create a `wx.Font` using flags instead of
+    individual attribute settings.  The value of flags can be a
+    combination of the following:
+
+        ============================  ==
+        wx.FONTFLAG_DEFAULT
+        wx.FONTFLAG_ITALIC
+        wx.FONTFLAG_SLANT
+        wx.FONTFLAG_LIGHT
+        wx.FONTFLAG_BOLD
+        wx.FONTFLAG_ANTIALIASED
+        wx.FONTFLAG_NOT_ANTIALIASED
+        wx.FONTFLAG_UNDERLINED
+        wx.FONTFLAG_STRIKETHROUGH
+        ============================  ==
+
+    :see: `wx.Font.__init__`
     """
     if kwargs.has_key('faceName'): kwargs['face'] = kwargs['faceName'];del kwargs['faceName']
-    val = _gdi_.new_Font2(*args, **kwargs)
-    val.thisown = 1
+    val = _gdi_.new_FFont(*args, **kwargs)
     return val
 
 def FontFromPixelSize(*args, **kwargs):
@@ -1887,39 +1928,63 @@ def FontFromPixelSize(*args, **kwargs):
     FontFromPixelSize(Size pixelSize, int family, int style, int weight, 
         bool underlined=False, String face=wxEmptyString, 
         int encoding=FONTENCODING_DEFAULT) -> Font
+
+    Creates a font using a size in pixels rather than points.  If there is
+    platform API support for this then it is used, otherwise a font with
+    the closest size is found using a binary search.
+
+    :see: `wx.Font.__init__`
     """
     if kwargs.has_key('faceName'): kwargs['face'] = kwargs['faceName'];del kwargs['faceName']
     val = _gdi_.new_FontFromPixelSize(*args, **kwargs)
-    val.thisown = 1
     return val
 
-def Font_GetDefaultEncoding(*args, **kwargs):
-    """Font_GetDefaultEncoding() -> int"""
-    return _gdi_.Font_GetDefaultEncoding(*args, **kwargs)
+def FFontFromPixelSize(*args, **kwargs):
+    """
+    FFontFromPixelSize(Size pixelSize, int family, int flags=FONTFLAG_DEFAULT, 
+        String face=wxEmptyString, int encoding=FONTENCODING_DEFAULT) -> Font
+
+    Creates a font using a size in pixels rather than points.  If there is
+    platform API support for this then it is used, otherwise a font with
+    the closest size is found using a binary search.
+
+    :see: `wx.Font.__init__`, `wx.FFont`
+    """
+    if kwargs.has_key('faceName'): kwargs['face'] = kwargs['faceName'];del kwargs['faceName']
+    val = _gdi_.new_FFontFromPixelSize(*args, **kwargs)
+    return val
+
+def Font_GetDefaultEncoding(*args):
+  """
+    Font_GetDefaultEncoding() -> int
+
+    Returns the encoding used for all fonts created with an encoding of
+    ``wx.FONTENCODING_DEFAULT``.
+    """
+  return _gdi_.Font_GetDefaultEncoding(*args)
 
 def Font_SetDefaultEncoding(*args, **kwargs):
-    """Font_SetDefaultEncoding(int encoding)"""
-    return _gdi_.Font_SetDefaultEncoding(*args, **kwargs)
+  """
+    Font_SetDefaultEncoding(int encoding)
+
+    Sets the default font encoding.
+    """
+  return _gdi_.Font_SetDefaultEncoding(*args, **kwargs)
 
+Font2 = wx._deprecated(FFont, "Use `wx.FFont` instead.") 
 #---------------------------------------------------------------------------
 
 class FontEnumerator(object):
-    def __repr__(self):
-        return "<%s.%s; proxy of C++ wxPyFontEnumerator instance at %s>" % (self.__class__.__module__, self.__class__.__name__, self.this,)
-    def __init__(self, *args, **kwargs):
+    """Proxy of C++ FontEnumerator class"""
+    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc='The membership flag')
+    __repr__ = _swig_repr
+    def __init__(self, *args, **kwargs): 
         """__init__(self) -> FontEnumerator"""
-        newobj = _gdi_.new_FontEnumerator(*args, **kwargs)
-        self.this = newobj.this
-        self.thisown = 1
-        del newobj.thisown
+        _gdi_.FontEnumerator_swiginit(self,_gdi_.new_FontEnumerator(*args, **kwargs))
         self._setCallbackInfo(self, FontEnumerator, 0)
 
-    def __del__(self, destroy=_gdi_.delete_FontEnumerator):
-        """__del__(self)"""
-        try:
-            if self.thisown: destroy(self)
-        except: pass
-
+    __swig_destroy__ = _gdi_.delete_FontEnumerator
+    __del__ = lambda self : None;
     def _setCallbackInfo(*args, **kwargs):
         """_setCallbackInfo(self, PyObject self, PyObject _class, bool incref)"""
         return _gdi_.FontEnumerator__setCallbackInfo(*args, **kwargs)
@@ -1940,13 +2005,8 @@ class FontEnumerator(object):
         """GetFacenames(self) -> PyObject"""
         return _gdi_.FontEnumerator_GetFacenames(*args, **kwargs)
 
-
-class FontEnumeratorPtr(FontEnumerator):
-    def __init__(self, this):
-        self.this = this
-        if not hasattr(self,"thisown"): self.thisown = 0
-        self.__class__ = FontEnumerator
-_gdi_.FontEnumerator_swigregister(FontEnumeratorPtr)
+FontEnumerator_swigregister = _gdi_.FontEnumerator_swigregister
+FontEnumerator_swigregister(FontEnumerator)
 
 #---------------------------------------------------------------------------
 
@@ -2182,19 +2242,15 @@ LANGUAGE_ZHUANG = _gdi_.LANGUAGE_ZHUANG
 LANGUAGE_ZULU = _gdi_.LANGUAGE_ZULU
 LANGUAGE_USER_DEFINED = _gdi_.LANGUAGE_USER_DEFINED
 class LanguageInfo(object):
-    def __init__(self): raise RuntimeError, "No constructor defined"
-    def __repr__(self):
-        return "<%s.%s; proxy of C++ wxLanguageInfo instance at %s>" % (self.__class__.__module__, self.__class__.__name__, self.this,)
+    """Proxy of C++ LanguageInfo class"""
+    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc='The membership flag')
+    def __init__(self): raise AttributeError, "No constructor defined"
+    __repr__ = _swig_repr
     Language = property(_gdi_.LanguageInfo_Language_get, _gdi_.LanguageInfo_Language_set)
     CanonicalName = property(_gdi_.LanguageInfo_CanonicalName_get, _gdi_.LanguageInfo_CanonicalName_set)
     Description = property(_gdi_.LanguageInfo_Description_get, _gdi_.LanguageInfo_Description_set)
-
-class LanguageInfoPtr(LanguageInfo):
-    def __init__(self, this):
-        self.this = this
-        if not hasattr(self,"thisown"): self.thisown = 0
-        self.__class__ = LanguageInfo
-_gdi_.LanguageInfo_swigregister(LanguageInfoPtr)
+LanguageInfo_swigregister = _gdi_.LanguageInfo_swigregister
+LanguageInfo_swigregister(LanguageInfo)
 
 LOCALE_CAT_NUMBER = _gdi_.LOCALE_CAT_NUMBER
 LOCALE_CAT_DATE = _gdi_.LOCALE_CAT_DATE
@@ -2205,20 +2261,14 @@ LOCALE_DECIMAL_POINT = _gdi_.LOCALE_DECIMAL_POINT
 LOCALE_LOAD_DEFAULT = _gdi_.LOCALE_LOAD_DEFAULT
 LOCALE_CONV_ENCODING = _gdi_.LOCALE_CONV_ENCODING
 class Locale(object):
-    def __repr__(self):
-        return "<%s.%s; proxy of C++ wxLocale instance at %s>" % (self.__class__.__module__, self.__class__.__name__, self.this,)
-    def __init__(self, *args, **kwargs):
+    """Proxy of C++ Locale class"""
+    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc='The membership flag')
+    __repr__ = _swig_repr
+    def __init__(self, *args, **kwargs): 
         """__init__(self, int language=-1, int flags=wxLOCALE_LOAD_DEFAULT|wxLOCALE_CONV_ENCODING) -> Locale"""
-        newobj = _gdi_.new_Locale(*args, **kwargs)
-        self.this = newobj.this
-        self.thisown = 1
-        del newobj.thisown
-    def __del__(self, destroy=_gdi_.delete_Locale):
-        """__del__(self)"""
-        try:
-            if self.thisown: destroy(self)
-        except: pass
-
+        _gdi_.Locale_swiginit(self,_gdi_.new_Locale(*args, **kwargs))
+    __swig_destroy__ = _gdi_.delete_Locale
+    __del__ = lambda self : None;
     def Init1(*args, **kwargs):
         """
         Init1(self, String szName, String szShort=EmptyString, String szLocale=EmptyString, 
@@ -2315,50 +2365,45 @@ class Locale(object):
         """GetName(self) -> String"""
         return _gdi_.Locale_GetName(*args, **kwargs)
 
+Locale_swigregister = _gdi_.Locale_swigregister
+Locale_swigregister(Locale)
 
-class LocalePtr(Locale):
-    def __init__(self, this):
-        self.this = this
-        if not hasattr(self,"thisown"): self.thisown = 0
-        self.__class__ = Locale
-_gdi_.Locale_swigregister(LocalePtr)
-
-def Locale_GetSystemLanguage(*args, **kwargs):
-    """Locale_GetSystemLanguage() -> int"""
-    return _gdi_.Locale_GetSystemLanguage(*args, **kwargs)
+def Locale_GetSystemLanguage(*args):
+  """Locale_GetSystemLanguage() -> int"""
+  return _gdi_.Locale_GetSystemLanguage(*args)
 
-def Locale_GetSystemEncoding(*args, **kwargs):
-    """Locale_GetSystemEncoding() -> int"""
-    return _gdi_.Locale_GetSystemEncoding(*args, **kwargs)
+def Locale_GetSystemEncoding(*args):
+  """Locale_GetSystemEncoding() -> int"""
+  return _gdi_.Locale_GetSystemEncoding(*args)
 
-def Locale_GetSystemEncodingName(*args, **kwargs):
-    """Locale_GetSystemEncodingName() -> String"""
-    return _gdi_.Locale_GetSystemEncodingName(*args, **kwargs)
+def Locale_GetSystemEncodingName(*args):
+  """Locale_GetSystemEncodingName() -> String"""
+  return _gdi_.Locale_GetSystemEncodingName(*args)
 
 def Locale_AddCatalogLookupPathPrefix(*args, **kwargs):
-    """Locale_AddCatalogLookupPathPrefix(String prefix)"""
-    return _gdi_.Locale_AddCatalogLookupPathPrefix(*args, **kwargs)
+  """Locale_AddCatalogLookupPathPrefix(String prefix)"""
+  return _gdi_.Locale_AddCatalogLookupPathPrefix(*args, **kwargs)
 
 def Locale_GetLanguageInfo(*args, **kwargs):
-    """Locale_GetLanguageInfo(int lang) -> LanguageInfo"""
-    return _gdi_.Locale_GetLanguageInfo(*args, **kwargs)
+  """Locale_GetLanguageInfo(int lang) -> LanguageInfo"""
+  return _gdi_.Locale_GetLanguageInfo(*args, **kwargs)
 
 def Locale_GetLanguageName(*args, **kwargs):
-    """Locale_GetLanguageName(int lang) -> String"""
-    return _gdi_.Locale_GetLanguageName(*args, **kwargs)
+  """Locale_GetLanguageName(int lang) -> String"""
+  return _gdi_.Locale_GetLanguageName(*args, **kwargs)
 
 def Locale_FindLanguageInfo(*args, **kwargs):
-    """Locale_FindLanguageInfo(String locale) -> LanguageInfo"""
-    return _gdi_.Locale_FindLanguageInfo(*args, **kwargs)
+  """Locale_FindLanguageInfo(String locale) -> LanguageInfo"""
+  return _gdi_.Locale_FindLanguageInfo(*args, **kwargs)
 
 def Locale_AddLanguage(*args, **kwargs):
-    """Locale_AddLanguage(LanguageInfo info)"""
-    return _gdi_.Locale_AddLanguage(*args, **kwargs)
+  """Locale_AddLanguage(LanguageInfo info)"""
+  return _gdi_.Locale_AddLanguage(*args, **kwargs)
 
 
-def GetLocale(*args, **kwargs):
-    """GetLocale() -> Locale"""
-    return _gdi_.GetLocale(*args, **kwargs)
+def GetLocale(*args):
+  """GetLocale() -> Locale"""
+  return _gdi_.GetLocale(*args)
 #---------------------------------------------------------------------------
 
 CONVERT_STRICT = _gdi_.CONVERT_STRICT
@@ -2369,20 +2414,14 @@ PLATFORM_WINDOWS = _gdi_.PLATFORM_WINDOWS
 PLATFORM_OS2 = _gdi_.PLATFORM_OS2
 PLATFORM_MAC = _gdi_.PLATFORM_MAC
 class EncodingConverter(_core.Object):
-    def __repr__(self):
-        return "<%s.%s; proxy of C++ wxEncodingConverter instance at %s>" % (self.__class__.__module__, self.__class__.__name__, self.this,)
-    def __init__(self, *args, **kwargs):
+    """Proxy of C++ EncodingConverter class"""
+    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc='The membership flag')
+    __repr__ = _swig_repr
+    def __init__(self, *args, **kwargs): 
         """__init__(self) -> EncodingConverter"""
-        newobj = _gdi_.new_EncodingConverter(*args, **kwargs)
-        self.this = newobj.this
-        self.thisown = 1
-        del newobj.thisown
-    def __del__(self, destroy=_gdi_.delete_EncodingConverter):
-        """__del__(self)"""
-        try:
-            if self.thisown: destroy(self)
-        except: pass
-
+        _gdi_.EncodingConverter_swiginit(self,_gdi_.new_EncodingConverter(*args, **kwargs))
+    __swig_destroy__ = _gdi_.delete_EncodingConverter
+    __del__ = lambda self : None;
     def Init(*args, **kwargs):
         """Init(self, int input_enc, int output_enc, int method=CONVERT_STRICT) -> bool"""
         return _gdi_.EncodingConverter_Init(*args, **kwargs)
@@ -2407,40 +2446,35 @@ class EncodingConverter(_core.Object):
 
     CanConvert = staticmethod(CanConvert)
     def __nonzero__(self): return self.IsOk() 
-
-class EncodingConverterPtr(EncodingConverter):
-    def __init__(self, this):
-        self.this = this
-        if not hasattr(self,"thisown"): self.thisown = 0
-        self.__class__ = EncodingConverter
-_gdi_.EncodingConverter_swigregister(EncodingConverterPtr)
+EncodingConverter_swigregister = _gdi_.EncodingConverter_swigregister
+EncodingConverter_swigregister(EncodingConverter)
 
 def GetTranslation(*args):
-    """
+  """
     GetTranslation(String str) -> String
     GetTranslation(String str, String strPlural, size_t n) -> String
     """
-    return _gdi_.GetTranslation(*args)
+  return _gdi_.GetTranslation(*args)
 
 def EncodingConverter_GetPlatformEquivalents(*args, **kwargs):
-    """EncodingConverter_GetPlatformEquivalents(int enc, int platform=PLATFORM_CURRENT) -> wxFontEncodingArray"""
-    return _gdi_.EncodingConverter_GetPlatformEquivalents(*args, **kwargs)
+  """EncodingConverter_GetPlatformEquivalents(int enc, int platform=PLATFORM_CURRENT) -> wxFontEncodingArray"""
+  return _gdi_.EncodingConverter_GetPlatformEquivalents(*args, **kwargs)
 
 def EncodingConverter_GetAllEquivalents(*args, **kwargs):
-    """EncodingConverter_GetAllEquivalents(int enc) -> wxFontEncodingArray"""
-    return _gdi_.EncodingConverter_GetAllEquivalents(*args, **kwargs)
+  """EncodingConverter_GetAllEquivalents(int enc) -> wxFontEncodingArray"""
+  return _gdi_.EncodingConverter_GetAllEquivalents(*args, **kwargs)
 
 def EncodingConverter_CanConvert(*args, **kwargs):
-    """EncodingConverter_CanConvert(int encIn, int encOut) -> bool"""
-    return _gdi_.EncodingConverter_CanConvert(*args, **kwargs)
+  """EncodingConverter_CanConvert(int encIn, int encOut) -> bool"""
+  return _gdi_.EncodingConverter_CanConvert(*args, **kwargs)
 
 #----------------------------------------------------------------------------
 # On MSW add the directory where the wxWidgets catalogs were installed
 # to the default catalog path.
 if wx.Platform == "__WXMSW__":
     import os
-    localedir = os.path.join(os.path.split(__file__)[0], "locale")
-    Locale_AddCatalogLookupPathPrefix(localedir)
+    _localedir = os.path.join(os.path.split(__file__)[0], "locale")
+    Locale.AddCatalogLookupPathPrefix(_localedir)
     del os
 
 #----------------------------------------------------------------------------
@@ -2463,36 +2497,15 @@ class DC(_core.Object):
     one of the derived classes instead.  Which one will depend on the
     situation in which it is used.
     """
-    def __init__(self): raise RuntimeError, "No constructor defined"
-    def __repr__(self):
-        return "<%s.%s; proxy of C++ wxDC instance at %s>" % (self.__class__.__module__, self.__class__.__name__, self.this,)
-    def __del__(self, destroy=_gdi_.delete_DC):
-        """__del__(self)"""
-        try:
-            if self.thisown: destroy(self)
-        except: pass
-
-    def BeginDrawing(*args, **kwargs):
-        """
-        BeginDrawing(self)
-
-        Allows for optimization of drawing code on platforms that need it.  On
-        other platforms this is just an empty function and is harmless.  To
-        take advantage of this postential optimization simply enclose each
-        group of calls to the drawing primitives within calls to
-        `BeginDrawing` and `EndDrawing`.
-        """
-        return _gdi_.DC_BeginDrawing(*args, **kwargs)
-
-    def EndDrawing(*args, **kwargs):
-        """
-        EndDrawing(self)
-
-        Ends the group of drawing primitives started with `BeginDrawing`, and
-        invokes whatever optimization is available for this DC type on the
-        current platform.
-        """
-        return _gdi_.DC_EndDrawing(*args, **kwargs)
+    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc='The membership flag')
+    def __init__(self): raise AttributeError, "No constructor defined"
+    __repr__ = _swig_repr
+    __swig_destroy__ = _gdi_.delete_DC
+    __del__ = lambda self : None;
+    # These have been deprecated in wxWidgets.  Since they never
+    # really did anything to begin with, just make them be NOPs.
+    def BeginDrawing(self):  pass
+    def EndDrawing(self):  pass
 
     def FloodFill(*args, **kwargs):
         """
@@ -2536,6 +2549,34 @@ class DC(_core.Object):
         """
         return _gdi_.DC_FloodFillPoint(*args, **kwargs)
 
+    def GradientFillConcentric(*args, **kwargs):
+        """
+        GradientFillConcentric(self, Rect rect, Colour initialColour, Colour destColour, 
+            Point circleCenter)
+
+        Fill the area specified by rect with a radial gradient, starting from
+        initialColour in the center of the circle and fading to destColour on
+        the outside of the circle.  The circleCenter argument is the relative
+        coordinants of the center of the circle in the specified rect.
+
+        Note: Currently this function is very slow, don't use it for real-time
+        drawing.
+        """
+        return _gdi_.DC_GradientFillConcentric(*args, **kwargs)
+
+    def GradientFillLinear(*args, **kwargs):
+        """
+        GradientFillLinear(self, Rect rect, Colour initialColour, Colour destColour, 
+            int nDirection=EAST)
+
+        Fill the area specified by rect with a linear gradient, starting from
+        initialColour and eventually fading to destColour. The nDirection
+        parameter specifies the direction of the colour change, default is to
+        use initialColour on the left part of the rectangle and destColour on
+        the right side.
+        """
+        return _gdi_.DC_GradientFillLinear(*args, **kwargs)
+
     def GetPixel(*args, **kwargs):
         """
         GetPixel(self, int x, int y) -> Colour
@@ -3247,7 +3288,7 @@ class DC(_core.Object):
         *text*. The generic version simply builds a running total of the widths
         of each character using GetTextExtent, however if the various
         platforms have a native API function that is faster or more accurate
-        than the generic implementaiton then it will be used instead.
+        than the generic implementation then it will be used instead.
         """
         return _gdi_.DC_GetPartialTextExtents(*args, **kwargs)
 
@@ -3627,31 +3668,24 @@ class DC(_core.Object):
         """
         return _gdi_.DC_SetLogicalFunction(*args, **kwargs)
 
-    def SetOptimization(*args, **kwargs):
+    def ComputeScaleAndOrigin(*args, **kwargs):
         """
-        SetOptimization(self, bool optimize)
+        ComputeScaleAndOrigin(self)
 
-        If *optimize* is true this function sets optimization mode on. This
-        currently means that under X, the device context will not try to set a
-        pen or brush property if it is known to be set already. This approach
-        can fall down if non-wxWidgets code is using the same device context
-        or window, for example when the window is a panel on which the
-        windowing system draws panel items. The wxWidgets device context
-        'memory' will now be out of step with reality.
+        Performs all necessary computations for given platform and context
+        type after each change of scale and origin parameters. Usually called
+        automatically internally after such changes.
 
-        Setting optimization off, drawing, then setting it back on again, is a
-        trick that must occasionally be employed.
         """
-        return _gdi_.DC_SetOptimization(*args, **kwargs)
+        return _gdi_.DC_ComputeScaleAndOrigin(*args, **kwargs)
 
-    def GetOptimization(*args, **kwargs):
-        """
-        GetOptimization(self) -> bool
+    def SetOptimization(self, optimize):
+        pass
+    def GetOptimization(self):
+        return False
 
-        Returns true if device context optimization is on. See
-        `SetOptimization` for .
-        """
-        return _gdi_.DC_GetOptimization(*args, **kwargs)
+    SetOptimization = wx._deprecated(SetOptimization)
+    GetOptimization = wx._deprecated(GetOptimization)
 
     def CalcBoundingBox(*args, **kwargs):
         """
@@ -3910,13 +3944,8 @@ class DC(_core.Object):
            raise ValueError('backgrounds and coords must have same length')
         return  self._DrawTextList(textList, coords, foregrounds, backgrounds)
 
-
-class DCPtr(DC):
-    def __init__(self, this):
-        self.this = this
-        if not hasattr(self,"thisown"): self.thisown = 0
-        self.__class__ = DC
-_gdi_.DC_swigregister(DCPtr)
+DC_swigregister = _gdi_.DC_swigregister
+DC_swigregister(DC)
 
 #---------------------------------------------------------------------------
 
@@ -3936,9 +3965,9 @@ class MemoryDC(DC):
     of it) before a bitmap can be reselected into another memory DC.
 
     """
-    def __repr__(self):
-        return "<%s.%s; proxy of C++ wxMemoryDC instance at %s>" % (self.__class__.__module__, self.__class__.__name__, self.this,)
-    def __init__(self, *args, **kwargs):
+    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc='The membership flag')
+    __repr__ = _swig_repr
+    def __init__(self, *args, **kwargs): 
         """
         __init__(self) -> MemoryDC
 
@@ -3948,10 +3977,7 @@ class MemoryDC(DC):
         creating a usable device context. Don't forget to select a bitmap into
         the DC before drawing on it.
         """
-        newobj = _gdi_.new_MemoryDC(*args, **kwargs)
-        self.this = newobj.this
-        self.thisown = 1
-        del newobj.thisown
+        _gdi_.MemoryDC_swiginit(self,_gdi_.new_MemoryDC(*args, **kwargs))
     def SelectObject(*args, **kwargs):
         """
         SelectObject(self, Bitmap bitmap)
@@ -3968,13 +3994,8 @@ class MemoryDC(DC):
         """
         return _gdi_.MemoryDC_SelectObject(*args, **kwargs)
 
-
-class MemoryDCPtr(MemoryDC):
-    def __init__(self, this):
-        self.this = this
-        if not hasattr(self,"thisown"): self.thisown = 0
-        self.__class__ = MemoryDC
-_gdi_.MemoryDC_swigregister(MemoryDCPtr)
+MemoryDC_swigregister = _gdi_.MemoryDC_swigregister
+MemoryDC_swigregister(MemoryDC)
 
 def MemoryDCFromDC(*args, **kwargs):
     """
@@ -3983,11 +4004,12 @@ def MemoryDCFromDC(*args, **kwargs):
     Creates a DC that is compatible with the oldDC.
     """
     val = _gdi_.new_MemoryDCFromDC(*args, **kwargs)
-    val.thisown = 1
     return val
 
 #---------------------------------------------------------------------------
 
+BUFFER_VIRTUAL_AREA = _gdi_.BUFFER_VIRTUAL_AREA
+BUFFER_CLIENT_AREA = _gdi_.BUFFER_CLIENT_AREA
 class BufferedDC(MemoryDC):
     """
     This simple class provides a simple way to avoid flicker: when drawing
@@ -4001,32 +4023,20 @@ class BufferedDC(MemoryDC):
     `wx.BufferedPaintDC`.
 
     """
-    def __repr__(self):
-        return "<%s.%s; proxy of C++ wxBufferedDC instance at %s>" % (self.__class__.__module__, self.__class__.__name__, self.this,)
-    def __init__(self, *args):
+    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc='The membership flag')
+    __repr__ = _swig_repr
+    def __init__(self, *args): 
         """
-        __init__(self, DC dc, Bitmap buffer) -> BufferedDC
-        __init__(self, DC dc, Size area) -> BufferedDC
+        __init__(self, DC dc, Bitmap buffer=NullBitmap, int style=BUFFER_CLIENT_AREA) -> BufferedDC
+        __init__(self, DC dc, Size area, int style=BUFFER_CLIENT_AREA) -> BufferedDC
 
         Constructs a buffered DC.
         """
-        newobj = _gdi_.new_BufferedDC(*args)
-        self.this = newobj.this
-        self.thisown = 1
-        del newobj.thisown
+        _gdi_.BufferedDC_swiginit(self,_gdi_.new_BufferedDC(*args))
         self.__dc = args[0] # save a ref so the other dc will not be deleted before self
 
-    def __del__(self, destroy=_gdi_.delete_BufferedDC):
-        """
-        __del__(self)
-
-        Copies everything drawn on the DC so far to the underlying DC
-        associated with this object, if any.
-        """
-        try:
-            if self.thisown: destroy(self)
-        except: pass
-
+    __swig_destroy__ = _gdi_.delete_BufferedDC
+    __del__ = lambda self : None;
     def UnMask(*args, **kwargs):
         """
         UnMask(self)
@@ -4037,13 +4047,8 @@ class BufferedDC(MemoryDC):
         """
         return _gdi_.BufferedDC_UnMask(*args, **kwargs)
 
-
-class BufferedDCPtr(BufferedDC):
-    def __init__(self, this):
-        self.this = this
-        if not hasattr(self,"thisown"): self.thisown = 0
-        self.__class__ = BufferedDC
-_gdi_.BufferedDC_swigregister(BufferedDCPtr)
+BufferedDC_swigregister = _gdi_.BufferedDC_swigregister
+BufferedDC_swigregister(BufferedDC)
 
 class BufferedPaintDC(BufferedDC):
     """
@@ -4065,12 +4070,14 @@ class BufferedPaintDC(BufferedDC):
 
 
 
+
+
     """
-    def __repr__(self):
-        return "<%s.%s; proxy of C++ wxBufferedPaintDC instance at %s>" % (self.__class__.__module__, self.__class__.__name__, self.this,)
-    def __init__(self, *args, **kwargs):
+    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc='The membership flag')
+    __repr__ = _swig_repr
+    def __init__(self, *args, **kwargs): 
         """
-        __init__(self, Window window, Bitmap buffer=NullBitmap) -> BufferedPaintDC
+        __init__(self, Window window, Bitmap buffer=NullBitmap, int style=BUFFER_CLIENT_AREA) -> BufferedPaintDC
 
         Create a buffered paint DC.  As with `wx.BufferedDC`, you may either
         provide the bitmap to be used for buffering or let this object create
@@ -4079,17 +4086,9 @@ class BufferedPaintDC(BufferedDC):
 
 
         """
-        newobj = _gdi_.new_BufferedPaintDC(*args, **kwargs)
-        self.this = newobj.this
-        self.thisown = 1
-        del newobj.thisown
-
-class BufferedPaintDCPtr(BufferedPaintDC):
-    def __init__(self, this):
-        self.this = this
-        if not hasattr(self,"thisown"): self.thisown = 0
-        self.__class__ = BufferedPaintDC
-_gdi_.BufferedPaintDC_swigregister(BufferedPaintDCPtr)
+        _gdi_.BufferedPaintDC_swiginit(self,_gdi_.new_BufferedPaintDC(*args, **kwargs))
+BufferedPaintDC_swigregister = _gdi_.BufferedPaintDC_swigregister
+BufferedPaintDC_swigregister(BufferedPaintDC)
 
 #---------------------------------------------------------------------------
 
@@ -4100,9 +4099,9 @@ class ScreenDC(DC):
     wxScreenDC object.
 
     """
-    def __repr__(self):
-        return "<%s.%s; proxy of C++ wxScreenDC instance at %s>" % (self.__class__.__module__, self.__class__.__name__, self.this,)
-    def __init__(self, *args, **kwargs):
+    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc='The membership flag')
+    __repr__ = _swig_repr
+    def __init__(self, *args, **kwargs): 
         """
         __init__(self) -> ScreenDC
 
@@ -4111,10 +4110,7 @@ class ScreenDC(DC):
         wxScreenDC object.
 
         """
-        newobj = _gdi_.new_ScreenDC(*args, **kwargs)
-        self.this = newobj.this
-        self.thisown = 1
-        del newobj.thisown
+        _gdi_.ScreenDC_swiginit(self,_gdi_.new_ScreenDC(*args, **kwargs))
     def StartDrawingOnTopWin(*args, **kwargs):
         """
         StartDrawingOnTopWin(self, Window window) -> bool
@@ -4156,13 +4152,8 @@ class ScreenDC(DC):
         """
         return _gdi_.ScreenDC_EndDrawingOnTop(*args, **kwargs)
 
-
-class ScreenDCPtr(ScreenDC):
-    def __init__(self, this):
-        self.this = this
-        if not hasattr(self,"thisown"): self.thisown = 0
-        self.__class__ = ScreenDC
-_gdi_.ScreenDC_swigregister(ScreenDCPtr)
+ScreenDC_swigregister = _gdi_.ScreenDC_swigregister
+ScreenDC_swigregister(ScreenDC)
 
 #---------------------------------------------------------------------------
 
@@ -4180,25 +4171,17 @@ class ClientDC(DC):
     `wx.WindowDC` object (Windows only).
 
     """
-    def __repr__(self):
-        return "<%s.%s; proxy of C++ wxClientDC instance at %s>" % (self.__class__.__module__, self.__class__.__name__, self.this,)
-    def __init__(self, *args, **kwargs):
+    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc='The membership flag')
+    __repr__ = _swig_repr
+    def __init__(self, *args, **kwargs): 
         """
         __init__(self, Window win) -> ClientDC
 
         Constructor. Pass the window on which you wish to paint.
         """
-        newobj = _gdi_.new_ClientDC(*args, **kwargs)
-        self.this = newobj.this
-        self.thisown = 1
-        del newobj.thisown
-
-class ClientDCPtr(ClientDC):
-    def __init__(self, this):
-        self.this = this
-        if not hasattr(self,"thisown"): self.thisown = 0
-        self.__class__ = ClientDC
-_gdi_.ClientDC_swigregister(ClientDCPtr)
+        _gdi_.ClientDC_swiginit(self,_gdi_.new_ClientDC(*args, **kwargs))
+ClientDC_swigregister = _gdi_.ClientDC_swigregister
+ClientDC_swigregister(ClientDC)
 
 #---------------------------------------------------------------------------
 
@@ -4219,25 +4202,17 @@ class PaintDC(DC):
     `wx.ClientDC` object.
 
     """
-    def __repr__(self):
-        return "<%s.%s; proxy of C++ wxPaintDC instance at %s>" % (self.__class__.__module__, self.__class__.__name__, self.this,)
-    def __init__(self, *args, **kwargs):
+    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc='The membership flag')
+    __repr__ = _swig_repr
+    def __init__(self, *args, **kwargs): 
         """
         __init__(self, Window win) -> PaintDC
 
         Constructor. Pass the window on which you wish to paint.
         """
-        newobj = _gdi_.new_PaintDC(*args, **kwargs)
-        self.this = newobj.this
-        self.thisown = 1
-        del newobj.thisown
-
-class PaintDCPtr(PaintDC):
-    def __init__(self, this):
-        self.this = this
-        if not hasattr(self,"thisown"): self.thisown = 0
-        self.__class__ = PaintDC
-_gdi_.PaintDC_swigregister(PaintDCPtr)
+        _gdi_.PaintDC_swiginit(self,_gdi_.new_PaintDC(*args, **kwargs))
+PaintDC_swigregister = _gdi_.PaintDC_swigregister
+PaintDC_swigregister(PaintDC)
 
 #---------------------------------------------------------------------------
 
@@ -4248,25 +4223,17 @@ class WindowDC(DC):
     normally be constructed as a temporary stack object; don't store a
     wx.WindowDC object.
     """
-    def __repr__(self):
-        return "<%s.%s; proxy of C++ wxWindowDC instance at %s>" % (self.__class__.__module__, self.__class__.__name__, self.this,)
-    def __init__(self, *args, **kwargs):
+    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc='The membership flag')
+    __repr__ = _swig_repr
+    def __init__(self, *args, **kwargs): 
         """
         __init__(self, Window win) -> WindowDC
 
         Constructor. Pass the window on which you wish to paint.
         """
-        newobj = _gdi_.new_WindowDC(*args, **kwargs)
-        self.this = newobj.this
-        self.thisown = 1
-        del newobj.thisown
-
-class WindowDCPtr(WindowDC):
-    def __init__(self, this):
-        self.this = this
-        if not hasattr(self,"thisown"): self.thisown = 0
-        self.__class__ = WindowDC
-_gdi_.WindowDC_swigregister(WindowDCPtr)
+        _gdi_.WindowDC_swiginit(self,_gdi_.new_WindowDC(*args, **kwargs))
+WindowDC_swigregister = _gdi_.WindowDC_swigregister
+WindowDC_swigregister(WindowDC)
 
 #---------------------------------------------------------------------------
 
@@ -4279,9 +4246,9 @@ class MirrorDC(DC):
     figure and its mirror -- i.e. reflection related to the diagonal line
     x == y.
     """
-    def __repr__(self):
-        return "<%s.%s; proxy of C++ wxMirrorDC instance at %s>" % (self.__class__.__module__, self.__class__.__name__, self.this,)
-    def __init__(self, *args, **kwargs):
+    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc='The membership flag')
+    __repr__ = _swig_repr
+    def __init__(self, *args, **kwargs): 
         """
         __init__(self, DC dc, bool mirror) -> MirrorDC
 
@@ -4289,35 +4256,24 @@ class MirrorDC(DC):
         on the wx.MirrorDC will appear on the *dc*, and will be mirrored if
         *mirror* is True.
         """
-        newobj = _gdi_.new_MirrorDC(*args, **kwargs)
-        self.this = newobj.this
-        self.thisown = 1
-        del newobj.thisown
-
-class MirrorDCPtr(MirrorDC):
-    def __init__(self, this):
-        self.this = this
-        if not hasattr(self,"thisown"): self.thisown = 0
-        self.__class__ = MirrorDC
-_gdi_.MirrorDC_swigregister(MirrorDCPtr)
+        _gdi_.MirrorDC_swiginit(self,_gdi_.new_MirrorDC(*args, **kwargs))
+MirrorDC_swigregister = _gdi_.MirrorDC_swigregister
+MirrorDC_swigregister(MirrorDC)
 
 #---------------------------------------------------------------------------
 
 class PostScriptDC(DC):
     """This is a `wx.DC` that can write to PostScript files on any platform."""
-    def __repr__(self):
-        return "<%s.%s; proxy of C++ wxPostScriptDC instance at %s>" % (self.__class__.__module__, self.__class__.__name__, self.this,)
-    def __init__(self, *args, **kwargs):
+    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc='The membership flag')
+    __repr__ = _swig_repr
+    def __init__(self, *args, **kwargs): 
         """
         __init__(self, wxPrintData printData) -> PostScriptDC
 
         Constructs a PostScript printer device context from a `wx.PrintData`
         object.
         """
-        newobj = _gdi_.new_PostScriptDC(*args, **kwargs)
-        self.this = newobj.this
-        self.thisown = 1
-        del newobj.thisown
+        _gdi_.PostScriptDC_swiginit(self,_gdi_.new_PostScriptDC(*args, **kwargs))
     def GetPrintData(*args, **kwargs):
         """GetPrintData(self) -> wxPrintData"""
         return _gdi_.PostScriptDC_GetPrintData(*args, **kwargs)
@@ -4345,48 +4301,37 @@ class PostScriptDC(DC):
         return _gdi_.PostScriptDC_GetResolution(*args, **kwargs)
 
     GetResolution = staticmethod(GetResolution)
-
-class PostScriptDCPtr(PostScriptDC):
-    def __init__(self, this):
-        self.this = this
-        if not hasattr(self,"thisown"): self.thisown = 0
-        self.__class__ = PostScriptDC
-_gdi_.PostScriptDC_swigregister(PostScriptDCPtr)
+PostScriptDC_swigregister = _gdi_.PostScriptDC_swigregister
+PostScriptDC_swigregister(PostScriptDC)
 
 def PostScriptDC_SetResolution(*args, **kwargs):
-    """
+  """
     PostScriptDC_SetResolution(int ppi)
 
     Set resolution (in pixels per inch) that will be used in PostScript
     output. Default is 720ppi.
     """
-    return _gdi_.PostScriptDC_SetResolution(*args, **kwargs)
+  return _gdi_.PostScriptDC_SetResolution(*args, **kwargs)
 
-def PostScriptDC_GetResolution(*args, **kwargs):
-    """
+def PostScriptDC_GetResolution(*args):
+  """
     PostScriptDC_GetResolution() -> int
 
     Return resolution used in PostScript output.
     """
-    return _gdi_.PostScriptDC_GetResolution(*args, **kwargs)
+  return _gdi_.PostScriptDC_GetResolution(*args)
 
 #---------------------------------------------------------------------------
 
 class MetaFile(_core.Object):
-    def __repr__(self):
-        return "<%s.%s; proxy of C++ wxMetaFile instance at %s>" % (self.__class__.__module__, self.__class__.__name__, self.this,)
-    def __init__(self, *args, **kwargs):
+    """Proxy of C++ MetaFile class"""
+    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc='The membership flag')
+    __repr__ = _swig_repr
+    def __init__(self, *args, **kwargs): 
         """__init__(self, String filename=EmptyString) -> MetaFile"""
-        newobj = _gdi_.new_MetaFile(*args, **kwargs)
-        self.this = newobj.this
-        self.thisown = 1
-        del newobj.thisown
-    def __del__(self, destroy=_gdi_.delete_MetaFile):
-        """__del__(self)"""
-        try:
-            if self.thisown: destroy(self)
-        except: pass
-
+        _gdi_.MetaFile_swiginit(self,_gdi_.new_MetaFile(*args, **kwargs))
+    __swig_destroy__ = _gdi_.delete_MetaFile
+    __del__ = lambda self : None;
     def Ok(*args, **kwargs):
         """Ok(self) -> bool"""
         return _gdi_.MetaFile_Ok(*args, **kwargs)
@@ -4412,54 +4357,35 @@ class MetaFile(_core.Object):
         return _gdi_.MetaFile_GetFileName(*args, **kwargs)
 
     def __nonzero__(self): return self.Ok() 
-
-class MetaFilePtr(MetaFile):
-    def __init__(self, this):
-        self.this = this
-        if not hasattr(self,"thisown"): self.thisown = 0
-        self.__class__ = MetaFile
-_gdi_.MetaFile_swigregister(MetaFilePtr)
+MetaFile_swigregister = _gdi_.MetaFile_swigregister
+MetaFile_swigregister(MetaFile)
 
 class MetaFileDC(DC):
-    def __repr__(self):
-        return "<%s.%s; proxy of C++ wxMetaFileDC instance at %s>" % (self.__class__.__module__, self.__class__.__name__, self.this,)
-    def __init__(self, *args, **kwargs):
+    """Proxy of C++ MetaFileDC class"""
+    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc='The membership flag')
+    __repr__ = _swig_repr
+    def __init__(self, *args, **kwargs): 
         """
         __init__(self, String filename=EmptyString, int width=0, int height=0, 
             String description=EmptyString) -> MetaFileDC
         """
-        newobj = _gdi_.new_MetaFileDC(*args, **kwargs)
-        self.this = newobj.this
-        self.thisown = 1
-        del newobj.thisown
+        _gdi_.MetaFileDC_swiginit(self,_gdi_.new_MetaFileDC(*args, **kwargs))
     def Close(*args, **kwargs):
         """Close(self) -> MetaFile"""
         return _gdi_.MetaFileDC_Close(*args, **kwargs)
 
-
-class MetaFileDCPtr(MetaFileDC):
-    def __init__(self, this):
-        self.this = this
-        if not hasattr(self,"thisown"): self.thisown = 0
-        self.__class__ = MetaFileDC
-_gdi_.MetaFileDC_swigregister(MetaFileDCPtr)
+MetaFileDC_swigregister = _gdi_.MetaFileDC_swigregister
+MetaFileDC_swigregister(MetaFileDC)
 
 class PrinterDC(DC):
-    def __repr__(self):
-        return "<%s.%s; proxy of C++ wxPrinterDC instance at %s>" % (self.__class__.__module__, self.__class__.__name__, self.this,)
-    def __init__(self, *args, **kwargs):
+    """Proxy of C++ PrinterDC class"""
+    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc='The membership flag')
+    __repr__ = _swig_repr
+    def __init__(self, *args, **kwargs): 
         """__init__(self, wxPrintData printData) -> PrinterDC"""
-        newobj = _gdi_.new_PrinterDC(*args, **kwargs)
-        self.this = newobj.this
-        self.thisown = 1
-        del newobj.thisown
-
-class PrinterDCPtr(PrinterDC):
-    def __init__(self, this):
-        self.this = this
-        if not hasattr(self,"thisown"): self.thisown = 0
-        self.__class__ = PrinterDC
-_gdi_.PrinterDC_swigregister(PrinterDCPtr)
+        _gdi_.PrinterDC_swiginit(self,_gdi_.new_PrinterDC(*args, **kwargs))
+PrinterDC_swigregister = _gdi_.PrinterDC_swigregister
+PrinterDC_swigregister(PrinterDC)
 
 #---------------------------------------------------------------------------
 
@@ -4471,20 +4397,14 @@ IMAGE_LIST_NORMAL = _gdi_.IMAGE_LIST_NORMAL
 IMAGE_LIST_SMALL = _gdi_.IMAGE_LIST_SMALL
 IMAGE_LIST_STATE = _gdi_.IMAGE_LIST_STATE
 class ImageList(_core.Object):
-    def __repr__(self):
-        return "<%s.%s; proxy of C++ wxImageList instance at %s>" % (self.__class__.__module__, self.__class__.__name__, self.this,)
-    def __init__(self, *args, **kwargs):
+    """Proxy of C++ ImageList class"""
+    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc='The membership flag')
+    __repr__ = _swig_repr
+    def __init__(self, *args, **kwargs): 
         """__init__(self, int width, int height, int mask=True, int initialCount=1) -> ImageList"""
-        newobj = _gdi_.new_ImageList(*args, **kwargs)
-        self.this = newobj.this
-        self.thisown = 1
-        del newobj.thisown
-    def __del__(self, destroy=_gdi_.delete_ImageList):
-        """__del__(self)"""
-        try:
-            if self.thisown: destroy(self)
-        except: pass
-
+        _gdi_.ImageList_swiginit(self,_gdi_.new_ImageList(*args, **kwargs))
+    __swig_destroy__ = _gdi_.delete_ImageList
+    __del__ = lambda self : None;
     def Add(*args, **kwargs):
         """Add(self, Bitmap bitmap, Bitmap mask=NullBitmap) -> int"""
         return _gdi_.ImageList_Add(*args, **kwargs)
@@ -4497,6 +4417,14 @@ class ImageList(_core.Object):
         """AddIcon(self, Icon icon) -> int"""
         return _gdi_.ImageList_AddIcon(*args, **kwargs)
 
+    def GetBitmap(*args, **kwargs):
+        """GetBitmap(self, int index) -> Bitmap"""
+        return _gdi_.ImageList_GetBitmap(*args, **kwargs)
+
+    def GetIcon(*args, **kwargs):
+        """GetIcon(self, int index) -> Icon"""
+        return _gdi_.ImageList_GetIcon(*args, **kwargs)
+
     def Replace(*args, **kwargs):
         """Replace(self, int index, Bitmap bitmap, Bitmap mask=NullBitmap) -> bool"""
         return _gdi_.ImageList_Replace(*args, **kwargs)
@@ -4524,78 +4452,197 @@ class ImageList(_core.Object):
         """GetSize() -> (width,height)"""
         return _gdi_.ImageList_GetSize(*args, **kwargs)
 
-
-class ImageListPtr(ImageList):
-    def __init__(self, this):
-        self.this = this
-        if not hasattr(self,"thisown"): self.thisown = 0
-        self.__class__ = ImageList
-_gdi_.ImageList_swigregister(ImageListPtr)
+ImageList_swigregister = _gdi_.ImageList_swigregister
+ImageList_swigregister(ImageList)
 
 #---------------------------------------------------------------------------
 
-class PenList(_core.Object):
-    def __init__(self): raise RuntimeError, "No constructor defined"
-    def __repr__(self):
-        return "<%s.%s; proxy of C++ wxPenList instance at %s>" % (self.__class__.__module__, self.__class__.__name__, self.this,)
-    def AddPen(*args, **kwargs):
-        """AddPen(self, Pen pen)"""
-        return _gdi_.PenList_AddPen(*args, **kwargs)
-
-    def FindOrCreatePen(*args, **kwargs):
-        """FindOrCreatePen(self, Colour colour, int width, int style) -> Pen"""
-        return _gdi_.PenList_FindOrCreatePen(*args, **kwargs)
+class StockGDI(object):
+    """Proxy of C++ StockGDI class"""
+    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc='The membership flag')
+    __repr__ = _swig_repr
+    BRUSH_BLACK = _gdi_.StockGDI_BRUSH_BLACK
+    BRUSH_BLUE = _gdi_.StockGDI_BRUSH_BLUE
+    BRUSH_CYAN = _gdi_.StockGDI_BRUSH_CYAN
+    BRUSH_GREEN = _gdi_.StockGDI_BRUSH_GREEN
+    BRUSH_GREY = _gdi_.StockGDI_BRUSH_GREY
+    BRUSH_LIGHTGREY = _gdi_.StockGDI_BRUSH_LIGHTGREY
+    BRUSH_MEDIUMGREY = _gdi_.StockGDI_BRUSH_MEDIUMGREY
+    BRUSH_RED = _gdi_.StockGDI_BRUSH_RED
+    BRUSH_TRANSPARENT = _gdi_.StockGDI_BRUSH_TRANSPARENT
+    BRUSH_WHITE = _gdi_.StockGDI_BRUSH_WHITE
+    COLOUR_BLACK = _gdi_.StockGDI_COLOUR_BLACK
+    COLOUR_BLUE = _gdi_.StockGDI_COLOUR_BLUE
+    COLOUR_CYAN = _gdi_.StockGDI_COLOUR_CYAN
+    COLOUR_GREEN = _gdi_.StockGDI_COLOUR_GREEN
+    COLOUR_LIGHTGREY = _gdi_.StockGDI_COLOUR_LIGHTGREY
+    COLOUR_RED = _gdi_.StockGDI_COLOUR_RED
+    COLOUR_WHITE = _gdi_.StockGDI_COLOUR_WHITE
+    CURSOR_CROSS = _gdi_.StockGDI_CURSOR_CROSS
+    CURSOR_HOURGLASS = _gdi_.StockGDI_CURSOR_HOURGLASS
+    CURSOR_STANDARD = _gdi_.StockGDI_CURSOR_STANDARD
+    FONT_ITALIC = _gdi_.StockGDI_FONT_ITALIC
+    FONT_NORMAL = _gdi_.StockGDI_FONT_NORMAL
+    FONT_SMALL = _gdi_.StockGDI_FONT_SMALL
+    FONT_SWISS = _gdi_.StockGDI_FONT_SWISS
+    PEN_BLACK = _gdi_.StockGDI_PEN_BLACK
+    PEN_BLACKDASHED = _gdi_.StockGDI_PEN_BLACKDASHED
+    PEN_CYAN = _gdi_.StockGDI_PEN_CYAN
+    PEN_GREEN = _gdi_.StockGDI_PEN_GREEN
+    PEN_GREY = _gdi_.StockGDI_PEN_GREY
+    PEN_LIGHTGREY = _gdi_.StockGDI_PEN_LIGHTGREY
+    PEN_MEDIUMGREY = _gdi_.StockGDI_PEN_MEDIUMGREY
+    PEN_RED = _gdi_.StockGDI_PEN_RED
+    PEN_TRANSPARENT = _gdi_.StockGDI_PEN_TRANSPARENT
+    PEN_WHITE = _gdi_.StockGDI_PEN_WHITE
+    ITEMCOUNT = _gdi_.StockGDI_ITEMCOUNT
+    def __init__(self, *args, **kwargs): 
+        """__init__(self) -> StockGDI"""
+        _gdi_.StockGDI_swiginit(self,_gdi_.new_StockGDI(*args, **kwargs))
+    __swig_destroy__ = _gdi_.delete_StockGDI
+    __del__ = lambda self : None;
+    def DeleteAll(*args, **kwargs):
+        """DeleteAll()"""
+        return _gdi_.StockGDI_DeleteAll(*args, **kwargs)
+
+    DeleteAll = staticmethod(DeleteAll)
+    def instance(*args, **kwargs):
+        """instance() -> StockGDI"""
+        return _gdi_.StockGDI_instance(*args, **kwargs)
+
+    instance = staticmethod(instance)
+    def GetBrush(*args, **kwargs):
+        """GetBrush(int item) -> Brush"""
+        return _gdi_.StockGDI_GetBrush(*args, **kwargs)
 
-    def RemovePen(*args, **kwargs):
-        """RemovePen(self, Pen pen)"""
-        return _gdi_.PenList_RemovePen(*args, **kwargs)
+    GetBrush = staticmethod(GetBrush)
+    def GetColour(*args, **kwargs):
+        """GetColour(int item) -> Colour"""
+        return _gdi_.StockGDI_GetColour(*args, **kwargs)
 
-    def GetCount(*args, **kwargs):
-        """GetCount(self) -> int"""
-        return _gdi_.PenList_GetCount(*args, **kwargs)
+    GetColour = staticmethod(GetColour)
+    def GetCursor(*args, **kwargs):
+        """GetCursor(int item) -> Cursor"""
+        return _gdi_.StockGDI_GetCursor(*args, **kwargs)
 
+    GetCursor = staticmethod(GetCursor)
+    def GetPen(*args, **kwargs):
+        """GetPen(int item) -> Pen"""
+        return _gdi_.StockGDI_GetPen(*args, **kwargs)
 
-class PenListPtr(PenList):
-    def __init__(self, this):
-        self.this = this
-        if not hasattr(self,"thisown"): self.thisown = 0
-        self.__class__ = PenList
-_gdi_.PenList_swigregister(PenListPtr)
+    GetPen = staticmethod(GetPen)
+    def GetFont(*args, **kwargs):
+        """GetFont(self, int item) -> Font"""
+        return _gdi_.StockGDI_GetFont(*args, **kwargs)
+
+StockGDI_swigregister = _gdi_.StockGDI_swigregister
+StockGDI_swigregister(StockGDI)
+
+def StockGDI_DeleteAll(*args):
+  """StockGDI_DeleteAll()"""
+  return _gdi_.StockGDI_DeleteAll(*args)
+
+def StockGDI_instance(*args):
+  """StockGDI_instance() -> StockGDI"""
+  return _gdi_.StockGDI_instance(*args)
+
+def StockGDI_GetBrush(*args, **kwargs):
+  """StockGDI_GetBrush(int item) -> Brush"""
+  return _gdi_.StockGDI_GetBrush(*args, **kwargs)
+
+def StockGDI_GetColour(*args, **kwargs):
+  """StockGDI_GetColour(int item) -> Colour"""
+  return _gdi_.StockGDI_GetColour(*args, **kwargs)
+
+def StockGDI_GetCursor(*args, **kwargs):
+  """StockGDI_GetCursor(int item) -> Cursor"""
+  return _gdi_.StockGDI_GetCursor(*args, **kwargs)
+
+def StockGDI_GetPen(*args, **kwargs):
+  """StockGDI_GetPen(int item) -> Pen"""
+  return _gdi_.StockGDI_GetPen(*args, **kwargs)
+
+# This function makes a class used to do delayed initialization of some
+# stock wx objects.  When they are used the first time then an init function
+# is called to make the real instance, which is then used to replace the
+# original instance and class seen by the programmer.
+def _wxPyMakeDelayedInitWrapper(initFunc):
+    class _wxPyStockObjectWrapper(object):
+        def __init__(self, *args):
+            self._args = args
+        def __getattr__(self, name):
+            obj = initFunc(*self._args)
+            self.__class__ = obj.__class__
+            self.__dict__ = obj.__dict__
+            return getattr(self, name)
+        def __str__(self):
+            return self.__getattr__("__str__")()
+        def __repr__(self):
+            return self.__getattr__("__repr__")()
+    return _wxPyStockObjectWrapper
+    
+def _wxPyFontInit(id):
+    return StockGDI.instance().GetFont(id)
+                                              
+_wxPyStockPen    = _wxPyMakeDelayedInitWrapper(StockGDI.GetPen)
+_wxPyStockBrush  = _wxPyMakeDelayedInitWrapper(StockGDI.GetBrush)
+_wxPyStockCursor = _wxPyMakeDelayedInitWrapper(StockGDI.GetCursor)
+_wxPyStockColour = _wxPyMakeDelayedInitWrapper(StockGDI.GetColour)                    
+_wxPyStockFont   = _wxPyMakeDelayedInitWrapper(_wxPyFontInit)
+
+
+ITALIC_FONT  = _wxPyStockCursor(StockGDI.FONT_ITALIC)
+NORMAL_FONT  = _wxPyStockCursor(StockGDI.FONT_NORMAL)
+SMALL_FONT   = _wxPyStockCursor(StockGDI.FONT_SMALL)
+SWISS_FONT   = _wxPyStockCursor(StockGDI.FONT_SWISS)
+                                              
+BLACK_DASHED_PEN  = _wxPyStockPen(StockGDI.PEN_BLACKDASHED)
+BLACK_PEN         = _wxPyStockPen(StockGDI.PEN_BLACK)
+CYAN_PEN          = _wxPyStockPen(StockGDI.PEN_CYAN)
+GREEN_PEN         = _wxPyStockPen(StockGDI.PEN_GREEN)
+GREY_PEN          = _wxPyStockPen(StockGDI.PEN_GREY)
+LIGHT_GREY_PEN    = _wxPyStockPen(StockGDI.PEN_LIGHTGREY)
+MEDIUM_GREY_PEN   = _wxPyStockPen(StockGDI.PEN_MEDIUMGREY)
+RED_PEN           = _wxPyStockPen(StockGDI.PEN_RED)
+TRANSPARENT_PEN   = _wxPyStockPen(StockGDI.PEN_TRANSPARENT)
+WHITE_PEN         = _wxPyStockPen(StockGDI.PEN_WHITE)
+
+BLACK_BRUSH        = _wxPyStockBrush(StockGDI.BRUSH_BLACK)
+BLUE_BRUSH         = _wxPyStockBrush(StockGDI.BRUSH_BLUE)
+CYAN_BRUSH         = _wxPyStockBrush(StockGDI.BRUSH_CYAN)
+GREEN_BRUSH        = _wxPyStockBrush(StockGDI.BRUSH_GREEN)
+GREY_BRUSH         = _wxPyStockBrush(StockGDI.BRUSH_GREY)
+LIGHT_GREY_BRUSH   = _wxPyStockBrush(StockGDI.BRUSH_LIGHTGREY)
+MEDIUM_GREY_BRUSH  = _wxPyStockBrush(StockGDI.BRUSH_MEDIUMGREY)
+RED_BRUSH          = _wxPyStockBrush(StockGDI.BRUSH_RED)
+TRANSPARENT_BRUSH  = _wxPyStockBrush(StockGDI.BRUSH_TRANSPARENT)
+WHITE_BRUSH        = _wxPyStockBrush(StockGDI.BRUSH_WHITE)
+
+BLACK       = _wxPyStockColour(StockGDI.COLOUR_BLACK)
+BLUE        = _wxPyStockColour(StockGDI.COLOUR_BLUE)
+CYAN        = _wxPyStockColour(StockGDI.COLOUR_CYAN)
+GREEN       = _wxPyStockColour(StockGDI.COLOUR_GREEN)
+LIGHT_GREY  = _wxPyStockColour(StockGDI.COLOUR_LIGHTGREY)
+RED         = _wxPyStockColour(StockGDI.COLOUR_RED)
+WHITE       = _wxPyStockColour(StockGDI.COLOUR_WHITE)
+    
+CROSS_CURSOR      = _wxPyStockCursor(StockGDI.CURSOR_CROSS)
+HOURGLASS_CURSOR  = _wxPyStockCursor(StockGDI.CURSOR_HOURGLASS)
+STANDARD_CURSOR   = _wxPyStockCursor(StockGDI.CURSOR_STANDARD)
+    
+
+class GDIObjListBase(object):
+    """Proxy of C++ GDIObjListBase class"""
+    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc='The membership flag')
+    __repr__ = _swig_repr
+    def __init__(self, *args, **kwargs): 
+        """__init__(self) -> GDIObjListBase"""
+        _gdi_.GDIObjListBase_swiginit(self,_gdi_.new_GDIObjListBase(*args, **kwargs))
+    __swig_destroy__ = _gdi_.delete_GDIObjListBase
+    __del__ = lambda self : None;
+GDIObjListBase_swigregister = _gdi_.GDIObjListBase_swigregister
+GDIObjListBase_swigregister(GDIObjListBase)
 cvar = _gdi_.cvar
-NORMAL_FONT = cvar.NORMAL_FONT
-SMALL_FONT = cvar.SMALL_FONT
-ITALIC_FONT = cvar.ITALIC_FONT
-SWISS_FONT = cvar.SWISS_FONT
-RED_PEN = cvar.RED_PEN
-CYAN_PEN = cvar.CYAN_PEN
-GREEN_PEN = cvar.GREEN_PEN
-BLACK_PEN = cvar.BLACK_PEN
-WHITE_PEN = cvar.WHITE_PEN
-TRANSPARENT_PEN = cvar.TRANSPARENT_PEN
-BLACK_DASHED_PEN = cvar.BLACK_DASHED_PEN
-GREY_PEN = cvar.GREY_PEN
-MEDIUM_GREY_PEN = cvar.MEDIUM_GREY_PEN
-LIGHT_GREY_PEN = cvar.LIGHT_GREY_PEN
-BLUE_BRUSH = cvar.BLUE_BRUSH
-GREEN_BRUSH = cvar.GREEN_BRUSH
-WHITE_BRUSH = cvar.WHITE_BRUSH
-BLACK_BRUSH = cvar.BLACK_BRUSH
-TRANSPARENT_BRUSH = cvar.TRANSPARENT_BRUSH
-CYAN_BRUSH = cvar.CYAN_BRUSH
-RED_BRUSH = cvar.RED_BRUSH
-GREY_BRUSH = cvar.GREY_BRUSH
-MEDIUM_GREY_BRUSH = cvar.MEDIUM_GREY_BRUSH
-LIGHT_GREY_BRUSH = cvar.LIGHT_GREY_BRUSH
-BLACK = cvar.BLACK
-WHITE = cvar.WHITE
-RED = cvar.RED
-BLUE = cvar.BLUE
-GREEN = cvar.GREEN
-CYAN = cvar.CYAN
-LIGHT_GREY = cvar.LIGHT_GREY
-STANDARD_CURSOR = cvar.STANDARD_CURSOR
-HOURGLASS_CURSOR = cvar.HOURGLASS_CURSOR
-CROSS_CURSOR = cvar.CROSS_CURSOR
 NullBitmap = cvar.NullBitmap
 NullIcon = cvar.NullIcon
 NullCursor = cvar.NullCursor
@@ -4605,49 +4652,88 @@ NullPalette = cvar.NullPalette
 NullFont = cvar.NullFont
 NullColour = cvar.NullColour
 
-class BrushList(_core.Object):
-    def __init__(self): raise RuntimeError, "No constructor defined"
-    def __repr__(self):
-        return "<%s.%s; proxy of C++ wxBrushList instance at %s>" % (self.__class__.__module__, self.__class__.__name__, self.this,)
-    def AddBrush(*args, **kwargs):
-        """AddBrush(self, Brush brush)"""
-        return _gdi_.BrushList_AddBrush(*args, **kwargs)
+class PenList(GDIObjListBase):
+    """Proxy of C++ PenList class"""
+    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc='The membership flag')
+    def __init__(self): raise AttributeError, "No constructor defined"
+    __repr__ = _swig_repr
+    def FindOrCreatePen(*args, **kwargs):
+        """FindOrCreatePen(self, Colour colour, int width, int style) -> Pen"""
+        return _gdi_.PenList_FindOrCreatePen(*args, **kwargs)
 
+    def AddPen(*args, **kwargs):
+        """AddPen(self, Pen pen)"""
+        return _gdi_.PenList_AddPen(*args, **kwargs)
+
+    def RemovePen(*args, **kwargs):
+        """RemovePen(self, Pen pen)"""
+        return _gdi_.PenList_RemovePen(*args, **kwargs)
+
+    AddPen = wx._deprecated(AddPen)
+    RemovePen = wx._deprecated(RemovePen)
+
+PenList_swigregister = _gdi_.PenList_swigregister
+PenList_swigregister(PenList)
+
+class BrushList(GDIObjListBase):
+    """Proxy of C++ BrushList class"""
+    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc='The membership flag')
+    def __init__(self): raise AttributeError, "No constructor defined"
+    __repr__ = _swig_repr
     def FindOrCreateBrush(*args, **kwargs):
-        """FindOrCreateBrush(self, Colour colour, int style) -> Brush"""
+        """FindOrCreateBrush(self, Colour colour, int style=SOLID) -> Brush"""
         return _gdi_.BrushList_FindOrCreateBrush(*args, **kwargs)
 
+    def AddBrush(*args, **kwargs):
+        """AddBrush(self, Brush brush)"""
+        return _gdi_.BrushList_AddBrush(*args, **kwargs)
+
     def RemoveBrush(*args, **kwargs):
         """RemoveBrush(self, Brush brush)"""
         return _gdi_.BrushList_RemoveBrush(*args, **kwargs)
 
-    def GetCount(*args, **kwargs):
-        """GetCount(self) -> int"""
-        return _gdi_.BrushList_GetCount(*args, **kwargs)
+    AddBrush = wx._deprecated(AddBrush)
+    RemoveBrush = wx._deprecated(RemoveBrush)
 
+BrushList_swigregister = _gdi_.BrushList_swigregister
+BrushList_swigregister(BrushList)
 
-class BrushListPtr(BrushList):
-    def __init__(self, this):
-        self.this = this
-        if not hasattr(self,"thisown"): self.thisown = 0
-        self.__class__ = BrushList
-_gdi_.BrushList_swigregister(BrushListPtr)
+class FontList(GDIObjListBase):
+    """Proxy of C++ FontList class"""
+    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc='The membership flag')
+    def __init__(self): raise AttributeError, "No constructor defined"
+    __repr__ = _swig_repr
+    def FindOrCreateFont(*args, **kwargs):
+        """
+        FindOrCreateFont(self, int point_size, int family, int style, int weight, 
+            bool underline=False, String facename=EmptyString, 
+            int encoding=FONTENCODING_DEFAULT) -> Font
+        """
+        return _gdi_.FontList_FindOrCreateFont(*args, **kwargs)
 
-class ColourDatabase(_core.Object):
-    def __repr__(self):
-        return "<%s.%s; proxy of C++ wxColourDatabase instance at %s>" % (self.__class__.__module__, self.__class__.__name__, self.this,)
-    def __init__(self, *args, **kwargs):
-        """__init__(self) -> ColourDatabase"""
-        newobj = _gdi_.new_ColourDatabase(*args, **kwargs)
-        self.this = newobj.this
-        self.thisown = 1
-        del newobj.thisown
-    def __del__(self, destroy=_gdi_.delete_ColourDatabase):
-        """__del__(self)"""
-        try:
-            if self.thisown: destroy(self)
-        except: pass
+    def AddFont(*args, **kwargs):
+        """AddFont(self, Font font)"""
+        return _gdi_.FontList_AddFont(*args, **kwargs)
 
+    def RemoveFont(*args, **kwargs):
+        """RemoveFont(self, Font font)"""
+        return _gdi_.FontList_RemoveFont(*args, **kwargs)
+
+    AddFont = wx._deprecated(AddFont)
+    RemoveFont = wx._deprecated(RemoveFont)
+
+FontList_swigregister = _gdi_.FontList_swigregister
+FontList_swigregister(FontList)
+
+class ColourDatabase(object):
+    """Proxy of C++ ColourDatabase class"""
+    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc='The membership flag')
+    __repr__ = _swig_repr
+    def __init__(self, *args, **kwargs): 
+        """__init__(self) -> ColourDatabase"""
+        _gdi_.ColourDatabase_swiginit(self,_gdi_.new_ColourDatabase(*args, **kwargs))
+    __swig_destroy__ = _gdi_.delete_ColourDatabase
+    __del__ = lambda self : None;
     def Find(*args, **kwargs):
         """Find(self, String name) -> Colour"""
         return _gdi_.ColourDatabase_Find(*args, **kwargs)
@@ -4665,60 +4751,42 @@ class ColourDatabase(_core.Object):
         """Append(self, String name, int red, int green, int blue)"""
         return _gdi_.ColourDatabase_Append(*args, **kwargs)
 
+ColourDatabase_swigregister = _gdi_.ColourDatabase_swigregister
+ColourDatabase_swigregister(ColourDatabase)
 
-class ColourDatabasePtr(ColourDatabase):
-    def __init__(self, this):
-        self.this = this
-        if not hasattr(self,"thisown"): self.thisown = 0
-        self.__class__ = ColourDatabase
-_gdi_.ColourDatabase_swigregister(ColourDatabasePtr)
-
-class FontList(_core.Object):
-    def __init__(self): raise RuntimeError, "No constructor defined"
-    def __repr__(self):
-        return "<%s.%s; proxy of C++ wxFontList instance at %s>" % (self.__class__.__module__, self.__class__.__name__, self.this,)
-    def AddFont(*args, **kwargs):
-        """AddFont(self, Font font)"""
-        return _gdi_.FontList_AddFont(*args, **kwargs)
-
-    def FindOrCreateFont(*args, **kwargs):
-        """
-        FindOrCreateFont(self, int point_size, int family, int style, int weight, 
-            bool underline=False, String facename=EmptyString, 
-            int encoding=FONTENCODING_DEFAULT) -> Font
-        """
-        return _gdi_.FontList_FindOrCreateFont(*args, **kwargs)
+#---------------------------------------------------------------------------
 
-    def RemoveFont(*args, **kwargs):
-        """RemoveFont(self, Font font)"""
-        return _gdi_.FontList_RemoveFont(*args, **kwargs)
 
-    def GetCount(*args, **kwargs):
-        """GetCount(self) -> int"""
-        return _gdi_.FontList_GetCount(*args, **kwargs)
+def _wxPyInitTheFontList(*args):
+  """_wxPyInitTheFontList() -> FontList"""
+  return _gdi_._wxPyInitTheFontList(*args)
 
+def _wxPyInitThePenList(*args):
+  """_wxPyInitThePenList() -> PenList"""
+  return _gdi_._wxPyInitThePenList(*args)
 
-class FontListPtr(FontList):
-    def __init__(self, this):
-        self.this = this
-        if not hasattr(self,"thisown"): self.thisown = 0
-        self.__class__ = FontList
-_gdi_.FontList_swigregister(FontListPtr)
+def _wxPyInitTheBrushList(*args):
+  """_wxPyInitTheBrushList() -> BrushList"""
+  return _gdi_._wxPyInitTheBrushList(*args)
 
-#---------------------------------------------------------------------------
+def _wxPyInitTheColourDatabase(*args):
+  """_wxPyInitTheColourDatabase() -> ColourDatabase"""
+  return _gdi_._wxPyInitTheColourDatabase(*args)
+wxTheFontList       = _wxPyMakeDelayedInitWrapper(_wxPyInitTheFontList)()
+wxThePenList        = _wxPyMakeDelayedInitWrapper(_wxPyInitThePenList)()
+wxTheBrushList      = _wxPyMakeDelayedInitWrapper(_wxPyInitTheBrushList)()
+wxTheColourDatabase = _wxPyMakeDelayedInitWrapper(_wxPyInitTheColourDatabase)()
 
 NullColor = NullColour 
 #---------------------------------------------------------------------------
 
 class Effects(_core.Object):
-    def __repr__(self):
-        return "<%s.%s; proxy of C++ wxEffects instance at %s>" % (self.__class__.__module__, self.__class__.__name__, self.this,)
-    def __init__(self, *args, **kwargs):
+    """Proxy of C++ Effects class"""
+    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc='The membership flag')
+    __repr__ = _swig_repr
+    def __init__(self, *args, **kwargs): 
         """__init__(self) -> Effects"""
-        newobj = _gdi_.new_Effects(*args, **kwargs)
-        self.this = newobj.this
-        self.thisown = 1
-        del newobj.thisown
+        _gdi_.Effects_swiginit(self,_gdi_.new_Effects(*args, **kwargs))
     def GetHighlightColour(*args, **kwargs):
         """GetHighlightColour(self) -> Colour"""
         return _gdi_.Effects_GetHighlightColour(*args, **kwargs)
@@ -4774,16 +4842,287 @@ class Effects(_core.Object):
         """TileBitmap(self, Rect rect, DC dc, Bitmap bitmap) -> bool"""
         return _gdi_.Effects_TileBitmap(*args, **kwargs)
 
+Effects_swigregister = _gdi_.Effects_swigregister
+Effects_swigregister(Effects)
+
+#---------------------------------------------------------------------------
+
+CONTROL_DISABLED = _gdi_.CONTROL_DISABLED
+CONTROL_FOCUSED = _gdi_.CONTROL_FOCUSED
+CONTROL_PRESSED = _gdi_.CONTROL_PRESSED
+CONTROL_ISDEFAULT = _gdi_.CONTROL_ISDEFAULT
+CONTROL_ISSUBMENU = _gdi_.CONTROL_ISSUBMENU
+CONTROL_EXPANDED = _gdi_.CONTROL_EXPANDED
+CONTROL_CURRENT = _gdi_.CONTROL_CURRENT
+CONTROL_SELECTED = _gdi_.CONTROL_SELECTED
+CONTROL_CHECKED = _gdi_.CONTROL_CHECKED
+CONTROL_CHECKABLE = _gdi_.CONTROL_CHECKABLE
+CONTROL_UNDETERMINED = _gdi_.CONTROL_UNDETERMINED
+CONTROL_FLAGS_MASK = _gdi_.CONTROL_FLAGS_MASK
+CONTROL_DIRTY = _gdi_.CONTROL_DIRTY
+class SplitterRenderParams(object):
+    """
+    This is just a simple struct used as a return value of
+    `wx.RendererNative.GetSplitterParams` and contains some platform
+    specific metrics about splitters.
+
+        * widthSash: the width of the splitter sash.
+        * border: the width of the border of the splitter window.
+        * isHotSensitive: ``True`` if the splitter changes its
+          appearance when the mouse is over it.
+
+
+    """
+    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc='The membership flag')
+    __repr__ = _swig_repr
+    def __init__(self, *args, **kwargs): 
+        """
+        __init__(self, int widthSash_, int border_, bool isSens_) -> SplitterRenderParams
+
+        This is just a simple struct used as a return value of
+        `wx.RendererNative.GetSplitterParams` and contains some platform
+        specific metrics about splitters.
+
+            * widthSash: the width of the splitter sash.
+            * border: the width of the border of the splitter window.
+            * isHotSensitive: ``True`` if the splitter changes its
+              appearance when the mouse is over it.
+
+
+        """
+        _gdi_.SplitterRenderParams_swiginit(self,_gdi_.new_SplitterRenderParams(*args, **kwargs))
+    __swig_destroy__ = _gdi_.delete_SplitterRenderParams
+    __del__ = lambda self : None;
+    widthSash = property(_gdi_.SplitterRenderParams_widthSash_get)
+    border = property(_gdi_.SplitterRenderParams_border_get)
+    isHotSensitive = property(_gdi_.SplitterRenderParams_isHotSensitive_get)
+SplitterRenderParams_swigregister = _gdi_.SplitterRenderParams_swigregister
+SplitterRenderParams_swigregister(SplitterRenderParams)
+
+class RendererVersion(object):
+    """
+    This simple struct represents the `wx.RendererNative` interface
+    version and is only used as the return value of
+    `wx.RendererNative.GetVersion`.
+    """
+    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc='The membership flag')
+    __repr__ = _swig_repr
+    def __init__(self, *args, **kwargs): 
+        """
+        __init__(self, int version_, int age_) -> RendererVersion
+
+        This simple struct represents the `wx.RendererNative` interface
+        version and is only used as the return value of
+        `wx.RendererNative.GetVersion`.
+        """
+        _gdi_.RendererVersion_swiginit(self,_gdi_.new_RendererVersion(*args, **kwargs))
+    __swig_destroy__ = _gdi_.delete_RendererVersion
+    __del__ = lambda self : None;
+    Current_Version = _gdi_.RendererVersion_Current_Version
+    Current_Age = _gdi_.RendererVersion_Current_Age
+    def IsCompatible(*args, **kwargs):
+        """IsCompatible(RendererVersion ver) -> bool"""
+        return _gdi_.RendererVersion_IsCompatible(*args, **kwargs)
+
+    IsCompatible = staticmethod(IsCompatible)
+    version = property(_gdi_.RendererVersion_version_get)
+    age = property(_gdi_.RendererVersion_age_get)
+RendererVersion_swigregister = _gdi_.RendererVersion_swigregister
+RendererVersion_swigregister(RendererVersion)
+
+def RendererVersion_IsCompatible(*args, **kwargs):
+  """RendererVersion_IsCompatible(RendererVersion ver) -> bool"""
+  return _gdi_.RendererVersion_IsCompatible(*args, **kwargs)
+
+class RendererNative(object):
+    """
+    One of the design principles of wxWidgets is to use the native widgets
+    on every platform in order to be as close to the native look and feel
+    on every platform.  However there are still cases when some generic
+    widgets are needed for various reasons, but it can sometimes take a
+    lot of messy work to make them conform to the native LnF.
+
+    The wx.RendererNative class is a collection of functions that have
+    platform-specific implementations for drawing certain parts of
+    genereic controls in ways that are as close to the native look as
+    possible.
+
+    """
+    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc='The membership flag')
+    def __init__(self): raise AttributeError, "No constructor defined"
+    __repr__ = _swig_repr
+    def DrawHeaderButton(*args, **kwargs):
+        """
+        DrawHeaderButton(self, Window win, DC dc, Rect rect, int flags=0)
+
+        Draw the header control button (such as what is used by `wx.ListCtrl`
+        in report mode.)
+        """
+        return _gdi_.RendererNative_DrawHeaderButton(*args, **kwargs)
+
+    def DrawTreeItemButton(*args, **kwargs):
+        """
+        DrawTreeItemButton(self, Window win, DC dc, Rect rect, int flags=0)
+
+        Draw the expanded/collapsed icon for a tree control item.
+        """
+        return _gdi_.RendererNative_DrawTreeItemButton(*args, **kwargs)
+
+    def DrawSplitterBorder(*args, **kwargs):
+        """
+        DrawSplitterBorder(self, Window win, DC dc, Rect rect, int flags=0)
+
+        Draw the border for a sash window: this border must be such that the
+        sash drawn by `DrawSplitterSash` blends into it well.
+        """
+        return _gdi_.RendererNative_DrawSplitterBorder(*args, **kwargs)
+
+    def DrawSplitterSash(*args, **kwargs):
+        """
+        DrawSplitterSash(self, Window win, DC dc, Size size, int position, int orient, 
+            int flags=0)
+
+        Draw a sash. The orient parameter defines whether the sash should be
+        vertical or horizontal and how the position should be interpreted.
+        """
+        return _gdi_.RendererNative_DrawSplitterSash(*args, **kwargs)
+
+    def DrawComboBoxDropButton(*args, **kwargs):
+        """
+        DrawComboBoxDropButton(self, Window win, DC dc, Rect rect, int flags=0)
+
+        Draw a button like the one used by `wx.ComboBox` to show a drop down
+        window. The usual appearance is a downwards pointing arrow.
+
+        The ``flags`` parameter may have the ``wx.CONTROL_PRESSED`` or
+        ``wx.CONTROL_CURRENT`` bits set.
+        """
+        return _gdi_.RendererNative_DrawComboBoxDropButton(*args, **kwargs)
+
+    def DrawDropArrow(*args, **kwargs):
+        """
+        DrawDropArrow(self, Window win, DC dc, Rect rect, int flags=0)
+
+        Draw a drop down arrow that is suitable for use outside a combo
+        box. Arrow will have a transparent background.
+
+        ``rect`` is not entirely filled by the arrow. Instead, you should use
+        bounding rectangle of a drop down button which arrow matches the size
+        you need. ``flags`` may have the ``wx.CONTROL_PRESSED`` or
+        ``wx.CONTROL_CURRENT`` bit set.
+        """
+        return _gdi_.RendererNative_DrawDropArrow(*args, **kwargs)
+
+    def DrawCheckButton(*args, **kwargs):
+        """
+        DrawCheckButton(self, Window win, DC dc, Rect rect, int flags=0)
+
+        Draw a check button.  Flags may use wx.CONTROL_CHECKED,
+        wx.CONTROL_UNDETERMINED and wx.CONTROL_CURRENT.
+        """
+        return _gdi_.RendererNative_DrawCheckButton(*args, **kwargs)
+
+    def GetSplitterParams(*args, **kwargs):
+        """
+        GetSplitterParams(self, Window win) -> SplitterRenderParams
+
+        Get the splitter parameters, see `wx.SplitterRenderParams`.
+        """
+        return _gdi_.RendererNative_GetSplitterParams(*args, **kwargs)
+
+    def Get(*args, **kwargs):
+        """
+        Get() -> RendererNative
+
+        Return the currently used renderer
+        """
+        return _gdi_.RendererNative_Get(*args, **kwargs)
+
+    Get = staticmethod(Get)
+    def GetGeneric(*args, **kwargs):
+        """
+        GetGeneric() -> RendererNative
+
+        Return the generic implementation of the renderer. Under some
+        platforms, this is the default renderer implementation, others have
+        platform-specific default renderer which can be retrieved by calling
+        `GetDefault`.
+        """
+        return _gdi_.RendererNative_GetGeneric(*args, **kwargs)
+
+    GetGeneric = staticmethod(GetGeneric)
+    def GetDefault(*args, **kwargs):
+        """
+        GetDefault() -> RendererNative
+
+        Return the default (native) implementation for this platform -- this
+        is also the one used by default but this may be changed by calling `Set`
+        in which case the return value of this method may be different from
+        the return value of `Get`.
+        """
+        return _gdi_.RendererNative_GetDefault(*args, **kwargs)
+
+    GetDefault = staticmethod(GetDefault)
+    def Set(*args, **kwargs):
+        """
+        Set(RendererNative renderer) -> RendererNative
+
+        Set the renderer to use, passing None reverts to using the default
+        renderer.  Returns the previous renderer used with Set or None.
+        """
+        return _gdi_.RendererNative_Set(*args, **kwargs)
+
+    Set = staticmethod(Set)
+    def GetVersion(*args, **kwargs):
+        """
+        GetVersion(self) -> RendererVersion
+
+        Returns the version of the renderer.  Will be used for ensuring
+        compatibility of dynamically loaded renderers.
+        """
+        return _gdi_.RendererNative_GetVersion(*args, **kwargs)
+
+RendererNative_swigregister = _gdi_.RendererNative_swigregister
+RendererNative_swigregister(RendererNative)
+
+def RendererNative_Get(*args):
+  """
+    RendererNative_Get() -> RendererNative
+
+    Return the currently used renderer
+    """
+  return _gdi_.RendererNative_Get(*args)
+
+def RendererNative_GetGeneric(*args):
+  """
+    RendererNative_GetGeneric() -> RendererNative
+
+    Return the generic implementation of the renderer. Under some
+    platforms, this is the default renderer implementation, others have
+    platform-specific default renderer which can be retrieved by calling
+    `GetDefault`.
+    """
+  return _gdi_.RendererNative_GetGeneric(*args)
+
+def RendererNative_GetDefault(*args):
+  """
+    RendererNative_GetDefault() -> RendererNative
+
+    Return the default (native) implementation for this platform -- this
+    is also the one used by default but this may be changed by calling `Set`
+    in which case the return value of this method may be different from
+    the return value of `Get`.
+    """
+  return _gdi_.RendererNative_GetDefault(*args)
+
+def RendererNative_Set(*args, **kwargs):
+  """
+    RendererNative_Set(RendererNative renderer) -> RendererNative
+
+    Set the renderer to use, passing None reverts to using the default
+    renderer.  Returns the previous renderer used with Set or None.
+    """
+  return _gdi_.RendererNative_Set(*args, **kwargs)
 
-class EffectsPtr(Effects):
-    def __init__(self, this):
-        self.this = this
-        if not hasattr(self,"thisown"): self.thisown = 0
-        self.__class__ = Effects
-_gdi_.Effects_swigregister(EffectsPtr)
-TheFontList = cvar.TheFontList
-ThePenList = cvar.ThePenList
-TheBrushList = cvar.TheBrushList
-TheColourDatabase = cvar.TheColourDatabase