diff options
Diffstat (limited to 'sip/kdecore/kmacroexpander.sip')
-rw-r--r-- | sip/kdecore/kmacroexpander.sip | 384 |
1 files changed, 384 insertions, 0 deletions
diff --git a/sip/kdecore/kmacroexpander.sip b/sip/kdecore/kmacroexpander.sip new file mode 100644 index 0000000..015cac8 --- /dev/null +++ b/sip/kdecore/kmacroexpander.sip @@ -0,0 +1,384 @@ +// +// Copyright 2006 Jim Bublitz <jbublitz@nwinternet.com> +// Earlier copyrights 1998 - 2005 Jim Bublitz and/or Phil Thompson +// may also apply + + +// Generated by preSip +// module kdecore version KDE 3.5.3 + + +// This software 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 of +// the License, or (at your option) any later version. +// +// This software is distributed 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 this library; see the file COPYING. +// If not, write to the Free Software Foundation, Inc., +// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + +%ModuleHeaderCode +#include <kmacroexpander.h> +%End + + +%If ( KDE_3_2_0 - ) + +class KMacroExpanderBase +{ +%TypeHeaderCode +#include <kmacroexpander.h> +%End + + +public: + KMacroExpanderBase (QChar = '%'); + void expandMacros (QString&); + bool expandMacrosShellQuote (QString&, uint& /In, Out/); + bool expandMacrosShellQuote (QString&); + void setEscapeChar (QChar); + QChar escapeChar () const; + +protected: + virtual int expandPlainMacro (const QString&, uint, QStringList&); + virtual int expandEscapedMacro (const QString&, uint, QStringList&); + +}; // class KMacroExpanderBase + +%End + + +%If ( KDE_3_3_0 - ) + +class KWordMacroExpander : KMacroExpanderBase +{ +%TypeHeaderCode +#include <kmacroexpander.h> +%End + + +public: + KWordMacroExpander (QChar = '%'); + +protected: + virtual int expandPlainMacro (const QString&, uint, QStringList&); + virtual int expandEscapedMacro (const QString&, uint, QStringList&); + virtual bool expandMacro (const QString&, QStringList&) = 0; + +}; // class KWordMacroExpander + +%End + + +%If ( KDE_3_3_0 - ) + +class KCharMacroExpander : KMacroExpanderBase +{ +%TypeHeaderCode +#include <kmacroexpander.h> +%End + + +public: + KCharMacroExpander (QChar = '%'); + +protected: + virtual int expandPlainMacro (const QString&, uint, QStringList&); + virtual int expandEscapedMacro (const QString&, uint, QStringList&); + virtual bool expandMacro (QChar, QStringList&) = 0; + +}; // class KCharMacroExpander + +%End + + +%If ( KDE_3_2_0 - ) +namespace KMacroExpander +{ +QString expandMacros (const QString&, const QMap<QChar,QString>&, QChar = '%'); +QString expandMacrosShellQuote (const QString&, const QMap<QChar,QString>&, QChar = '%'); +QString expandMacros (const QString&, const QMap<QString,QString>&, QChar = '%'); +QString expandMacrosShellQuote (const QString&, const QMap<QString,QString>&, QChar = '%'); +QString expandMacros (const QString&, const QMap<QChar,QStringList>&, QChar = '%'); +QString expandMacros (const QString&, const QMap<QString,QStringList>&, QChar = '%'); +QString expandMacrosShellQuote (const QString&, const QMap<QChar,QStringList>&, QChar = '%'); +QString expandMacrosShellQuote (const QString&, const QMap<QString,QStringList>&, QChar = '%'); +}; // namespace KMacroExpander + +%End + + + +%MappedType QMap<QChar,QString> +//converts a Python dict of QChar:QString +{ +%TypeHeaderCode +#include <qmap.h> +#include <qstring.h> +%End + +%ConvertFromTypeCode + + if (!sipCpp) + return PyDict_New(); + + PyObject *dict; + + // Create the dictionary. + + if ((dict = PyDict_New()) == NULL) + return NULL; + + // Get it. + + const QMap<QChar,QString> map = *sipCpp; + QMap<QChar,QString>::ConstIterator it; + + for (it = map.begin (); it != map.end (); ++it) + { + QChar acpp = it.key (); + PyObject *binst = PyString_FromString ((char *)((QString *)&it.data ())); + PyObject *ainst; + if (((ainst = sipConvertFromNewType(new QChar(acpp), sipType_QChar, sipTransferObj)) == NULL) + || (binst == NULL) + || (PyDict_SetItem (dict, ainst, binst) < 0)) + { + Py_XDECREF (ainst); + Py_XDECREF (binst); + Py_DECREF (dict); + return NULL; + } + } + + return dict; +%End + + +%ConvertToTypeCode +// Convert a Python dictionary to a QMap<QChar, QString> + + if (sipIsErr == NULL) + return PyDict_Check(sipPy); + + QMap<QChar,QString> *map = new QMap<QChar,QString>; + + PyObject *key, *value; + SIP_SSIZE_T pos = 0; + QChar *cKey; + QString *sData; + + while (PyDict_Next(sipPy, &pos, &key, &value)) + { + int iserr = 0, cKey_state, sData_state; + + cKey = (QChar *)sipForceConvertToType(key, sipType_QChar, sipTransferObj, SIP_NOT_NONE, &cKey_state, &iserr); + sData = (QString *)sipForceConvertToType(value, sipType_QString, sipTransferObj, SIP_NOT_NONE, &sData_state, &iserr); + + if (iserr) + { + if (cKey) + sipReleaseType(cKey, sipType_QChar, cKey_state); + + *sipIsErr = 1; + delete map; + return 0; + } + + map->insert (*cKey, *sData); + + sipReleaseType(cKey, sipType_QChar, cKey_state); + sipReleaseType(sData, sipType_QString, sData_state); + } + + *sipCppPtr = map; + + return 1; +%End +}; + + +%MappedType QMap<QString,QStringList> +//converts a Python dict of QString:QStringList +{ +%TypeHeaderCode +#include <qmap.h> +#include <qstring.h> +#include <qstringlist.h> +%End + +%ConvertFromTypeCode + + if (!sipCpp) + return PyDict_New(); + + PyObject *dict; + + // Create the dictionary. + + if ((dict = PyDict_New()) == NULL) + return NULL; + + // Get it. + + const QMap<QString, QStringList> map = *sipCpp; + QMap<QString, QStringList>::ConstIterator it; + + for (it = map.begin (); it != map.end (); ++it) + { + QStringList bcpp = it.data (); + PyObject *ainst = PyString_FromString ((char *)((QString *)&it.key ())); + PyObject *binst; + if (((binst = sipConvertFromNewType(new QStringList(bcpp), sipType_QStringList, sipTransferObj)) == NULL) + || (ainst == NULL) + || (PyDict_SetItem (dict, ainst, binst) < 0)) + { + Py_XDECREF (ainst); + Py_XDECREF (binst); + Py_DECREF (dict); + return NULL; + } + } + + return dict; +%End + + +%ConvertToTypeCode +// Convert a Python dictionary to a QMap<QString, QStringList> on the heap. + + if (sipIsErr == NULL) + return PyDict_Check(sipPy); + + QMap<QString, QStringList> *map = new QMap<QString, QStringList>; + + PyObject *key, *value; + SIP_SSIZE_T pos = 0; + QString *sKey; + QStringList *slData; + + while (PyDict_Next(sipPy, &pos, &key, &value)) + { + int iserr = 0, sKey_state, slData_state; + + sKey = (QString *)sipForceConvertToType(key, sipType_QString, sipTransferObj, SIP_NOT_NONE, &sKey_state, &iserr); + slData = (QStringList *)sipForceConvertToType(value, sipType_QStringList, sipTransferObj, SIP_NOT_NONE, &slData_state, &iserr); + + if (iserr) + { + if (sKey) + sipReleaseType(sKey, sipType_QString, sKey_state); + + *sipIsErr = 1; + delete map; + return 0; + } + + map->insert (*sKey, *slData); + + sipReleaseType(sKey, sipType_QString, sKey_state); + sipReleaseType(slData, sipType_QStringList, slData_state); + } + + *sipCppPtr = map; + + return 1; +%End +}; + + +%MappedType QMap<QChar,QStringList> +//converts a Python dict of QChar:QStringList +{ +%TypeHeaderCode +#include <qmap.h> +#include <qstringlist.h> +#include <qstring.h> +%End + +%ConvertFromTypeCode + + if (!sipCpp) + return PyDict_New(); + + PyObject *dict; + + // Create the dictionary. + + if ((dict = PyDict_New()) == NULL) + return NULL; + + // Get it. + + const QMap<QChar,QStringList> map = *sipCpp; + QMap<QChar,QStringList>::ConstIterator it; + + for (it = map.begin (); it != map.end (); ++it) + { + QChar acpp = it.key (); + QStringList bcpp = it.data (); + PyObject *binst; + PyObject *ainst; + if (((ainst = sipConvertFromNewType(new QChar(acpp), sipType_QChar, sipTransferObj)) == NULL) + || (binst = sipConvertFromNewType(new QStringList(bcpp), sipType_QStringList, sipTransferObj)) + || (PyDict_SetItem (dict, ainst, binst) < 0)) + { + Py_XDECREF (ainst); + Py_XDECREF (binst); + Py_DECREF (dict); + return NULL; + } + } + + return dict; +%End + + +%ConvertToTypeCode +// Convert a Python dictionary to a QMap<QChar, QStringList> on the heap. + + if (sipIsErr == NULL) + return PyDict_Check(sipPy); + + QMap<QChar,QStringList> *map = new QMap<QChar,QStringList>; + + PyObject *key, *value; + SIP_SSIZE_T pos = 0; + QChar *cKey; + QStringList *slData; + + while (PyDict_Next(sipPy, &pos, &key, &value)) + { + int iserr = 0, cKey_state, slData_state; + + cKey = (QChar *)sipForceConvertToType(key, sipType_QChar, sipTransferObj, SIP_NOT_NONE, &cKey_state, &iserr); + slData = (QStringList *)sipForceConvertToType(value, sipType_QStringList, sipTransferObj, SIP_NOT_NONE, &slData_state, &iserr); + + if (iserr) + { + if (cKey) + sipReleaseType(cKey, sipType_QChar, cKey_state); + + *sipIsErr = 1; + delete map; + return 0; + } + + map->insert (*cKey, *slData); + + sipReleaseType(cKey, sipType_QChar, cKey_state); + sipReleaseType(slData, sipType_QStringList, slData_state); + } + + *sipCppPtr = map; + + return 1; +%End +}; + + |