]> git.saurik.com Git - wxWidgets.git/blobdiff - wxPython/src/gtk/_gdi.py
Added style organiser dialog and list style editor page
[wxWidgets.git] / wxPython / src / gtk / _gdi.py
index 991796b8c3d9a514157fb894eece030858d0beaa..335c1b37a14b68a983a3efc335e4379edd67be57 100644 (file)
@@ -146,15 +146,16 @@ class Colour(_core.Object):
         """
         return _gdi_.Colour_Alpha(*args, **kwargs)
 
         """
         return _gdi_.Colour_Alpha(*args, **kwargs)
 
-    def Ok(*args, **kwargs):
+    def IsOk(*args, **kwargs):
         """
         """
-        Ok(self) -> bool
+        IsOk(self) -> bool
 
         Returns True if the colour object is valid (the colour has been
         initialised with RGB values).
         """
 
         Returns True if the colour object is valid (the colour has been
         initialised with RGB values).
         """
-        return _gdi_.Colour_Ok(*args, **kwargs)
+        return _gdi_.Colour_IsOk(*args, **kwargs)
 
 
+    Ok = IsOk 
     def Set(*args, **kwargs):
         """
         Set(self, byte red, byte green, byte blue, byte alpha=ALPHA_OPAQUE)
     def Set(*args, **kwargs):
         """
         Set(self, byte red, byte green, byte blue, byte alpha=ALPHA_OPAQUE)
@@ -239,7 +240,9 @@ class Colour(_core.Object):
     asTuple = wx._deprecated(Get, "asTuple is deprecated, use `Get` instead")
     def __str__(self):                  return str(self.Get(True))
     def __repr__(self):                 return 'wx.Colour' + str(self.Get(True))
     asTuple = wx._deprecated(Get, "asTuple is deprecated, use `Get` instead")
     def __str__(self):                  return str(self.Get(True))
     def __repr__(self):                 return 'wx.Colour' + str(self.Get(True))
-    def __nonzero__(self):              return self.Ok()
+    def __len__(self):                  return len(self.Get())
+    def __getitem__(self, index):       return self.Get()[index]
+    def __nonzero__(self):              return self.IsOk()
     __safe_for_unpickling__ = True
     def __reduce__(self):               return (Colour, self.Get(True))
 
     __safe_for_unpickling__ = True
     def __reduce__(self):               return (Colour, self.Get(True))
 
@@ -291,11 +294,12 @@ class Palette(GDIObject):
         """GetColoursCount(self) -> int"""
         return _gdi_.Palette_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 IsOk(*args, **kwargs):
+        """IsOk(self) -> bool"""
+        return _gdi_.Palette_IsOk(*args, **kwargs)
 
 
-    def __nonzero__(self): return self.Ok() 
+    Ok = IsOk 
+    def __nonzero__(self): return self.IsOk() 
     ColoursCount = property(GetColoursCount,doc="See `GetColoursCount`") 
 _gdi_.Palette_swigregister(Palette)
 
     ColoursCount = property(GetColoursCount,doc="See `GetColoursCount`") 
 _gdi_.Palette_swigregister(Palette)
 
@@ -330,10 +334,11 @@ class Pen(GDIObject):
         """GetWidth(self) -> int"""
         return _gdi_.Pen_GetWidth(*args, **kwargs)
 
         """GetWidth(self) -> int"""
         return _gdi_.Pen_GetWidth(*args, **kwargs)
 
-    def Ok(*args, **kwargs):
-        """Ok(self) -> bool"""
-        return _gdi_.Pen_Ok(*args, **kwargs)
+    def IsOk(*args, **kwargs):
+        """IsOk(self) -> bool"""
+        return _gdi_.Pen_IsOk(*args, **kwargs)
 
 
+    Ok = IsOk 
     def SetCap(*args, **kwargs):
         """SetCap(self, int cap_style)"""
         return _gdi_.Pen_SetCap(*args, **kwargs)
     def SetCap(*args, **kwargs):
         """SetCap(self, int cap_style)"""
         return _gdi_.Pen_SetCap(*args, **kwargs)
@@ -385,7 +390,7 @@ class Pen(GDIObject):
         """__ne__(self, Pen other) -> bool"""
         return _gdi_.Pen___ne__(*args, **kwargs)
 
         """__ne__(self, Pen other) -> bool"""
         return _gdi_.Pen___ne__(*args, **kwargs)
 
-    def __nonzero__(self): return self.Ok() 
+    def __nonzero__(self): return self.IsOk() 
     Cap = property(GetCap,SetCap,doc="See `GetCap` and `SetCap`") 
     Colour = property(GetColour,SetColour,doc="See `GetColour` and `SetColour`") 
     Dashes = property(GetDashes,SetDashes,doc="See `GetDashes` and `SetDashes`") 
     Cap = property(GetCap,SetCap,doc="See `GetCap` and `SetCap`") 
     Colour = property(GetColour,SetColour,doc="See `GetColour` and `SetColour`") 
     Dashes = property(GetDashes,SetDashes,doc="See `GetDashes` and `SetDashes`") 
@@ -401,6 +406,18 @@ class Brush(GDIObject):
     A brush is a drawing tool for filling in areas. It is used for
     painting the background of rectangles, ellipses, etc. when drawing on
     a `wx.DC`.  It has a colour and a style.
     A brush is a drawing tool for filling in areas. It is used for
     painting the background of rectangles, ellipses, etc. when drawing on
     a `wx.DC`.  It has a colour and a style.
+
+    :warning: Do not create instances of wx.Brush before the `wx.App`
+        object has been created because, depending on the platform,
+        required internal data structures may not have been initialized
+        yet.  Instead create your brushes in the app's OnInit or as they
+        are needed for drawing.
+
+    :note: On monochrome displays all brushes are white, unless the colour
+        really is black.
+
+    :see: `wx.BrushList`, `wx.DC`, `wx.DC.SetBrush`
+
     """
     thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc='The membership flag')
     __repr__ = _swig_repr
     """
     thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc='The membership flag')
     __repr__ = _swig_repr
@@ -408,7 +425,24 @@ class Brush(GDIObject):
         """
         __init__(self, Colour colour, int style=SOLID) -> Brush
 
         """
         __init__(self, Colour colour, int style=SOLID) -> Brush
 
-        Constructs a brush from a `wx.Colour` object and a style.
+        Constructs a brush from a `wx.Colour` object and a style.The style parameter may be one of the following:
+
+            ===================   =============================
+            Style                 Meaning
+            ===================   =============================
+            wx.TRANSPARENT        Transparent (no fill).
+            wx.SOLID              Solid.
+            wx.STIPPLE            Uses a bitmap as a stipple.
+            wx.BDIAGONAL_HATCH    Backward diagonal hatch.
+            wx.CROSSDIAG_HATCH    Cross-diagonal hatch.
+            wx.FDIAGONAL_HATCH    Forward diagonal hatch.
+            wx.CROSS_HATCH        Cross hatch.
+            wx.HORIZONTAL_HATCH   Horizontal hatch.
+            wx.VERTICAL_HATCH     Vertical hatch.
+            ===================   =============================
+
+        :see: `wx.BrushFromBitmap`
+
         """
         _gdi_.Brush_swiginit(self,_gdi_.new_Brush(*args, **kwargs))
     __swig_destroy__ = _gdi_.delete_Brush
         """
         _gdi_.Brush_swiginit(self,_gdi_.new_Brush(*args, **kwargs))
     __swig_destroy__ = _gdi_.delete_Brush
@@ -472,15 +506,16 @@ class Brush(GDIObject):
         """
         return _gdi_.Brush_IsHatch(*args, **kwargs)
 
         """
         return _gdi_.Brush_IsHatch(*args, **kwargs)
 
-    def Ok(*args, **kwargs):
+    def IsOk(*args, **kwargs):
         """
         """
-        Ok(self) -> bool
+        IsOk(self) -> bool
 
         Returns True if the brush is initialised and valid.
         """
 
         Returns True if the brush is initialised and valid.
         """
-        return _gdi_.Brush_Ok(*args, **kwargs)
+        return _gdi_.Brush_IsOk(*args, **kwargs)
 
 
-    def __nonzero__(self): return self.Ok() 
+    Ok = IsOk 
+    def __nonzero__(self): return self.IsOk() 
     Colour = property(GetColour,SetColour,doc="See `GetColour` and `SetColour`") 
     Stipple = property(GetStipple,SetStipple,doc="See `GetStipple` and `SetStipple`") 
     Style = property(GetStyle,SetStyle,doc="See `GetStyle` and `SetStyle`") 
     Colour = property(GetColour,SetColour,doc="See `GetColour` and `SetColour`") 
     Stipple = property(GetStipple,SetStipple,doc="See `GetStipple` and `SetStipple`") 
     Style = property(GetStyle,SetStyle,doc="See `GetStyle` and `SetStyle`") 
@@ -503,6 +538,23 @@ class Bitmap(GDIObject):
     device context (instance of `wx.MemoryDC`). This enables the bitmap to
     be copied to a window or memory device context using `wx.DC.Blit`, or
     to be used as a drawing surface.
     device context (instance of `wx.MemoryDC`). This enables the bitmap to
     be copied to a window or memory device context using `wx.DC.Blit`, or
     to be used as a drawing surface.
+
+    The BMP and XMP image file formats are supported on all platforms by
+    wx.Bitmap.  Other formats are automatically loaded by `wx.Image` and
+    converted to a wx.Bitmap, so any image file format supported by
+    `wx.Image` can be used.
+
+    :todo: Add wrappers and support for raw bitmap data access.  Can this
+           be be put into Python without losing the speed benefits of the
+           teplates and iterators in rawbmp.h?
+
+    :todo: Find a way to do very efficient PIL Image <--> wx.Bitmap
+           converstions.
+
+    :see: `wx.EmptyBitmap`, `wx.BitmapFromIcon`, `wx.BitmapFromImage`,
+          `wx.BitmapFromXPMData`, `wx.BitmapFromBits`, `wx.BitmapFromBuffer`,
+          `wx.BitmapFromBufferRGBA`, `wx.Image`
+
     """
     thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc='The membership flag')
     __repr__ = _swig_repr
     """
     thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc='The membership flag')
     __repr__ = _swig_repr
@@ -511,14 +563,41 @@ class Bitmap(GDIObject):
         __init__(self, String name, int type=BITMAP_TYPE_ANY) -> Bitmap
 
         Loads a bitmap from a file.
         __init__(self, String name, int type=BITMAP_TYPE_ANY) -> Bitmap
 
         Loads a bitmap from a file.
