]> git.saurik.com Git - wxWidgets.git/blobdiff - wxPython/src/gtk/gdi.py
simplified definition
[wxWidgets.git] / wxPython / src / gtk / gdi.py
index 08458df335ac0b162d48fe0d67f51e873acbd554..a5a770e9aad93021b55e4ab49cc8812bb42bee49 100644 (file)
@@ -2,13 +2,19 @@
 import gdic
 
 from misc import *
+
+from fonts import *
+import wx
 class wxGDIObjectPtr(wxObjectPtr):
     def __init__(self,this):
         self.this = this
         self.thisown = 0
-    def __del__(self,gdic=gdic):
-        if self.thisown == 1 :
-            gdic.delete_wxGDIObject(self)
+    def __del__(self, delfunc=gdic.delete_wxGDIObject):
+        if self.thisown == 1:
+            try:
+                delfunc(self)
+            except:
+                pass
     def GetVisible(self, *_args, **_kwargs):
         val = apply(gdic.wxGDIObject_GetVisible,(self,) + _args, _kwargs)
         return val
@@ -32,9 +38,12 @@ class wxBitmapPtr(wxGDIObjectPtr):
     def __init__(self,this):
         self.this = this
         self.thisown = 0
-    def __del__(self,gdic=gdic):
-        if self.thisown == 1 :
-            gdic.delete_wxBitmap(self)
+    def __del__(self, delfunc=gdic.delete_wxBitmap):
+        if self.thisown == 1:
+            try:
+                delfunc(self)
+            except:
+                pass
     def GetPalette(self, *_args, **_kwargs):
         val = apply(gdic.wxBitmap_GetPalette,(self,) + _args, _kwargs)
         if val: val = wxPalettePtr(val) 
@@ -83,13 +92,10 @@ class wxBitmapPtr(wxGDIObjectPtr):
     def __repr__(self):
         return "<C wxBitmap instance at %s>" % (self.this,)
     
-    def __del__(self,gdic=gdic):
-        try:
-            if self.thisown == 1 :
-                gdic.delete_wxBitmap(self)
-        except:
-            pass
-
+    def SetMaskColour(self, colour):
+        mask = wxMaskColour(self, colour)
+        self.SetMask(mask)
+    
 class wxBitmap(wxBitmapPtr):
     def __init__(self,*_args,**_kwargs):
         self.this = apply(gdic.new_wxBitmap,_args,_kwargs)
@@ -119,9 +125,12 @@ class wxIconPtr(wxGDIObjectPtr):
     def __init__(self,this):
         self.this = this
         self.thisown = 0
-    def __del__(self,gdic=gdic):
-        if self.thisown == 1 :
-            gdic.delete_wxIcon(self)
+    def __del__(self, delfunc=gdic.delete_wxIcon):
+        if self.thisown == 1:
+            try:
+                delfunc(self)
+            except:
+                pass
     def LoadFile(self, *_args, **_kwargs):
         val = apply(gdic.wxIcon_LoadFile,(self,) + _args, _kwargs)
         return val
@@ -151,14 +160,6 @@ class wxIconPtr(wxGDIObjectPtr):
         return val
     def __repr__(self):
         return "<C wxIcon instance at %s>" % (self.this,)
-    
-    def __del__(self,gdic=gdic):
-        try:
-            if self.thisown == 1 :
-                gdic.delete_wxIcon(self)
-        except:
-            pass
-
 class wxIcon(wxIconPtr):
     def __init__(self,*_args,**_kwargs):
         self.this = apply(gdic.new_wxIcon,_args,_kwargs)
@@ -167,185 +168,62 @@ class wxIcon(wxIconPtr):
 
 
 
-class wxCursorPtr(wxGDIObjectPtr):
-    def __init__(self,this):
-        self.this = this
-        self.thisown = 0
-    def __del__(self,gdic=gdic):
-        if self.thisown == 1 :
-            gdic.delete_wxCursor(self)
-    def Ok(self, *_args, **_kwargs):
-        val = apply(gdic.wxCursor_Ok,(self,) + _args, _kwargs)
-        return val
-    def __repr__(self):
-        return "<C wxCursor instance at %s>" % (self.this,)
-class wxCursor(wxCursorPtr):
-    def __init__(self,this):
-        self.this = this
-
-
-
-
-class wxNativeFontInfoPtr :
-    def __init__(self,this):
-        self.this = this
-        self.thisown = 0
-    def FromString(self, *_args, **_kwargs):
-        val = apply(gdic.wxNativeFontInfo_FromString,(self,) + _args, _kwargs)
-        return val
-    def ToString(self, *_args, **_kwargs):
-        val = apply(gdic.wxNativeFontInfo_ToString,(self,) + _args, _kwargs)
-        return val
-    def __str__(self, *_args, **_kwargs):
-        val = apply(gdic.wxNativeFontInfo___str__,(self,) + _args, _kwargs)
-        return val
-    def __repr__(self):
-        return "<C wxNativeFontInfo instance at %s>" % (self.this,)
-class wxNativeFontInfo(wxNativeFontInfoPtr):
-    def __init__(self,this):
-        self.this = this
-
-
-
-
-class wxFontMapperPtr :
+class wxIconBundlePtr :
     def __init__(self,this):
         self.this = this
         self.thisown = 0
