/*
 * Interface wrapper code.
 *
 * Generated by SIP 6.6.2
 *
 * Copyright (c) 2022 Riverbank Computing Limited <info@riverbankcomputing.com>
 * 
 * This file is part of PyQt5.
 * 
 * This file may be used under the terms of the GNU General Public License
 * version 3.0 as published by the Free Software Foundation and appearing in
 * the file LICENSE included in the packaging of this file.  Please review the
 * following information to ensure the GNU General Public License version 3.0
 * requirements will be met: http://www.gnu.org/copyleft/gpl.html.
 * 
 * If you do not wish to use this file under the terms of the GPL version 3.0
 * then you may purchase a commercial license.  For more information contact
 * info@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.
 */

#include "sipAPIQtGui.h"

#line 363 "/build/pyqt5/src/PyQt5-5.15.7/sip/QtGui/qevent.sip"
#include <qevent.h>
#line 29 "/build/pyqt5/src/PyQt5-5.15.7/build/QtGui/sipQtGuiQKeyEvent.cpp"

#line 26 "/build/pyqt5/src/PyQt5-5.15.7/sip/QtCore/qcoreevent.sip"
#include <qcoreevent.h>
#line 33 "/build/pyqt5/src/PyQt5-5.15.7/build/QtGui/sipQtGuiQKeyEvent.cpp"
#line 26 "/build/pyqt5/src/PyQt5-5.15.7/sip/QtCore/qnamespace.sip"
#include <qnamespace.h>
#line 36 "/build/pyqt5/src/PyQt5-5.15.7/build/QtGui/sipQtGuiQKeyEvent.cpp"
#line 27 "/build/pyqt5/src/PyQt5-5.15.7/sip/QtCore/qstring.sip"
#include <qstring.h>
#line 39 "/build/pyqt5/src/PyQt5-5.15.7/build/QtGui/sipQtGuiQKeyEvent.cpp"
#line 26 "/build/pyqt5/src/PyQt5-5.15.7/sip/QtGui/qkeysequence.sip"
#include <qkeysequence.h>
#line 42 "/build/pyqt5/src/PyQt5-5.15.7/build/QtGui/sipQtGuiQKeyEvent.cpp"


class sipQKeyEvent : public  ::QKeyEvent
{
public:
    sipQKeyEvent( ::QEvent::Type,int, ::Qt::KeyboardModifiers, ::quint32, ::quint32, ::quint32,const  ::QString&,bool, ::ushort);
    sipQKeyEvent( ::QEvent::Type,int, ::Qt::KeyboardModifiers,const  ::QString&,bool, ::ushort);
    sipQKeyEvent(const  ::QKeyEvent&);
    ~sipQKeyEvent();

public:
    sipSimpleWrapper *sipPySelf;

private:
    sipQKeyEvent(const sipQKeyEvent &);
    sipQKeyEvent &operator = (const sipQKeyEvent &);
};

sipQKeyEvent::sipQKeyEvent( ::QEvent::Type a0,int a1, ::Qt::KeyboardModifiers a2, ::quint32 a3, ::quint32 a4, ::quint32 a5,const  ::QString& a6,bool a7, ::ushort a8):  ::QKeyEvent(a0,a1,a2,a3,a4,a5,a6,a7,a8), sipPySelf(SIP_NULLPTR)
{
}

sipQKeyEvent::sipQKeyEvent( ::QEvent::Type a0,int a1, ::Qt::KeyboardModifiers a2,const  ::QString& a3,bool a4, ::ushort a5):  ::QKeyEvent(a0,a1,a2,a3,a4,a5), sipPySelf(SIP_NULLPTR)
{
}

sipQKeyEvent::sipQKeyEvent(const  ::QKeyEvent& a0):  ::QKeyEvent(a0), sipPySelf(SIP_NULLPTR)
{
}

sipQKeyEvent::~sipQKeyEvent()
{
    sipInstanceDestroyedEx(&sipPySelf);
}


PyDoc_STRVAR(doc_QKeyEvent_key, "key(self) -> int");