+            :param name:  Name of the file to load the bitmap from.
+            :param type: The type of image to expect.  Can be one of the following
+                constants (assuming that the neccessary `wx.Image` handlers are
+                loaded):
+
+                * wx.BITMAP_TYPE_ANY
+                * wx.BITMAP_TYPE_BMP
+                * wx.BITMAP_TYPE_ICO
+                * wx.BITMAP_TYPE_CUR
+                * wx.BITMAP_TYPE_XBM
+                * wx.BITMAP_TYPE_XPM
+                * wx.BITMAP_TYPE_TIF
+                * wx.BITMAP_TYPE_GIF
+                * wx.BITMAP_TYPE_PNG
+                * wx.BITMAP_TYPE_JPEG
+                * wx.BITMAP_TYPE_PNM
+                * wx.BITMAP_TYPE_PCX
+                * wx.BITMAP_TYPE_PICT
+                * wx.BITMAP_TYPE_ICON
+                * wx.BITMAP_TYPE_ANI
+                * wx.BITMAP_TYPE_IFF
+
+        :see: Alternate constructors `wx.EmptyBitmap`, `wx.BitmapFromIcon`,
+              `wx.BitmapFromImage`, `wx.BitmapFromXPMData`, `wx.BitmapFromBits`,
+              `wx.BitmapFromBuffer`, `wx.BitmapFromBufferRGBA`,
+
         """
         _gdi_.Bitmap_swiginit(self,_gdi_.new_Bitmap(*args, **kwargs))
     __swig_destroy__ = _gdi_.delete_Bitmap
     __del__ = lambda self : None;
         """
         _gdi_.Bitmap_swiginit(self,_gdi_.new_Bitmap(*args, **kwargs))
     __swig_destroy__ = _gdi_.delete_Bitmap
     __del__ = lambda self : None;
-    def Ok(*args, **kwargs):
-        """Ok(self) -> bool"""
-        return _gdi_.Bitmap_Ok(*args, **kwargs)
+    def IsOk(*args, **kwargs):
+        """IsOk(self) -> bool"""
+        return _gdi_.Bitmap_IsOk(*args, **kwargs)
 
 
+    Ok = IsOk 
     def GetWidth(*args, **kwargs):
         """
         GetWidth(self) -> int
     def GetWidth(*args, **kwargs):
         """
         GetWidth(self) -> int
@@ -661,7 +740,7 @@ class Bitmap(GDIObject):
         """
         return _gdi_.Bitmap_SetSize(*args, **kwargs)
 
         """
         return _gdi_.Bitmap_SetSize(*args, **kwargs)
 
-    def __nonzero__(self): return self.Ok() 
+    def __nonzero__(self): return self.IsOk() 
     def __eq__(*args, **kwargs):
         """__eq__(self, Bitmap other) -> bool"""
         return _gdi_.Bitmap___eq__(*args, **kwargs)
     def __eq__(*args, **kwargs):
         """__eq__(self, Bitmap other) -> bool"""
         return _gdi_.Bitmap___eq__(*args, **kwargs)
@@ -1103,10 +1182,11 @@ class Icon(GDIObject):
         """LoadFile(self, String name, int type) -> bool"""
         return _gdi_.Icon_LoadFile(*args, **kwargs)
 
         """LoadFile(self, String name, int type) -> bool"""
         return _gdi_.Icon_LoadFile(*args, **kwargs)
 
-    def Ok(*args, **kwargs):
-        """Ok(self) -> bool"""
-        return _gdi_.Icon_Ok(*args, **kwargs)
+    def IsOk(*args, **kwargs):
+        """IsOk(self) -> bool"""
+        return _gdi_.Icon_IsOk(*args, **kwargs)
 
 
+    Ok = IsOk 
     def GetWidth(*args, **kwargs):
         """GetWidth(self) -> int"""
         return _gdi_.Icon_GetWidth(*args, **kwargs)
     def GetWidth(*args, **kwargs):
         """GetWidth(self) -> int"""
         return _gdi_.Icon_GetWidth(*args, **kwargs)
@@ -1135,7 +1215,7 @@ class Icon(GDIObject):
         """CopyFromBitmap(self, Bitmap bmp)"""
         return _gdi_.Icon_CopyFromBitmap(*args, **kwargs)
 
         """CopyFromBitmap(self, Bitmap bmp)"""
         return _gdi_.Icon_CopyFromBitmap(*args, **kwargs)
 
-    def __nonzero__(self): return self.Ok() 
+    def __nonzero__(self): return self.IsOk() 
     Depth = property(GetDepth,SetDepth,doc="See `GetDepth` and `SetDepth`") 
     Height = property(GetHeight,SetHeight,doc="See `GetHeight` and `SetHeight`") 
     Width = property(GetWidth,SetWidth,doc="See `GetWidth` and `SetWidth`") 
     Depth = property(GetDepth,SetDepth,doc="See `GetDepth` and `SetDepth`") 
     Height = property(GetHeight,SetHeight,doc="See `GetHeight` and `SetHeight`") 
     Width = property(GetWidth,SetWidth,doc="See `GetWidth` and `SetWidth`") 
@@ -1174,7 +1254,7 @@ class IconLocation(object):
         """IsOk(self) -> bool"""
         return _gdi_.IconLocation_IsOk(*args, **kwargs)
 
         """IsOk(self) -> bool"""
         return _gdi_.IconLocation_IsOk(*args, **kwargs)
 
-    def __nonzero__(self): return self.Ok() 
+    def __nonzero__(self): return self.IsOk() 
     def SetFileName(*args, **kwargs):
         """SetFileName(self, String filename)"""
         return _gdi_.IconLocation_SetFileName(*args, **kwargs)
     def SetFileName(*args, **kwargs):
         """SetFileName(self, String filename)"""
         return _gdi_.IconLocation_SetFileName(*args, **kwargs)
@@ -1240,6 +1320,40 @@ class Cursor(GDIObject):
     in X, rather than to set it globally as in MS Windows, although a
     global `wx.SetCursor` function is also available for use on MS Windows.
 
     in X, rather than to set it globally as in MS Windows, although a
     global `wx.SetCursor` function is also available for use on MS Windows.
 
+
+    Stock Cursor IDs
+    -----------------
+        ========================    ======================================
+        wx.CURSOR_ARROW             A standard arrow cursor.
+        wx.CURSOR_RIGHT_ARROW       A standard arrow cursor pointing to the right.
+        wx.CURSOR_BLANK             Transparent cursor.
+        wx.CURSOR_BULLSEYE          Bullseye cursor.
+        wx.CURSOR_CHAR              Rectangular character cursor.
+        wx.CURSOR_CROSS             A cross cursor.
+        wx.CURSOR_HAND              A hand cursor.
+        wx.CURSOR_IBEAM             An I-beam cursor (vertical line).
+        wx.CURSOR_LEFT_BUTTON       Represents a mouse with the left button depressed.
+        wx.CURSOR_MAGNIFIER         A magnifier icon.
+        wx.CURSOR_MIDDLE_BUTTON     Represents a mouse with the middle button depressed.
+        wx.CURSOR_NO_ENTRY          A no-entry sign cursor.
+        wx.CURSOR_PAINT_BRUSH       A paintbrush cursor.
+        wx.CURSOR_PENCIL            A pencil cursor.
+        wx.CURSOR_POINT_LEFT        A cursor that points left.
+        wx.CURSOR_POINT_RIGHT       A cursor that points right.
+        wx.CURSOR_QUESTION_ARROW    An arrow and question mark.
+        wx.CURSOR_RIGHT_BUTTON      Represents a mouse with the right button depressed.
+        wx.CURSOR_SIZENESW          A sizing cursor pointing NE-SW.
+        wx.CURSOR_SIZENS            A sizing cursor pointing N-S.
+        wx.CURSOR_SIZENWSE          A sizing cursor pointing NW-SE.
+        wx.CURSOR_SIZEWE            A sizing cursor pointing W-E.
+        wx.CURSOR_SIZING            A general sizing cursor.
+        wx.CURSOR_SPRAYCAN          A spraycan cursor.
+        wx.CURSOR_WAIT              A wait cursor.
+        wx.CURSOR_WATCH             A watch cursor.
+        wx.CURSOR_ARROWWAIT         A cursor with both an arrow and an hourglass, (windows.)
+        ========================    ======================================
+
+
     """
     thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc='The membership flag')
     __repr__ = _swig_repr
     """
     thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc='The membership flag')
     __repr__ = _swig_repr
@@ -1250,15 +1364,17 @@ class Cursor(GDIObject):
         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
         file.
         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
         file.
+        :see: Alternate constructors `wx.StockCursor`,`wx.CursorFromImage`
         """
         _gdi_.Cursor_swiginit(self,_gdi_.new_Cursor(*args, **kwargs))
     __swig_destroy__ = _gdi_.delete_Cursor
     __del__ = lambda self : None;
         """
         _gdi_.Cursor_swiginit(self,_gdi_.new_Cursor(*args, **kwargs))
     __swig_destroy__ = _gdi_.delete_Cursor
     __del__ = lambda self : None;
-    def Ok(*args, **kwargs):
-        """Ok(self) -> bool"""
-        return _gdi_.Cursor_Ok(*args, **kwargs)
+    def IsOk(*args, **kwargs):
+        """IsOk(self) -> bool"""
+        return _gdi_.Cursor_IsOk(*args, **kwargs)
 
 
-    def __nonzero__(self): return self.Ok() 
+    Ok = IsOk 
+    def __nonzero__(self): return self.IsOk() 
 _gdi_.Cursor_swigregister(Cursor)
 
 def StockCursor(*args, **kwargs):
 _gdi_.Cursor_swigregister(Cursor)
 
 def StockCursor(*args, **kwargs):
@@ -1277,6 +1393,11 @@ def CursorFromImage(*args, **kwargs):
 
     Constructs a cursor from a `wx.Image`. The mask (if any) will be used
     for setting the transparent portions of the cursor.
 
     Constructs a cursor from a `wx.Image`. The mask (if any) will be used
     for setting the transparent portions of the cursor.
+    In MSW the cursor is resized to 32x32 if it was larger.
+
+    In GTK the cursor will be displayed at the size of the image.
+
+    On MacOS the cursor is resized to 16x16 if it was larger.
     """
     val = _gdi_.new_CursorFromImage(*args, **kwargs)
     return val
     """
     val = _gdi_.new_CursorFromImage(*args, **kwargs)
     return val
@@ -1339,6 +1460,10 @@ class Region(GDIObject):
         """IsEmpty(self) -> bool"""
         return _gdi_.Region_IsEmpty(*args, **kwargs)
 
         """IsEmpty(self) -> bool"""
         return _gdi_.Region_IsEmpty(*args, **kwargs)
 
+    def IsEqual(*args, **kwargs):
+        """IsEqual(self, Region region) -> bool"""
+        return _gdi_.Region_IsEqual(*args, **kwargs)
+
     def Union(*args, **kwargs):
         """Union(self, int x, int y, int width, int height) -> bool"""
         return _gdi_.Region_Union(*args, **kwargs)
     def Union(*args, **kwargs):
         """Union(self, int x, int y, int width, int height) -> bool"""
         return _gdi_.Region_Union(*args, **kwargs)