-    def __del__(self,gdic=gdic):
-        if self.thisown == 1 :
-            gdic.delete_wxFontMapper(self)
-    def GetAltForEncoding(self, *_args, **_kwargs):
-        val = apply(gdic.wxFontMapper_GetAltForEncoding,(self,) + _args, _kwargs)
-        return val
-    def IsEncodingAvailable(self, *_args, **_kwargs):
-        val = apply(gdic.wxFontMapper_IsEncodingAvailable,(self,) + _args, _kwargs)
-        return val
-    def CharsetToEncoding(self, *_args, **_kwargs):
-        val = apply(gdic.wxFontMapper_CharsetToEncoding,(self,) + _args, _kwargs)
-        return val
-    def SetDialogParent(self, *_args, **_kwargs):
-        val = apply(gdic.wxFontMapper_SetDialogParent,(self,) + _args, _kwargs)
-        return val
-    def SetDialogTitle(self, *_args, **_kwargs):
-        val = apply(gdic.wxFontMapper_SetDialogTitle,(self,) + _args, _kwargs)
+    def __del__(self, delfunc=gdic.delete_wxIconBundle):
+        if self.thisown == 1:
+            try:
+                delfunc(self)
+            except:
+                pass
+    def AddIcon(self, *_args, **_kwargs):
+        val = apply(gdic.wxIconBundle_AddIcon,(self,) + _args, _kwargs)
         return val
-    def SetConfig(self, *_args, **_kwargs):
-        val = apply(gdic.wxFontMapper_SetConfig,(self,) + _args, _kwargs)
+    def AddIconFromFile(self, *_args, **_kwargs):
+        val = apply(gdic.wxIconBundle_AddIconFromFile,(self,) + _args, _kwargs)
         return val
-    def SetConfigPath(self, *_args, **_kwargs):
-        val = apply(gdic.wxFontMapper_SetConfigPath,(self,) + _args, _kwargs)
+    def GetIcon(self, *_args, **_kwargs):
+        val = apply(gdic.wxIconBundle_GetIcon,(self,) + _args, _kwargs)
+        if val: val = wxIconPtr(val) 
         return val
     def __repr__(self):
-        return "<C wxFontMapper instance at %s>" % (self.this,)
-class wxFontMapper(wxFontMapperPtr):
+        return "<C wxIconBundle instance at %s>" % (self.this,)
+class wxIconBundle(wxIconBundlePtr):
     def __init__(self,*_args,**_kwargs):
-        self.this = apply(gdic.new_wxFontMapper,_args,_kwargs)
+        self.this = apply(gdic.new_wxIconBundle,_args,_kwargs)
         self.thisown = 1
 
 
 
+def wxIconBundleFromFile(*_args,**_kwargs):
+    val = wxIconBundlePtr(apply(gdic.new_wxIconBundleFromFile,_args,_kwargs))
+    val.thisown = 1
+    return val
 
-class wxFontPtr(wxGDIObjectPtr):
-    def __init__(self,this):
-        self.this = this
-        self.thisown = 0
-    def __del__(self,gdic=gdic):
-        if self.thisown == 1 :
-            gdic.delete_wxFont(self)
-    def Ok(self, *_args, **_kwargs):
-        val = apply(gdic.wxFont_Ok,(self,) + _args, _kwargs)
-        return val
-    def GetPointSize(self, *_args, **_kwargs):
-        val = apply(gdic.wxFont_GetPointSize,(self,) + _args, _kwargs)
-        return val
-    def GetFamily(self, *_args, **_kwargs):
-        val = apply(gdic.wxFont_GetFamily,(self,) + _args, _kwargs)
-        return val
-    def GetStyle(self, *_args, **_kwargs):
-        val = apply(gdic.wxFont_GetStyle,(self,) + _args, _kwargs)
-        return val
-    def GetWeight(self, *_args, **_kwargs):
-        val = apply(gdic.wxFont_GetWeight,(self,) + _args, _kwargs)
-        return val
-    def GetUnderlined(self, *_args, **_kwargs):
-        val = apply(gdic.wxFont_GetUnderlined,(self,) + _args, _kwargs)
-        return val
-    def GetFaceName(self, *_args, **_kwargs):
-        val = apply(gdic.wxFont_GetFaceName,(self,) + _args, _kwargs)
-        return val
-    def GetEncoding(self, *_args, **_kwargs):
-        val = apply(gdic.wxFont_GetEncoding,(self,) + _args, _kwargs)
-        return val
-    def GetNativeFontInfo(self, *_args, **_kwargs):
-        val = apply(gdic.wxFont_GetNativeFontInfo,(self,) + _args, _kwargs)
-        if val: val = wxNativeFontInfoPtr(val) 
-        return val
-    def SetPointSize(self, *_args, **_kwargs):
-        val = apply(gdic.wxFont_SetPointSize,(self,) + _args, _kwargs)
-        return val
-    def SetFamily(self, *_args, **_kwargs):
-        val = apply(gdic.wxFont_SetFamily,(self,) + _args, _kwargs)
-        return val
-    def SetStyle(self, *_args, **_kwargs):
-        val = apply(gdic.wxFont_SetStyle,(self,) + _args, _kwargs)
-        return val
-    def SetWeight(self, *_args, **_kwargs):
-        val = apply(gdic.wxFont_SetWeight,(self,) + _args, _kwargs)
-        return val
-    def SetFaceName(self, *_args, **_kwargs):
-        val = apply(gdic.wxFont_SetFaceName,(self,) + _args, _kwargs)
-        return val
-    def SetUnderlined(self, *_args, **_kwargs):
-        val = apply(gdic.wxFont_SetUnderlined,(self,) + _args, _kwargs)
-        return val
-    def SetEncoding(self, *_args, **_kwargs):
-        val = apply(gdic.wxFont_SetEncoding,(self,) + _args, _kwargs)
-        return val
-    def SetNativeFontInfo(self, *_args, **_kwargs):
-        val = apply(gdic.wxFont_SetNativeFontInfo,(self,) + _args, _kwargs)
-        return val
-    def GetFamilyString(self, *_args, **_kwargs):
-        val = apply(gdic.wxFont_GetFamilyString,(self,) + _args, _kwargs)
-        return val
-    def GetStyleString(self, *_args, **_kwargs):
-        val = apply(gdic.wxFont_GetStyleString,(self,) + _args, _kwargs)
-        return val
-    def GetWeightString(self, *_args, **_kwargs):
-        val = apply(gdic.wxFont_GetWeightString,(self,) + _args, _kwargs)
-        return val
-    def __repr__(self):
-        return "<C wxFont instance at %s>" % (self.this,)
-class wxFont(wxFontPtr):
-    def __init__(self,*_args,**_kwargs):
-        self.this = apply(gdic.new_wxFont,_args,_kwargs)
-        self.thisown = 1
-
-
-
-def wxFontFromNativeInfo(*_args,**_kwargs):
-    val = wxFontPtr(apply(gdic.new_wxFontFromNativeInfo,_args,_kwargs))
+def wxIconBundleFromIcon(*_args,**_kwargs):
+    val = wxIconBundlePtr(apply(gdic.new_wxIconBundleFromIcon,_args,_kwargs))
     val.thisown = 1
     return val
 
 