extern "C" {static PyObject *meth_QKeyEvent_key(PyObject *, PyObject *);}
static PyObject *meth_QKeyEvent_key(PyObject *sipSelf, PyObject *sipArgs)
{
    PyObject *sipParseErr = SIP_NULLPTR;

    {
        const  ::QKeyEvent *sipCpp;

        if (sipParseArgs(&sipParseErr, sipArgs, "B", &sipSelf, sipType_QKeyEvent, &sipCpp))
        {
            int sipRes;

            sipRes = sipCpp->key();

            return PyLong_FromLong(sipRes);
        }
    }

    sipNoMethod(sipParseErr, sipName_QKeyEvent, sipName_key, doc_QKeyEvent_key);

    return SIP_NULLPTR;
}


PyDoc_STRVAR(doc_QKeyEvent_modifiers, "modifiers(self) -> Qt.KeyboardModifiers");

extern "C" {static PyObject *meth_QKeyEvent_modifiers(PyObject *, PyObject *);}
static PyObject *meth_QKeyEvent_modifiers(PyObject *sipSelf, PyObject *sipArgs)
{
    PyObject *sipParseErr = SIP_NULLPTR;

    {
        const  ::QKeyEvent *sipCpp;

        if (sipParseArgs(&sipParseErr, sipArgs, "B", &sipSelf, sipType_QKeyEvent, &sipCpp))
        {
             ::Qt::KeyboardModifiers*sipRes;

            sipRes = new  ::Qt::KeyboardModifiers(sipCpp->modifiers());

            return sipConvertFromNewType(sipRes,sipType_Qt_KeyboardModifiers,SIP_NULLPTR);
        }
    }

    sipNoMethod(sipParseErr, sipName_QKeyEvent, sipName_modifiers, doc_QKeyEvent_modifiers);

    return SIP_NULLPTR;
}


PyDoc_STRVAR(doc_QKeyEvent_text, "text(self) -> str");

extern "C" {static PyObject *meth_QKeyEvent_text(PyObject *, PyObject *);}
static PyObject *meth_QKeyEvent_text(PyObject *sipSelf, PyObject *sipArgs)
{
    PyObject *sipParseErr = SIP_NULLPTR;

    {
        const  ::QKeyEvent *sipCpp;

        if (sipParseArgs(&sipParseErr, sipArgs, "B", &sipSelf, sipType_QKeyEvent, &sipCpp))
        {
             ::QString*sipRes;

            sipRes = new  ::QString(sipCpp->text());

            return sipConvertFromNewType(sipRes,sipType_QString,SIP_NULLPTR);
        }
    }

    sipNoMethod(sipParseErr, sipName_QKeyEvent, sipName_text, doc_QKeyEvent_text);

    return SIP_NULLPTR;
}


PyDoc_STRVAR(doc_QKeyEvent_isAutoRepeat, "isAutoRepeat(self) -> bool");

extern "C" {static PyObject *meth_QKeyEvent_isAutoRepeat(PyObject *, PyObject *);}
static PyObject *meth_QKeyEvent_isAutoRepeat(PyObject *sipSelf, PyObject *sipArgs)
{
    PyObject *sipParseErr = SIP_NULLPTR;

    {
        const  ::QKeyEvent *sipCpp;

        if (sipParseArgs(&sipParseErr, sipArgs, "B", &sipSelf, sipType_QKeyEvent, &sipCpp))
        {
            bool sipRes;

            sipRes = sipCpp->isAutoRepeat();

            return PyBool_FromLong(sipRes);
        }
    }

    sipNoMethod(sipParseErr, sipName_QKeyEvent, sipName_isAutoRepeat, doc_QKeyEvent_isAutoRepeat);

    return SIP_NULLPTR;
}


PyDoc_STRVAR(doc_QKeyEvent_count, "count(self) -> int");

extern "C" {static PyObject *meth_QKeyEvent_count(PyObject *, PyObject *);}
static PyObject *meth_QKeyEvent_count(PyObject *sipSelf, PyObject *sipArgs)
{
    PyObject *sipParseErr = SIP_NULLPTR;

    {
        const  ::QKeyEvent *sipCpp;

        if (sipParseArgs(&sipParseErr, sipArgs, "B", &sipSelf, sipType_QKeyEvent, &sipCpp))
        {
            int sipRes;

            sipRes = sipCpp->count();

            return PyLong_FromLong(sipRes);
        }
    }

    sipNoMethod(sipParseErr, sipName_QKeyEvent, sipName_count, doc_QKeyEvent_count);

    return SIP_NULLPTR;
}