@@ -1845,6 +1970,71 @@ class Font(GDIObject):
     of a window's text.
 
     You can retrieve the current system font settings with `wx.SystemSettings`.
     of a window's text.
 
     You can retrieve the current system font settings with `wx.SystemSettings`.
+
+    The possible values for the family parameter of wx.Font constructor are:
+
+        ========================  =============================
+        wx.FONTFAMILY_DEFAULT     Chooses a default font.
+        wx.FONTFAMILY_DECORATIVE  A decorative font. 
+        wx.FONTFAMILY_ROMAN       A formal, serif font.
+        wx.FONTFAMILY_SCRIPT      A handwriting font. 
+        wx.FONTFAMILY_SWISS       A sans-serif font. 
+        wx.FONTFAMILY_MODERN      Usually a fixed pitch font.    
+        wx.FONTFAMILY_TELETYPE    A teletype font. 
+        ========================  =============================
+
+    The possible values for the weight parameter are:
+
+        ====================  ==
+        wx.FONTWEIGHT_NORMAL
+        wx.FONTWEIGHT_LIGHT
+        wx.FONTWEIGHT_BOLD
+        ====================  ==
+
+    The known font encodings are:
+
+        ===========================       ====================================
+        wx.FONTENCODING_SYSTEM            system default
+        wx.FONTENCODING_DEFAULT           current default encoding
+        wx.FONTENCODING_ISO8859_1         West European (Latin1)
+        wx.FONTENCODING_ISO8859_2         Central and East European (Latin2)
+        wx.FONTENCODING_ISO8859_3         Esperanto (Latin3)
+        wx.FONTENCODING_ISO8859_4         Baltic (old) (Latin4)
+        wx.FONTENCODING_ISO8859_5         Cyrillic
+        wx.FONTENCODING_ISO8859_6         Arabic
+        wx.FONTENCODING_ISO8859_7         Greek
+        wx.FONTENCODING_ISO8859_8         Hebrew
+        wx.FONTENCODING_ISO8859_9         Turkish (Latin5)
+        wx.FONTENCODING_ISO8859_10        Variation of Latin4 (Latin6)
+        wx.FONTENCODING_ISO8859_11        Thai
+        wx.FONTENCODING_ISO8859_12        doesn't exist currently, but put it
+                                          here anyhow to make all ISO8859
+                                          consecutive numbers
+        wx.FONTENCODING_ISO8859_13        Baltic (Latin7)
+        wx.FONTENCODING_ISO8859_14        Latin8
+        wx.FONTENCODING_ISO8859_15        Latin9 (a.k.a. Latin0, includes euro)
+        wx.FONTENCODING_KOI8              Cyrillic charset
+        wx.FONTENCODING_ALTERNATIVE       same as MS-DOS CP866
+        wx.FONTENCODING_BULGARIAN         used under Linux in Bulgaria
+        wx.FONTENCODING_CP437             original MS-DOS codepage
+        wx.FONTENCODING_CP850             CP437 merged with Latin1
+        wx.FONTENCODING_CP852             CP437 merged with Latin2
+        wx.FONTENCODING_CP855             another cyrillic encoding
+        wx.FONTENCODING_CP866             and another one
+        wx.FONTENCODING_CP874             WinThai
+        wx.FONTENCODING_CP1250            WinLatin2
+        wx.FONTENCODING_CP1251            WinCyrillic
+        wx.FONTENCODING_CP1252            WinLatin1
+        wx.FONTENCODING_CP1253            WinGreek (8859-7)
+        wx.FONTENCODING_CP1254            WinTurkish
+        wx.FONTENCODING_CP1255            WinHebrew
+        wx.FONTENCODING_CP1256            WinArabic
+        wx.FONTENCODING_CP1257            WinBaltic (same as Latin 7)
+        wx.FONTENCODING_UTF7              UTF-7 Unicode encoding
+        wx.FONTENCODING_UTF8              UTF-8 Unicode encoding
+        ===========================       ====================================
+
+
     """
     thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc='The membership flag')
     __repr__ = _swig_repr
     """
     thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc='The membership flag')
     __repr__ = _swig_repr
@@ -1887,15 +2077,16 @@ class Font(GDIObject):
         _gdi_.Font_swiginit(self,_gdi_.new_Font(*args, **kwargs))
     __swig_destroy__ = _gdi_.delete_Font
     __del__ = lambda self : None;
         _gdi_.Font_swiginit(self,_gdi_.new_Font(*args, **kwargs))
     __swig_destroy__ = _gdi_.delete_Font
     __del__ = lambda self : None;
-    def Ok(*args, **kwargs):
+    def IsOk(*args, **kwargs):
         """
         """
-        Ok(self) -> bool
+        IsOk(self) -> bool
 
         Returns ``True`` if this font was successfully created.
         """
 
         Returns ``True`` if this font was successfully created.
         """
-        return _gdi_.Font_Ok(*args, **kwargs)
+        return _gdi_.Font_IsOk(*args, **kwargs)
 
 
-    def __nonzero__(self): return self.Ok() 
+    Ok = IsOk 
+    def __nonzero__(self): return self.IsOk() 
     def __eq__(*args, **kwargs):
         """__eq__(self, Font other) -> bool"""
         return _gdi_.Font___eq__(*args, **kwargs)
     def __eq__(*args, **kwargs):
         """__eq__(self, Font other) -> bool"""
         return _gdi_.Font___eq__(*args, **kwargs)
@@ -2847,7 +3038,7 @@ def EncodingConverter_CanConvert(*args, **kwargs):
 # to the default catalog path.
 if wx.Platform == "__WXMSW__":
     import os
 # to the default catalog path.
 if wx.Platform == "__WXMSW__":
     import os
-    _localedir = os.path.join(os.path.split(__file__)[0], "i18n")
+    _localedir = os.path.join(os.path.split(__file__)[0], "locale")
     Locale.AddCatalogLookupPathPrefix(_localedir)
     del os
 
     Locale.AddCatalogLookupPathPrefix(_localedir)
     del os
 
@@ -3186,6 +3377,8 @@ class DC(_core.Object):
         Draws a circle with the given center point and radius.  The current
         pen is used for the outline and the current brush for filling the
         shape.
         Draws a circle with the given center point and radius.  The current
         pen is used for the outline and the current brush for filling the
         shape.
+
+        :see: `DrawEllipse`
         """
         return _gdi_.DC_DrawCircle(*args, **kwargs)
 
         """
         return _gdi_.DC_DrawCircle(*args, **kwargs)
 
@@ -3196,6 +3389,8 @@ class DC(_core.Object):
         Draws a circle with the given center point and radius.  The current
         pen is used for the outline and the current brush for filling the
         shape.
         Draws a circle with the given center point and radius.  The current
         pen is used for the outline and the current brush for filling the
         shape.
+
+        :see: `DrawEllipse`
         """
         return _gdi_.DC_DrawCirclePoint(*args, **kwargs)
 
         """
         return _gdi_.DC_DrawCirclePoint(*args, **kwargs)
 
@@ -3205,6 +3400,8 @@ class DC(_core.Object):
 
         Draws an ellipse contained in the specified rectangle. The current pen
         is used for the outline and the current brush for filling the shape.
 
         Draws an ellipse contained in the specified rectangle. The current pen
         is used for the outline and the current brush for filling the shape.
+
+        :see: `DrawCircle`
         """
         return _gdi_.DC_DrawEllipse(*args, **kwargs)
 
         """
         return _gdi_.DC_DrawEllipse(*args, **kwargs)
 
@@ -3214,6 +3411,8 @@ class DC(_core.Object):
 
         Draws an ellipse contained in the specified rectangle. The current pen
         is used for the outline and the current brush for filling the shape.
 
         Draws an ellipse contained in the specified rectangle. The current pen
         is used for the outline and the current brush for filling the shape.
+
+        :see: `DrawCircle`
         """
         return _gdi_.DC_DrawEllipseRect(*args, **kwargs)
 
         """
         return _gdi_.DC_DrawEllipseRect(*args, **kwargs)
 
@@ -3223,6 +3422,8 @@ class DC(_core.Object):
 
         Draws an ellipse contained in the specified rectangle. The current pen
         is used for the outline and the current brush for filling the shape.
 
         Draws an ellipse contained in the specified rectangle. The current pen
         is used for the outline and the current brush for filling the shape.
+
+        :see: `DrawCircle`
         """
         return _gdi_.DC_DrawEllipsePointSize(*args, **kwargs)
 
         """
         return _gdi_.DC_DrawEllipsePointSize(*args, **kwargs)
 
@@ -3254,6 +3455,13 @@ class DC(_core.Object):
         *transparent* is true and the bitmap has a transparency mask, (or
         alpha channel on the platforms that support it) then the bitmap will
         be drawn transparently.
         *transparent* is true and the bitmap has a transparency mask, (or
         alpha channel on the platforms that support it) then the bitmap will
         be drawn transparently.
+
+        When drawing a mono-bitmap, the current text foreground colour will be
+        used to draw the foreground of the bitmap (all bits set to 1), and the
+        current text background colour to draw the background (all bits set to
+        0).
+
+        :see: `SetTextForeground`, `SetTextBackground` and `wx.MemoryDC`
         """
         return _gdi_.DC_DrawBitmap(*args, **kwargs)
 
         """
         return _gdi_.DC_DrawBitmap(*args, **kwargs)
 
@@ -3265,6 +3473,13 @@ class DC(_core.Object):
         *transparent* is true and the bitmap has a transparency mask, (or
         alpha channel on the platforms that support it) then the bitmap will
         be drawn transparently.
         *transparent* is true and the bitmap has a transparency mask, (or
         alpha channel on the platforms that support it) then the bitmap will
         be drawn transparently.
+
+        When drawing a mono-bitmap, the current text foreground colour will be
+        used to draw the foreground of the bitmap (all bits set to 1), and the
+        current text background colour to draw the background (all bits set to
+        0).
+
+        :see: `SetTextForeground`, `SetTextBackground` and `wx.MemoryDC`
         """
         return _gdi_.DC_DrawBitmapPoint(*args, **kwargs)
 
         """
         return _gdi_.DC_DrawBitmapPoint(*args, **kwargs)
 
@@ -3282,6 +3497,8 @@ class DC(_core.Object):
         **NOTE**: under wxGTK the current logical function is used by this
         function but it is ignored by wxMSW. Thus, you should avoid using
         logical functions with this function in portable programs.
         **NOTE**: under wxGTK the current logical function is used by this
         function but it is ignored by wxMSW. Thus, you should avoid using
         logical functions with this function in portable programs.
+
+        :see: `DrawRotatedText`
         """
         return _gdi_.DC_DrawText(*args, **kwargs)
 
         """
         return _gdi_.DC_DrawText(*args, **kwargs)
 