-class wxFontListPtr(wxObjectPtr):
+class wxCursorPtr(wxGDIObjectPtr):
     def __init__(self,this):
         self.this = this
         self.thisown = 0
-    def AddFont(self, *_args, **_kwargs):
-        val = apply(gdic.wxFontList_AddFont,(self,) + _args, _kwargs)
-        return val
-    def FindOrCreateFont(self, *_args, **_kwargs):
-        val = apply(gdic.wxFontList_FindOrCreateFont,(self,) + _args, _kwargs)
-        if val: val = wxFontPtr(val) 
-        return val
-    def RemoveFont(self, *_args, **_kwargs):
-        val = apply(gdic.wxFontList_RemoveFont,(self,) + _args, _kwargs)
+    def __del__(self, delfunc=gdic.delete_wxCursor):
+        if self.thisown == 1:
+            try:
+                delfunc(self)
+            except:
+                pass
+    def Ok(self, *_args, **_kwargs):
+        val = apply(gdic.wxCursor_Ok,(self,) + _args, _kwargs)
         return val
     def __repr__(self):
-        return "<C wxFontList instance at %s>" % (self.this,)
-class wxFontList(wxFontListPtr):
+        return "<C wxCursor instance at %s>" % (self.this,)
+class wxCursor(wxCursorPtr):
     def __init__(self,this):
         self.this = this
 
@@ -356,9 +234,12 @@ class wxColourPtr(wxObjectPtr):
     def __init__(self,this):
         self.this = this
         self.thisown = 0
-    def __del__(self,gdic=gdic):
-        if self.thisown == 1 :
-            gdic.delete_wxColour(self)
+    def __del__(self, delfunc=gdic.delete_wxColour):
+        if self.thisown == 1:
+            try:
+                delfunc(self)
+            except:
+                pass
     def Red(self, *_args, **_kwargs):
         val = apply(gdic.wxColour_Red,(self,) + _args, _kwargs)
         return val
@@ -377,11 +258,22 @@ class wxColourPtr(wxObjectPtr):
     def Get(self, *_args, **_kwargs):
         val = apply(gdic.wxColour_Get,(self,) + _args, _kwargs)
         return val
+    def __eq__(self, *_args, **_kwargs):
+        val = apply(gdic.wxColour___eq__,(self,) + _args, _kwargs)
+        return val
+    def __ne__(self, *_args, **_kwargs):
+        val = apply(gdic.wxColour___ne__,(self,) + _args, _kwargs)
+        return val
     def __repr__(self):
         return "<C wxColour instance at %s>" % (self.this,)
     asTuple = Get
-    def __str__(self): return str(self.asTuple())
-    def __repr__(self): return str(self.asTuple())
+    def __str__(self):                  return str(self.asTuple())
+    def __repr__(self):                 return 'wxColour:' + str(self.asTuple())
+    def __nonzero__(self):              return self.Ok()
+    def __getinitargs__(self):          return ()
+    def __getstate__(self):             return self.asTuple()
+    def __setstate__(self, state):      self.Set(*state)
+
 class wxColour(wxColourPtr):
     def __init__(self,*_args,**_kwargs):
         self.this = apply(gdic.new_wxColour,_args,_kwargs)
@@ -417,9 +309,12 @@ class wxPenPtr(wxGDIObjectPtr):
     def __init__(self,this):
         self.this = this
         self.thisown = 0
-    def __del__(self,gdic=gdic):
-        if self.thisown == 1 :
-            gdic.delete_wxPen(self)
+    def __del__(self, delfunc=gdic.delete_wxPen):
+        if self.thisown == 1:
+            try:
+                delfunc(self)
+            except:
+                pass
     def GetCap(self, *_args, **_kwargs):
         val = apply(gdic.wxPen_GetCap,(self,) + _args, _kwargs)
         return val
@@ -457,6 +352,9 @@ class wxPenPtr(wxGDIObjectPtr):
     def SetDashes(self, *_args, **_kwargs):
         val = apply(gdic.wxPen_SetDashes,(self,) + _args, _kwargs)
         return val
