From b388516ca2691303a076a0764fd40bf7116fe43d Mon Sep 17 00:00:00 2001 From: Timothy Pearson Date: Tue, 29 Nov 2011 00:31:00 -0600 Subject: Initial import of python-qt3 --- sip/qt/qpointarray.sip | 247 +++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 247 insertions(+) create mode 100644 sip/qt/qpointarray.sip (limited to 'sip/qt/qpointarray.sip') diff --git a/sip/qt/qpointarray.sip b/sip/qt/qpointarray.sip new file mode 100644 index 0000000..c88b56b --- /dev/null +++ b/sip/qt/qpointarray.sip @@ -0,0 +1,247 @@ +// 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., 59 Temple Place - Suite 330, Boston, MA 02111-1307, 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; +}; -- cgit v1.2.1