@@ -3299,6 +3516,8 @@ class DC(_core.Object):
         **NOTE**: under wxGTK the current logical function is used by this
         function but it is ignored by wxMSW. Thus, you should avoid using
         logical functions with this function in portable programs.
         **NOTE**: under wxGTK the current logical function is used by this
         function but it is ignored by wxMSW. Thus, you should avoid using
         logical functions with this function in portable programs.
+
+        :see: `DrawRotatedText`
         """
         return _gdi_.DC_DrawTextPoint(*args, **kwargs)
 
         """
         return _gdi_.DC_DrawTextPoint(*args, **kwargs)
 
@@ -3312,6 +3531,8 @@ class DC(_core.Object):
         function. In particular, a font different from ``wx.NORMAL_FONT``
         should be used as the it is not normally a TrueType
         font. ``wx.SWISS_FONT`` is an example of a font which is.
         function. In particular, a font different from ``wx.NORMAL_FONT``
         should be used as the it is not normally a TrueType
         font. ``wx.SWISS_FONT`` is an example of a font which is.
+
+        :see: `DrawText`
         """
         return _gdi_.DC_DrawRotatedText(*args, **kwargs)
 
         """
         return _gdi_.DC_DrawRotatedText(*args, **kwargs)
 
@@ -3325,6 +3546,8 @@ class DC(_core.Object):
         function. In particular, a font different from ``wx.NORMAL_FONT``
         should be used as the it is not normally a TrueType
         font. ``wx.SWISS_FONT`` is an example of a font which is.
         function. In particular, a font different from ``wx.NORMAL_FONT``
         should be used as the it is not normally a TrueType
         font. ``wx.SWISS_FONT`` is an example of a font which is.
+
+        :see: `DrawText`
         """
         return _gdi_.DC_DrawRotatedTextPoint(*args, **kwargs)
 
         """
         return _gdi_.DC_DrawRotatedTextPoint(*args, **kwargs)
 
@@ -3338,6 +3561,23 @@ class DC(_core.Object):
         coordinates, size of area to copy, source DC, source coordinates,
         logical function, whether to use a bitmap mask, and mask source
         position.
         coordinates, size of area to copy, source DC, source coordinates,
         logical function, whether to use a bitmap mask, and mask source
         position.
+
+            :param xdest:       Destination device context x position.
+            :param ydest:       Destination device context y position.
+            :param width:       Width of source area to be copied.
+            :param height:      Height of source area to be copied.
+            :param source:      Source device context.
+            :param xsrc:        Source device context x position.
+            :param ysrc:        Source device context y position.
+            :param rop:         Logical function to use: see `SetLogicalFunction`.
+            :param useMask:     If true, Blit does a transparent blit using the mask
+                                that is associated with the bitmap selected into the
+                                source device context.
+            :param xsrcMask:    Source x position on the mask. If both xsrcMask and
+                                ysrcMask are -1, xsrc and ysrc will be assumed for
+                                the mask source position.
+            :param ysrcMask:    Source y position on the mask. 
+
         """
         return _gdi_.DC_Blit(*args, **kwargs)
 
         """
         return _gdi_.DC_Blit(*args, **kwargs)
 
@@ -3350,6 +3590,17 @@ class DC(_core.Object):
         coordinates, size of area to copy, source DC, source coordinates,
         logical function, whether to use a bitmap mask, and mask source
         position.
         coordinates, size of area to copy, source DC, source coordinates,
         logical function, whether to use a bitmap mask, and mask source
         position.
+
+            :param destPt:      Destination device context position.
+            :param sz:          Size of source area to be copied.
+            :param source:      Source device context.
+            :param srcPt:       Source device context position.
+            :param rop:         Logical function to use: see `SetLogicalFunction`.
+            :param useMask:     If true, Blit does a transparent blit using the mask
+                                that is associated with the bitmap selected into the
+                                source device context.
+            :param srcPtMask:   Source position on the mask. 
+
         """
         return _gdi_.DC_BlitPointSize(*args, **kwargs)
 
         """
         return _gdi_.DC_BlitPointSize(*args, **kwargs)
 
@@ -3367,6 +3618,8 @@ class DC(_core.Object):
         restricted. Possible uses for the clipping region are for clipping
         text or for speeding up window redraws when only a known area of the
         screen is damaged.
         restricted. Possible uses for the clipping region are for clipping
         text or for speeding up window redraws when only a known area of the
         screen is damaged.
+
+        :see: `DestroyClippingRegion`, `wx.Region`
         """
         return _gdi_.DC_SetClippingRegion(*args, **kwargs)
 
         """
         return _gdi_.DC_SetClippingRegion(*args, **kwargs)
 
@@ -3384,6 +3637,8 @@ class DC(_core.Object):
         restricted. Possible uses for the clipping region are for clipping
         text or for speeding up window redraws when only a known area of the
         screen is damaged.
         restricted. Possible uses for the clipping region are for clipping
         text or for speeding up window redraws when only a known area of the
         screen is damaged.
+
+        :see: `DestroyClippingRegion`, `wx.Region`
         """
         return _gdi_.DC_SetClippingRegionPointSize(*args, **kwargs)
 
         """
         return _gdi_.DC_SetClippingRegionPointSize(*args, **kwargs)
 
@@ -3401,6 +3656,8 @@ class DC(_core.Object):
         restricted. Possible uses for the clipping region are for clipping
         text or for speeding up window redraws when only a known area of the
         screen is damaged.
         restricted. Possible uses for the clipping region are for clipping
         text or for speeding up window redraws when only a known area of the
         screen is damaged.
+
+        :see: `DestroyClippingRegion`, `wx.Region`
         """
         return _gdi_.DC_SetClippingRegionAsRegion(*args, **kwargs)
 
         """
         return _gdi_.DC_SetClippingRegionAsRegion(*args, **kwargs)
 
@@ -3418,6 +3675,8 @@ class DC(_core.Object):
         restricted. Possible uses for the clipping region are for clipping
         text or for speeding up window redraws when only a known area of the
         screen is damaged.
         restricted. Possible uses for the clipping region are for clipping
         text or for speeding up window redraws when only a known area of the
         screen is damaged.
+
+        :see: `DestroyClippingRegion`, `wx.Region`
         """
         return _gdi_.DC_SetClippingRect(*args, **kwargs)
 
         """
         return _gdi_.DC_SetClippingRect(*args, **kwargs)
 
@@ -3455,6 +3714,8 @@ class DC(_core.Object):
         Draw *text* within the specified rectangle, abiding by the alignment
         flags.  Will additionally emphasize the character at *indexAccel* if
         it is not -1.
         Draw *text* within the specified rectangle, abiding by the alignment
         flags.  Will additionally emphasize the character at *indexAccel* if
         it is not -1.
+
+        :see: `DrawImageLabel`
         """
         return _gdi_.DC_DrawLabel(*args, **kwargs)
 
         """
         return _gdi_.DC_DrawLabel(*args, **kwargs)
 
@@ -3527,6 +3788,8 @@ class DC(_core.Object):
 
         Sets the current font for the DC. It must be a valid font, in
         particular you should not pass ``wx.NullFont`` to this method.
 
         Sets the current font for the DC. It must be a valid font, in
         particular you should not pass ``wx.NullFont`` to this method.
+
+        :see: `wx.Font`
         """
         return _gdi_.DC_SetFont(*args, **kwargs)
 
         """
         return _gdi_.DC_SetFont(*args, **kwargs)
 
@@ -3538,6 +3801,8 @@ class DC(_core.Object):
 
         If the argument is ``wx.NullPen``, the current pen is selected out of the
         device context, and the original pen restored.
 
         If the argument is ``wx.NullPen``, the current pen is selected out of the
         device context, and the original pen restored.
+
+        :see: `wx.Pen`
         """
         return _gdi_.DC_SetPen(*args, **kwargs)
 
         """
         return _gdi_.DC_SetPen(*args, **kwargs)
 
@@ -3550,6 +3815,8 @@ class DC(_core.Object):
         If the argument is ``wx.NullBrush``, the current brush is selected out
         of the device context, and the original brush restored, allowing the
         current brush to be destroyed safely.
         If the argument is ``wx.NullBrush``, the current brush is selected out
         of the device context, and the original brush restored, allowing the
         current brush to be destroyed safely.
+
+        :see: `wx.Brush`
         """
         return _gdi_.DC_SetBrush(*args, **kwargs)
 
         """
         return _gdi_.DC_SetBrush(*args, **kwargs)
 
@@ -3579,6 +3846,8 @@ class DC(_core.Object):
         window or bitmap associated with the DC. If the argument is
         ``wx.NullPalette``, the current palette is selected out of the device
         context, and the original palette restored.
         window or bitmap associated with the DC. If the argument is
         ``wx.NullPalette``, the current palette is selected out of the device
         context, and the original palette restored.
+
+        :see: `wx.Palette`
         """
         return _gdi_.DC_SetPalette(*args, **kwargs)
 
         """
         return _gdi_.DC_SetPalette(*args, **kwargs)
 
@@ -3588,6 +3857,8 @@ class DC(_core.Object):
 
         Destroys the current clipping region so that none of the DC is
         clipped.
 
         Destroys the current clipping region so that none of the DC is
         clipped.
+
+        :see: `SetClippingRegion`
         """
         return _gdi_.DC_DestroyClippingRegion(*args, **kwargs)
 
         """
         return _gdi_.DC_DestroyClippingRegion(*args, **kwargs)
 
@@ -3647,7 +3918,7 @@ class DC(_core.Object):
         GetMultiLineTextExtent(wxString string, Font font=None) ->
            (width, height, lineHeight)
 
         GetMultiLineTextExtent(wxString string, Font font=None) ->
            (width, height, lineHeight)
 
-        Get the width, height, decent and leading of the text using the
+        Get the width, height, and line height of the text using the
         current or specified font. Works for single as well as multi-line
         strings.
         """
         current or specified font. Works for single as well as multi-line
         strings.
         """
@@ -3818,20 +4089,23 @@ class DC(_core.Object):
         """
         return _gdi_.DC_GetPPI(*args, **kwargs)
 
         """
         return _gdi_.DC_GetPPI(*args, **kwargs)
 
-    def Ok(*args, **kwargs):
+    def IsOk(*args, **kwargs):
         """
         """
-        Ok(self) -> bool
+        IsOk(self) -> bool
 
         Returns true if the DC is ok to use.
         """
 
         Returns true if the DC is ok to use.
         """
-        return _gdi_.DC_Ok(*args, **kwargs)
+        return _gdi_.DC_IsOk(*args, **kwargs)
 
 
+    Ok = IsOk 
     def GetBackgroundMode(*args, **kwargs):
         """
         GetBackgroundMode(self) -> int
 
         Returns the current background mode, either ``wx.SOLID`` or
         ``wx.TRANSPARENT``.
     def GetBackgroundMode(*args, **kwargs):
         """
         GetBackgroundMode(self) -> int
 
         Returns the current background mode, either ``wx.SOLID`` or
         ``wx.TRANSPARENT``.
