Rearrainge things so the SWIG_VERSION values doesn't need to be

written to the C++ wrapper file.


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@37504 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
Robin Dunn 2006-02-11 19:46:49 +00:00
parent 12e7f72a35
commit 080b9cbc7f
2 changed files with 47 additions and 24 deletions

View File

@ -19,9 +19,54 @@
// Helper functions for dealing with SWIG objects and such. These are
// located here so they know about the SWIG types and functions declared
// in the wrapper code.
%}
#if SWIG_VERSION < 0x010328
%{
// Make a SWIGified pointer object suitable for a .this attribute
PyObject* wxPyMakeSwigPtr(void* ptr, const wxChar* className) {
PyObject* robj = NULL;
swig_type_info* swigType = wxPyFindSwigType(className);
wxCHECK_MSG(swigType != NULL, NULL, wxT("Unknown type in wxPyMakeSwigPtr"));
#ifdef SWIG_COBJECT_TYPES
robj = PySwigObject_FromVoidPtrAndDesc((void *) ptr, (char *)swigType->name);
#else
{
char result[1024];
robj = SWIG_PackVoidPtr(result, ptr, swigType->name, sizeof(result)) ?
PyString_FromString(result) : 0;
}
#endif
return robj;
}
%}
#else // SWIG_VERSION >= 1.3.28
%{
// Make a SWIGified pointer object suitable for a .this attribute
PyObject* wxPyMakeSwigPtr(void* ptr, const wxChar* className) {
PyObject* robj = NULL;
swig_type_info* swigType = wxPyFindSwigType(className);
wxCHECK_MSG(swigType != NULL, NULL, wxT("Unknown type in wxPyMakeSwigPtr"));
robj = PySwigObject_New(ptr, swigType, 0);
return robj;
}
%}
#endif
%{
#include <wx/hashmap.h>
WX_DECLARE_STRING_HASH_MAP( swig_type_info*, wxPyTypeInfoHashMap );
WX_DECLARE_STRING_HASH_MAP( swig_type_info*, wxPyTypeInfoHashMap );
// Maintains a hashmap of className to swig_type_info pointers. Given the
@ -100,29 +145,6 @@ bool wxPyConvertSwigPtr(PyObject* obj, void **ptr,
}
// Make a SWIGified pointer object suitable for a .this attribute
PyObject* wxPyMakeSwigPtr(void* ptr, const wxChar* className) {
PyObject* robj = NULL;
swig_type_info* swigType = wxPyFindSwigType(className);
wxCHECK_MSG(swigType != NULL, NULL, wxT("Unknown type in wxPyMakeSwigPtr"));
#if SWIG_VERSION < 0x010328
#ifdef SWIG_COBJECT_TYPES
robj = PySwigObject_FromVoidPtrAndDesc((void *) ptr, (char *)swigType->name);
#else
{
char result[1024];
robj = SWIG_PackVoidPtr(result, ptr, swigType->name, sizeof(result)) ?
PyString_FromString(result) : 0;
}
#endif
#else // SWIG_VERSION >= 1.3.28
robj = PySwigObject_New(ptr, swigType, 0);
#endif
return robj;
}
// Python's PyInstance_Check does not return True for instances of new-style

View File

@ -93,6 +93,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