PyDoc_STRVAR(doc_QKeyEvent_matches, "matches(self, QKeySequence.StandardKey) -> bool");

extern "C" {static PyObject *meth_QKeyEvent_matches(PyObject *, PyObject *);}
static PyObject *meth_QKeyEvent_matches(PyObject *sipSelf, PyObject *sipArgs)
{
    PyObject *sipParseErr = SIP_NULLPTR;

    {
         ::QKeySequence::StandardKey a0;
        const  ::QKeyEvent *sipCpp;

        if (sipParseArgs(&sipParseErr, sipArgs, "BE", &sipSelf, sipType_QKeyEvent, &sipCpp, sipType_QKeySequence_StandardKey, &a0))
        {
            bool sipRes;

            sipRes = sipCpp->matches(a0);

            return PyBool_FromLong(sipRes);
        }
    }

    sipNoMethod(sipParseErr, sipName_QKeyEvent, sipName_matches, doc_QKeyEvent_matches);

    return SIP_NULLPTR;
}


PyDoc_STRVAR(doc_QKeyEvent_nativeModifiers, "nativeModifiers(self) -> int");

extern "C" {static PyObject *meth_QKeyEvent_nativeModifiers(PyObject *, PyObject *);}
static PyObject *meth_QKeyEvent_nativeModifiers(PyObject *sipSelf, PyObject *sipArgs)
{
    PyObject *sipParseErr = SIP_NULLPTR;

    {
        const  ::QKeyEvent *sipCpp;

        if (sipParseArgs(&sipParseErr, sipArgs, "B", &sipSelf, sipType_QKeyEvent, &sipCpp))
        {
             ::quint32 sipRes;

            sipRes = sipCpp->nativeModifiers();

            return PyLong_FromUnsignedLong(sipRes);
        }
    }

    sipNoMethod(sipParseErr, sipName_QKeyEvent, sipName_nativeModifiers, doc_QKeyEvent_nativeModifiers);

    return SIP_NULLPTR;
}


PyDoc_STRVAR(doc_QKeyEvent_nativeScanCode, "nativeScanCode(self) -> int");

extern "C" {static PyObject *meth_QKeyEvent_nativeScanCode(PyObject *, PyObject *);}
static PyObject *meth_QKeyEvent_nativeScanCode(PyObject *sipSelf, PyObject *sipArgs)
{
    PyObject *sipParseErr = SIP_NULLPTR;

    {
        const  ::QKeyEvent *sipCpp;

        if (sipParseArgs(&sipParseErr, sipArgs, "B", &sipSelf, sipType_QKeyEvent, &sipCpp))
        {
             ::quint32 sipRes;

            sipRes = sipCpp->nativeScanCode();

            return PyLong_FromUnsignedLong(sipRes);
        }
    }

    sipNoMethod(sipParseErr, sipName_QKeyEvent, sipName_nativeScanCode, doc_QKeyEvent_nativeScanCode);

    return SIP_NULLPTR;
}


PyDoc_STRVAR(doc_QKeyEvent_nativeVirtualKey, "nativeVirtualKey(self) -> int");

extern "C" {static PyObject *meth_QKeyEvent_nativeVirtualKey(PyObject *, PyObject *);}
static PyObject *meth_QKeyEvent_nativeVirtualKey(PyObject *sipSelf, PyObject *sipArgs)
{
    PyObject *sipParseErr = SIP_NULLPTR;

    {
        const  ::QKeyEvent *sipCpp;

        if (sipParseArgs(&sipParseErr, sipArgs, "B", &sipSelf, sipType_QKeyEvent, &sipCpp))
        {
             ::quint32 sipRes;

            sipRes = sipCpp->nativeVirtualKey();

            return PyLong_FromUnsignedLong(sipRes);
        }
    }

    sipNoMethod(sipParseErr, sipName_QKeyEvent, sipName_nativeVirtualKey, doc_QKeyEvent_nativeVirtualKey);

    return SIP_NULLPTR;
}