+    def GetDashes(self, *_args, **_kwargs):
+        val = apply(gdic.wxPen_GetDashes,(self,) + _args, _kwargs)
+        return val
     def __repr__(self):
         return "<C wxPen instance at %s>" % (self.this,)
 class wxPen(wxPenPtr):
@@ -471,9 +369,12 @@ class wxPyPenPtr(wxPenPtr):
     def __init__(self,this):
         self.this = this
         self.thisown = 0
-    def __del__(self,gdic=gdic):
-        if self.thisown == 1 :
-            gdic.delete_wxPyPen(self)
+    def __del__(self, delfunc=gdic.delete_wxPyPen):
+        if self.thisown == 1:
+            try:
+                delfunc(self)
+            except:
+                pass
     def SetDashes(self, *_args, **_kwargs):
         val = apply(gdic.wxPyPen_SetDashes,(self,) + _args, _kwargs)
         return val
@@ -501,6 +402,9 @@ class wxPenListPtr(wxObjectPtr):
     def RemovePen(self, *_args, **_kwargs):
         val = apply(gdic.wxPenList_RemovePen,(self,) + _args, _kwargs)
         return val
+    def GetCount(self, *_args, **_kwargs):
+        val = apply(gdic.wxPenList_GetCount,(self,) + _args, _kwargs)
+        return val
     def __repr__(self):
         return "<C wxPenList instance at %s>" % (self.this,)
 class wxPenList(wxPenListPtr):
@@ -514,9 +418,12 @@ class wxBrushPtr(wxGDIObjectPtr):
     def __init__(self,this):
         self.this = this
         self.thisown = 0
-    def __del__(self,gdic=gdic):
-        if self.thisown == 1 :
-            gdic.delete_wxBrush(self)
+    def __del__(self, delfunc=gdic.delete_wxBrush):
+        if self.thisown == 1:
+            try:
+                delfunc(self)
+            except:
+                pass
     def GetColour(self, *_args, **_kwargs):
         val = apply(gdic.wxBrush_GetColour,(self,) + _args, _kwargs)
         if val: val = wxColourPtr(val) ; val.thisown = 1
@@ -564,6 +471,9 @@ class wxBrushListPtr(wxObjectPtr):
     def RemoveBrush(self, *_args, **_kwargs):
         val = apply(gdic.wxBrushList_RemoveBrush,(self,) + _args, _kwargs)
         return val
+    def GetCount(self, *_args, **_kwargs):
+        val = apply(gdic.wxBrushList_GetCount,(self,) + _args, _kwargs)
+        return val
     def __repr__(self):
         return "<C wxBrushList instance at %s>" % (self.this,)
 class wxBrushList(wxBrushListPtr):
@@ -577,9 +487,12 @@ class wxDCPtr(wxObjectPtr):
     def __init__(self,this):
         self.this = this
         self.thisown = 0
-    def __del__(self,gdic=gdic):
-        if self.thisown == 1 :
-            gdic.delete_wxDC(self)
+    def __del__(self, delfunc=gdic.delete_wxDC):
+        if self.thisown == 1:
+            try:
+                delfunc(self)
+            except:
+                pass
     def BeginDrawing(self, *_args, **_kwargs):
         val = apply(gdic.wxDC_BeginDrawing,(self,) + _args, _kwargs)
         return val
@@ -622,6 +535,13 @@ class wxDCPtr(wxObjectPtr):
     def DrawIcon(self, *_args, **_kwargs):
         val = apply(gdic.wxDC_DrawIcon,(self,) + _args, _kwargs)
         return val
+    def DrawLabel(self, *_args, **_kwargs):
+        val = apply(gdic.wxDC_DrawLabel,(self,) + _args, _kwargs)
+        return val
+    def DrawImageLabel(self, *_args, **_kwargs):
+        val = apply(gdic.wxDC_DrawImageLabel,(self,) + _args, _kwargs)
+        if val: val = wxRectPtr(val) ; val.thisown = 1
+        return val
     def DrawLine(self, *_args, **_kwargs):
         val = apply(gdic.wxDC_DrawLine,(self,) + _args, _kwargs)
         return val
@@ -637,6 +557,9 @@ class wxDCPtr(wxObjectPtr):
     def DrawRectangle(self, *_args, **_kwargs):
         val = apply(gdic.wxDC_DrawRectangle,(self,) + _args, _kwargs)
         return val
+    def DrawRectangleRect(self, *_args, **_kwargs):
+        val = apply(gdic.wxDC_DrawRectangleRect,(self,) + _args, _kwargs)
+        return val
     def DrawRotatedText(self, *_args, **_kwargs):
         val = apply(gdic.wxDC_DrawRotatedText,(self,) + _args, _kwargs)
         return val
@@ -663,11 +586,11 @@ class wxDCPtr(wxObjectPtr):
         return val
     def GetBackground(self, *_args, **_kwargs):
         val = apply(gdic.wxDC_GetBackground,(self,) + _args, _kwargs)
-        if val: val = wxBrushPtr(val) 
+        if val: val = wxBrushPtr(val) ; val.thisown = 1
         return val
     def GetBrush(self, *_args, **_kwargs):
         val = apply(gdic.wxDC_GetBrush,(self,) + _args, _kwargs)
-        if val: val = wxBrushPtr(val) 
+        if val: val = wxBrushPtr(val) ; val.thisown = 1
         return val
     def GetCharHeight(self, *_args, **_kwargs):
         val = apply(gdic.wxDC_GetCharHeight,(self,) + _args, _kwargs)