+
+        :see: `SetBackgroundMode`
         """
         return _gdi_.DC_GetBackgroundMode(*args, **kwargs)
 
         """
         return _gdi_.DC_GetBackgroundMode(*args, **kwargs)
 
@@ -3840,6 +4114,8 @@ class DC(_core.Object):
         GetBackground(self) -> Brush
 
         Gets the brush used for painting the background.
         GetBackground(self) -> Brush
 
         Gets the brush used for painting the background.
+
+        :see: `SetBackground`
         """
         return _gdi_.DC_GetBackground(*args, **kwargs)
 
         """
         return _gdi_.DC_GetBackground(*args, **kwargs)
 
@@ -3924,6 +4200,18 @@ class DC(_core.Object):
             wx.MM_TEXT          Each logical unit is 1 pixel.
             ================    =============================================
 
             wx.MM_TEXT          Each logical unit is 1 pixel.
             ================    =============================================
 
+        Note that in X, text drawing isn't handled consistently with the
+        mapping mode; a font is always specified in point size. However,
+        setting the user scale (see `SetUserScale`) scales the text
+        appropriately. In Windows, scalable TrueType fonts are always used; in
+        X, results depend on availability of fonts, but usually a reasonable
+        match is found.
+
+        The coordinate origin is always at the top left of the screen/printer.
+
+        Drawing to a Windows printer device context uses the current mapping
+        mode, but mapping mode is currently ignored for PostScript output.
+
         """
         return _gdi_.DC_SetMapMode(*args, **kwargs)
 
         """
         return _gdi_.DC_SetMapMode(*args, **kwargs)
 
@@ -4128,7 +4416,27 @@ class DC(_core.Object):
         """
         return _gdi_.DC_GetBoundingBox(*args, **kwargs)
 
         """
         return _gdi_.DC_GetBoundingBox(*args, **kwargs)
 
-    def __nonzero__(self): return self.Ok() 
+    def __nonzero__(self): return self.IsOk() 
+    def GetLayoutDirection(*args, **kwargs):
+        """
+        GetLayoutDirection(self) -> int
+
+        Get the layout direction (LTR or RTL)_ for this dc.  On platforms
+        where RTL layout is supported, the return value will either be
+        ``wx.Layout_LeftToRight`` or ``wx.Layout_RightToLeft``.
+        ``wx.Layout_Default`` is returned if layout direction is not
+        supported.
+        """
+        return _gdi_.DC_GetLayoutDirection(*args, **kwargs)
+
+    def SetLayoutDirection(*args, **kwargs):
+        """
+        SetLayoutDirection(self, int dir)
+
+        Change the layout direction for this dc.
+        """
+        return _gdi_.DC_SetLayoutDirection(*args, **kwargs)
+
     def _DrawPointList(*args, **kwargs):
         """_DrawPointList(self, PyObject pyCoords, PyObject pyPens, PyObject pyBrushes) -> PyObject"""
         return _gdi_.DC__DrawPointList(*args, **kwargs)
     def _DrawPointList(*args, **kwargs):
         """_DrawPointList(self, PyObject pyCoords, PyObject pyPens, PyObject pyBrushes) -> PyObject"""
         return _gdi_.DC__DrawPointList(*args, **kwargs)
@@ -4343,6 +4651,7 @@ class DC(_core.Object):
     TextExtent = property(GetTextExtent,doc="See `GetTextExtent`") 
     TextForeground = property(GetTextForeground,SetTextForeground,doc="See `GetTextForeground` and `SetTextForeground`") 
     UserScale = property(GetUserScale,SetUserScale,doc="See `GetUserScale` and `SetUserScale`") 
     TextExtent = property(GetTextExtent,doc="See `GetTextExtent`") 
     TextForeground = property(GetTextForeground,SetTextForeground,doc="See `GetTextForeground` and `SetTextForeground`") 
     UserScale = property(GetUserScale,SetUserScale,doc="See `GetUserScale` and `SetUserScale`") 
+    LayoutDirection = property(GetLayoutDirection,SetLayoutDirection) 
 _gdi_.DC_swigregister(DC)
 
 #---------------------------------------------------------------------------
 _gdi_.DC_swigregister(DC)
 
 #---------------------------------------------------------------------------
@@ -4355,7 +4664,7 @@ class MemoryDC(DC):
 
         dc = wx.MemoryDC()
         dc.SelectObject(bitmap)
 
         dc = wx.MemoryDC()
         dc.SelectObject(bitmap)
-        # draw on the dc usign any of the Draw methods
+        # draw on the dc using any of the Draw methods
         dc.SelectObject(wx.NullBitmap)
         # the bitmap now contains wahtever was drawn upon it
 
         dc.SelectObject(wx.NullBitmap)
         # the bitmap now contains wahtever was drawn upon it
 
@@ -4367,13 +4676,16 @@ class MemoryDC(DC):
     __repr__ = _swig_repr
     def __init__(self, *args, **kwargs): 
         """
     __repr__ = _swig_repr
     def __init__(self, *args, **kwargs): 
         """
-        __init__(self) -> MemoryDC
+        __init__(self, Bitmap bitmap=NullBitmap) -> MemoryDC
 
         Constructs a new memory device context.
 
         Use the Ok member to test whether the constructor was successful in
 
         Constructs a new memory device context.
 
         Use the Ok member to test whether the constructor was successful in
-        creating a usable device context. Don't forget to select a bitmap into
-        the DC before drawing on it.
+        creating a usable device context. If a bitmap is not given to this
+        constructor then don't forget to select a bitmap into the DC before
+        drawing on it.
+
+        :see: `MemoryDCFromDC`
         """
         _gdi_.MemoryDC_swiginit(self,_gdi_.new_MemoryDC(*args, **kwargs))
     def SelectObject(*args, **kwargs):
         """
         _gdi_.MemoryDC_swiginit(self,_gdi_.new_MemoryDC(*args, **kwargs))
     def SelectObject(*args, **kwargs):
@@ -4405,92 +4717,6 @@ def MemoryDCFromDC(*args, **kwargs):
 
 #---------------------------------------------------------------------------
 
 
 #---------------------------------------------------------------------------
 
-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
-    on it, everything is in fact first drawn on an in-memory buffer (a
-    `wx.Bitmap`) and then copied to the screen only once, when this object
-    is destroyed.
-
-    It can be used in the same way as any other device context.
-    wx.BufferedDC itself typically replaces `wx.ClientDC`, if you want to
-    use it in your EVT_PAINT handler, you should look at
-    `wx.BufferedPaintDC`.
-
-    Please note that GTK+ 2.0 and OS X provide double buffering themselves
-    natively so using this class on those platforms will normally result
-    in an unneeded level of buffering.
-
-    """
-    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=NullBitmap, int style=BUFFER_CLIENT_AREA) -> BufferedDC
-        __init__(self, DC dc, Size area, int style=BUFFER_CLIENT_AREA) -> BufferedDC
-
-        Constructs a buffered DC.
-        """
-        _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
-
-    __swig_destroy__ = _gdi_.delete_BufferedDC
-    __del__ = lambda self : None;
-    def UnMask(*args, **kwargs):
-        """
-        UnMask(self)
-
-        Blits the buffer to the dc, and detaches the dc from the buffer (so it
-        can be effectively used once only).  This is usually only called in
-        the destructor.
-        """
-        return _gdi_.BufferedDC_UnMask(*args, **kwargs)
-
-_gdi_.BufferedDC_swigregister(BufferedDC)
-
-class BufferedPaintDC(BufferedDC):
-    """
-    This is a subclass of `wx.BufferedDC` which can be used inside of an
-    EVT_PAINT event handler. Just create an object of this class instead
-    of `wx.PaintDC` and that's all you have to do to (mostly) avoid
-    flicker. The only thing to watch out for is that if you are using this
-    class together with `wx.ScrolledWindow`, you probably do **not** want
-    to call `wx.Window.PrepareDC` on it as it already does this internally
-    for the real underlying `wx.PaintDC`.
-
-    If your window is already fully buffered in a `wx.Bitmap` then your
-    EVT_PAINT handler can be as simple as just creating a
-    ``wx.BufferedPaintDC`` as it will `Blit` the buffer to the window
-    automatically when it is destroyed.  For example::
-
-        def OnPaint(self, event):
-            dc = wx.BufferedPaintDC(self, self.buffer)
-
-
-
-
-
-    """
-    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, 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
-        one internally (in the latter case, the size of the client part of the
-        window is automatically used).
-
-
-        """
-        _gdi_.BufferedPaintDC_swiginit(self,_gdi_.new_BufferedPaintDC(*args, **kwargs))
-_gdi_.BufferedPaintDC_swigregister(BufferedPaintDC)
-
-#---------------------------------------------------------------------------
-
 class ScreenDC(DC):
     """
     A wxScreenDC can be used to paint anywhere on the screen. This should
 class ScreenDC(DC):
     """
     A wxScreenDC can be used to paint anywhere on the screen. This should
@@ -4555,7 +4781,27 @@ _gdi_.ScreenDC_swigregister(ScreenDC)
 
 #---------------------------------------------------------------------------
 
 
 #---------------------------------------------------------------------------
 
-class ClientDC(DC):
+class WindowDC(DC):
+    """
+    A wx.WindowDC must be constructed if an application wishes to paint on
+    the whole area of a window (client and decorations). This should
+    normally be constructed as a temporary stack object; don't store a
+    wx.WindowDC object.
+    """
+    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.
+        """
+        _gdi_.WindowDC_swiginit(self,_gdi_.new_WindowDC(*args, **kwargs))
+_gdi_.WindowDC_swigregister(WindowDC)
+
+#---------------------------------------------------------------------------
+
+class ClientDC(WindowDC):
     """
     A wx.ClientDC must be constructed if an application wishes to paint on
     the client area of a window from outside an EVT_PAINT event. This should
     """
     A wx.ClientDC must be constructed if an application wishes to paint on
     the client area of a window from outside an EVT_PAINT event. This should
@@ -4582,7 +4828,7 @@ _gdi_.ClientDC_swigregister(ClientDC)
 
 #---------------------------------------------------------------------------
 
 
 #---------------------------------------------------------------------------
 
-class PaintDC(DC):
+class PaintDC(ClientDC):
     """
     A wx.PaintDC must be constructed if an application wishes to paint on
     the client area of a window from within an EVT_PAINT event
     """
     A wx.PaintDC must be constructed if an application wishes to paint on
     the client area of a window from within an EVT_PAINT event
@@ -4612,24 +4858,146 @@ _gdi_.PaintDC_swigregister(PaintDC)
 
 #---------------------------------------------------------------------------
 
 
 #---------------------------------------------------------------------------
 
-class WindowDC(DC):
+BUFFER_VIRTUAL_AREA = _gdi_.BUFFER_VIRTUAL_AREA
+BUFFER_CLIENT_AREA = _gdi_.BUFFER_CLIENT_AREA
+class BufferedDC(MemoryDC):
     """
     """