extern "C" {static PyObject *slot_QKeyEvent___ne__(PyObject *,PyObject *);}
static PyObject *slot_QKeyEvent___ne__(PyObject *sipSelf,PyObject *sipArg)
{
     ::QKeyEvent *sipCpp = reinterpret_cast< ::QKeyEvent *>(sipGetCppPtr((sipSimpleWrapper *)sipSelf,sipType_QKeyEvent));

    if (!sipCpp)
        return SIP_NULLPTR;

    PyObject *sipParseErr = SIP_NULLPTR;

    {
         ::QKeySequence::StandardKey a0;

        if (sipParseArgs(&sipParseErr, sipArg, "1E", sipType_QKeySequence_StandardKey, &a0))
        {
            bool sipRes;

            sipRes = !operator==(sipCpp, a0);

            return PyBool_FromLong(sipRes);
        }
    }

    Py_XDECREF(sipParseErr);

    if (sipParseErr == Py_None)
        return SIP_NULLPTR;

    return sipPySlotExtend(&sipModuleAPI_QtGui, ne_slot, sipType_QKeyEvent, sipSelf, sipArg);
}


extern "C" {static PyObject *slot_QKeyEvent___eq__(PyObject *,PyObject *);}
static PyObject *slot_QKeyEvent___eq__(PyObject *sipSelf,PyObject *sipArg)
{
     ::QKeyEvent *sipCpp = reinterpret_cast< ::QKeyEvent *>(sipGetCppPtr((sipSimpleWrapper *)sipSelf,sipType_QKeyEvent));

    if (!sipCpp)
        return SIP_NULLPTR;

    PyObject *sipParseErr = SIP_NULLPTR;

    {
         ::QKeySequence::StandardKey a0;

        if (sipParseArgs(&sipParseErr, sipArg, "1E", sipType_QKeySequence_StandardKey, &a0))
        {
            bool sipRes;

            sipRes = operator==(sipCpp, a0);

            return PyBool_FromLong(sipRes);
        }
    }

    Py_XDECREF(sipParseErr);

    if (sipParseErr == Py_None)
        return SIP_NULLPTR;

    return sipPySlotExtend(&sipModuleAPI_QtGui, eq_slot, sipType_QKeyEvent, sipSelf, sipArg);
}


extern "C" {static Py_ssize_t slot_QKeyEvent___len__(PyObject *);}
static Py_ssize_t slot_QKeyEvent___len__(PyObject *sipSelf)
{
     ::QKeyEvent *sipCpp = reinterpret_cast< ::QKeyEvent *>(sipGetCppPtr((sipSimpleWrapper *)sipSelf,sipType_QKeyEvent));

    if (!sipCpp)
        return 0;


    {
        {
            Py_ssize_t sipRes = 0;

#line 1 "Auto-generated"
            sipRes = (Py_ssize_t)sipCpp->count();
#line 402 "/build/pyqt5/src/PyQt5-5.15.7/build/QtGui/sipQtGuiQKeyEvent.cpp"

            return sipRes;
        }
    }

    return 0;
}


/* Cast a pointer to a type somewhere in its inheritance hierarchy. */
extern "C" {static void *cast_QKeyEvent(void *, const sipTypeDef *);}
static void *cast_QKeyEvent(void *sipCppV, const sipTypeDef *targetType)
{
     ::QKeyEvent *sipCpp = reinterpret_cast< ::QKeyEvent *>(sipCppV);

    if (targetType == sipType_QKeyEvent)
        return sipCppV;

    sipCppV = ((const sipClassTypeDef *)sipType_QInputEvent)->ctd_cast(static_cast< ::QInputEvent *>(sipCpp), targetType);
    if (sipCppV)
        return sipCppV;

    return SIP_NULLPTR;
}


/* Call the instance's destructor. */
extern "C" {static void release_QKeyEvent(void *, int);}
static void release_QKeyEvent(void *sipCppV, int sipState)
{
    if (sipState & SIP_DERIVED_CLASS)
        delete reinterpret_cast<sipQKeyEvent *>(sipCppV);
    else
        delete reinterpret_cast< ::QKeyEvent *>(sipCppV);
}


extern "C" {static void assign_QKeyEvent(void *, Py_ssize_t, void *);}
static void assign_QKeyEvent(void *sipDst, Py_ssize_t sipDstIdx, void *sipSrc)
{
    reinterpret_cast< ::QKeyEvent *>(sipDst)[sipDstIdx] = *reinterpret_cast< ::QKeyEvent *>(sipSrc);
}


