// This is the SIP interface definition for QPointArray. // // Copyright (c) 2007 // Riverbank Computing Limited // // This file is part of PyQt. // // This copy of PyQt is free software; you can redistribute it and/or modify it // under the terms of the GNU General Public License as published by the Free // Software Foundation; either version 2, or (at your option) any later // version. // // PyQt is supplied in the hope that it will be useful, but WITHOUT ANY // WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS // FOR A PARTICULAR PURPOSE. See the GNU General Public License for more // details. // // You should have received a copy of the GNU General Public License along with // PyQt; see the file LICENSE. If not, write to the Free Software Foundation, // Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. %ExportedDoc QPointArray QPointArray int nPoints const QCOORD *points This takes a single parameter which is a list of points. void point uint i int *x int *y This takes the single parameter i and returns the x and y values as a tuple. bool putPoints int index int nPoints const QCOORD *points This takes two parameters, index and a list of points. bool putPoints int index int nPoints int firstx int firsty ... Not implemented. bool setPoints int nPoints const QCOORD *points This takes a single parameter which is a list of points. bool setPoints int nPoints int firstx int firsty ... Not implemented. %End class QPointArray { %TypeHeaderCode #include %End %TypeCode // Convert a list of numbers to an array on QCOORDs on the heap. static QCOORD *getPoints(int nrpnts,PyObject *pntlist) { QCOORD *pnts, *pp; if ((pnts = (QCOORD *)sipMalloc(nrpnts * sizeof (QCOORD))) == NULL) return NULL; // Convert the list. pp = pnts; for (int i = 0; i < nrpnts; ++i) { *pp++ = (QCOORD)PyInt_AsLong(PyList_GetItem(pntlist,i)); if (PyErr_Occurred() != NULL) { sipFree((ANY *)pnts); return NULL; } } return pnts; } %End public: QPointArray(); QPointArray(int); QPointArray(const QPointArray &); QPointArray(const QRect &,bool = 0); QPointArray(SIP_PYLIST) [(int,const QCOORD *)]; %MethodCode // The Python interface is a list of QCOORDs. int nrpnts; QCOORD *pnts; nrpnts = PyList_GET_SIZE(a0); if ((pnts = getPoints(nrpnts,a0)) == NULL) sipIsErr = 1; else { // No wrapper class for QPointArray. Py_BEGIN_ALLOW_THREADS sipCpp = new QPointArray(nrpnts / 2,pnts); Py_END_ALLOW_THREADS sipFree((ANY *)pnts); } %End QPointArray copy() const; void translate(int,int); QRect boundingRect() const; void point(uint,int *,int *) const; // This is hidden by the above. It would probably be better to remove // the one above, but that would break backwards compatibility. //QPoint point(uint) const; void setPoint(uint,int,int); void setPoint(uint,const QPoint &); bool setPoints(SIP_PYLIST); %MethodCode int nrpnts; QCOORD *pnts; nrpnts = PyList_GET_SIZE(a0); if ((pnts = getPoints(nrpnts,a0)) == NULL) sipIsErr = 1; else { Py_BEGIN_ALLOW_THREADS sipRes = sipCpp -> setPoints(nrpnts / 2,pnts); Py_END_ALLOW_THREADS sipFree((ANY *)pnts); } %End // bool setPoints(int,int,int,...); bool putPoints(int,SIP_PYLIST); %MethodCode int nrpnts; QCOORD *pnts; nrpnts = PyList_GET_SIZE(a1); if ((pnts = getPoints(nrpnts,a1)) == NULL) sipIsErr = 1; else { Py_BEGIN_ALLOW_THREADS sipRes = sipCpp -> putPoints(a0,nrpnts / 2,pnts); Py_END_ALLOW_THREADS sipFree((ANY *)pnts); } %End // bool putPoints(int,int,int,int,...); %If (Qt_3_0_0 -) bool putPoints(int,int,const QPointArray &,int = 0); %End %If (- Qt_2_00) QPoint at(uint) const; %End void makeArc(int,int,int,int,int,int); void makeEllipse(int,int,int,int); %If (Qt_TRANSFORMATIONS) %If (Qt_2_00 -) void makeArc(int,int,int,int,int,int,const QWMatrix &); %End %End %If (- Qt_3_0_0) QPointArray quadBezier() const; %End %If (Qt_3_0_0 -) QPointArray cubicBezier() const; %End // These are actually in QArray, which isn't implemented so pretend // they are here. uint nrefs() const; bool isEmpty() const; bool isNull() const; bool resize(uint); uint size() const; bool truncate(uint); bool fill(const QPoint &,int = -1); %If (Qt_2_00 -) QPoint &at(uint) const; %End %If (Qt_2_1_0 -) void sort(); int bsearch(const QPoint &) const; %End int find(const QPoint &,uint = 0) const; int contains(const QPoint &) const; };