From: Robin Dunn Date: Thu, 13 May 2004 15:42:14 +0000 (+0000) Subject: OGL typemap and OOR fixes X-Git-Url: https://git.saurik.com/wxWidgets.git/commitdiff_plain/baaa1d1a58224f2d1509965e5e9d9e8fd5799cf0?hp=fd9b9198f8b180914e05c7fcb8b6779587b4e667 OGL typemap and OOR fixes git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@27251 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775 --- diff --git a/wxPython/contrib/ogl/_oglbasic.i b/wxPython/contrib/ogl/_oglbasic.i index 77b308fbe2..7ceb86fac6 100644 --- a/wxPython/contrib/ogl/_oglbasic.i +++ b/wxPython/contrib/ogl/_oglbasic.i @@ -145,7 +145,7 @@ public: class wxPyShape : public wxPyShapeEvtHandler { public: - %pythonAppend wxPyShape "self._setOORandCallbackInfo(PyShapeEvtHandler)" + %pythonAppend wxPyShape "self._setOORandCallbackInfo(PyShape)" wxPyShape(wxPyShapeCanvas *can = NULL); diff --git a/wxPython/contrib/ogl/_oglcanvas.i b/wxPython/contrib/ogl/_oglcanvas.i index 7dcf7ca4f8..b220dee2a2 100644 --- a/wxPython/contrib/ogl/_oglcanvas.i +++ b/wxPython/contrib/ogl/_oglcanvas.i @@ -101,7 +101,7 @@ public: class wxPyShapeCanvas : public wxScrolledWindow { public: - %pythonAppend wxPyShapeEvtHandler "self._setOORandCallbackInfo(PyShapeEvtHandler)" + %pythonAppend wxPyShapeCanvas "self._setOORandCallbackInfo(PyShapeCanvas)" wxPyShapeCanvas(wxWindow* parent = NULL, wxWindowID id = -1, const wxPoint& pos = wxDefaultPosition, diff --git a/wxPython/contrib/ogl/_oglshapes.i b/wxPython/contrib/ogl/_oglshapes.i index 18e28fcc5c..fb9bc95136 100644 --- a/wxPython/contrib/ogl/_oglshapes.i +++ b/wxPython/contrib/ogl/_oglshapes.i @@ -22,6 +22,15 @@ enum { }; //--------------------------------------------------------------------------- + +%typemap(in) (int points, wxPoint* points_array ) { + $2 = wxPoint_LIST_helper($input, &$1); + if ($2 == NULL) SWIG_fail; +} +%typemap(freearg) (int points, wxPoint* points_array ) { + if ($2) delete [] $2; +} + //--------------------------------------------------------------------------- class wxPseudoMetaFile : public wxObject { @@ -69,9 +78,9 @@ public: void DrawEllipse(const wxRect& rect); void DrawPoint(const wxPoint& pt); void DrawText(const wxString& text, const wxPoint& pt); - void DrawLines(int PCOUNT, wxPoint* points); - void DrawPolygon(int PCOUNT, wxPoint* points, int flags = 0); - void DrawSpline(int PCOUNT, wxPoint* points); + void DrawLines(int points, wxPoint* points_array); + void DrawPolygon(int points, wxPoint* points_array, int flags = 0); + void DrawSpline(int points, wxPoint* points_array); void SetClippingRect(const wxRect& rect); void DestroyClippingRect(); void SetPen(wxPen* pen, bool isOutline = FALSE); @@ -286,12 +295,14 @@ public: void DrawAtAngle(int angle); void DrawEllipticArc(const wxRect& rect, double startAngle, double endAngle); void DrawLine(const wxPoint& point1, const wxPoint& point2); - void DrawLines(int PCOUNT, wxPoint* points); + void DrawLines(int points, wxPoint* points_array); void DrawPoint(const wxPoint& point); - void DrawPolygon(int PCOUNT, wxPoint* points, int flags = 0); + + void DrawPolygon(int points, wxPoint* points_array, int flags = 0); + void DrawRectangle(const wxRect& rect); void DrawRoundedRectangle(const wxRect& rect, double radius); - void DrawSpline(int PCOUNT, wxPoint* points); + void DrawSpline(int points, wxPoint* points_array); void DrawText(const wxString& text, const wxPoint& point); int GetAngle(); diff --git a/wxPython/contrib/ogl/msw/ogl.py b/wxPython/contrib/ogl/msw/ogl.py index 78dd91288b..9bfd4e17de 100644 --- a/wxPython/contrib/ogl/msw/ogl.py +++ b/wxPython/contrib/ogl/msw/ogl.py @@ -349,7 +349,7 @@ class PyShape(PyShapeEvtHandler): self.this = newobj.this self.thisown = 1 del newobj.thisown - self._setOORandCallbackInfo(PyShapeEvtHandler) + self._setOORandCallbackInfo(PyShape) def _setCallbackInfo(*args, **kwargs): """_setCallbackInfo(self, PyObject self, PyObject _class)""" @@ -1194,15 +1194,15 @@ class PseudoMetaFile(_core.Object): return _ogl.PseudoMetaFile_DrawText(*args, **kwargs) def DrawLines(*args, **kwargs): - """DrawLines(self, int PCOUNT, Point points)""" + """DrawLines(self, int points, Point points_array)""" return _ogl.PseudoMetaFile_DrawLines(*args, **kwargs) def DrawPolygon(*args, **kwargs): - """DrawPolygon(self, int PCOUNT, Point points, int flags=0)""" + """DrawPolygon(self, int points, Point points_array, int flags=0)""" return _ogl.PseudoMetaFile_DrawPolygon(*args, **kwargs) def DrawSpline(*args, **kwargs): - """DrawSpline(self, int PCOUNT, Point points)""" + """DrawSpline(self, int points, Point points_array)""" return _ogl.PseudoMetaFile_DrawSpline(*args, **kwargs) def SetClippingRect(*args, **kwargs): @@ -1779,7 +1779,7 @@ class PyDrawnShape(PyRectangleShape): return _ogl.PyDrawnShape_DrawLine(*args, **kwargs) def DrawLines(*args, **kwargs): - """DrawLines(self, int PCOUNT, Point points)""" + """DrawLines(self, int points, Point points_array)""" return _ogl.PyDrawnShape_DrawLines(*args, **kwargs) def DrawPoint(*args, **kwargs): @@ -1787,7 +1787,7 @@ class PyDrawnShape(PyRectangleShape): return _ogl.PyDrawnShape_DrawPoint(*args, **kwargs) def DrawPolygon(*args, **kwargs): - """DrawPolygon(self, int PCOUNT, Point points, int flags=0)""" + """DrawPolygon(self, int points, Point points_array, int flags=0)""" return _ogl.PyDrawnShape_DrawPolygon(*args, **kwargs) def DrawRectangle(*args, **kwargs): @@ -1799,7 +1799,7 @@ class PyDrawnShape(PyRectangleShape): return _ogl.PyDrawnShape_DrawRoundedRectangle(*args, **kwargs) def DrawSpline(*args, **kwargs): - """DrawSpline(self, int PCOUNT, Point points)""" + """DrawSpline(self, int points, Point points_array)""" return _ogl.PyDrawnShape_DrawSpline(*args, **kwargs) def DrawText(*args, **kwargs): @@ -3867,6 +3867,8 @@ class PyShapeCanvas(_windows.ScrolledWindow): self.this = newobj.this self.thisown = 1 del newobj.thisown + self._setOORandCallbackInfo(PyShapeCanvas) + def _setCallbackInfo(*args, **kwargs): """_setCallbackInfo(self, PyObject self, PyObject _class)""" return _ogl.PyShapeCanvas__setCallbackInfo(*args, **kwargs) diff --git a/wxPython/contrib/ogl/msw/ogl_wrap.cpp b/wxPython/contrib/ogl/msw/ogl_wrap.cpp index aaffa6f8da..17ed7d840b 100644 --- a/wxPython/contrib/ogl/msw/ogl_wrap.cpp +++ b/wxPython/contrib/ogl/msw/ogl_wrap.cpp @@ -10252,18 +10252,17 @@ static PyObject *_wrap_PseudoMetaFile_DrawLines(PyObject *self, PyObject *args, wxPoint *arg3 = (wxPoint *) 0 ; PyObject * obj0 = 0 ; PyObject * obj1 = 0 ; - PyObject * obj2 = 0 ; char *kwnames[] = { - (char *) "self",(char *) "PCOUNT",(char *) "points", NULL + (char *) "self",(char *) "points", NULL }; - if(!PyArg_ParseTupleAndKeywords(args,kwargs,(char *)"OOO:PseudoMetaFile_DrawLines",kwnames,&obj0,&obj1,&obj2)) goto fail; + if(!PyArg_ParseTupleAndKeywords(args,kwargs,(char *)"OO:PseudoMetaFile_DrawLines",kwnames,&obj0,&obj1)) goto fail; if ((SWIG_ConvertPtr(obj0,(void **)(&arg1),SWIGTYPE_p_wxPseudoMetaFile, SWIG_POINTER_EXCEPTION | 0)) == -1) SWIG_fail; - arg2 = (int) SWIG_AsInt(obj1); - if (PyErr_Occurred()) SWIG_fail; - if ((SWIG_ConvertPtr(obj2,(void **)(&arg3),SWIGTYPE_p_wxPoint, - SWIG_POINTER_EXCEPTION | 0)) == -1) SWIG_fail; + { + arg3 = wxPoint_LIST_helper(obj1, &arg2); + if (arg3 == NULL) SWIG_fail; + } { PyThreadState* __tstate = wxPyBeginAllowThreads(); (arg1)->DrawLines(arg2,arg3); @@ -10272,8 +10271,14 @@ static PyObject *_wrap_PseudoMetaFile_DrawLines(PyObject *self, PyObject *args, if (PyErr_Occurred()) SWIG_fail; } Py_INCREF(Py_None); resultobj = Py_None; + { + if (arg3) delete [] arg3; + } return resultobj; fail: + { + if (arg3) delete [] arg3; + } return NULL; } @@ -10287,20 +10292,19 @@ static PyObject *_wrap_PseudoMetaFile_DrawPolygon(PyObject *self, PyObject *args PyObject * obj0 = 0 ; PyObject * obj1 = 0 ; PyObject * obj2 = 0 ; - PyObject * obj3 = 0 ; char *kwnames[] = { - (char *) "self",(char *) "PCOUNT",(char *) "points",(char *) "flags", NULL + (char *) "self",(char *) "points",(char *) "flags", NULL }; - if(!PyArg_ParseTupleAndKeywords(args,kwargs,(char *)"OOO|O:PseudoMetaFile_DrawPolygon",kwnames,&obj0,&obj1,&obj2,&obj3)) goto fail; + if(!PyArg_ParseTupleAndKeywords(args,kwargs,(char *)"OO|O:PseudoMetaFile_DrawPolygon",kwnames,&obj0,&obj1,&obj2)) goto fail; if ((SWIG_ConvertPtr(obj0,(void **)(&arg1),SWIGTYPE_p_wxPseudoMetaFile, SWIG_POINTER_EXCEPTION | 0)) == -1) SWIG_fail; - arg2 = (int) SWIG_AsInt(obj1); - if (PyErr_Occurred()) SWIG_fail; - if ((SWIG_ConvertPtr(obj2,(void **)(&arg3),SWIGTYPE_p_wxPoint, - SWIG_POINTER_EXCEPTION | 0)) == -1) SWIG_fail; - if (obj3) { - arg4 = (int) SWIG_AsInt(obj3); + { + arg3 = wxPoint_LIST_helper(obj1, &arg2); + if (arg3 == NULL) SWIG_fail; + } + if (obj2) { + arg4 = (int) SWIG_AsInt(obj2); if (PyErr_Occurred()) SWIG_fail; } { @@ -10311,8 +10315,14 @@ static PyObject *_wrap_PseudoMetaFile_DrawPolygon(PyObject *self, PyObject *args if (PyErr_Occurred()) SWIG_fail; } Py_INCREF(Py_None); resultobj = Py_None; + { + if (arg3) delete [] arg3; + } return resultobj; fail: + { + if (arg3) delete [] arg3; + } return NULL; } @@ -10324,18 +10334,17 @@ static PyObject *_wrap_PseudoMetaFile_DrawSpline(PyObject *self, PyObject *args, wxPoint *arg3 = (wxPoint *) 0 ; PyObject * obj0 = 0 ; PyObject * obj1 = 0 ; - PyObject * obj2 = 0 ; char *kwnames[] = { - (char *) "self",(char *) "PCOUNT",(char *) "points", NULL + (char *) "self",(char *) "points", NULL }; - if(!PyArg_ParseTupleAndKeywords(args,kwargs,(char *)"OOO:PseudoMetaFile_DrawSpline",kwnames,&obj0,&obj1,&obj2)) goto fail; + if(!PyArg_ParseTupleAndKeywords(args,kwargs,(char *)"OO:PseudoMetaFile_DrawSpline",kwnames,&obj0,&obj1)) goto fail; if ((SWIG_ConvertPtr(obj0,(void **)(&arg1),SWIGTYPE_p_wxPseudoMetaFile, SWIG_POINTER_EXCEPTION | 0)) == -1) SWIG_fail; - arg2 = (int) SWIG_AsInt(obj1); - if (PyErr_Occurred()) SWIG_fail; - if ((SWIG_ConvertPtr(obj2,(void **)(&arg3),SWIGTYPE_p_wxPoint, - SWIG_POINTER_EXCEPTION | 0)) == -1) SWIG_fail; + { + arg3 = wxPoint_LIST_helper(obj1, &arg2); + if (arg3 == NULL) SWIG_fail; + } { PyThreadState* __tstate = wxPyBeginAllowThreads(); (arg1)->DrawSpline(arg2,arg3); @@ -10344,8 +10353,14 @@ static PyObject *_wrap_PseudoMetaFile_DrawSpline(PyObject *self, PyObject *args, if (PyErr_Occurred()) SWIG_fail; } Py_INCREF(Py_None); resultobj = Py_None; + { + if (arg3) delete [] arg3; + } return resultobj; fail: + { + if (arg3) delete [] arg3; + } return NULL; } @@ -14986,18 +15001,17 @@ static PyObject *_wrap_PyDrawnShape_DrawLines(PyObject *self, PyObject *args, Py wxPoint *arg3 = (wxPoint *) 0 ; PyObject * obj0 = 0 ; PyObject * obj1 = 0 ; - PyObject * obj2 = 0 ; char *kwnames[] = { - (char *) "self",(char *) "PCOUNT",(char *) "points", NULL + (char *) "self",(char *) "points", NULL }; - if(!PyArg_ParseTupleAndKeywords(args,kwargs,(char *)"OOO:PyDrawnShape_DrawLines",kwnames,&obj0,&obj1,&obj2)) goto fail; + if(!PyArg_ParseTupleAndKeywords(args,kwargs,(char *)"OO:PyDrawnShape_DrawLines",kwnames,&obj0,&obj1)) goto fail; if ((SWIG_ConvertPtr(obj0,(void **)(&arg1),SWIGTYPE_p_wxPyDrawnShape, SWIG_POINTER_EXCEPTION | 0)) == -1) SWIG_fail; - arg2 = (int) SWIG_AsInt(obj1); - if (PyErr_Occurred()) SWIG_fail; - if ((SWIG_ConvertPtr(obj2,(void **)(&arg3),SWIGTYPE_p_wxPoint, - SWIG_POINTER_EXCEPTION | 0)) == -1) SWIG_fail; + { + arg3 = wxPoint_LIST_helper(obj1, &arg2); + if (arg3 == NULL) SWIG_fail; + } { PyThreadState* __tstate = wxPyBeginAllowThreads(); (arg1)->DrawLines(arg2,arg3); @@ -15006,8 +15020,14 @@ static PyObject *_wrap_PyDrawnShape_DrawLines(PyObject *self, PyObject *args, Py if (PyErr_Occurred()) SWIG_fail; } Py_INCREF(Py_None); resultobj = Py_None; + { + if (arg3) delete [] arg3; + } return resultobj; fail: + { + if (arg3) delete [] arg3; + } return NULL; } @@ -15053,20 +15073,19 @@ static PyObject *_wrap_PyDrawnShape_DrawPolygon(PyObject *self, PyObject *args, PyObject * obj0 = 0 ; PyObject * obj1 = 0 ; PyObject * obj2 = 0 ; - PyObject * obj3 = 0 ; char *kwnames[] = { - (char *) "self",(char *) "PCOUNT",(char *) "points",(char *) "flags", NULL + (char *) "self",(char *) "points",(char *) "flags", NULL }; - if(!PyArg_ParseTupleAndKeywords(args,kwargs,(char *)"OOO|O:PyDrawnShape_DrawPolygon",kwnames,&obj0,&obj1,&obj2,&obj3)) goto fail; + if(!PyArg_ParseTupleAndKeywords(args,kwargs,(char *)"OO|O:PyDrawnShape_DrawPolygon",kwnames,&obj0,&obj1,&obj2)) goto fail; if ((SWIG_ConvertPtr(obj0,(void **)(&arg1),SWIGTYPE_p_wxPyDrawnShape, SWIG_POINTER_EXCEPTION | 0)) == -1) SWIG_fail; - arg2 = (int) SWIG_AsInt(obj1); - if (PyErr_Occurred()) SWIG_fail; - if ((SWIG_ConvertPtr(obj2,(void **)(&arg3),SWIGTYPE_p_wxPoint, - SWIG_POINTER_EXCEPTION | 0)) == -1) SWIG_fail; - if (obj3) { - arg4 = (int) SWIG_AsInt(obj3); + { + arg3 = wxPoint_LIST_helper(obj1, &arg2); + if (arg3 == NULL) SWIG_fail; + } + if (obj2) { + arg4 = (int) SWIG_AsInt(obj2); if (PyErr_Occurred()) SWIG_fail; } { @@ -15077,8 +15096,14 @@ static PyObject *_wrap_PyDrawnShape_DrawPolygon(PyObject *self, PyObject *args, if (PyErr_Occurred()) SWIG_fail; } Py_INCREF(Py_None); resultobj = Py_None; + { + if (arg3) delete [] arg3; + } return resultobj; fail: + { + if (arg3) delete [] arg3; + } return NULL; } @@ -15158,18 +15183,17 @@ static PyObject *_wrap_PyDrawnShape_DrawSpline(PyObject *self, PyObject *args, P wxPoint *arg3 = (wxPoint *) 0 ; PyObject * obj0 = 0 ; PyObject * obj1 = 0 ; - PyObject * obj2 = 0 ; char *kwnames[] = { - (char *) "self",(char *) "PCOUNT",(char *) "points", NULL + (char *) "self",(char *) "points", NULL }; - if(!PyArg_ParseTupleAndKeywords(args,kwargs,(char *)"OOO:PyDrawnShape_DrawSpline",kwnames,&obj0,&obj1,&obj2)) goto fail; + if(!PyArg_ParseTupleAndKeywords(args,kwargs,(char *)"OO:PyDrawnShape_DrawSpline",kwnames,&obj0,&obj1)) goto fail; if ((SWIG_ConvertPtr(obj0,(void **)(&arg1),SWIGTYPE_p_wxPyDrawnShape, SWIG_POINTER_EXCEPTION | 0)) == -1) SWIG_fail; - arg2 = (int) SWIG_AsInt(obj1); - if (PyErr_Occurred()) SWIG_fail; - if ((SWIG_ConvertPtr(obj2,(void **)(&arg3),SWIGTYPE_p_wxPoint, - SWIG_POINTER_EXCEPTION | 0)) == -1) SWIG_fail; + { + arg3 = wxPoint_LIST_helper(obj1, &arg2); + if (arg3 == NULL) SWIG_fail; + } { PyThreadState* __tstate = wxPyBeginAllowThreads(); (arg1)->DrawSpline(arg2,arg3); @@ -15178,8 +15202,14 @@ static PyObject *_wrap_PyDrawnShape_DrawSpline(PyObject *self, PyObject *args, P if (PyErr_Occurred()) SWIG_fail; } Py_INCREF(Py_None); resultobj = Py_None; + { + if (arg3) delete [] arg3; + } return resultobj; fail: + { + if (arg3) delete [] arg3; + } return NULL; }