X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/c8bc7bb84dcca816055d5876e4772551c48acda5..8ded703ddca4c6657625af80afa66a2dddd13dae:/wxPython/contrib/ogl/ogl.cpp diff --git a/wxPython/contrib/ogl/ogl.cpp b/wxPython/contrib/ogl/ogl.cpp index 9de0ddb93f..cf0f2e9a9a 100644 --- a/wxPython/contrib/ogl/ogl.cpp +++ b/wxPython/contrib/ogl/ogl.cpp @@ -19,6 +19,8 @@ /* Implementation : PYTHON */ #define SWIGPYTHON +#include "Python.h" + #include #include /* Definitions for Windows/Unix exporting */ @@ -36,12 +38,9 @@ # define SWIGEXPORT(a) a #endif -#include "Python.h" - #ifdef __cplusplus extern "C" { #endif - extern void SWIG_MakePtr(char *, void *, char *); extern void SWIG_RegisterMapping(char *, char *, void *(*)(void *)); extern char *SWIG_GetPtr(char *, void **, char *); @@ -55,7 +54,7 @@ extern PyObject *SWIG_newvarlink(void); #define SWIG_name "oglc" -#include "export.h" +#include "wxPython.h" #include "oglhelpers.h" @@ -172,7 +171,7 @@ PyObject* wxPyMake_wxShapeEvtHandler(wxShapeEvtHandler* source) { // already be a pointer to a Python object that we can use // in the OOR data. wxShapeEvtHandler* seh = (wxShapeEvtHandler*)source; - wxPyClientData* data = (wxPyClientData*)seh->GetClientObject(); + wxPyOORClientData* data = (wxPyOORClientData*)seh->GetClientObject(); if (data) { target = data->m_obj; Py_INCREF(target); @@ -181,11 +180,31 @@ PyObject* wxPyMake_wxShapeEvtHandler(wxShapeEvtHandler* source) { if (! target) { target = wxPyMake_wxObject2(source, FALSE); if (target != Py_None) - ((wxShapeEvtHandler*)source)->SetClientObject(new wxPyClientData(target)); + ((wxShapeEvtHandler*)source)->SetClientObject(new wxPyOORClientData(target)); } return target; } +//--------------------------------------------------------------------------- + +PyObject* wxPy_ConvertShapeList(wxListBase* listbase, const char* className) { + wxList* list = (wxList*)listbase; + PyObject* pyList; + PyObject* pyObj; + wxObject* wxObj; + wxNode* node = list->GetFirst(); + + wxPyBeginBlockThreads(); + pyList = PyList_New(0); + while (node) { + wxObj = node->GetData(); + pyObj = wxPyMake_wxShapeEvtHandler((wxShapeEvtHandler*)wxObj); + PyList_Append(pyList, pyObj); + node = node->GetNext(); + } + wxPyEndBlockThreads(); + return pyList; +} //--------------------------------------------------------------------------- @@ -444,9 +463,6 @@ SWIGEXPORT(void) initoglc() { initoglcanvasc(); - wxClassInfo::CleanUpClasses(); - wxClassInfo::InitializeClasses(); - wxPyPtrTypeMap_Add("wxControlPoint", "wxPyControlPoint"); wxPyPtrTypeMap_Add("wxShapeCanvas", "wxPyShapeCanvas"); wxPyPtrTypeMap_Add("wxShapeEvtHandler", "wxPyShapeEvtHandler");