extern "C" {static void *copy_QKeyEvent(const void *, Py_ssize_t);}
static void *copy_QKeyEvent(const void *sipSrc, Py_ssize_t sipSrcIdx)
{
    return new  ::QKeyEvent(reinterpret_cast<const  ::QKeyEvent *>(sipSrc)[sipSrcIdx]);
}


extern "C" {static void dealloc_QKeyEvent(sipSimpleWrapper *);}
static void dealloc_QKeyEvent(sipSimpleWrapper *sipSelf)
{
    if (sipIsDerivedClass(sipSelf))
        reinterpret_cast<sipQKeyEvent *>(sipGetAddress(sipSelf))->sipPySelf = SIP_NULLPTR;

    if (sipIsOwnedByPython(sipSelf))
    {
        release_QKeyEvent(sipGetAddress(sipSelf), sipIsDerivedClass(sipSelf));
    }
}


extern "C" {static void *init_type_QKeyEvent(sipSimpleWrapper *, PyObject *, PyObject *, PyObject **, PyObject **, PyObject **);}
static void *init_type_QKeyEvent(sipSimpleWrapper *sipSelf, PyObject *sipArgs, PyObject *sipKwds, PyObject **sipUnused, PyObject **, PyObject **sipParseErr)
{
    sipQKeyEvent *sipCpp = SIP_NULLPTR;

    {
         ::QEvent::Type a0;
        int a1;
         ::Qt::KeyboardModifiers* a2;
        int a2State = 0;
         ::quint32 a3;
         ::quint32 a4;
         ::quint32 a5;
        const  ::QString& a6def = QString();
        const  ::QString* a6 = &a6def;
        int a6State = 0;
        bool a7 = 0;
         ::ushort a8 = 1;

        static const char *sipKwdList[] = {
            SIP_NULLPTR,
            SIP_NULLPTR,
            SIP_NULLPTR,
            SIP_NULLPTR,
            SIP_NULLPTR,
            SIP_NULLPTR,
            sipName_text,
            sipName_autorep,
            sipName_count,
        };

        if (sipParseKwdArgs(sipParseErr, sipArgs, sipKwds, sipKwdList, sipUnused, "EiJ1uuu|J1bt", sipType_QEvent_Type, &a0, &a1, sipType_Qt_KeyboardModifiers, &a2, &a2State, &a3, &a4, &a5, sipType_QString, &a6, &a6State, &a7, &a8))
        {
            sipCpp = new sipQKeyEvent(a0,a1,*a2,a3,a4,a5,*a6,a7,a8);
            sipReleaseType(a2, sipType_Qt_KeyboardModifiers, a2State);
            sipReleaseType(const_cast< ::QString *>(a6), sipType_QString, a6State);

            sipCpp->sipPySelf = sipSelf;

            return sipCpp;
        }
    }

    {
         ::QEvent::Type a0;
        int a1;
         ::Qt::KeyboardModifiers* a2;
        int a2State = 0;
        const  ::QString& a3def = QString();
        const  ::QString* a3 = &a3def;
        int a3State = 0;
        bool a4 = 0;
         ::ushort a5 = 1;

        static const char *sipKwdList[] = {
            SIP_NULLPTR,
            SIP_NULLPTR,
            SIP_NULLPTR,
            sipName_text,
            sipName_autorep,
            sipName_count,
        };

        if (sipParseKwdArgs(sipParseErr, sipArgs, sipKwds, sipKwdList, sipUnused, "EiJ1|J1bt", sipType_QEvent_Type, &a0, &a1, sipType_Qt_KeyboardModifiers, &a2, &a2State, sipType_QString, &a3, &a3State, &a4, &a5))
        {
            sipCpp = new sipQKeyEvent(a0,a1,*a2,*a3,a4,a5);
            sipReleaseType(a2, sipType_Qt_KeyboardModifiers, a2State);
            sipReleaseType(const_cast< ::QString *>(a3), sipType_QString, a3State);

            sipCpp->sipPySelf = sipSelf;

            return sipCpp;
        }
    }

    {
        const  ::QKeyEvent* a0;

        if (sipParseKwdArgs(sipParseErr, sipArgs, sipKwds, SIP_NULLPTR, sipUnused, "J9", sipType_QKeyEvent, &a0))
        {
            sipCpp = new sipQKeyEvent(*a0);

            sipCpp->sipPySelf = sipSelf;

            return sipCpp;
        }
    }

    return SIP_NULLPTR;
}


