]> git.saurik.com Git - wxWidgets.git/blobdiff - wxPython/contrib/xrc/xrc.py
finding papersizes allows for 1 mm tolerance
[wxWidgets.git] / wxPython / contrib / xrc / xrc.py
index 6290c6cb873958be6c1c3d06547a5547b85fb367..79f0b6a62c769085a2edf1f8beece037c02e4457 100644 (file)
@@ -56,9 +56,12 @@ class wxXmlResourcePtr(wxObjectPtr):
     def __init__(self,this):
         self.this = this
         self.thisown = 0
-    def __del__(self,xrcc=xrcc):
-        if self.thisown == 1 :
-            xrcc.delete_wxXmlResource(self)
+    def __del__(self, delfunc=xrcc.delete_wxXmlResource):
+        if self.thisown == 1:
+            try:
+                delfunc(self)
+            except:
+                pass
     def Load(self, *_args, **_kwargs):
         val = apply(xrcc.wxXmlResource_Load,(self,) + _args, _kwargs)
         return val
@@ -132,6 +135,12 @@ class wxXmlResourcePtr(wxObjectPtr):
     def CompareVersion(self, *_args, **_kwargs):
         val = apply(xrcc.wxXmlResource_CompareVersion,(self,) + _args, _kwargs)
         return val
+    def GetFlags(self, *_args, **_kwargs):
+        val = apply(xrcc.wxXmlResource_GetFlags,(self,) + _args, _kwargs)
+        return val
+    def SetFlags(self, *_args, **_kwargs):
+        val = apply(xrcc.wxXmlResource_SetFlags,(self,) + _args, _kwargs)
+        return val
     def __repr__(self):
         return "<C wxXmlResource instance at %s>" % (self.this,)
 class wxXmlResource(wxXmlResourcePtr):
@@ -149,6 +158,24 @@ def wxEmptyXmlResource(*_args,**_kwargs):
     return val
 
 
+class wxXmlSubclassFactoryPtr :
+    def __init__(self,this):
+        self.this = this
+        self.thisown = 0
+    def _setCallbackInfo(self, *_args, **_kwargs):
+        val = apply(xrcc.wxXmlSubclassFactory__setCallbackInfo,(self,) + _args, _kwargs)
+        return val
+    def __repr__(self):
+        return "<C wxXmlSubclassFactory instance at %s>" % (self.this,)
+class wxXmlSubclassFactory(wxXmlSubclassFactoryPtr):
+    def __init__(self,*_args,**_kwargs):
+        self.this = apply(xrcc.new_wxXmlSubclassFactory,_args,_kwargs)
+        self.thisown = 1
+        self._setCallbackInfo(self, wxXmlSubclassFactory)
+
+
+
+
 class wxXmlPropertyPtr :
     def __init__(self,this):
         self.this = this
@@ -186,9 +213,12 @@ class wxXmlNodePtr :
     def __init__(self,this):
         self.this = this
         self.thisown = 0
-    def __del__(self,xrcc=xrcc):
-        if self.thisown == 1 :
-            xrcc.delete_wxXmlNode(self)
+    def __del__(self, delfunc=xrcc.delete_wxXmlNode):
+        if self.thisown == 1:
+            try:
+                delfunc(self)
+            except:
+                pass
     def AddChild(self, *_args, **_kwargs):
         val = apply(xrcc.wxXmlNode_AddChild,(self,) + _args, _kwargs)
         return val
@@ -278,9 +308,12 @@ class wxXmlDocumentPtr(wxObjectPtr):
     def __init__(self,this):
         self.this = this
         self.thisown = 0
-    def __del__(self,xrcc=xrcc):
-        if self.thisown == 1 :
-            xrcc.delete_wxXmlDocument(self)
+    def __del__(self, delfunc=xrcc.delete_wxXmlDocument):
+        if self.thisown == 1:
+            try:
+                delfunc(self)
+            except:
+                pass
     def Load(self, *_args, **_kwargs):
         val = apply(xrcc.wxXmlDocument_Load,(self,) + _args, _kwargs)
         return val
@@ -318,6 +351,9 @@ class wxXmlDocumentPtr(wxObjectPtr):
     def GetEncoding(self, *_args, **_kwargs):
         val = apply(xrcc.wxXmlDocument_GetEncoding,(self,) + _args, _kwargs)
         return val
+    def SetEncoding(self, *_args, **_kwargs):
+        val = apply(xrcc.wxXmlDocument_SetEncoding,(self,) + _args, _kwargs)
+        return val
     def __repr__(self):
         return "<C wxXmlDocument instance at %s>" % (self.this,)
 class wxXmlDocument(wxXmlDocumentPtr):
@@ -471,6 +507,8 @@ class wxXmlResourceHandler(wxXmlResourceHandlerPtr):
 
 #-------------- FUNCTION WRAPPERS ------------------
 
+wxXmlResource_AddSubclassFactory = xrcc.wxXmlResource_AddSubclassFactory
+
 wxXmlResource_GetXRCID = xrcc.wxXmlResource_GetXRCID
 
 def wxXmlResource_Get(*_args, **_kwargs):
@@ -512,3 +550,35 @@ wxXML_HTML_DOCUMENT_NODE = xrcc.wxXML_HTML_DOCUMENT_NODE
 wxTheXmlResource = wxXmlResource_Get()
 
 wx.wxXmlNodePtr = wxXmlNodePtr
+
+
+
+
+#----------------------------------------------------------------------
+#  Create a factory for handling the subclass property of the object tag.
+
+
+def _my_import(name):
+    mod = __import__(name)
+    components = name.split('.')
+    for comp in components[1:]:
+        mod = getattr(mod, comp)
+    return mod
+
+
+class wxXmlSubclassFactory_Python(wxXmlSubclassFactory):
+    def __init__(self):
+        wxXmlSubclassFactory.__init__(self)
+
+    def Create(self, className):
+        assert className.find('.') != -1, "Module name must be specified!"
+        mname = className[:className.rfind('.')]
+        cname = className[className.rfind('.')+1:]
+        module = _my_import(mname)
+        klass = getattr(module, cname)
+        inst = klass()
+        return inst
+
+
+wxXmlResource_AddSubclassFactory(wxXmlSubclassFactory_Python())
+