diff options
Diffstat (limited to 'sip/qt/qmemarray.sip')
-rw-r--r-- | sip/qt/qmemarray.sip | 164 |
1 files changed, 0 insertions, 164 deletions
diff --git a/sip/qt/qmemarray.sip b/sip/qt/qmemarray.sip deleted file mode 100644 index aebbcb4..0000000 --- a/sip/qt/qmemarray.sip +++ /dev/null @@ -1,164 +0,0 @@ -// This is the SIP interface definition for all types based on the TQMemArray -// template. -// -// Copyright (c) 2007 -// Riverbank Computing Limited <[email protected]> -// -// 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>TQMemArray<type> (TQt v3+)</Title> -<Para> -Types based on the <Literal>TQMemArray</Literal> template are automatically -converted to and from Python lists of the type. -</Para> -</Sect2> -%End - - -%MappedType TQMemArray<int> -{ -%TypeHeaderCode -#include <tqmemarray.h> -%End - -%ConvertFromTypeCode - // Convert to a Python list of integers. - - PyObject *l; - - // Create the list. - if ((l = PyList_New(sipCpp -> size())) == NULL) - return NULL; - - // Get it. - for (uint i = 0; i < sipCpp -> size(); ++i) - if (PyList_SetItem(l,i,PyLong_FromLong((long)sipCpp -> at(i))) < 0) - { - Py_DECREF(l); - - return NULL; - } - - return l; -%End - -%ConvertToTypeCode - // Convert a Python list of integers to a TQMemArray<int> on the heap. - - if (sipIsErr == NULL) - return PyList_Check(sipPy); - - TQMemArray<int> *qma = new TQMemArray<int>(PyList_GET_SIZE(sipPy)); - - PyErr_Clear(); - - for (int i = 0; i < PyList_GET_SIZE(sipPy); ++i) - { - (*qma)[i] = (int)PyLong_AsLong(PyList_GET_ITEM(sipPy,i)); - - if (PyErr_Occurred() != NULL) - { - delete qma; - *sipIsErr = 1; - - return 0; - } - } - - *sipCppPtr = qma; - - return sipGetState(sipTransferObj); -%End -}; - -template<TYPE> -%MappedType TQMemArray<TYPE> -{ -%TypeHeaderCode -#include <tqmemarray.h> -%End - -%ConvertFromTypeCode - // Create the list. - PyObject *l; - - if ((l = PyList_New(sipCpp->size())) == NULL) - return NULL; - - // Set the list elements. - for (uint i = 0; i < sipCpp->size(); ++i) - { - TYPE *t = new TYPE(sipCpp->at(i)); - PyObject *tobj; - - if ((tobj = sipConvertFromNewInstance(t, sipClass_TYPE, sipTransferObj)) == NULL) - { - Py_DECREF(l); - delete t; - - return NULL; - } - - PyList_SetItem(l, i, tobj); - } - - return l; -%End - -%ConvertToTypeCode - // Check the type if that is all that is required. - if (sipIsErr == NULL) - { - if (!PyList_Check(sipPy)) - return 0; - - for (int i = 0; i < PyList_GET_SIZE(sipPy); ++i) - if (!sipCanConvertToInstance(PyList_GET_ITEM(sipPy, i), sipClass_TYPE, SIP_NOT_NONE)) - return 0; - - return 1; - } - - TQMemArray<TYPE> *ql = new TQMemArray<TYPE>; - - for (int i = 0; i < PyList_GET_SIZE(sipPy); ++i) - { - int state; - TYPE *t = reinterpret_cast<TYPE *>(sipConvertToInstance(PyList_GET_ITEM(sipPy, i), sipClass_TYPE, sipTransferObj, SIP_NOT_NONE, &state, sipIsErr)); - - if (*sipIsErr) - { - sipReleaseInstance(t, sipClass_TYPE, state); - - delete ql; - return 0; - } - - uint idx = ql->size(); - ql->resize(idx + 1); - ql->at(idx) = *t; - - sipReleaseInstance(t, sipClass_TYPE, state); - } - - *sipCppPtr = ql; - - return sipGetState(sipTransferObj); -%End -}; |