/* Define this type's super-types. */
static sipEncodedTypeDef supers_QKeyEvent[] = {{84, 255, 1}};


/* Define this type's Python slots. */
static sipPySlotDef slots_QKeyEvent[] = {
    {(void *)slot_QKeyEvent___ne__, ne_slot},
    {(void *)slot_QKeyEvent___eq__, eq_slot},
    {(void *)slot_QKeyEvent___len__, len_slot},
    {0, (sipPySlotType)0}
};


static PyMethodDef methods_QKeyEvent[] = {
    {sipName_count, meth_QKeyEvent_count, METH_VARARGS, doc_QKeyEvent_count},
    {sipName_isAutoRepeat, meth_QKeyEvent_isAutoRepeat, METH_VARARGS, doc_QKeyEvent_isAutoRepeat},
    {sipName_key, meth_QKeyEvent_key, METH_VARARGS, doc_QKeyEvent_key},
    {sipName_matches, meth_QKeyEvent_matches, METH_VARARGS, doc_QKeyEvent_matches},
    {sipName_modifiers, meth_QKeyEvent_modifiers, METH_VARARGS, doc_QKeyEvent_modifiers},
    {sipName_nativeModifiers, meth_QKeyEvent_nativeModifiers, METH_VARARGS, doc_QKeyEvent_nativeModifiers},
    {sipName_nativeScanCode, meth_QKeyEvent_nativeScanCode, METH_VARARGS, doc_QKeyEvent_nativeScanCode},
    {sipName_nativeVirtualKey, meth_QKeyEvent_nativeVirtualKey, METH_VARARGS, doc_QKeyEvent_nativeVirtualKey},
    {sipName_text, meth_QKeyEvent_text, METH_VARARGS, doc_QKeyEvent_text}
};

PyDoc_STRVAR(doc_QKeyEvent, "\1QKeyEvent(QEvent.Type, int, Union[Qt.KeyboardModifiers, Qt.KeyboardModifier], int, int, int, text: str = '', autorep: bool = False, count: int = 1)\n"
"QKeyEvent(QEvent.Type, int, Union[Qt.KeyboardModifiers, Qt.KeyboardModifier], text: str = '', autorep: bool = False, count: int = 1)\n"
"QKeyEvent(QKeyEvent)");


static pyqt5ClassPluginDef plugin_QKeyEvent = {
    SIP_NULLPTR,
    0,
    SIP_NULLPTR,
    SIP_NULLPTR
};


sipClassTypeDef sipTypeDef_QtGui_QKeyEvent = {
    {
        -1,
        SIP_NULLPTR,
        SIP_NULLPTR,
        SIP_TYPE_SCC|SIP_TYPE_SUPER_INIT|SIP_TYPE_LIMITED_API|SIP_TYPE_CLASS,
        sipNameNr_QKeyEvent,
        SIP_NULLPTR,
        &plugin_QKeyEvent
    },
    {
        sipNameNr_QKeyEvent,
        {0, 0, 1},
        9, methods_QKeyEvent,
        0, SIP_NULLPTR,
        0, SIP_NULLPTR,
        {SIP_NULLPTR, SIP_NULLPTR, SIP_NULLPTR, SIP_NULLPTR, SIP_NULLPTR, SIP_NULLPTR, SIP_NULLPTR, SIP_NULLPTR, SIP_NULLPTR, SIP_NULLPTR},
    },
    doc_QKeyEvent,
    -1,
    -1,
    supers_QKeyEvent,
    slots_QKeyEvent,
    init_type_QKeyEvent,
    SIP_NULLPTR,
    SIP_NULLPTR,
    SIP_NULLPTR,
    SIP_NULLPTR,
    dealloc_QKeyEvent,
    assign_QKeyEvent,
    SIP_NULLPTR,
    copy_QKeyEvent,
    release_QKeyEvent,
    cast_QKeyEvent,
    SIP_NULLPTR,
    SIP_NULLPTR,
    SIP_NULLPTR,
    SIP_NULLPTR,
    SIP_NULLPTR,
    SIP_NULLPTR,
    SIP_NULLPTR,
    sizeof ( ::QKeyEvent),
};