-    A wx.WindowDC must be constructed if an application wishes to paint on
-    the whole area of a window (client and decorations). This should
-    normally be constructed as a temporary stack object; don't store a
-    wx.WindowDC object.
+    This simple class provides a simple way to avoid flicker: when drawing
+    on it, everything is in fact first drawn on an in-memory buffer (a
+    `wx.Bitmap`) and then copied to the screen only once, when this object
+    is destroyed.
+
+    It can be used in the same way as any other device context.
+    wx.BufferedDC itself typically replaces `wx.ClientDC`, if you want to
+    use it in your EVT_PAINT handler, you should look at
+    `wx.BufferedPaintDC`.
+
+    Please note that GTK+ 2.0 and OS X provide double buffering themselves
+    natively. wxBufferedDC is aware of this however, and will bypass the buffering
+    unless an explicit buffer bitmap is given.
+
+    """
+    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=NullBitmap, int style=BUFFER_CLIENT_AREA) -> BufferedDC
+        __init__(self, DC dc, Size area, int style=BUFFER_CLIENT_AREA) -> BufferedDC
+
+        Constructs a buffered DC.
+
+            :param dc: The underlying DC: everything drawn to this object will
+                be flushed to this DC when this object is destroyed. You may
+                pass ``None`` in order to just initialize the buffer, and not
+                flush it.
+
+            :param buffer: If a `wx.Size` object is passed as the 2nd arg then
+                it is the size of the bitmap that will be created internally
+                and used for an implicit buffer. If the 2nd arg is a
+                `wx.Bitmap` then it is the explicit buffer that will be
+                used. Using an explicit buffer is the most efficient solution
+                as the bitmap doesn't have to be recreated each time but it
+                also requires more memory as the bitmap is never freed. The
+                bitmap should have appropriate size, anything drawn outside of
+                its bounds is clipped.  If wx.NullBitmap is used then a new
+                buffer will be allocated that is the same size as the dc.
+
+            :param style: The style parameter indicates whether the supplied buffer is
+                intended to cover the entire virtual size of a `wx.ScrolledWindow` or
+                if it only covers the client area.  Acceptable values are
+                ``wx.BUFFER_VIRTUAL_AREA`` and ``wx.BUFFER_CLIENT_AREA``.
+
+
+        """
+        _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
+
+    __swig_destroy__ = _gdi_.delete_BufferedDC
+    __del__ = lambda self : None;
+    def UnMask(*args, **kwargs):
+        """
+        UnMask(self)
+
+        Blits the buffer to the dc, and detaches the dc from the buffer (so it
+        can be effectively used once only).  This is usually only called in
+        the destructor.
+        """
+        return _gdi_.BufferedDC_UnMask(*args, **kwargs)
+
+_gdi_.BufferedDC_swigregister(BufferedDC)
+
+class BufferedPaintDC(BufferedDC):
+    """
+    This is a subclass of `wx.BufferedDC` which can be used inside of an
+    EVT_PAINT event handler. Just create an object of this class instead
+    of `wx.PaintDC` and that's all you have to do to (mostly) avoid
+    flicker. The only thing to watch out for is that if you are using this
+    class together with `wx.ScrolledWindow`, you probably do **not** want
+    to call `wx.Window.PrepareDC` on it as it already does this internally
+    for the real underlying `wx.PaintDC`.
+
+    If your window is already fully buffered in a `wx.Bitmap` then your
+    EVT_PAINT handler can be as simple as just creating a
+    ``wx.BufferedPaintDC`` as it will `Blit` the buffer to the window
+    automatically when it is destroyed.  For example::
+
+        def OnPaint(self, event):
+            dc = wx.BufferedPaintDC(self, self.buffer)
+
+
+
     """
     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): 
         """
     """
     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
+        __init__(self, Window window, Bitmap buffer=NullBitmap, int style=BUFFER_CLIENT_AREA) -> BufferedPaintDC
 
 
-        Constructor. Pass the window on which you wish to paint.
+        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
+        one internally (in the latter case, the size of the client part of the
+        window is automatically used).
         """
         """
