diff options
Diffstat (limited to 'sip/tqt/tqpointarray.sip')
-rw-r--r-- | sip/tqt/tqpointarray.sip | 230 |
1 files changed, 230 insertions, 0 deletions
diff --git a/sip/tqt/tqpointarray.sip b/sip/tqt/tqpointarray.sip new file mode 100644 index 0000000..e0c83b8 --- /dev/null +++ b/sip/tqt/tqpointarray.sip @@ -0,0 +1,230 @@ +// This is the SIP interface definition for TQPointArray. +// +// Copyright (c) 2007 +// Riverbank Computing Limited <info@riverbankcomputing.co.uk> +// +// This file is part of PyTQt. +// +// This copy of PyTQt 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. +// +// PyTQt 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 +// PyTQt; see the file LICENSE. If not, write to the Free Software Foundation, +// Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + + +%ExportedDoc +<Sect2><Title>TQPointArray</Title> +<FuncSynopsis> + <FuncDef><Function>TQPointArray</Function></FuncDef> + <ParamDef>int <Parameter>nPoints</Parameter></ParamDef> + <ParamDef>const TQCOORD *<Parameter>points</Parameter></ParamDef> +</FuncSynopsis> +<Para> +This takes a single parameter which is a list of points. +</Para> + +<FuncSynopsis> + <FuncDef>void <Function>point</Function></FuncDef> + <ParamDef>uint <Parameter>i</Parameter></ParamDef> + <ParamDef>int *<Parameter>x</Parameter></ParamDef> + <ParamDef>int *<Parameter>y</Parameter></ParamDef> +</FuncSynopsis> +<Para> +This takes the single parameter <Literal>i</Literal> and returns the +<Literal>x</Literal> and <Literal>y</Literal> values as a tuple. +</Para> + +<FuncSynopsis> + <FuncDef>bool <Function>putPoints</Function></FuncDef> + <ParamDef>int <Parameter>index</Parameter></ParamDef> + <ParamDef>int <Parameter>nPoints</Parameter></ParamDef> + <ParamDef>const TQCOORD *<Parameter>points</Parameter></ParamDef> +</FuncSynopsis> +<Para> +This takes two parameters, <Literal>index</Literal> and a list of points. +</Para> + +<FuncSynopsis> + <FuncDef>bool <Function>putPoints</Function></FuncDef> + <ParamDef>int <Parameter>index</Parameter></ParamDef> + <ParamDef>int <Parameter>nPoints</Parameter></ParamDef> + <ParamDef>int <Parameter>firstx</Parameter></ParamDef> + <ParamDef>int <Parameter>firsty</Parameter></ParamDef> + <ParamDef>...</ParamDef> +</FuncSynopsis> +<Para> +Not implemented. +</Para> + +<FuncSynopsis> + <FuncDef>bool <Function>setPoints</Function></FuncDef> + <ParamDef>int <Parameter>nPoints</Parameter></ParamDef> + <ParamDef>const TQCOORD *<Parameter>points</Parameter></ParamDef> +</FuncSynopsis> +<Para> +This takes a single parameter which is a list of points. +</Para> + +<FuncSynopsis> + <FuncDef>bool <Function>setPoints</Function></FuncDef> + <ParamDef>int <Parameter>nPoints</Parameter></ParamDef> + <ParamDef>int <Parameter>firstx</Parameter></ParamDef> + <ParamDef>int <Parameter>firsty</Parameter></ParamDef> + <ParamDef>...</ParamDef> +</FuncSynopsis> +<Para> +Not implemented. +</Para> +</Sect2> +%End + + +class TQPointArray +{ +%TypeHeaderCode +#include <tqpointarray.h> +%End + +%TypeCode +// Convert a list of numbers to an array on TQCOORDs on the heap. + +static TQCOORD *getPoints(int nrpnts,PyObject *pntlist) +{ + TQCOORD *pnts, *pp; + + if ((pnts = (TQCOORD *)sipMalloc(nrpnts * sizeof (TQCOORD))) == NULL) + return NULL; + + // Convert the list. + + pp = pnts; + + for (int i = 0; i < nrpnts; ++i) + { + *pp++ = (TQCOORD)PyLong_AsLong(PyList_GetItem(pntlist,i)); + + if (PyErr_Occurred() != NULL) + { + sipFree((void *)pnts); + return NULL; + } + } + + return pnts; +} +%End + +public: + TQPointArray(); + TQPointArray(int); + TQPointArray(const TQPointArray &); + TQPointArray(const TQRect &,bool = 0); + + TQPointArray(SIP_PYLIST) [(int,const TQCOORD *)]; +%MethodCode + // The Python interface is a list of TQCOORDs. + + int nrpnts; + TQCOORD *pnts; + + nrpnts = PyList_GET_SIZE(a0); + + if ((pnts = getPoints(nrpnts,a0)) == NULL) + sipIsErr = 1; + else + { + // No wrapper class for TQPointArray. + + Py_BEGIN_ALLOW_THREADS + sipCpp = new TQPointArray(nrpnts / 2,pnts); + Py_END_ALLOW_THREADS + + sipFree((void *)pnts); + } +%End + + TQPointArray copy() const; + void translate(int,int); + TQRect 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. + //TQPoint point(uint) const; + void setPoint(uint,int,int); + void setPoint(uint,const TQPoint &); + + bool setPoints(SIP_PYLIST); +%MethodCode + int nrpnts; + TQCOORD *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((void *)pnts); + } +%End + +// bool setPoints(int,int,int,...); + + bool putPoints(int,SIP_PYLIST); +%MethodCode + int nrpnts; + TQCOORD *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((void *)pnts); + } +%End + +// bool putPoints(int,int,int,int,...); + bool putPoints(int,int,const TQPointArray &,int = 0); + + void makeArc(int,int,int,int,int,int); + void makeEllipse(int,int,int,int); +%If (TQt_TRANSFORMATIONS) + void makeArc(int,int,int,int,int,int,const TQWMatrix &); +%End + TQPointArray cubicBezier() const; + + // These are actually in TQArray, 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 TQPoint &,int = -1); + TQPoint &at(uint) const; + void sort(); + int bsearch(const TQPoint &) const; + int find(const TQPoint &,uint = 0) const; + int contains(const TQPoint &) const; +}; |