@@ -680,7 +603,7 @@ class wxDCPtr(wxObjectPtr):
         return val
     def GetFont(self, *_args, **_kwargs):
         val = apply(gdic.wxDC_GetFont,(self,) + _args, _kwargs)
-        if val: val = wxFontPtr(val) 
+        if val: val = wxFontPtr(val) ; val.thisown = 1
         return val
     def GetLogicalFunction(self, *_args, **_kwargs):
         val = apply(gdic.wxDC_GetLogicalFunction,(self,) + _args, _kwargs)
@@ -696,7 +619,7 @@ class wxDCPtr(wxObjectPtr):
         return val
     def GetPen(self, *_args, **_kwargs):
         val = apply(gdic.wxDC_GetPen,(self,) + _args, _kwargs)
-        if val: val = wxPenPtr(val) 
+        if val: val = wxPenPtr(val) ; val.thisown = 1
         return val
     def GetPixel(self, *_args, **_kwargs):
         val = apply(gdic.wxDC_GetPixel,(self,) + _args, _kwargs)
@@ -723,6 +646,9 @@ class wxDCPtr(wxObjectPtr):
     def GetFullTextExtent(self, *_args, **_kwargs):
         val = apply(gdic.wxDC_GetFullTextExtent,(self,) + _args, _kwargs)
         return val
+    def GetMultiLineTextExtent(self, *_args, **_kwargs):
+        val = apply(gdic.wxDC_GetMultiLineTextExtent,(self,) + _args, _kwargs)
+        return val
     def GetTextForeground(self, *_args, **_kwargs):
         val = apply(gdic.wxDC_GetTextForeground,(self,) + _args, _kwargs)
         if val: val = wxColourPtr(val) ; val.thisown = 1
@@ -772,6 +698,9 @@ class wxDCPtr(wxObjectPtr):
     def SetClippingRegionAsRegion(self, *_args, **_kwargs):
         val = apply(gdic.wxDC_SetClippingRegionAsRegion,(self,) + _args, _kwargs)
         return val
+    def SetClippingRect(self, *_args, **_kwargs):
+        val = apply(gdic.wxDC_SetClippingRect,(self,) + _args, _kwargs)
+        return val
     def SetPalette(self, *_args, **_kwargs):
         val = apply(gdic.wxDC_SetPalette,(self,) + _args, _kwargs)
         return val
@@ -854,6 +783,18 @@ class wxDCPtr(wxObjectPtr):
     def _DrawLineList(self, *_args, **_kwargs):
         val = apply(gdic.wxDC__DrawLineList,(self,) + _args, _kwargs)
         return val
+    def _DrawRectangleList(self, *_args, **_kwargs):
+        val = apply(gdic.wxDC__DrawRectangleList,(self,) + _args, _kwargs)
+        return val
+    def _DrawEllipseList(self, *_args, **_kwargs):
+        val = apply(gdic.wxDC__DrawEllipseList,(self,) + _args, _kwargs)
+        return val
+    def _DrawPolygonList(self, *_args, **_kwargs):
+        val = apply(gdic.wxDC__DrawPolygonList,(self,) + _args, _kwargs)
+        return val
+    def _DrawTextList(self, *_args, **_kwargs):
+        val = apply(gdic.wxDC__DrawTextList,(self,) + _args, _kwargs)
+        return val
     def __repr__(self):
         return "<C wxDC instance at %s>" % (self.this,)
     
@@ -864,7 +805,8 @@ class wxDCPtr(wxObjectPtr):
            pens = [pens]
         elif len(pens) != len(points):
            raise ValueError('points and pens must have same length')
-        return self._DrawPointList(points, pens)
+        return self._DrawPointList(points, pens, [])
+
 
     def DrawLineList(self, lines, pens=None):
         if pens is None:
@@ -873,7 +815,83 @@ class wxDCPtr(wxObjectPtr):
            pens = [pens]
         elif len(pens) != len(lines):
            raise ValueError('lines and pens must have same length')
