// qobjectdefs.sip generated by MetaSIP on Sun Nov  9 16:48:00 2014
//
// This file is part of the QtCore Python extension module.
//
// Copyright (c) 2014 Riverbank Computing Limited <info@riverbankcomputing.com>
// 
// This file is part of PyQt.
// 
// This file may be used under the terms of the GNU General Public
// License versions 2.0 or 3.0 as published by the Free Software
// Foundation and appearing in the files LICENSE.GPL2 and LICENSE.GPL3
// included in the packaging of this file.  Alternatively you may (at
// your option) use any later version of the GNU General Public
// License if such license has been publicly approved by Riverbank
// Computing Limited (or its successors, if any) and the KDE Free Qt
// Foundation. In addition, as a special exception, Riverbank gives you
// certain additional rights. These rights are described in the Riverbank
// GPL Exception version 1.1, which can be found in the file
// GPL_EXCEPTION.txt in this package.
// 
// If you are unsure which license is appropriate for your use, please
// contact the sales department at sales@riverbankcomputing.com.
// 
// This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE
// WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.


struct QMetaObject
{
%TypeHeaderCode
#include <qobjectdefs.h>
%End

%TypeCode
// Raise an exception when QMetaObject::invokeMethod() returns false.
static void qtcore_invokeMethod_exception()
{
    PyErr_SetString(PyExc_RuntimeError, "QMetaObject.invokeMethod() call failed");
}
%End

    const char *className() const;
    const QMetaObject *superClass() const;
%If (Qt_4_2_0 -)
    QMetaProperty userProperty() const;
%End
    int methodOffset() const;
    int enumeratorOffset() const;
    int propertyOffset() const;
    int classInfoOffset() const;
    int methodCount() const;
    int enumeratorCount() const;
    int propertyCount() const;
    int classInfoCount() const;
    int indexOfMethod(const char *method) const;
    int indexOfSignal(const char *signal) const;
    int indexOfSlot(const char *slot) const;
    int indexOfEnumerator(const char *name) const;
    int indexOfProperty(const char *name) const;
    int indexOfClassInfo(const char *name) const;
    QMetaMethod method(int index) const;
    QMetaEnum enumerator(int index) const;
    QMetaProperty property(int index) const;
    QMetaClassInfo classInfo(int index) const;
    static bool checkConnectArgs(const char *signal, const char *method);
    static void connectSlotsByName(QObject *o /GetWrapper/);
%MethodCode
        qpycore_qmetaobject_connectslotsbyname(a0, a0Wrapper);
%End

    static QByteArray normalizedSignature(const char *method);
%If (Qt_4_2_0 -)
    static QByteArray normalizedType(const char *type);
%End
    static SIP_PYOBJECT invokeMethod(QObject *obj, const char *member, Qt::ConnectionType type, QGenericReturnArgument ret /GetWrapper/, QGenericArgument value0 = QGenericArgument(0, 0), QGenericArgument value1 = QGenericArgument(0, 0), QGenericArgument value2 = QGenericArgument(0, 0), QGenericArgument value3 = QGenericArgument(0, 0), QGenericArgument value4 = QGenericArgument(0, 0), QGenericArgument value5 = QGenericArgument(0, 0), QGenericArgument value6 = QGenericArgument(0, 0), QGenericArgument value7 = QGenericArgument(0, 0), QGenericArgument value8 = QGenericArgument(0, 0), QGenericArgument value9 = QGenericArgument(0, 0));
%MethodCode
        // Raise an exception if the call failed.
        bool ok;
        
        Py_BEGIN_ALLOW_THREADS
        ok = QMetaObject::invokeMethod(a0,a1,a2,*a3,*a4,*a5,*a6,*a7,*a8,*a9,*a10,*a11,*a12,*a13);
        Py_END_ALLOW_THREADS
        
        if (ok)
            sipRes = qpycore_ReturnValue(a3Wrapper);
        else
            qtcore_invokeMethod_exception();
%End

    static SIP_PYOBJECT invokeMethod(QObject *obj, const char *member, QGenericReturnArgument ret /GetWrapper/, QGenericArgument value0 = QGenericArgument(0, 0), QGenericArgument value1 = QGenericArgument(0, 0), QGenericArgument value2 = QGenericArgument(0, 0), QGenericArgument value3 = QGenericArgument(0, 0), QGenericArgument value4 = QGenericArgument(0, 0), QGenericArgument value5 = QGenericArgument(0, 0), QGenericArgument value6 = QGenericArgument(0, 0), QGenericArgument value7 = QGenericArgument(0, 0), QGenericArgument value8 = QGenericArgument(0, 0), QGenericArgument value9 = QGenericArgument(0, 0));
%MethodCode
        // Raise an exception if the call failed.
        bool ok;
        