-        _gdi_.WindowDC_swiginit(self,_gdi_.new_WindowDC(*args, **kwargs))
-_gdi_.WindowDC_swigregister(WindowDC)
+        _gdi_.BufferedPaintDC_swiginit(self,_gdi_.new_BufferedPaintDC(*args, **kwargs))
+_gdi_.BufferedPaintDC_swigregister(BufferedPaintDC)
+
+#---------------------------------------------------------------------------
+
+class AutoBufferedPaintDC(DC):
+    """
+    If the current platform double buffers by default then this DC is the
+    same as a plain `wx.PaintDC`, otherwise it is a `wx.BufferedPaintDC`.
+
+    :see: `wx.AutoBufferedPaintDCFactory`
+
+    """
+    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) -> AutoBufferedPaintDC
+
+        If the current platform double buffers by default then this DC is the
+        same as a plain `wx.PaintDC`, otherwise it is a `wx.BufferedPaintDC`.
+
+        :see: `wx.AutoBufferedPaintDCFactory`
+
+        """
+        _gdi_.AutoBufferedPaintDC_swiginit(self,_gdi_.new_AutoBufferedPaintDC(*args, **kwargs))
+_gdi_.AutoBufferedPaintDC_swigregister(AutoBufferedPaintDC)
+
+
+def AutoBufferedPaintDCFactory(*args, **kwargs):
+  """
+    AutoBufferedPaintDCFactory(Window window) -> DC
 
 
+    Checks if the window is natively double buffered and will return a
+    `wx.PaintDC` if it is, a `wx.BufferedPaintDC` otherwise.  The advantage of
+    this function over `wx.AutoBufferedPaintDC` is that this function will check
+    if the the specified window has double-buffering enabled rather than just
+    going by platform defaults.
+    """
+  return _gdi_.AutoBufferedPaintDCFactory(*args, **kwargs)
 #---------------------------------------------------------------------------
 
 class MirrorDC(DC):
 #---------------------------------------------------------------------------
 
 class MirrorDC(DC):
@@ -4749,6 +5117,298 @@ _gdi_.PrinterDC_swigregister(PrinterDC)
 
 #---------------------------------------------------------------------------
 
 
 #---------------------------------------------------------------------------
 
+class GraphicsPath(object):
+    """Proxy of C++ GraphicsPath 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
+    __swig_destroy__ = _gdi_.delete_GraphicsPath
+    __del__ = lambda self : None;
+    def MoveToPoint(*args, **kwargs):
+        """
+        MoveToPoint(self, Double x, Double y)
+
+        Begins a new subpath at (x,y)
+        """
+        return _gdi_.GraphicsPath_MoveToPoint(*args, **kwargs)
+
+    def AddLineToPoint(*args, **kwargs):
+        """
+        AddLineToPoint(self, Double x, Double y)
+
+        Adds a straight line from the current point to (x,y) 
+        """
+        return _gdi_.GraphicsPath_AddLineToPoint(*args, **kwargs)
+
+    def AddCurveToPoint(*args, **kwargs):
+        """
+        AddCurveToPoint(self, Double cx1, Double cy1, Double cx2, Double cy2, Double x, 
+            Double y)
+
+        Adds a cubic Bezier curve from the current point, using two control
+        points and an end point
+        """
+        return _gdi_.GraphicsPath_AddCurveToPoint(*args, **kwargs)
+
+    def CloseSubpath(*args, **kwargs):
+        """
+        CloseSubpath(self)
+
+        closes the current sub-path
+        """
+        return _gdi_.GraphicsPath_CloseSubpath(*args, **kwargs)
+
+    def GetCurrentPoint(*args, **kwargs):
+        """
+        GetCurrentPoint(self) -> Point2D
+
+        Gets the last point of the current path, (0,0) if not yet set
+        """
+        return _gdi_.GraphicsPath_GetCurrentPoint(*args, **kwargs)
+
+    def AddArc(*args, **kwargs):
+        """
+        AddArc(self, Double x, Double y, Double r, Double startAngle, Double endAngle, 
+            bool clockwise)
+
+        Adds an arc of a circle centering at (x,y) with radius (r) from
+        startAngle to endAngle
+        """
+        return _gdi_.GraphicsPath_AddArc(*args, **kwargs)
+
+    def AddQuadCurveToPoint(*args, **kwargs):
+        """
+        AddQuadCurveToPoint(self, Double cx, Double cy, Double x, Double y)
+
+        Adds a quadratic Bezier curve from the current point, using a control
+        point and an end point
+        """
+        return _gdi_.GraphicsPath_AddQuadCurveToPoint(*args, **kwargs)
+
+    def AddRectangle(*args, **kwargs):
+        """
+        AddRectangle(self, Double x, Double y, Double w, Double h)
+
+        Appends a rectangle as a new closed subpath
+        """
+        return _gdi_.GraphicsPath_AddRectangle(*args, **kwargs)
+
+    def AddCircle(*args, **kwargs):
+        """
+        AddCircle(self, Double x, Double y, Double r)
+
+        Appends a circle as a new closed subpath with the given radius.
+        """
+        return _gdi_.GraphicsPath_AddCircle(*args, **kwargs)
+
+    def AddArcToPoint(*args, **kwargs):
+        """
+        AddArcToPoint(self, Double x1, Double y1, Double x2, Double y2, Double r)
+
+        Draws a an arc to two tangents connecting (current) to (x1,y1) and (x1,y1)
+        to (x2,y2), also a straight line from (current) to (x1,y1)
+        """
+        return _gdi_.GraphicsPath_AddArcToPoint(*args, **kwargs)
+
+_gdi_.GraphicsPath_swigregister(GraphicsPath)
+
+class GraphicsContext(object):
+    """Proxy of C++ GraphicsContext 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
+    __swig_destroy__ = _gdi_.delete_GraphicsContext
+    __del__ = lambda self : None;
+    def Create(*args, **kwargs):
+        """Create(WindowDC dc) -> GraphicsContext"""
+        val = _gdi_.GraphicsContext_Create(*args, **kwargs)
+        val.__dc = args[0] # save a ref so the other dc will not be deleted before self
+        return val
+
+    Create = staticmethod(Create)
+    def CreatePath(*args, **kwargs):
+        """CreatePath(self) -> GraphicsPath"""
+        return _gdi_.GraphicsContext_CreatePath(*args, **kwargs)
+
+    def PushState(*args, **kwargs):
+        """PushState(self)"""
+        return _gdi_.GraphicsContext_PushState(*args, **kwargs)
+
+    def PopState(*args, **kwargs):
+        """PopState(self)"""
+        return _gdi_.GraphicsContext_PopState(*args, **kwargs)
+
+    def Clip(*args, **kwargs):
+        """Clip(self, Region region)"""
+        return _gdi_.GraphicsContext_Clip(*args, **kwargs)
+
+    def Translate(*args, **kwargs):
+        """Translate(self, Double dx, Double dy)"""
+        return _gdi_.GraphicsContext_Translate(*args, **kwargs)
+
+    def Scale(*args, **kwargs):
+        """Scale(self, Double xScale, Double yScale)"""
+        return _gdi_.GraphicsContext_Scale(*args, **kwargs)
+
+    def Rotate(*args, **kwargs):
+        """Rotate(self, Double angle)"""
+        return _gdi_.GraphicsContext_Rotate(*args, **kwargs)
+
+    def SetPen(*args, **kwargs):
+        """SetPen(self, Pen pen)"""
+        return _gdi_.GraphicsContext_SetPen(*args, **kwargs)
+
+    def SetBrush(*args, **kwargs):
+        """SetBrush(self, Brush brush)"""
+        return _gdi_.GraphicsContext_SetBrush(*args, **kwargs)
+
+    def SetLinearGradientBrush(*args, **kwargs):
+        """
+        SetLinearGradientBrush(self, Double x1, Double y1, Double x2, Double y2, Colour c1, 
+            Colour c2)
+        """
+        return _gdi_.GraphicsContext_SetLinearGradientBrush(*args, **kwargs)
+
+    def SetRadialGradientBrush(*args, **kwargs):
+        """
+        SetRadialGradientBrush(self, Double xo, Double yo, Double xc, Double yc, Double radius, 
+            Colour oColor, Colour cColor)
+        """
+        return _gdi_.GraphicsContext_SetRadialGradientBrush(*args, **kwargs)
+
+    def SetFont(*args, **kwargs):
+        """SetFont(self, Font font)"""
+        return _gdi_.GraphicsContext_SetFont(*args, **kwargs)
+
+    def SetTextColor(*args, **kwargs):
+        """SetTextColor(self, Colour col)"""
+        return _gdi_.GraphicsContext_SetTextColor(*args, **kwargs)
+
+    def StrokePath(*args, **kwargs):
+        """StrokePath(self, GraphicsPath path)"""
+        return _gdi_.GraphicsContext_StrokePath(*args, **kwargs)
+
+    def FillPath(*args, **kwargs):
+        """FillPath(self, GraphicsPath path, int fillStyle=WINDING_RULE)"""
+        return _gdi_.GraphicsContext_FillPath(*args, **kwargs)
+
+    def DrawPath(*args, **kwargs):
+        """DrawPath(self, GraphicsPath path, int fillStyle=WINDING_RULE)"""
+        return _gdi_.GraphicsContext_DrawPath(*args, **kwargs)
+
+    def DrawText(*args, **kwargs):
+        """DrawText(self, String str, Double x, Double y)"""
+        return _gdi_.GraphicsContext_DrawText(*args, **kwargs)
+
+    def DrawRotatedText(*args, **kwargs):
+        """DrawRotatedText(self, String str, Double x, Double y, Double angle)"""
+        return _gdi_.GraphicsContext_DrawRotatedText(*args, **kwargs)
+
+    def GetTextExtent(*args, **kwargs):
+        """GetTextExtend(self, text) --> (width, height, descent, externalLeading)"""
+        return _gdi_.GraphicsContext_GetTextExtent(*args, **kwargs)
+
+    def GetPartialTextExtents(*args, **kwargs):
+        """GetPartialTextExtents(self, text) -> [widths]"""
+        return _gdi_.GraphicsContext_GetPartialTextExtents(*args, **kwargs)
+
+    def DrawBitmap(*args, **kwargs):
+        """DrawBitmap(self, Bitmap bmp, Double x, Double y, Double w, Double h)"""
+        return _gdi_.GraphicsContext_DrawBitmap(*args, **kwargs)
+
+    def DrawIcon(*args, **kwargs):
+        """DrawIcon(self, Icon icon, Double x, Double y, Double w, Double h)"""
+        return _gdi_.GraphicsContext_DrawIcon(*args, **kwargs)
+
+    def StrokeLine(*args, **kwargs):
+        """StrokeLine(self, Double x1, Double y1, Double x2, Double y2)"""
+        return _gdi_.GraphicsContext_StrokeLine(*args, **kwargs)
+
+    def StrokeLines(*args, **kwargs):
+        """StrokeLines(self, List points)"""
+        return _gdi_.GraphicsContext_StrokeLines(*args, **kwargs)
+
+    def StrokeLineSegements(*args, **kwargs):
+        """StrokeLineSegements(self, PyObject beginPoints, PyObject endPoints)"""
+        return _gdi_.GraphicsContext_StrokeLineSegements(*args, **kwargs)
+
+    def DrawLines(*args, **kwargs):
+        """DrawLines(self, size_t points, int fillStyle=WINDING_RULE)"""
+        return _gdi_.GraphicsContext_DrawLines(*args, **kwargs)
+
+    def DrawRectangle(*args, **kwargs):
+        """DrawRectangle(self, Double x, Double y, Double w, Double h)"""
+        return _gdi_.GraphicsContext_DrawRectangle(*args, **kwargs)
+
+    def DrawEllipse(*args, **kwargs):
+        """DrawEllipse(self, Double x, Double y, Double w, Double h)"""
+        return _gdi_.GraphicsContext_DrawEllipse(*args, **kwargs)
+
+    def DrawRoundedRectangle(*args, **kwargs):
+        """DrawRoundedRectangle(self, Double x, Double y, Double w, Double h, Double radius)"""
+        return _gdi_.GraphicsContext_DrawRoundedRectangle(*args, **kwargs)
+
+_gdi_.GraphicsContext_swigregister(GraphicsContext)
+
+def GraphicsContext_Create(*args, **kwargs):
+  """GraphicsContext_Create(WindowDC dc) -> GraphicsContext"""
+  val = _gdi_.GraphicsContext_Create(*args, **kwargs)
+  val.__dc = args[0] # save a ref so the other dc will not be deleted before self
+  return val
+
+class GCDC(DC):
+    """Proxy of C++ GCDC 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, WindowDC dc) -> GCDC"""
+        _gdi_.GCDC_swiginit(self,_gdi_.new_GCDC(*args, **kwargs))
+        self.__dc = args[0] # save a ref so the other dc will not be deleted before self
+
+    __swig_destroy__ = _gdi_.delete_GCDC
+    __del__ = lambda self : None;
+    def GetGraphicContext(*args, **kwargs):
+        """GetGraphicContext(self) -> GraphicsContext"""
+        return _gdi_.GCDC_GetGraphicContext(*args, **kwargs)
+
+_gdi_.GCDC_swigregister(GCDC)
+
+class Overlay(object):
+    """Proxy of C++ Overlay 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) -> Overlay"""
+        _gdi_.Overlay_swiginit(self,_gdi_.new_Overlay(*args, **kwargs))
+    __swig_destroy__ = _gdi_.delete_Overlay
+    __del__ = lambda self : None;
+    def Reset(*args, **kwargs):
+        """Reset(self)"""
+        return _gdi_.Overlay_Reset(*args, **kwargs)
+
+_gdi_.Overlay_swigregister(Overlay)
+
+class DCOverlay(object):
+    """Proxy of C++ DCOverlay 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): 
+        """
+        __init__(self, Overlay overlay, WindowDC dc, int x, int y, int width, 
+            int height) -> DCOverlay
+        __init__(self, Overlay overlay, WindowDC dc) -> DCOverlay
+        """
+        _gdi_.DCOverlay_swiginit(self,_gdi_.new_DCOverlay(*args))
+    __swig_destroy__ = _gdi_.delete_DCOverlay
+    __del__ = lambda self : None;
+    def Clear(*args, **kwargs):
+        """Clear(self)"""
+        return _gdi_.DCOverlay_Clear(*args, **kwargs)
+
+_gdi_.DCOverlay_swigregister(DCOverlay)
+
+#---------------------------------------------------------------------------
+
 IMAGELIST_DRAW_NORMAL = _gdi_.IMAGELIST_DRAW_NORMAL
 IMAGELIST_DRAW_TRANSPARENT = _gdi_.IMAGELIST_DRAW_TRANSPARENT
 IMAGELIST_DRAW_SELECTED = _gdi_.IMAGELIST_DRAW_SELECTED
 IMAGELIST_DRAW_NORMAL = _gdi_.IMAGELIST_DRAW_NORMAL
 IMAGELIST_DRAW_TRANSPARENT = _gdi_.IMAGELIST_DRAW_TRANSPARENT
 IMAGELIST_DRAW_SELECTED = _gdi_.IMAGELIST_DRAW_SELECTED
@@ -5232,9 +5892,11 @@ _gdi_.Effects_swigregister(Effects)
 CONTROL_DISABLED = _gdi_.CONTROL_DISABLED
 CONTROL_FOCUSED = _gdi_.CONTROL_FOCUSED
 CONTROL_PRESSED = _gdi_.CONTROL_PRESSED
 CONTROL_DISABLED = _gdi_.CONTROL_DISABLED
 CONTROL_FOCUSED = _gdi_.CONTROL_FOCUSED
 CONTROL_PRESSED = _gdi_.CONTROL_PRESSED
+CONTROL_SPECIAL = _gdi_.CONTROL_SPECIAL
 CONTROL_ISDEFAULT = _gdi_.CONTROL_ISDEFAULT
 CONTROL_ISSUBMENU = _gdi_.CONTROL_ISSUBMENU
 CONTROL_EXPANDED = _gdi_.CONTROL_EXPANDED
 CONTROL_ISDEFAULT = _gdi_.CONTROL_ISDEFAULT
 CONTROL_ISSUBMENU = _gdi_.CONTROL_ISSUBMENU
 CONTROL_EXPANDED = _gdi_.CONTROL_EXPANDED
+CONTROL_SIZEGRIP = _gdi_.CONTROL_SIZEGRIP
 CONTROL_CURRENT = _gdi_.CONTROL_CURRENT
 CONTROL_SELECTED = _gdi_.CONTROL_SELECTED
 CONTROL_CHECKED = _gdi_.CONTROL_CHECKED
 CONTROL_CURRENT = _gdi_.CONTROL_CURRENT
 CONTROL_SELECTED = _gdi_.CONTROL_SELECTED
 CONTROL_CHECKED = _gdi_.CONTROL_CHECKED
@@ -5676,6 +6338,43 @@ class PseudoDC(_core.Object):
         """
         return _gdi_.PseudoDC_TranslateId(*args, **kwargs)
 
         """
         return _gdi_.PseudoDC_TranslateId(*args, **kwargs)
 
