]> git.saurik.com Git - wxWidgets.git/blobdiff - wxPython/src/_defs.i
Since the wxPyMake_wxObject typemap is also used for constructors we
[wxWidgets.git] / wxPython / src / _defs.i
index e384cee753d513472cc6e59e207080b7ae6f36ac..83d95ba39f2e0041dba02ea057a8c6a8b33ae406 100644 (file)
 /////////////////////////////////////////////////////////////////////////////
 
 
+//---------------------------------------------------------------------------
 // Globally turn on the autodoc feature
+
 %feature("autodoc", "1");  // 0 == no param types, 1 == show param types
 
+//---------------------------------------------------------------------------
+// Tell SWIG to wrap all the wrappers with our thread protection by default
+
+%exception {
+    PyThreadState* __tstate = wxPyBeginAllowThreads();
+    $action
+    wxPyEndAllowThreads(__tstate);
+    if (PyErr_Occurred()) SWIG_fail;
+}
+
+
+// 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.
+%define MustHaveApp(name)
+%exception name {
+    if (!wxPyCheckForApp()) SWIG_fail;
+    PyThreadState* __tstate = wxPyBeginAllowThreads();
+    $action
+    wxPyEndAllowThreads(__tstate);
+    if (PyErr_Occurred()) SWIG_fail;
+}
+%enddef
+
+    
 
 //---------------------------------------------------------------------------
 // some type definitions to simplify things for SWIG
 
-// typedef int             wxWindowID;
-// typedef int             wxCoord;
-// typedef int             wxInt32;
-// typedef unsigned int    wxUint32;
 typedef int             wxEventType;
 typedef unsigned int    size_t;
 typedef unsigned int    time_t;
@@ -31,10 +53,6 @@ typedef unsigned char   byte;
 #define wxCoord         int
 #define wxInt32         int
 #define wxUint32        unsigned int
-//#define wxEventType     int
-//#define size_t          unsigned int
-//#define time_t          unsigned int
-//#define byte            unsigned char
 
 
 //----------------------------------------------------------------------
@@ -44,6 +62,8 @@ typedef unsigned char   byte;
 #define %pythonPrepend  %feature("pythonprepend")
 #define %kwargs         %feature("kwargs")
 #define %nokwargs       %feature("nokwargs")
+#define %noautodoc %feature("noautodoc")
+
 
 //#ifndef %shadow
 //#define %shadow         %insert("shadow")
@@ -170,13 +190,13 @@ typedef unsigned char   byte;
 // Set the autodoc and the docstring for a decl and then define the decl too.
 // Must use the full declaration of the item.
 #ifdef _DO_FULL_DOCS
-    %define DocDeclAStr(type, decl, astr, details, docstr)
+    %define DocDeclAStr(type, decl, astr, docstr, details)
         %feature("autodoc") decl astr;
         %feature("docstring") decl docstr details;
         type decl
     %enddef
 #else
-    %define DocDeclAStr(type, decl, astr, details, docstr)
+    %define DocDeclAStr(type, decl, astr, docstr, details)
         %feature("autodoc") decl astr;
         %feature("docstring") decl docstr;
         type decl
@@ -290,7 +310,7 @@ typedef unsigned char   byte;
 //---------------------------------------------------------------------------
 // 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
-// not in the module being processed.
+// not in the module being processed or seen by %import's.
 
 #ifdef BUILDING_RENAMERS
     #define FORWARD_DECLARE(wxName, Name)
@@ -318,6 +338,7 @@ FORWARD_DECLARE(wxMemoryDC,       MemoryDC);
 FORWARD_DECLARE(wxHtmlTagHandler, HtmlTagHandler);
 FORWARD_DECLARE(wxConfigBase,     ConfigBase);
 FORWARD_DECLARE(wxIcon,           Icon);
+FORWARD_DECLARE(wxStaticBox,      StaticBox);
 
 
 //---------------------------------------------------------------------------