-        return self._DrawLineList(lines, pens)
+        return self._DrawLineList(lines, pens, [])
+
+
+    def DrawRectangleList(self, rectangles, pens=None, brushes=None):
+        if pens is None:
+           pens = []
+        elif isinstance(pens, wxPenPtr):
+           pens = [pens]
+        elif len(pens) != len(rectangles):
+           raise ValueError('rectangles and pens must have same length')
+        if brushes is None:
+           brushes = []
+        elif isinstance(brushes, wxBrushPtr):
+           brushes = [brushes]
+        elif len(brushes) != len(rectangles):
+           raise ValueError('rectangles and brushes must have same length')
+        return self._DrawRectangleList(rectangles, pens, brushes)
+
+
+    def DrawEllipseList(self, ellipses, pens=None, brushes=None):
+        if pens is None:
+           pens = []
+        elif isinstance(pens, wxPenPtr):
+           pens = [pens]
+        elif len(pens) != len(ellipses):
+           raise ValueError('ellipses and pens must have same length')
+        if brushes is None:
+           brushes = []
+        elif isinstance(brushes, wxBrushPtr):
+           brushes = [brushes]
+        elif len(brushes) != len(ellipses):
+           raise ValueError('ellipses and brushes must have same length')
+        return self._DrawEllipseList(ellipses, pens, brushes)
+
+
+    def DrawPolygonList(self, polygons, pens=None, brushes=None):
+        ## Note: This does not currently support fill style or offset
+        ## you can always use the non-List version if need be.
+        ## I really would like to support fill-style, however,
+        ## but wxODDEVEN_RULE does not appear to be defined at the Python level
+        ## [It's in wx.py... --Robin]
+        if pens is None:
+           pens = []
+        elif isinstance(pens, wxPenPtr):
+           pens = [pens]
+        elif len(pens) != len(polygons):
+           raise ValueError('polygons and pens must have same length')
+        if brushes is None:
+           brushes = []
+        elif isinstance(brushes, wxBrushPtr):
+           brushes = [brushes]
+        elif len(brushes) != len(polygons):
+           raise ValueError('polygons and brushes must have same length')
+        return self._DrawPolygonList(polygons, pens, brushes)
+
+
+    def DrawTextList(self, textList, coords, foregrounds = None, backgrounds = None, fonts = None):
+        ## NOTE: this does not currently support changing the font
+        ##       Make sure you set Background mode to wxSolid (DC.SetBackgroundMode)
+        ##       If you want backgounds to do anything.
+        if type(textList) == type(''):
+           textList = [textList]
+        elif len(textList) != len(coords):
+           raise ValueError('textlist and coords must have same length')
+        if foregrounds is None:
+           foregrounds = []
+        elif isinstance(foregrounds, wxColourPtr):
+           foregrounds = [foregrounds]
+        elif len(foregrounds) != len(coords):
+           raise ValueError('foregrounds and coords must have same length')
+        if backgrounds is None:
+           backgrounds = []
+        elif isinstance(backgrounds, wxColourPtr):
+           backgrounds = [backgrounds]
+        elif len(backgrounds) != len(coords):
+           raise ValueError('backgrounds and coords must have same length')
+        return  self._DrawTextList(textList, coords, foregrounds, backgrounds)
 
 class wxDC(wxDCPtr):
     def __init__(self,this):
@@ -899,6 +917,44 @@ class wxMemoryDC(wxMemoryDCPtr):
 
 
 
+class wxBufferedDCPtr(wxMemoryDCPtr):
+    def __init__(self,this):
+        self.this = this
+        self.thisown = 0
+    def UnMask(self, *_args, **_kwargs):
+        val = apply(gdic.wxBufferedDC_UnMask,(self,) + _args, _kwargs)
+        return val
+    def __repr__(self):
+        return "<C wxBufferedDC instance at %s>" % (self.this,)
+class wxBufferedDC(wxBufferedDCPtr):
+    def __init__(self,*_args,**_kwargs):
+        self.this = apply(gdic.new_wxBufferedDC,_args,_kwargs)
+        self.thisown = 1
+        self._dc = _args[0] # save a ref so the other dc won't be deleted before self
+
+
+
+def wxBufferedDCInternalBuffer(*_args,**_kwargs):
+    val = wxBufferedDCPtr(apply(gdic.new_wxBufferedDCInternalBuffer,_args,_kwargs))
+    val.thisown = 1
+    val._dc = _args[0] # save a ref so the other dc won't be deleted before self
+    return val
+
+
+class wxBufferedPaintDCPtr(wxBufferedDCPtr):
+    def __init__(self,this):
+        self.this = this
+        self.thisown = 0
+    def __repr__(self):
+        return "<C wxBufferedPaintDC instance at %s>" % (self.this,)
+class wxBufferedPaintDC(wxBufferedPaintDCPtr):
+    def __init__(self,*_args,**_kwargs):
+        self.this = apply(gdic.new_wxBufferedPaintDC,_args,_kwargs)
+        self.thisown = 1
+
+
+
+
 class wxScreenDCPtr(wxDCPtr):
     def __init__(self,this):
         self.this = this
@@ -968,9 +1024,12 @@ class wxPalettePtr(wxGDIObjectPtr):
     def __init__(self,this):
         self.this = this
         self.thisown = 0
-    def __del__(self,gdic=gdic):
-        if self.thisown == 1 :
-            gdic.delete_wxPalette(self)
+    def __del__(self, delfunc=gdic.delete_wxPalette):
+        if self.thisown == 1:
+            try:
+                delfunc(self)
+            except:
+                pass
     def GetPixel(self, *_args, **_kwargs):
         val = apply(gdic.wxPalette_GetPixel,(self,) + _args, _kwargs)
         return val
@@ -994,9 +1053,12 @@ class wxImageListPtr(wxObjectPtr):
     def __init__(self,this):
         self.this = this
         self.thisown = 0
-    def __del__(self,gdic=gdic):
-        if self.thisown == 1 :
-            gdic.delete_wxImageList(self)
+    def __del__(self, delfunc=gdic.delete_wxImageList):
+        if self.thisown == 1:
+            try:
+                delfunc(self)
+            except:
+                pass
     def Add(self, *_args, **_kwargs):
         val = apply(gdic.wxImageList_Add,(self,) + _args, _kwargs)
         return val
@@ -1038,12 +1100,18 @@ class wxRegionPtr(wxGDIObjectPtr):
     def __init__(self,this):
         self.this = this
         self.thisown = 0
-    def __del__(self,gdic=gdic):
-        if self.thisown == 1 :
-            gdic.delete_wxRegion(self)
+    def __del__(self, delfunc=gdic.delete_wxRegion):
+        if self.thisown == 1:
+            try:
+                delfunc(self)
+            except:
+                pass
     def Clear(self, *_args, **_kwargs):
         val = apply(gdic.wxRegion_Clear,(self,) + _args, _kwargs)
         return val
+    def Offset(self, *_args, **_kwargs):
+        val = apply(gdic.wxRegion_Offset,(self,) + _args, _kwargs)
+        return val
     def Contains(self, *_args, **_kwargs):
         val = apply(gdic.wxRegion_Contains,(self,) + _args, _kwargs)
         return val