        Py_BEGIN_ALLOW_THREADS
        ok = QMetaObject::invokeMethod(a0,a1,*a2,*a3,*a4,*a5,*a6,*a7,*a8,*a9,*a10,*a11,*a12);
        Py_END_ALLOW_THREADS
        
        if (ok)
            sipRes = qpycore_ReturnValue(a2Wrapper);
        else
            qtcore_invokeMethod_exception();
%End

    static SIP_PYOBJECT invokeMethod(QObject *obj, const char *member, Qt::ConnectionType type, QGenericArgument value0 = QGenericArgument(0, 0), QGenericArgument value1 = QGenericArgument(0, 0), QGenericArgument value2 = QGenericArgument(0, 0), QGenericArgument value3 = QGenericArgument(0, 0), QGenericArgument value4 = QGenericArgument(0, 0), QGenericArgument value5 = QGenericArgument(0, 0), QGenericArgument value6 = QGenericArgument(0, 0), QGenericArgument value7 = QGenericArgument(0, 0), QGenericArgument value8 = QGenericArgument(0, 0), QGenericArgument value9 = QGenericArgument(0, 0));
%MethodCode
        // Raise an exception if the call failed.
        bool ok;
        
        Py_BEGIN_ALLOW_THREADS
        ok = QMetaObject::invokeMethod(a0,a1,a2,*a3,*a4,*a5,*a6,*a7,*a8,*a9,*a10,*a11,*a12);
        Py_END_ALLOW_THREADS
        
        if (ok)
        {
            Py_INCREF(Py_None);
            sipRes = Py_None;
        }
        else
            qtcore_invokeMethod_exception();
%End

    static SIP_PYOBJECT invokeMethod(QObject *obj, const char *member, QGenericArgument value0 = QGenericArgument(0, 0), QGenericArgument value1 = QGenericArgument(0, 0), QGenericArgument value2 = QGenericArgument(0, 0), QGenericArgument value3 = QGenericArgument(0, 0), QGenericArgument value4 = QGenericArgument(0, 0), QGenericArgument value5 = QGenericArgument(0, 0), QGenericArgument value6 = QGenericArgument(0, 0), QGenericArgument value7 = QGenericArgument(0, 0), QGenericArgument value8 = QGenericArgument(0, 0), QGenericArgument value9 = QGenericArgument(0, 0));
%MethodCode
        // Raise an exception if the call failed.
        bool ok;
        
        Py_BEGIN_ALLOW_THREADS
        ok = QMetaObject::invokeMethod(a0,a1,*a2,*a3,*a4,*a5,*a6,*a7,*a8,*a9,*a10,*a11);
        Py_END_ALLOW_THREADS
        
        if (ok)
        {
            Py_INCREF(Py_None);
            sipRes = Py_None;
        }
        else
            qtcore_invokeMethod_exception();
%End

%If (Qt_4_5_0 -)
    int constructorCount() const;
%End
%If (Qt_4_5_0 -)
    int indexOfConstructor(const char *constructor) const;
%End
%If (Qt_4_5_0 -)
    QMetaMethod constructor(int index) const;
%End
%If (Qt_4_5_0 - Qt_5_0_0)
    QObject *newInstance(QGenericArgument value0 = QGenericArgument(0, 0), QGenericArgument value1 = QGenericArgument(0, 0), QGenericArgument value2 = QGenericArgument(0, 0), QGenericArgument value3 = QGenericArgument(0, 0), QGenericArgument value4 = QGenericArgument(0, 0), QGenericArgument value5 = QGenericArgument(0, 0), QGenericArgument value6 = QGenericArgument(0, 0), QGenericArgument value7 = QGenericArgument(0, 0), QGenericArgument value8 = QGenericArgument(0, 0), QGenericArgument value9 = QGenericArgument(0, 0)) const /Factory/;
%End
};

// The support for Q_ARG(), Q_RETURN_ARG() and supporting classes.
class QGenericArgument /NoDefaultCtors/
{
%TypeHeaderCode
#include <qobjectdefs.h>
%End

public:
    ~QGenericArgument();
};


SIP_PYOBJECT Q_ARG(SIP_PYOBJECT type, SIP_PYOBJECT data) /DocType="QGenericArgument"/;
%MethodCode
    sipRes = qpycore_ArgumentFactory(a0, a1);
%End


class QGenericReturnArgument /NoDefaultCtors/
{
%TypeHeaderCode
#include <qobjectdefs.h>
%End

public:
    ~QGenericReturnArgument();
};


SIP_PYOBJECT Q_RETURN_ARG(SIP_PYOBJECT type) /DocType="QGenericReturnArgument"/;
%MethodCode
    sipRes = qpycore_ReturnFactory(a0);
%End
