]> git.saurik.com Git - wxWidgets.git/blobdiff - wxPython/src/_defs.i
Minor tweaks to bring up to date with CVS changes
[wxWidgets.git] / wxPython / src / _defs.i
index c07f2078b6da5680067842678587263517e4ec33..8828de982687adfbe95e4804d5d38ed2e9378294 100644 (file)
 }
 %enddef
 
-    
 
+// This macro can be used to disable the releasing of the GIL when calling the
+// C++ function.
+%define KeepGIL(name)
+%exception name {
+    $action
+    if (PyErr_Occurred()) SWIG_fail;
+}
+%enddef
+        
 //---------------------------------------------------------------------------
 // some type definitions to simplify things for SWIG
 
@@ -93,6 +101,7 @@ typedef unsigned long   wxUIntPtr;
 #define %noautodoc      %feature("noautodoc")
 
 #if SWIG_VERSION >= 0x010327
+#undef %kwargs
 #define %kwargs         %feature("kwargs", "1")
 #define %nokwargs       %feature("kwargs", "0")
 #else
@@ -103,6 +112,8 @@ typedef unsigned long   wxUIntPtr;
 #define %disownarg(typespec)   %typemap(in) typespec = SWIGTYPE* DISOWN
 #define %cleardisown(typespec) %typemap(in) typespec
     
+#define %ref   %feature("ref")
+#define %unref %feature("unref")
 
 
 #ifndef %pythoncode
@@ -381,6 +392,23 @@ typedef unsigned long   wxUIntPtr;
     %enddef
 #endif
 
+
+//---------------------------------------------------------------------------
+// Generates a base_On* method that just wraps a call to the On*, and mark it
+// deprecated.  We need this because there is no longer any need for a
+// base_On* method to be able to call the C++ base class method, since our
+// virtualization code can now sense when an attempt is being made to call
+// the base class version from the derived class override.
+        
+%define %MAKE_BASE_FUNC(Class, Method)
+    %pythoncode {
+        def base_##Method(*args, **kw):
+            return Class.Method(*args, **kw)
+        base_##Method = wx._deprecated(base_##Method,
+                                       "Please use Class.Method instead.")
+    }
+%enddef    
+    
 //---------------------------------------------------------------------------
 // Forward declarations and %renames for some classes, so the autodoc strings
 // will be able to use the right types even when the real class declaration is