@@ -1108,14 +1176,22 @@ class wxRegion(wxRegionPtr):
 
 
 
+def wxRegionFromPoints(*_args,**_kwargs):
+    val = wxRegionPtr(apply(gdic.new_wxRegionFromPoints,_args,_kwargs))
+    val.thisown = 1
+    return val
+
 
 class wxRegionIteratorPtr(wxObjectPtr):
     def __init__(self,this):
         self.this = this
         self.thisown = 0
-    def __del__(self,gdic=gdic):
-        if self.thisown == 1 :
-            gdic.delete_wxRegionIterator(self)
+    def __del__(self, delfunc=gdic.delete_wxRegionIterator):
+        if self.thisown == 1:
+            try:
+                delfunc(self)
+            except:
+                pass
     def GetX(self, *_args, **_kwargs):
         val = apply(gdic.wxRegionIterator_GetX,(self,) + _args, _kwargs)
         return val
@@ -1196,11 +1272,21 @@ def wxIconFromXPMData(*_args, **_kwargs):
     if val: val = wxIconPtr(val); val.thisown = 1
     return val
 
+def wxIconFromBitmap(*_args, **_kwargs):
+    val = apply(gdic.wxIconFromBitmap,_args,_kwargs)
+    if val: val = wxIconPtr(val); val.thisown = 1
+    return val
+
 def wxStockCursor(*_args, **_kwargs):
     val = apply(gdic.wxStockCursor,_args,_kwargs)
     if val: val = wxCursorPtr(val); val.thisown = 1
     return val
 
+def wxCursorFromImage(*_args, **_kwargs):
+    val = apply(gdic.wxCursorFromImage,_args,_kwargs)
+    if val: val = wxCursorPtr(val); val.thisown = 1
+    return val
+
 def wxNamedColour(*_args, **_kwargs):
     val = apply(gdic.wxNamedColour,_args,_kwargs)
     if val: val = wxColourPtr(val); val.thisown = 1
@@ -1211,80 +1297,20 @@ def wxMemoryDCFromDC(*_args, **_kwargs):
     if val: val = wxMemoryDCPtr(val); val.thisown = 1
     return val
 
-wxFontMapper_GetEncodingName = gdic.wxFontMapper_GetEncodingName
-
-wxFontMapper_GetEncodingDescription = gdic.wxFontMapper_GetEncodingDescription
-
-wxFontMapper_GetDefaultConfigPath = gdic.wxFontMapper_GetDefaultConfigPath
-
-wxFont_GetDefaultEncoding = gdic.wxFont_GetDefaultEncoding
-
-wxFont_SetDefaultEncoding = gdic.wxFont_SetDefaultEncoding
-
 
 
 #-------------- VARIABLE WRAPPERS ------------------
 