+    def SetIdGreyedOut(*args, **kwargs):
+        """
+        SetIdGreyedOut(self, int id, bool greyout=True)
+
+        Set whether an object is drawn greyed out or not.
+        """
+        return _gdi_.PseudoDC_SetIdGreyedOut(*args, **kwargs)
+
+    def GetIdGreyedOut(*args, **kwargs):
+        """
+        GetIdGreyedOut(self, int id) -> bool
+
+        Get whether an object is drawn greyed out or not.
+        """
+        return _gdi_.PseudoDC_GetIdGreyedOut(*args, **kwargs)
+
+    def FindObjects(*args, **kwargs):
+        """
+        FindObjects(self, int x, int y, int radius=1, wxColor bg=*wxWHITE) -> PyObject
+
+        Returns a list of all the id's that draw a pixel with color
+        not equal to bg within radius of (x,y).
+        Returns an empty list if nothing is found.  The list is in
+        reverse drawing order so list[0] is the top id.
+        """
+        return _gdi_.PseudoDC_FindObjects(*args, **kwargs)
+
+    def FindObjectsByBBox(*args, **kwargs):
+        """
+        FindObjectsByBBox(self, int x, int y) -> PyObject
+
+        Returns a list of all the id's whose bounding boxes include (x,y).
+        Returns an empty list if nothing is found.  The list is in
+        reverse drawing order so list[0] is the top id.
+        """
+        return _gdi_.PseudoDC_FindObjectsByBBox(*args, **kwargs)
+
     def DrawIdToDC(*args, **kwargs):
         """
         DrawIdToDC(self, int id, DC dc)
     def DrawIdToDC(*args, **kwargs):
         """
         DrawIdToDC(self, int id, DC dc)
@@ -5993,6 +6692,8 @@ class PseudoDC(_core.Object):
         Draws a circle with the given center point and radius.  The current
         pen is used for the outline and the current brush for filling the
         shape.
         Draws a circle with the given center point and radius.  The current
         pen is used for the outline and the current brush for filling the
         shape.
+
+        :see: `DrawEllipse`
         """
         return _gdi_.PseudoDC_DrawCircle(*args, **kwargs)
 
         """
         return _gdi_.PseudoDC_DrawCircle(*args, **kwargs)
 
@@ -6003,6 +6704,8 @@ class PseudoDC(_core.Object):
         Draws a circle with the given center point and radius.  The current
         pen is used for the outline and the current brush for filling the
         shape.
         Draws a circle with the given center point and radius.  The current
         pen is used for the outline and the current brush for filling the
         shape.
+
+        :see: `DrawEllipse`
         """
         return _gdi_.PseudoDC_DrawCirclePoint(*args, **kwargs)
 
         """
         return _gdi_.PseudoDC_DrawCirclePoint(*args, **kwargs)
 
@@ -6012,6 +6715,8 @@ class PseudoDC(_core.Object):
 
         Draws an ellipse contained in the specified rectangle. The current pen
         is used for the outline and the current brush for filling the shape.
 
         Draws an ellipse contained in the specified rectangle. The current pen
         is used for the outline and the current brush for filling the shape.
+
+        :see: `DrawCircle`
         """
         return _gdi_.PseudoDC_DrawEllipse(*args, **kwargs)
 
         """
         return _gdi_.PseudoDC_DrawEllipse(*args, **kwargs)
 
@@ -6021,6 +6726,8 @@ class PseudoDC(_core.Object):
 
         Draws an ellipse contained in the specified rectangle. The current pen
         is used for the outline and the current brush for filling the shape.
 
         Draws an ellipse contained in the specified rectangle. The current pen
         is used for the outline and the current brush for filling the shape.
+
+        :see: `DrawCircle`
         """
         return _gdi_.PseudoDC_DrawEllipseRect(*args, **kwargs)
 
         """
         return _gdi_.PseudoDC_DrawEllipseRect(*args, **kwargs)
 
@@ -6030,6 +6737,8 @@ class PseudoDC(_core.Object):
 
         Draws an ellipse contained in the specified rectangle. The current pen
         is used for the outline and the current brush for filling the shape.
 
         Draws an ellipse contained in the specified rectangle. The current pen
         is used for the outline and the current brush for filling the shape.
+
+        :see: `DrawCircle`
         """
         return _gdi_.PseudoDC_DrawEllipsePointSize(*args, **kwargs)
 
         """
         return _gdi_.PseudoDC_DrawEllipsePointSize(*args, **kwargs)
 
@@ -6061,6 +6770,13 @@ class PseudoDC(_core.Object):
         *transparent* is true and the bitmap has a transparency mask, (or
         alpha channel on the platforms that support it) then the bitmap will
         be drawn transparently.
         *transparent* is true and the bitmap has a transparency mask, (or
         alpha channel on the platforms that support it) then the bitmap will
         be drawn transparently.
+
+        When drawing a mono-bitmap, the current text foreground colour will be
+        used to draw the foreground of the bitmap (all bits set to 1), and the
+        current text background colour to draw the background (all bits set to
+        0).
+
+        :see: `SetTextForeground`, `SetTextBackground` and `wx.MemoryDC`
         """
         return _gdi_.PseudoDC_DrawBitmap(*args, **kwargs)
 
         """
         return _gdi_.PseudoDC_DrawBitmap(*args, **kwargs)
 
@@ -6072,6 +6788,13 @@ class PseudoDC(_core.Object):
         *transparent* is true and the bitmap has a transparency mask, (or
         alpha channel on the platforms that support it) then the bitmap will
         be drawn transparently.
         *transparent* is true and the bitmap has a transparency mask, (or
         alpha channel on the platforms that support it) then the bitmap will
         be drawn transparently.
+
+        When drawing a mono-bitmap, the current text foreground colour will be
+        used to draw the foreground of the bitmap (all bits set to 1), and the
+        current text background colour to draw the background (all bits set to
+        0).
+
+        :see: `SetTextForeground`, `SetTextBackground` and `wx.MemoryDC`
         """
         return _gdi_.PseudoDC_DrawBitmapPoint(*args, **kwargs)
 
         """
         return _gdi_.PseudoDC_DrawBitmapPoint(*args, **kwargs)
 
@@ -6091,6 +6814,8 @@ class PseudoDC(_core.Object):
         **NOTE**: under wxGTK the current logical function is used by this
         function but it is ignored by wxMSW. Thus, you should avoid using
         logical functions with this function in portable programs.
         **NOTE**: under wxGTK the current logical function is used by this
         function but it is ignored by wxMSW. Thus, you should avoid using
         logical functions with this function in portable programs.
+
+        :see: `DrawRotatedText`
         """
         return _gdi_.PseudoDC_DrawText(*args, **kwargs)
 
         """
         return _gdi_.PseudoDC_DrawText(*args, **kwargs)
 
@@ -6110,6 +6835,8 @@ class PseudoDC(_core.Object):
         **NOTE**: under wxGTK the current logical function is used by this
         function but it is ignored by wxMSW. Thus, you should avoid using
         logical functions with this function in portable programs.
         **NOTE**: under wxGTK the current logical function is used by this
         function but it is ignored by wxMSW. Thus, you should avoid using
         logical functions with this function in portable programs.
+
+        :see: `DrawRotatedText`
         """
         return _gdi_.PseudoDC_DrawTextPoint(*args, **kwargs)
 
         """
         return _gdi_.PseudoDC_DrawTextPoint(*args, **kwargs)
 
@@ -6123,6 +6850,8 @@ class PseudoDC(_core.Object):
         function. In particular, a font different from ``wx.NORMAL_FONT``
         should be used as the it is not normally a TrueType
         font. ``wx.SWISS_FONT`` is an example of a font which is.
         function. In particular, a font different from ``wx.NORMAL_FONT``
         should be used as the it is not normally a TrueType
         font. ``wx.SWISS_FONT`` is an example of a font which is.
+
+        :see: `DrawText`
         """
         return _gdi_.PseudoDC_DrawRotatedText(*args, **kwargs)
 
         """
         return _gdi_.PseudoDC_DrawRotatedText(*args, **kwargs)
 
@@ -6136,6 +6865,8 @@ class PseudoDC(_core.Object):
         function. In particular, a font different from ``wx.NORMAL_FONT``
         should be used as the it is not normally a TrueType
         font. ``wx.SWISS_FONT`` is an example of a font which is.
         function. In particular, a font different from ``wx.NORMAL_FONT``
         should be used as the it is not normally a TrueType
         font. ``wx.SWISS_FONT`` is an example of a font which is.
+
+        :see: `DrawText`
         """
         return _gdi_.PseudoDC_DrawRotatedTextPoint(*args, **kwargs)
 
         """
         return _gdi_.PseudoDC_DrawRotatedTextPoint(*args, **kwargs)
 
@@ -6173,6 +6904,8 @@ class PseudoDC(_core.Object):
         Draw *text* within the specified rectangle, abiding by the alignment
         flags.  Will additionally emphasize the character at *indexAccel* if
         it is not -1.
         Draw *text* within the specified rectangle, abiding by the alignment
         flags.  Will additionally emphasize the character at *indexAccel* if
         it is not -1.
+
+        :see: `DrawImageLabel`
         """
         return _gdi_.PseudoDC_DrawLabel(*args, **kwargs)
 
         """
         return _gdi_.PseudoDC_DrawLabel(*args, **kwargs)
 
@@ -6212,6 +6945,8 @@ class PseudoDC(_core.Object):
 
         Sets the current font for the DC. It must be a valid font, in
         particular you should not pass ``wx.NullFont`` to this method.
 
         Sets the current font for the DC. It must be a valid font, in
         particular you should not pass ``wx.NullFont`` to this method.
+
+        :see: `wx.Font`
         """
         return _gdi_.PseudoDC_SetFont(*args, **kwargs)
 
         """
         return _gdi_.PseudoDC_SetFont(*args, **kwargs)
 
@@ -6223,6 +6958,8 @@ class PseudoDC(_core.Object):
 
         If the argument is ``wx.NullPen``, the current pen is selected out of the
         device context, and the original pen restored.
 
         If the argument is ``wx.NullPen``, the current pen is selected out of the
         device context, and the original pen restored.
+
+        :see: `wx.Pen`
         """
         return _gdi_.PseudoDC_SetPen(*args, **kwargs)
 
         """
         return _gdi_.PseudoDC_SetPen(*args, **kwargs)
 
@@ -6235,6 +6972,8 @@ class PseudoDC(_core.Object):
         If the argument is ``wx.NullBrush``, the current brush is selected out
         of the device context, and the original brush restored, allowing the
         current brush to be destroyed safely.
         If the argument is ``wx.NullBrush``, the current brush is selected out
         of the device context, and the original brush restored, allowing the
         current brush to be destroyed safely.
+
+        :see: `wx.Brush`
         """
         return _gdi_.PseudoDC_SetBrush(*args, **kwargs)
 
         """
         return _gdi_.PseudoDC_SetBrush(*args, **kwargs)
 
@@ -6264,6 +7003,8 @@ class PseudoDC(_core.Object):
         window or bitmap associated with the DC. If the argument is
         ``wx.NullPalette``, the current palette is selected out of the device
         context, and the original palette restored.
         window or bitmap associated with the DC. If the argument is
         ``wx.NullPalette``, the current palette is selected out of the device
         context, and the original palette restored.
+
+        :see: `wx.Palette`
         """
         return _gdi_.PseudoDC_SetPalette(*args, **kwargs)
 
         """
         return _gdi_.PseudoDC_SetPalette(*args, **kwargs)