]> git.saurik.com Git - wxWidgets.git/blobdiff - wxPython/src/_defs.i
reSWIGged
[wxWidgets.git] / wxPython / src / _defs.i
index 014339c36b4d7c5228acdebef1e23bbb52a31af5..1e1dfc9fb2edf32a1286ed262d8f2e7b881ff4a7 100644 (file)
@@ -12,8 +12,8 @@
 
 
 //---------------------------------------------------------------------------
-// Globally turn on the autodoc feature
 
+// Globally turn on the autodoc feature
 %feature("autodoc", "1");  // 0 == no param types, 1 == show param types
 
 // Turn on kwargs by default
 // Don't generate separate wrappers for each default args combination
 %feature("compactdefaultargs");
 
+#if SWIG_VERSION < 0x010328
 // Don't generate default ctors or dtors if the C++ doesn't have them
 %feature("nodefault");
-
+#else
 // This is the SWIG 1.3.28 way to do the above...
-// // Don't generate default ctors or dtors if the C++ doesn't have them
-// %feature("nodefaultctor");
-// %feature("nodefaultdtor");
+%feature("nodefaultctor");
+%feature("nodefaultdtor");
+#endif
+
+// For all items that don't have a %rename already, give them a %rename that
+// removes the leading 'wx' (except for wxEVT_* items.)
+%rename("%(wxpy)s") "";
+
+// For now, just supress the warning about using Python keywords as parameter
+// names.  Will need to come back later and correct these rather than just
+// hide them...
+#pragma SWIG nowarn=314
 
 //---------------------------------------------------------------------------
-// Tell SWIG to wrap all the wrappers with our thread protection by default
 
+// Tell SWIG to wrap all the wrappers with our thread protection
+%define %threadWrapperOn
 %exception {
     PyThreadState* __tstate = wxPyBeginAllowThreads();
     $action
     wxPyEndAllowThreads(__tstate);
     if (PyErr_Occurred()) SWIG_fail;
 }
+%enddef
 
+// This one will turn off the generation of the thread wrapper code
+%define %threadWrapperOff
+%exception 
+%enddef
+
+// Turn it on by default
+%threadWrapperOn
 
 // This one can be used to add a check for an existing wxApp before the real
 // work is done.  An exception is raised if there isn't one.
 }
 %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
 
@@ -75,10 +102,22 @@ typedef unsigned long   wxUIntPtr;
 
 #define %pythonAppend   %feature("pythonappend")
 #define %pythonPrepend  %feature("pythonprepend")
-#define %kwargs         %feature("kwargs")
-#define %nokwargs       %feature("kwargs", "0")
 #define %noautodoc      %feature("noautodoc")
 
+#if SWIG_VERSION >= 0x010327
+#undef %kwargs
+#define %kwargs         %feature("kwargs", "1")
+#define %nokwargs       %feature("kwargs", "0")
+#else
+#define %kwargs         %feature("kwargs")
+#define %nokwargs       %feature("nokwargs")
+#endif
+
+#define %disownarg(typespec)   %typemap(in) typespec = SWIGTYPE* DISOWN
+#define %cleardisown(typespec) %typemap(in) typespec
+    
+#define %ref   %feature("ref")
+#define %unref %feature("unref")
 
 
 #ifndef %pythoncode
@@ -357,6 +396,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
@@ -434,6 +490,8 @@ enum {
     wxCLIP_CHILDREN,
     wxCLIP_SIBLINGS,
 
+    wxWINDOW_STYLE_MASK,
+    
     wxALWAYS_SHOW_SB,
     
     wxRETAINED,
@@ -469,7 +527,9 @@ enum {
     wxRB_USE_CHECKBOX,
     wxST_SIZEGRIP,
     wxST_NO_AUTORESIZE,
-
+    wxST_DOTS_MIDDLE,
+    wxST_DOTS_END,
+    
     wxFLOOD_SURFACE,
     wxFLOOD_BORDER,
     wxODDEVEN_RULE,
@@ -621,14 +681,6 @@ enum {
    
     wxID_HIGHEST,
 
-    wxOPEN,
-    wxSAVE,
-    wxHIDE_READONLY,
-    wxOVERWRITE_PROMPT,
-    wxFILE_MUST_EXIST,
-    wxMULTIPLE,
-    wxCHANGE_DIR,
-
     wxACCEL_ALT,
     wxACCEL_CTRL,
     wxACCEL_SHIFT,
@@ -643,9 +695,6 @@ enum {
     wxPD_SMOOTH,
     wxPD_CAN_SKIP,
 
-    wxDD_NEW_DIR_BUTTON,
-    wxDD_DEFAULT_STYLE,
-
     wxMENU_TEAROFF,
     wxMB_DOCKABLE,
     wxNO_FULL_REPAINT_ON_RESIZE,