-wxFONTFAMILY_DEFAULT = gdic.wxFONTFAMILY_DEFAULT
-wxFONTFAMILY_DECORATIVE = gdic.wxFONTFAMILY_DECORATIVE
-wxFONTFAMILY_ROMAN = gdic.wxFONTFAMILY_ROMAN
-wxFONTFAMILY_SCRIPT = gdic.wxFONTFAMILY_SCRIPT
-wxFONTFAMILY_SWISS = gdic.wxFONTFAMILY_SWISS
-wxFONTFAMILY_MODERN = gdic.wxFONTFAMILY_MODERN
-wxFONTFAMILY_TELETYPE = gdic.wxFONTFAMILY_TELETYPE
-wxFONTFAMILY_MAX = gdic.wxFONTFAMILY_MAX
-wxFONTSTYLE_NORMAL = gdic.wxFONTSTYLE_NORMAL
-wxFONTSTYLE_ITALIC = gdic.wxFONTSTYLE_ITALIC
-wxFONTSTYLE_SLANT = gdic.wxFONTSTYLE_SLANT
-wxFONTSTYLE_MAX = gdic.wxFONTSTYLE_MAX
-wxFONTWEIGHT_NORMAL = gdic.wxFONTWEIGHT_NORMAL
-wxFONTWEIGHT_LIGHT = gdic.wxFONTWEIGHT_LIGHT
-wxFONTWEIGHT_BOLD = gdic.wxFONTWEIGHT_BOLD
-wxFONTWEIGHT_MAX = gdic.wxFONTWEIGHT_MAX
-wxFONTENCODING_SYSTEM = gdic.wxFONTENCODING_SYSTEM
-wxFONTENCODING_DEFAULT = gdic.wxFONTENCODING_DEFAULT
-wxFONTENCODING_ISO8859_1 = gdic.wxFONTENCODING_ISO8859_1
-wxFONTENCODING_ISO8859_2 = gdic.wxFONTENCODING_ISO8859_2
-wxFONTENCODING_ISO8859_3 = gdic.wxFONTENCODING_ISO8859_3
-wxFONTENCODING_ISO8859_4 = gdic.wxFONTENCODING_ISO8859_4
-wxFONTENCODING_ISO8859_5 = gdic.wxFONTENCODING_ISO8859_5
-wxFONTENCODING_ISO8859_6 = gdic.wxFONTENCODING_ISO8859_6
-wxFONTENCODING_ISO8859_7 = gdic.wxFONTENCODING_ISO8859_7
-wxFONTENCODING_ISO8859_8 = gdic.wxFONTENCODING_ISO8859_8
-wxFONTENCODING_ISO8859_9 = gdic.wxFONTENCODING_ISO8859_9
-wxFONTENCODING_ISO8859_10 = gdic.wxFONTENCODING_ISO8859_10
-wxFONTENCODING_ISO8859_11 = gdic.wxFONTENCODING_ISO8859_11
-wxFONTENCODING_ISO8859_12 = gdic.wxFONTENCODING_ISO8859_12
-wxFONTENCODING_ISO8859_13 = gdic.wxFONTENCODING_ISO8859_13
-wxFONTENCODING_ISO8859_14 = gdic.wxFONTENCODING_ISO8859_14
-wxFONTENCODING_ISO8859_15 = gdic.wxFONTENCODING_ISO8859_15
-wxFONTENCODING_ISO8859_MAX = gdic.wxFONTENCODING_ISO8859_MAX
-wxFONTENCODING_KOI8 = gdic.wxFONTENCODING_KOI8
-wxFONTENCODING_ALTERNATIVE = gdic.wxFONTENCODING_ALTERNATIVE
-wxFONTENCODING_BULGARIAN = gdic.wxFONTENCODING_BULGARIAN
-wxFONTENCODING_CP437 = gdic.wxFONTENCODING_CP437
-wxFONTENCODING_CP850 = gdic.wxFONTENCODING_CP850
-wxFONTENCODING_CP852 = gdic.wxFONTENCODING_CP852
-wxFONTENCODING_CP855 = gdic.wxFONTENCODING_CP855
-wxFONTENCODING_CP866 = gdic.wxFONTENCODING_CP866
-wxFONTENCODING_CP874 = gdic.wxFONTENCODING_CP874
-wxFONTENCODING_CP932 = gdic.wxFONTENCODING_CP932
-wxFONTENCODING_CP936 = gdic.wxFONTENCODING_CP936
-wxFONTENCODING_CP949 = gdic.wxFONTENCODING_CP949
-wxFONTENCODING_CP950 = gdic.wxFONTENCODING_CP950
-wxFONTENCODING_CP1250 = gdic.wxFONTENCODING_CP1250
-wxFONTENCODING_CP1251 = gdic.wxFONTENCODING_CP1251
-wxFONTENCODING_CP1252 = gdic.wxFONTENCODING_CP1252
-wxFONTENCODING_CP1253 = gdic.wxFONTENCODING_CP1253
-wxFONTENCODING_CP1254 = gdic.wxFONTENCODING_CP1254
-wxFONTENCODING_CP1255 = gdic.wxFONTENCODING_CP1255
-wxFONTENCODING_CP1256 = gdic.wxFONTENCODING_CP1256
-wxFONTENCODING_CP1257 = gdic.wxFONTENCODING_CP1257
-wxFONTENCODING_CP12_MAX = gdic.wxFONTENCODING_CP12_MAX
-wxFONTENCODING_UTF7 = gdic.wxFONTENCODING_UTF7
-wxFONTENCODING_UTF8 = gdic.wxFONTENCODING_UTF8
-wxFONTENCODING_UNICODE = gdic.wxFONTENCODING_UNICODE
-wxFONTENCODING_MAX = gdic.wxFONTENCODING_MAX
+wxIMAGELIST_DRAW_NORMAL = gdic.wxIMAGELIST_DRAW_NORMAL
+wxIMAGELIST_DRAW_TRANSPARENT = gdic.wxIMAGELIST_DRAW_TRANSPARENT
+wxIMAGELIST_DRAW_SELECTED = gdic.wxIMAGELIST_DRAW_SELECTED
+wxIMAGELIST_DRAW_FOCUSED = gdic.wxIMAGELIST_DRAW_FOCUSED
+wxIMAGE_LIST_NORMAL = gdic.wxIMAGE_LIST_NORMAL
+wxIMAGE_LIST_SMALL = gdic.wxIMAGE_LIST_SMALL
+wxIMAGE_LIST_STATE = gdic.wxIMAGE_LIST_STATE
+wxOutRegion = gdic.wxOutRegion
+wxPartRegion = gdic.wxPartRegion
+wxInRegion = gdic.wxInRegion
 cvar = gdic.cvar
 wxNORMAL_FONT = wxFontPtr(gdic.cvar.wxNORMAL_FONT)
 wxSMALL_FONT = wxFontPtr(gdic.cvar.wxSMALL_FONT)
@@ -1332,13 +1358,3 @@ wxTheFontList = wxFontListPtr(gdic.cvar.wxTheFontList)
 wxThePenList = wxPenListPtr(gdic.cvar.wxThePenList)
 wxTheBrushList = wxBrushListPtr(gdic.cvar.wxTheBrushList)
 wxTheColourDatabase = wxColourDatabasePtr(gdic.cvar.wxTheColourDatabase)
-wxIMAGELIST_DRAW_NORMAL = gdic.wxIMAGELIST_DRAW_NORMAL
-wxIMAGELIST_DRAW_TRANSPARENT = gdic.wxIMAGELIST_DRAW_TRANSPARENT
-wxIMAGELIST_DRAW_SELECTED = gdic.wxIMAGELIST_DRAW_SELECTED
-wxIMAGELIST_DRAW_FOCUSED = gdic.wxIMAGELIST_DRAW_FOCUSED
-wxIMAGE_LIST_NORMAL = gdic.wxIMAGE_LIST_NORMAL
-wxIMAGE_LIST_SMALL = gdic.wxIMAGE_LIST_SMALL
-wxIMAGE_LIST_STATE = gdic.wxIMAGE_LIST_STATE
-wxOutRegion = gdic.wxOutRegion
-wxPartRegion = gdic.wxPartRegion
-wxInRegion = gdic.wxInRegion