//Auto-generated by /usr/bin/smokegen. DO NOT EDIT.
#include <qtcore_includes.h>
#include <typeinfo>

#include <smoke.h>
#include <qtcore_smoke.h>

class __internal_SmokeClass {};

namespace __smokeqtcore {

class x_QTextBoundaryFinder : public QTextBoundaryFinder {
    SmokeBinding* _binding;
public:
    void x_0(Smoke::Stack x) {
        // set the smoke binding
        _binding = (SmokeBinding*)x[1].s_class;
    }
    static void x_1(Smoke::Stack x) {
        // QTextBoundaryFinder* QTextBoundaryFinder()
        x_QTextBoundaryFinder* xret = new x_QTextBoundaryFinder();
        x[0].s_class = (void*)xret;
    }
    explicit x_QTextBoundaryFinder() : QTextBoundaryFinder() {}
    static void x_2(Smoke::Stack x) {
        // QTextBoundaryFinder* QTextBoundaryFinder(const QTextBoundaryFinder&)
        x_QTextBoundaryFinder* xret = new x_QTextBoundaryFinder(*(const QTextBoundaryFinder*)x[1].s_class);
        x[0].s_class = (void*)xret;
    }
    explicit x_QTextBoundaryFinder(const QTextBoundaryFinder& x1) : QTextBoundaryFinder(x1) {}
    void x_3(Smoke::Stack x) {
        // QTextBoundaryFinder& operator=(const QTextBoundaryFinder&)
        QTextBoundaryFinder& xret = this->QTextBoundaryFinder::operator=(*(const QTextBoundaryFinder*)x[1].s_class);
        x[0].s_class = (void*)&xret;
    }
    static void x_4(Smoke::Stack x) {
        // QTextBoundaryFinder* QTextBoundaryFinder(QTextBoundaryFinder::BoundaryType, const QString&)
        x_QTextBoundaryFinder* xret = new x_QTextBoundaryFinder((QTextBoundaryFinder::BoundaryType)x[1].s_enum,*(const QString*)x[2].s_class);
        x[0].s_class = (void*)xret;
    }
    explicit x_QTextBoundaryFinder(QTextBoundaryFinder::BoundaryType x1, const QString& x2) : QTextBoundaryFinder(x1, x2) {}
    static void x_5(Smoke::Stack x) {
        // QTextBoundaryFinder* QTextBoundaryFinder(QTextBoundaryFinder::BoundaryType, const QChar*, int, unsigned char*, int)
        x_QTextBoundaryFinder* xret = new x_QTextBoundaryFinder((QTextBoundaryFinder::BoundaryType)x[1].s_enum,(const QChar*)x[2].s_class,(int)x[3].s_int,(unsigned char*)x[4].s_class,(int)x[5].s_int);
        x[0].s_class = (void*)xret;
    }
    explicit x_QTextBoundaryFinder(QTextBoundaryFinder::BoundaryType x1, const QChar* x2, int x3, unsigned char* x4, int x5) : QTextBoundaryFinder(x1, x2, x3, x4, x5) {}
    void x_6(Smoke::Stack x) {
        // bool isValid() const
        bool xret = ((const x_QTextBoundaryFinder*)this)->QTextBoundaryFinder::isValid();
        x[0].s_bool = xret;
    }
    void x_7(Smoke::Stack x) {
        // QTextBoundaryFinder::BoundaryType type() const
        QTextBoundaryFinder::BoundaryType xret = ((const x_QTextBoundaryFinder*)this)->QTextBoundaryFinder::type();
        x[0].s_enum = xret;
    }
    void x_8(Smoke::Stack x) {
        // QString string() const
        QString xret = ((const x_QTextBoundaryFinder*)this)->QTextBoundaryFinder::string();
        x[0].s_class = (void*)new QString(xret);
    }
    void x_9(Smoke::Stack x) {
        // void toStart()
        this->QTextBoundaryFinder::toStart();
        (void)x; // noop (for compiler warning)
    }
    void x_10(Smoke::Stack x) {
        // void toEnd()
        this->QTextBoundaryFinder::toEnd();
        (void)x; // noop (for compiler warning)
    }
    void x_11(Smoke::Stack x) {
        // int position() const
        int xret = ((const x_QTextBoundaryFinder*)this)->QTextBoundaryFinder::position();
        x[0].s_int = xret;
    }
    void x_12(Smoke::Stack x) {
        // void setPosition(int)
        this->QTextBoundaryFinder::setPosition((int)x[1].s_int);
        (void)x; // noop (for compiler warning)
    }
    void x_13(Smoke::Stack x) {
        // int toNextBoundary()
        int xret = this->QTextBoundaryFinder::toNextBoundary();
        x[0].s_int = xret;
    }
    void x_14(Smoke::Stack x) {
        // int toPreviousBoundary()
        int xret = this->QTextBoundaryFinder::toPreviousBoundary();
        x[0].s_int = xret;
    }
    void x_15(Smoke::Stack x) {
        // bool isAtBoundary() const
        bool xret = ((const x_QTextBoundaryFinder*)this)->QTextBoundaryFinder::isAtBoundary();
        x[0].s_bool = xret;
    }
    void x_16(Smoke::Stack x) {
        // QFlags<QTextBoundaryFinder::BoundaryReason> boundaryReasons() const
        QFlags<QTextBoundaryFinder::BoundaryReason> xret = ((const x_QTextBoundaryFinder*)this)->QTextBoundaryFinder::boundaryReasons();
        x[0].s_uint = (uint)xret;
    }
    static void x_17(Smoke::Stack x) {
        // QTextBoundaryFinder* QTextBoundaryFinder(QTextBoundaryFinder::BoundaryType, const QChar*, int)
        x_QTextBoundaryFinder* xret = new x_QTextBoundaryFinder((QTextBoundaryFinder::BoundaryType)x[1].s_enum,(const QChar*)x[2].s_class,(int)x[3].s_int,(unsigned char*)0,(int)0);
        x[0].s_class = (void*)xret;
    }
    static void x_18(Smoke::Stack x) {
        // QTextBoundaryFinder* QTextBoundaryFinder(QTextBoundaryFinder::BoundaryType, const QChar*, int, unsigned char*)
        x_QTextBoundaryFinder* xret = new x_QTextBoundaryFinder((QTextBoundaryFinder::BoundaryType)x[1].s_enum,(const QChar*)x[2].s_class,(int)x[3].s_int,(unsigned char*)x[4].s_class,(int)0);
        x[0].s_class = (void*)xret;
    }
    static void x_19(Smoke::Stack x) {
        x[0].s_enum = (long)QTextBoundaryFinder::Grapheme;
    }
    static void x_20(Smoke::Stack x) {
        x[0].s_enum = (long)QTextBoundaryFinder::Word;
    }
    static void x_21(Smoke::Stack x) {
        x[0].s_enum = (long)QTextBoundaryFinder::Line;
    }
    static void x_22(Smoke::Stack x) {
        x[0].s_enum = (long)QTextBoundaryFinder::Sentence;
    }
    static void x_23(Smoke::Stack x) {
        x[0].s_enum = (long)QTextBoundaryFinder::NotAtBoundary;
    }
    static void x_24(Smoke::Stack x) {
        x[0].s_enum = (long)QTextBoundaryFinder::StartWord;
    }
    static void x_25(Smoke::Stack x) {
        x[0].s_enum = (long)QTextBoundaryFinder::EndWord;
    }
    static void xenum_operation(Smoke::EnumOperation xop, Smoke::Index xtype, void *&xdata, long &xvalue) {
        switch(xtype) {
        case 336: //QTextBoundaryFinder::BoundaryType
            switch(xop) {
                case Smoke::EnumNew:
                    xdata = (void*)new QTextBoundaryFinder::BoundaryType;
                    break;
                case Smoke::EnumDelete:
                    delete (QTextBoundaryFinder::BoundaryType*)xdata;
                    break;
                case Smoke::EnumFromLong:
                    *(QTextBoundaryFinder::BoundaryType*)xdata = (QTextBoundaryFinder::BoundaryType)xvalue;
                    break;
                case Smoke::EnumToLong:
                    xvalue = (long)*(QTextBoundaryFinder::BoundaryType*)xdata;
                    break;
            }
            break;
        case 335: //QTextBoundaryFinder::BoundaryReason
            switch(xop) {
                case Smoke::EnumNew:
                    xdata = (void*)new QTextBoundaryFinder::BoundaryReason;
                    break;
                case Smoke::EnumDelete:
                    delete (QTextBoundaryFinder::BoundaryReason*)xdata;
                    break;
                case Smoke::EnumFromLong:
                    *(QTextBoundaryFinder::BoundaryReason*)xdata = (QTextBoundaryFinder::BoundaryReason)xvalue;
                    break;
                case Smoke::EnumToLong:
                    xvalue = (long)*(QTextBoundaryFinder::BoundaryReason*)xdata;
                    break;
            }
            break;
        }
    }
    ~x_QTextBoundaryFinder() { this->_binding->deleted(119, (void*)this); }
};
void xenum_QTextBoundaryFinder(Smoke::EnumOperation xop, Smoke::Index xtype, void *&xdata, long &xvalue) {
    x_QTextBoundaryFinder::xenum_operation(xop, xtype, xdata, xvalue);
}
void xcall_QTextBoundaryFinder(Smoke::Index xi, void *obj, Smoke::Stack args) {
    x_QTextBoundaryFinder *xself = (x_QTextBoundaryFinder*)obj;
    switch(xi) {
        case 0: xself->x_0(args);	break;
        case 1: x_QTextBoundaryFinder::x_1(args);	break;
        case 2: x_QTextBoundaryFinder::x_2(args);	break;
        case 3: xself->x_3(args);	break;
        case 4: x_QTextBoundaryFinder::x_4(args);	break;
        case 5: x_QTextBoundaryFinder::x_5(args);	break;
        case 6: xself->x_6(args);	break;
        case 7: xself->x_7(args);	break;
        case 8: xself->x_8(args);	break;
        case 9: xself->x_9(args);	break;
        case 10: xself->x_10(args);	break;
        case 11: xself->x_11(args);	break;
        case 12: xself->x_12(args);	break;
        case 13: xself->x_13(args);	break;
        case 14: xself->x_14(args);	break;
        case 15: xself->x_15(args);	break;
        case 16: xself->x_16(args);	break;
        case 17: x_QTextBoundaryFinder::x_17(args);	break;
        case 18: x_QTextBoundaryFinder::x_18(args);	break;
        case 19: x_QTextBoundaryFinder::x_19(args);	break;
        case 20: x_QTextBoundaryFinder::x_20(args);	break;
        case 21: x_QTextBoundaryFinder::x_21(args);	break;
        case 22: x_QTextBoundaryFinder::x_22(args);	break;
        case 23: x_QTextBoundaryFinder::x_23(args);	break;
        case 24: x_QTextBoundaryFinder::x_24(args);	break;
        case 25: x_QTextBoundaryFinder::x_25(args);	break;
        case 26: delete (QTextBoundaryFinder*)xself;	break;
    }
}
class x_QTextCodec : public QTextCodec {
    SmokeBinding* _binding;
public:
    void x_0(Smoke::Stack x) {
        // set the smoke binding
        _binding = (SmokeBinding*)x[1].s_class;
    }
    static void x_1(Smoke::Stack x) {
        // static QTextCodec* codecForName(const QByteArray&)
        QTextCodec* xret = QTextCodec::codecForName(*(const QByteArray*)x[1].s_class);
        x[0].s_class = (void*)xret;
    }
    static void x_2(Smoke::Stack x) {
        // static QTextCodec* codecForName(const char*)
        QTextCodec* xret = QTextCodec::codecForName((const char*)x[1].s_class);
        x[0].s_class = (void*)xret;
    }
    static void x_3(Smoke::Stack x) {
        // static QTextCodec* codecForMib(int)
        QTextCodec* xret = QTextCodec::codecForMib((int)x[1].s_int);
        x[0].s_class = (void*)xret;
    }
    static void x_4(Smoke::Stack x) {
        // static QList<QByteArray> availableCodecs()
        QList<QByteArray> xret = QTextCodec::availableCodecs();
        x[0].s_class = (void*)new QList<QByteArray>(xret);
    }
    static void x_5(Smoke::Stack x) {
        // static QList<int> availableMibs()
        QList<int> xret = QTextCodec::availableMibs();
        x[0].s_class = (void*)new QList<int>(xret);
    }
    static void x_6(Smoke::Stack x) {
        // static QTextCodec* codecForLocale()
        QTextCodec* xret = QTextCodec::codecForLocale();
        x[0].s_class = (void*)xret;
    }
    static void x_7(Smoke::Stack x) {
        // static void setCodecForLocale(QTextCodec*)
        QTextCodec::setCodecForLocale((QTextCodec*)x[1].s_class);
        (void)x; // noop (for compiler warning)
    }
    static void x_8(Smoke::Stack x) {
        // static QTextCodec* codecForTr()
        QTextCodec* xret = QTextCodec::codecForTr();
        x[0].s_class = (void*)xret;
    }
    static void x_9(Smoke::Stack x) {
        // static void setCodecForTr(QTextCodec*)
        QTextCodec::setCodecForTr((QTextCodec*)x[1].s_class);
        (void)x; // noop (for compiler warning)
    }
    static void x_10(Smoke::Stack x) {
        // static QTextCodec* codecForCStrings()
        QTextCodec* xret = QTextCodec::codecForCStrings();
        x[0].s_class = (void*)xret;
    }
    static void x_11(Smoke::Stack x) {
        // static void setCodecForCStrings(QTextCodec*)
        QTextCodec::setCodecForCStrings((QTextCodec*)x[1].s_class);
        (void)x; // noop (for compiler warning)
    }
    static void x_12(Smoke::Stack x) {
        // static QTextCodec* codecForHtml(const QByteArray&)
        QTextCodec* xret = QTextCodec::codecForHtml(*(const QByteArray*)x[1].s_class);
        x[0].s_class = (void*)xret;
    }
    static void x_13(Smoke::Stack x) {
        // static QTextCodec* codecForHtml(const QByteArray&, QTextCodec*)
        QTextCodec* xret = QTextCodec::codecForHtml(*(const QByteArray*)x[1].s_class,(QTextCodec*)x[2].s_class);
        x[0].s_class = (void*)xret;
    }
    static void x_14(Smoke::Stack x) {
        // static QTextCodec* codecForUtfText(const QByteArray&)
        QTextCodec* xret = QTextCodec::codecForUtfText(*(const QByteArray*)x[1].s_class);
        x[0].s_class = (void*)xret;
    }
    static void x_15(Smoke::Stack x) {
        // static QTextCodec* codecForUtfText(const QByteArray&, QTextCodec*)
        QTextCodec* xret = QTextCodec::codecForUtfText(*(const QByteArray*)x[1].s_class,(QTextCodec*)x[2].s_class);
        x[0].s_class = (void*)xret;
    }
    void x_16(Smoke::Stack x) {
        // bool canEncode(QChar) const
        bool xret = ((const x_QTextCodec*)this)->QTextCodec::canEncode(*(QChar*)x[1].s_class);
        x[0].s_bool = xret;
    }
    void x_17(Smoke::Stack x) {
        // bool canEncode(const QString&) const
        bool xret = ((const x_QTextCodec*)this)->QTextCodec::canEncode(*(const QString*)x[1].s_class);
        x[0].s_bool = xret;
    }
    void x_18(Smoke::Stack x) {
        // QString toUnicode(const QByteArray&) const
        QString xret = ((const x_QTextCodec*)this)->QTextCodec::toUnicode(*(const QByteArray*)x[1].s_class);
        x[0].s_class = (void*)new QString(xret);
    }
    void x_19(Smoke::Stack x) {
        // QString toUnicode(const char*) const
        QString xret = ((const x_QTextCodec*)this)->QTextCodec::toUnicode((const char*)x[1].s_class);
        x[0].s_class = (void*)new QString(xret);
    }
    void x_20(Smoke::Stack x) {
        // QByteArray fromUnicode(const QString&) const
        QByteArray xret = ((const x_QTextCodec*)this)->QTextCodec::fromUnicode(*(const QString*)x[1].s_class);
        x[0].s_class = (void*)new QByteArray(xret);
    }
    void x_21(Smoke::Stack x) {
        // QString toUnicode(const char*, int, QTextCodec::ConverterState*) const
        QString xret = ((const x_QTextCodec*)this)->QTextCodec::toUnicode((const char*)x[1].s_class,(int)x[2].s_int,(QTextCodec::ConverterState*)x[3].s_class);
        x[0].s_class = (void*)new QString(xret);
    }
    void x_22(Smoke::Stack x) {
        // QByteArray fromUnicode(const QChar*, int, QTextCodec::ConverterState*) const
        QByteArray xret = ((const x_QTextCodec*)this)->QTextCodec::fromUnicode((const QChar*)x[1].s_class,(int)x[2].s_int,(QTextCodec::ConverterState*)x[3].s_class);
        x[0].s_class = (void*)new QByteArray(xret);
    }
    void x_23(Smoke::Stack x) {
        // QTextDecoder* makeDecoder() const
        QTextDecoder* xret = ((const x_QTextCodec*)this)->QTextCodec::makeDecoder();
        x[0].s_class = (void*)xret;
    }
    void x_24(Smoke::Stack x) {
        // QTextDecoder* makeDecoder(QFlags<QTextCodec::ConversionFlag>) const
        QTextDecoder* xret = ((const x_QTextCodec*)this)->QTextCodec::makeDecoder((QFlags<QTextCodec::ConversionFlag>)x[1].s_uint);
        x[0].s_class = (void*)xret;
    }
    void x_25(Smoke::Stack x) {
        // QTextEncoder* makeEncoder() const
        QTextEncoder* xret = ((const x_QTextCodec*)this)->QTextCodec::makeEncoder();
        x[0].s_class = (void*)xret;
    }
    void x_26(Smoke::Stack x) {
        // QTextEncoder* makeEncoder(QFlags<QTextCodec::ConversionFlag>) const
        QTextEncoder* xret = ((const x_QTextCodec*)this)->QTextCodec::makeEncoder((QFlags<QTextCodec::ConversionFlag>)x[1].s_uint);
        x[0].s_class = (void*)xret;
    }
    void x_27(Smoke::Stack x) {
        // virtual QByteArray name() const = 0
        QByteArray xret = ((const x_QTextCodec*)this)->name();
        x[0].s_class = (void*)new QByteArray(xret);
    }
    void x_28(Smoke::Stack x) {
        // virtual QList<QByteArray> aliases() const
        if (dynamic_cast<__internal_SmokeClass*>(static_cast<QTextCodec*>(this))) {
            QList<QByteArray> xret = ((const x_QTextCodec*)this)->QTextCodec::aliases();
            x[0].s_class = (void*)new QList<QByteArray>(xret);
        } else {
            QList<QByteArray> xret = ((const x_QTextCodec*)this)->aliases();
            x[0].s_class = (void*)new QList<QByteArray>(xret);
        }
    }
    void x_29(Smoke::Stack x) {
        // virtual int mibEnum() const = 0
        int xret = ((const x_QTextCodec*)this)->mibEnum();
        x[0].s_int = xret;
    }
    void x_30(Smoke::Stack x) {
        // virtual QString convertToUnicode(const char*, int, QTextCodec::ConverterState*) const = 0
        QString xret = ((const x_QTextCodec*)this)->convertToUnicode((const char*)x[1].s_class,(int)x[2].s_int,(QTextCodec::ConverterState*)x[3].s_class);
        x[0].s_class = (void*)new QString(xret);
    }
    void x_31(Smoke::Stack x) {
        // virtual QByteArray convertFromUnicode(const QChar*, int, QTextCodec::ConverterState*) const = 0
        QByteArray xret = ((const x_QTextCodec*)this)->convertFromUnicode((const QChar*)x[1].s_class,(int)x[2].s_int,(QTextCodec::ConverterState*)x[3].s_class);
        x[0].s_class = (void*)new QByteArray(xret);
    }
    static void x_32(Smoke::Stack x) {
        // QTextCodec* QTextCodec()
        x_QTextCodec* xret = new x_QTextCodec();
        x[0].s_class = (void*)xret;
    }
    explicit x_QTextCodec() : QTextCodec() {}
    void x_33(Smoke::Stack x) {
        // QString toUnicode(const char*, int) const
        QString xret = ((const x_QTextCodec*)this)->QTextCodec::toUnicode((const char*)x[1].s_class,(int)x[2].s_int,(QTextCodec::ConverterState*)0);
        x[0].s_class = (void*)new QString(xret);
    }
    void x_34(Smoke::Stack x) {
        // QByteArray fromUnicode(const QChar*, int) const
        QByteArray xret = ((const x_QTextCodec*)this)->QTextCodec::fromUnicode((const QChar*)x[1].s_class,(int)x[2].s_int,(QTextCodec::ConverterState*)0);
        x[0].s_class = (void*)new QByteArray(xret);
    }
    static void x_35(Smoke::Stack x) {
        x[0].s_enum = (long)QTextCodec::DefaultConversion;
    }
    static void x_36(Smoke::Stack x) {
        x[0].s_enum = (long)QTextCodec::ConvertInvalidToNull;
    }
    static void x_37(Smoke::Stack x) {
        x[0].s_enum = (long)QTextCodec::IgnoreHeader;
    }
    static void x_38(Smoke::Stack x) {
        x[0].s_enum = (long)QTextCodec::FreeFunction;
    }
    virtual QByteArray name() const {
        Smoke::StackItem x[1];
        this->_binding->callMethod(5015, (void*)this, x, true /*pure virtual*/);
        QByteArray* xptr = (QByteArray*)x[0].s_class;
        QByteArray xret(*xptr);
        delete xptr;
        return xret;
    }
    virtual QList<QByteArray> aliases() const {
        Smoke::StackItem x[1];
        if (this->_binding->callMethod(5016, (void*)this, x)) {
            QList<QByteArray>* xptr = (QList<QByteArray>*)x[0].s_class;
            QList<QByteArray> xret(*xptr);
            delete xptr;
            return xret;
        }
        return this->QTextCodec::aliases();
    }
    virtual int mibEnum() const {
        Smoke::StackItem x[1];
        this->_binding->callMethod(5017, (void*)this, x, true /*pure virtual*/);
        return (int)x[0].s_int;
    }
    virtual QString convertToUnicode(const char* x1, int x2, QTextCodec::ConverterState* x3) const {
        Smoke::StackItem x[4];
        x[1].s_class = (void*)x1;
        x[2].s_int = x2;
        x[3].s_class = (void*)x3;
        this->_binding->callMethod(5018, (void*)this, x, true /*pure virtual*/);
        QString* xptr = (QString*)x[0].s_class;
        QString xret(*xptr);
        delete xptr;
        return xret;
    }
    virtual QByteArray convertFromUnicode(const QChar* x1, int x2, QTextCodec::ConverterState* x3) const {
        Smoke::StackItem x[4];
        x[1].s_class = (void*)x1;
        x[2].s_int = x2;
        x[3].s_class = (void*)x3;
        this->_binding->callMethod(5019, (void*)this, x, true /*pure virtual*/);
        QByteArray* xptr = (QByteArray*)x[0].s_class;
        QByteArray xret(*xptr);
        delete xptr;
        return xret;
    }
    static void xenum_operation(Smoke::EnumOperation xop, Smoke::Index xtype, void *&xdata, long &xvalue) {
        switch(xtype) {
        case 338: //QTextCodec::ConversionFlag
            switch(xop) {
                case Smoke::EnumNew:
                    xdata = (void*)new QTextCodec::ConversionFlag;
                    break;
                case Smoke::EnumDelete:
                    delete (QTextCodec::ConversionFlag*)xdata;
                    break;
                case Smoke::EnumFromLong:
                    *(QTextCodec::ConversionFlag*)xdata = (QTextCodec::ConversionFlag)xvalue;
                    break;
                case Smoke::EnumToLong:
                    xvalue = (long)*(QTextCodec::ConversionFlag*)xdata;
                    break;
            }
            break;
        }
    }
    ~x_QTextCodec() { this->_binding->deleted(120, (void*)this); }
};
void xenum_QTextCodec(Smoke::EnumOperation xop, Smoke::Index xtype, void *&xdata, long &xvalue) {
    x_QTextCodec::xenum_operation(xop, xtype, xdata, xvalue);
}
void xcall_QTextCodec(Smoke::Index xi, void *obj, Smoke::Stack args) {
    x_QTextCodec *xself = (x_QTextCodec*)obj;
    switch(xi) {
        case 0: xself->x_0(args);	break;
        case 1: x_QTextCodec::x_1(args);	break;
        case 2: x_QTextCodec::x_2(args);	break;
        case 3: x_QTextCodec::x_3(args);	break;
        case 4: x_QTextCodec::x_4(args);	break;
        case 5: x_QTextCodec::x_5(args);	break;
        case 6: x_QTextCodec::x_6(args);	break;
        case 7: x_QTextCodec::x_7(args);	break;
        case 8: x_QTextCodec::x_8(args);	break;
        case 9: x_QTextCodec::x_9(args);	break;
        case 10: x_QTextCodec::x_10(args);	break;
        case 11: x_QTextCodec::x_11(args);	break;
        case 12: x_QTextCodec::x_12(args);	break;
        case 13: x_QTextCodec::x_13(args);	break;
        case 14: x_QTextCodec::x_14(args);	break;
        case 15: x_QTextCodec::x_15(args);	break;
        case 16: xself->x_16(args);	break;
        case 17: xself->x_17(args);	break;
        case 18: xself->x_18(args);	break;
        case 19: xself->x_19(args);	break;
        case 20: xself->x_20(args);	break;
        case 21: xself->x_21(args);	break;
        case 22: xself->x_22(args);	break;
        case 23: xself->x_23(args);	break;
        case 24: xself->x_24(args);	break;
        case 25: xself->x_25(args);	break;
        case 26: xself->x_26(args);	break;
        case 27: xself->x_27(args);	break;
        case 28: xself->x_28(args);	break;
        case 29: xself->x_29(args);	break;
        case 30: xself->x_30(args);	break;
        case 31: xself->x_31(args);	break;
        case 32: x_QTextCodec::x_32(args);	break;
        case 33: xself->x_33(args);	break;
        case 34: xself->x_34(args);	break;
        case 35: x_QTextCodec::x_35(args);	break;
        case 36: x_QTextCodec::x_36(args);	break;
        case 37: x_QTextCodec::x_37(args);	break;
        case 38: x_QTextCodec::x_38(args);	break;
    }
}
class x_QTextCodec__ConverterState : public QTextCodec::ConverterState {
    SmokeBinding* _binding;
public:
    void x_0(Smoke::Stack x) {
        // set the smoke binding
        _binding = (SmokeBinding*)x[1].s_class;
    }
    static void x_1(Smoke::Stack x) {
        // QTextCodec::ConverterState* ConverterState(QFlags<QTextCodec::ConversionFlag>)
        x_QTextCodec__ConverterState* xret = new x_QTextCodec__ConverterState((QFlags<QTextCodec::ConversionFlag>)x[1].s_uint);
        x[0].s_class = (void*)xret;
    }
    explicit x_QTextCodec__ConverterState(QFlags<QTextCodec::ConversionFlag> x1) : ConverterState(x1) {}
    static void x_2(Smoke::Stack x) {
        // QTextCodec::ConverterState* ConverterState()
        x_QTextCodec__ConverterState* xret = new x_QTextCodec__ConverterState((QFlags<QTextCodec::ConversionFlag>)QTextCodec::DefaultConversion);
        x[0].s_class = (void*)xret;
    }
    void x_3(Smoke::Stack x) {
        // QFlags<QTextCodec::ConversionFlag> flags
        x[0].s_uint = (uint)this->QTextCodec::ConverterState::flags;
    }
    void x_4(Smoke::Stack x) {
        // QFlags<QTextCodec::ConversionFlag> flags=
        this->QTextCodec::ConverterState::flags = (QFlags<QTextCodec::ConversionFlag>)x[1].s_uint;
    }
    void x_5(Smoke::Stack x) {
        // int remainingChars
        x[0].s_int = this->QTextCodec::ConverterState::remainingChars;
    }
    void x_6(Smoke::Stack x) {
        // int remainingChars=
        this->QTextCodec::ConverterState::remainingChars = (int)x[1].s_int;
    }
    void x_7(Smoke::Stack x) {
        // int invalidChars
        x[0].s_int = this->QTextCodec::ConverterState::invalidChars;
    }
    void x_8(Smoke::Stack x) {
        // int invalidChars=
        this->QTextCodec::ConverterState::invalidChars = (int)x[1].s_int;
    }
    void x_9(Smoke::Stack x) {
        // void* d
        x[0].s_class = (void*)this->QTextCodec::ConverterState::d;
    }
    void x_10(Smoke::Stack x) {
        // void* d=
        this->QTextCodec::ConverterState::d = (void*)x[1].s_class;
    }
    ~x_QTextCodec__ConverterState() { this->_binding->deleted(121, (void*)this); }
};
void xcall_QTextCodec__ConverterState(Smoke::Index xi, void *obj, Smoke::Stack args) {
    x_QTextCodec__ConverterState *xself = (x_QTextCodec__ConverterState*)obj;
    switch(xi) {
        case 0: xself->x_0(args);	break;
        case 1: x_QTextCodec__ConverterState::x_1(args);	break;
        case 2: x_QTextCodec__ConverterState::x_2(args);	break;
        case 3: xself->x_3(args);	break;
        case 4: xself->x_4(args);	break;
        case 5: xself->x_5(args);	break;
        case 6: xself->x_6(args);	break;
        case 7: xself->x_7(args);	break;
        case 8: xself->x_8(args);	break;
        case 9: xself->x_9(args);	break;
        case 10: xself->x_10(args);	break;
        case 11: delete (QTextCodec::ConverterState*)xself;	break;
    }
}
class x_QTextCodecFactoryInterface : public QTextCodecFactoryInterface, public __internal_SmokeClass {
    SmokeBinding* _binding;
public:
    void x_0(Smoke::Stack x) {
        // set the smoke binding
        _binding = (SmokeBinding*)x[1].s_class;
    }
    void x_1(Smoke::Stack x) {
        // virtual QTextCodec* create(const QString&) = 0
        QTextCodec* xret = this->create(*(const QString*)x[1].s_class);
        x[0].s_class = (void*)xret;
    }
    static void x_2(Smoke::Stack x) {
        // QTextCodecFactoryInterface* QTextCodecFactoryInterface()
        x_QTextCodecFactoryInterface* xret = new x_QTextCodecFactoryInterface();
        x[0].s_class = (void*)xret;
    }
    explicit x_QTextCodecFactoryInterface() : QTextCodecFactoryInterface() {}
    static void x_3(Smoke::Stack x) {
        // QTextCodecFactoryInterface* QTextCodecFactoryInterface(const QTextCodecFactoryInterface&)
        x_QTextCodecFactoryInterface* xret = new x_QTextCodecFactoryInterface(*(const QTextCodecFactoryInterface*)x[1].s_class);
        x[0].s_class = (void*)xret;
    }
    explicit x_QTextCodecFactoryInterface(const QTextCodecFactoryInterface& x1) : QTextCodecFactoryInterface(x1) {}
    virtual QTextCodec* create(const QString& x1) {
        Smoke::StackItem x[2];
        x[1].s_class = (void*)&x1;
        this->_binding->callMethod(5039, (void*)this, x, true /*pure virtual*/);
        return (QTextCodec*)x[0].s_class;
    }
    virtual QStringList keys() const {
        Smoke::StackItem x[1];
        this->_binding->callMethod(1762, (void*)this, x, true /*pure virtual*/);
        QStringList* xptr = (QStringList*)x[0].s_class;
        QStringList xret(*xptr);
        delete xptr;
        return xret;
    }
    ~x_QTextCodecFactoryInterface() { this->_binding->deleted(122, (void*)this); }
};
void xcall_QTextCodecFactoryInterface(Smoke::Index xi, void *obj, Smoke::Stack args) {
    x_QTextCodecFactoryInterface *xself = (x_QTextCodecFactoryInterface*)obj;
    switch(xi) {
        case 0: xself->x_0(args);	break;
        case 1: xself->x_1(args);	break;
        case 2: x_QTextCodecFactoryInterface::x_2(args);	break;
        case 3: x_QTextCodecFactoryInterface::x_3(args);	break;
        case 4: delete (QTextCodecFactoryInterface*)xself;	break;
    }
}
class x_QTextCodecPlugin : public QTextCodecPlugin, public __internal_SmokeClass {
    SmokeBinding* _binding;
public:
    void x_0(Smoke::Stack x) {
        // set the smoke binding
        _binding = (SmokeBinding*)x[1].s_class;
    }
    void x_1(Smoke::Stack x) {
        // virtual const QMetaObject* metaObject() const
        if (dynamic_cast<__internal_SmokeClass*>(static_cast<QTextCodecPlugin*>(this))) {
            const QMetaObject* xret = ((const x_QTextCodecPlugin*)this)->QTextCodecPlugin::metaObject();
            x[0].s_class = (void*)xret;
        } else {
            const QMetaObject* xret = ((const x_QTextCodecPlugin*)this)->metaObject();
            x[0].s_class = (void*)xret;
        }
    }
    void x_2(Smoke::Stack x) {
        // virtual void* qt_metacast(const char*)
        if (dynamic_cast<__internal_SmokeClass*>(static_cast<QTextCodecPlugin*>(this))) {
            void* xret = this->QTextCodecPlugin::qt_metacast((const char*)x[1].s_class);
            x[0].s_class = (void*)xret;
        } else {
            void* xret = this->qt_metacast((const char*)x[1].s_class);
            x[0].s_class = (void*)xret;
        }
    }
    static void x_3(Smoke::Stack x) {
        // static QString tr(const char*, const char*)
        QString xret = QTextCodecPlugin::tr((const char*)x[1].s_class,(const char*)x[2].s_class);
        x[0].s_class = (void*)new QString(xret);
    }
    static void x_4(Smoke::Stack x) {
        // static QString trUtf8(const char*, const char*)
        QString xret = QTextCodecPlugin::trUtf8((const char*)x[1].s_class,(const char*)x[2].s_class);
        x[0].s_class = (void*)new QString(xret);
    }
    static void x_5(Smoke::Stack x) {
        // static QString tr(const char*, const char*, int)
        QString xret = QTextCodecPlugin::tr((const char*)x[1].s_class,(const char*)x[2].s_class,(int)x[3].s_int);
        x[0].s_class = (void*)new QString(xret);
    }
    static void x_6(Smoke::Stack x) {
        // static QString trUtf8(const char*, const char*, int)
        QString xret = QTextCodecPlugin::trUtf8((const char*)x[1].s_class,(const char*)x[2].s_class,(int)x[3].s_int);
        x[0].s_class = (void*)new QString(xret);
    }
    void x_7(Smoke::Stack x) {
        // virtual int qt_metacall(QMetaObject::Call, int, void**)
        if (dynamic_cast<__internal_SmokeClass*>(static_cast<QTextCodecPlugin*>(this))) {
            int xret = this->QTextCodecPlugin::qt_metacall((QMetaObject::Call)x[1].s_enum,(int)x[2].s_int,(void**)x[3].s_class);
            x[0].s_int = xret;
        } else {
            int xret = this->qt_metacall((QMetaObject::Call)x[1].s_enum,(int)x[2].s_int,(void**)x[3].s_class);
            x[0].s_int = xret;
        }
    }
    static void x_8(Smoke::Stack x) {
        // QTextCodecPlugin* QTextCodecPlugin(QObject*)
        x_QTextCodecPlugin* xret = new x_QTextCodecPlugin((QObject*)x[1].s_class);
        x[0].s_class = (void*)xret;
    }
    explicit x_QTextCodecPlugin(QObject* x1) : QTextCodecPlugin(x1) {}
    void x_9(Smoke::Stack x) {
        // virtual QList<QByteArray> names() const = 0
        QList<QByteArray> xret = ((const x_QTextCodecPlugin*)this)->names();
        x[0].s_class = (void*)new QList<QByteArray>(xret);
    }
    void x_10(Smoke::Stack x) {
        // virtual QList<QByteArray> aliases() const = 0
        QList<QByteArray> xret = ((const x_QTextCodecPlugin*)this)->aliases();
        x[0].s_class = (void*)new QList<QByteArray>(xret);
    }
    void x_11(Smoke::Stack x) {
        // virtual QTextCodec* createForName(const QByteArray&) = 0
        QTextCodec* xret = this->createForName(*(const QByteArray*)x[1].s_class);
        x[0].s_class = (void*)xret;
    }
    void x_12(Smoke::Stack x) {
        // virtual QList<int> mibEnums() const = 0
        QList<int> xret = ((const x_QTextCodecPlugin*)this)->mibEnums();
        x[0].s_class = (void*)new QList<int>(xret);
    }
    void x_13(Smoke::Stack x) {
        // virtual QTextCodec* createForMib(int) = 0
        QTextCodec* xret = this->createForMib((int)x[1].s_int);
        x[0].s_class = (void*)xret;
    }
    static void x_14(Smoke::Stack x) {
        // static QString tr(const char*)
        QString xret = QTextCodecPlugin::tr((const char*)x[1].s_class,(const char*)0);
        x[0].s_class = (void*)new QString(xret);
    }
    static void x_15(Smoke::Stack x) {
        // static QString trUtf8(const char*)
        QString xret = QTextCodecPlugin::trUtf8((const char*)x[1].s_class,(const char*)0);
        x[0].s_class = (void*)new QString(xret);
    }
    static void x_16(Smoke::Stack x) {
        // QTextCodecPlugin* QTextCodecPlugin()
        x_QTextCodecPlugin* xret = new x_QTextCodecPlugin((QObject*)0);
        x[0].s_class = (void*)xret;
    }
    static void x_17(Smoke::Stack x) {
        // static const QMetaObject staticMetaObject
        x[0].s_class = (void*)&QTextCodecPlugin::staticMetaObject;
    }
    virtual const QMetaObject* metaObject() const {
        Smoke::StackItem x[1];
        if (this->_binding->callMethod(5043, (void*)this, x)) return (const QMetaObject*)x[0].s_class;
        return this->QTextCodecPlugin::metaObject();
    }
    virtual void* qt_metacast(const char* x1) {
        Smoke::StackItem x[2];
        x[1].s_class = (void*)x1;
        if (this->_binding->callMethod(5044, (void*)this, x)) return (void*)x[0].s_class;
        return this->QTextCodecPlugin::qt_metacast(x1);
    }
    virtual int qt_metacall(QMetaObject::Call x1, int x2, void** x3) {
        Smoke::StackItem x[4];
        x[1].s_enum = x1;
        x[2].s_int = x2;
        x[3].s_class = (void*)x3;
        if (this->_binding->callMethod(5049, (void*)this, x)) return (int)x[0].s_int;
        return this->QTextCodecPlugin::qt_metacall(x1, x2, x3);
    }
    virtual QList<QByteArray> names() const {
        Smoke::StackItem x[1];
        this->_binding->callMethod(5051, (void*)this, x, true /*pure virtual*/);
        QList<QByteArray>* xptr = (QList<QByteArray>*)x[0].s_class;
        QList<QByteArray> xret(*xptr);
        delete xptr;
        return xret;
    }
    virtual QList<QByteArray> aliases() const {
        Smoke::StackItem x[1];
        this->_binding->callMethod(5052, (void*)this, x, true /*pure virtual*/);
        QList<QByteArray>* xptr = (QList<QByteArray>*)x[0].s_class;
        QList<QByteArray> xret(*xptr);
        delete xptr;
        return xret;
    }
    virtual QTextCodec* createForName(const QByteArray& x1) {
        Smoke::StackItem x[2];
        x[1].s_class = (void*)&x1;
        this->_binding->callMethod(5053, (void*)this, x, true /*pure virtual*/);
        return (QTextCodec*)x[0].s_class;
    }
    virtual QList<int> mibEnums() const {
        Smoke::StackItem x[1];
        this->_binding->callMethod(5054, (void*)this, x, true /*pure virtual*/);
        QList<int>* xptr = (QList<int>*)x[0].s_class;
        QList<int> xret(*xptr);
        delete xptr;
        return xret;
    }
    virtual QTextCodec* createForMib(int x1) {
        Smoke::StackItem x[2];
        x[1].s_int = x1;
        this->_binding->callMethod(5055, (void*)this, x, true /*pure virtual*/);
        return (QTextCodec*)x[0].s_class;
    }
    virtual bool event(QEvent* x1) {
        Smoke::StackItem x[2];
        x[1].s_class = (void*)x1;
        if (this->_binding->callMethod(3804, (void*)this, x)) return (bool)x[0].s_bool;
        return this->QObject::event(x1);
    }
    virtual bool eventFilter(QObject* x1, QEvent* x2) {
        Smoke::StackItem x[3];
        x[1].s_class = (void*)x1;
        x[2].s_class = (void*)x2;
        if (this->_binding->callMethod(3805, (void*)this, x)) return (bool)x[0].s_bool;
        return this->QObject::eventFilter(x1, x2);
    }
    virtual void timerEvent(QTimerEvent* x1) {
        Smoke::StackItem x[2];
        x[1].s_class = (void*)x1;
        if (this->_binding->callMethod(3841, (void*)this, x)) return;
        this->QObject::timerEvent(x1);
    }
    virtual void childEvent(QChildEvent* x1) {
        Smoke::StackItem x[2];
        x[1].s_class = (void*)x1;
        if (this->_binding->callMethod(3842, (void*)this, x)) return;
        this->QObject::childEvent(x1);
    }
    virtual void customEvent(QEvent* x1) {
        Smoke::StackItem x[2];
        x[1].s_class = (void*)x1;
        if (this->_binding->callMethod(3843, (void*)this, x)) return;
        this->QObject::customEvent(x1);
    }
    virtual void connectNotify(const char* x1) {
        Smoke::StackItem x[2];
        x[1].s_class = (void*)x1;
        if (this->_binding->callMethod(3844, (void*)this, x)) return;
        this->QObject::connectNotify(x1);
    }
    virtual void disconnectNotify(const char* x1) {
        Smoke::StackItem x[2];
        x[1].s_class = (void*)x1;
        if (this->_binding->callMethod(3845, (void*)this, x)) return;
        this->QObject::disconnectNotify(x1);
    }
    ~x_QTextCodecPlugin() { this->_binding->deleted(123, (void*)this); }
};
void xcall_QTextCodecPlugin(Smoke::Index xi, void *obj, Smoke::Stack args) {
    x_QTextCodecPlugin *xself = (x_QTextCodecPlugin*)obj;
    switch(xi) {
        case 0: xself->x_0(args);	break;
        case 1: xself->x_1(args);	break;
        case 2: xself->x_2(args);	break;
        case 3: x_QTextCodecPlugin::x_3(args);	break;
        case 4: x_QTextCodecPlugin::x_4(args);	break;
        case 5: x_QTextCodecPlugin::x_5(args);	break;
        case 6: x_QTextCodecPlugin::x_6(args);	break;
        case 7: xself->x_7(args);	break;
        case 8: x_QTextCodecPlugin::x_8(args);	break;
        case 9: xself->x_9(args);	break;
        case 10: xself->x_10(args);	break;
        case 11: xself->x_11(args);	break;
        case 12: xself->x_12(args);	break;
        case 13: xself->x_13(args);	break;
        case 14: x_QTextCodecPlugin::x_14(args);	break;
        case 15: x_QTextCodecPlugin::x_15(args);	break;
        case 16: x_QTextCodecPlugin::x_16(args);	break;
        case 17: x_QTextCodecPlugin::x_17(args);	break;
        case 18: delete (QTextCodecPlugin*)xself;	break;
    }
}
class x_QTextDecoder : public QTextDecoder {
    SmokeBinding* _binding;
public:
    void x_0(Smoke::Stack x) {
        // set the smoke binding
        _binding = (SmokeBinding*)x[1].s_class;
    }
    static void x_1(Smoke::Stack x) {
        // QTextDecoder* QTextDecoder(const QTextCodec*)
        x_QTextDecoder* xret = new x_QTextDecoder((const QTextCodec*)x[1].s_class);
        x[0].s_class = (void*)xret;
    }
    explicit x_QTextDecoder(const QTextCodec* x1) : QTextDecoder(x1) {}
    static void x_2(Smoke::Stack x) {
        // QTextDecoder* QTextDecoder(const QTextCodec*, QFlags<QTextCodec::ConversionFlag>)
        x_QTextDecoder* xret = new x_QTextDecoder((const QTextCodec*)x[1].s_class,(QFlags<QTextCodec::ConversionFlag>)x[2].s_uint);
        x[0].s_class = (void*)xret;
    }
    explicit x_QTextDecoder(const QTextCodec* x1, QFlags<QTextCodec::ConversionFlag> x2) : QTextDecoder(x1, x2) {}
    void x_3(Smoke::Stack x) {
        // QString toUnicode(const char*, int)
        QString xret = this->QTextDecoder::toUnicode((const char*)x[1].s_class,(int)x[2].s_int);
        x[0].s_class = (void*)new QString(xret);
    }
    void x_4(Smoke::Stack x) {
        // QString toUnicode(const QByteArray&)
        QString xret = this->QTextDecoder::toUnicode(*(const QByteArray*)x[1].s_class);
        x[0].s_class = (void*)new QString(xret);
    }
    void x_5(Smoke::Stack x) {
        // void toUnicode(QString*, const char*, int)
        this->QTextDecoder::toUnicode((QString*)x[1].s_class,(const char*)x[2].s_class,(int)x[3].s_int);
        (void)x; // noop (for compiler warning)
    }
    void x_6(Smoke::Stack x) {
        // bool hasFailure() const
        bool xret = ((const x_QTextDecoder*)this)->QTextDecoder::hasFailure();
        x[0].s_bool = xret;
    }
    ~x_QTextDecoder() { this->_binding->deleted(124, (void*)this); }
};
void xcall_QTextDecoder(Smoke::Index xi, void *obj, Smoke::Stack args) {
    x_QTextDecoder *xself = (x_QTextDecoder*)obj;
    switch(xi) {
        case 0: xself->x_0(args);	break;
        case 1: x_QTextDecoder::x_1(args);	break;
        case 2: x_QTextDecoder::x_2(args);	break;
        case 3: xself->x_3(args);	break;
        case 4: xself->x_4(args);	break;
        case 5: xself->x_5(args);	break;
        case 6: xself->x_6(args);	break;
        case 7: delete (QTextDecoder*)xself;	break;
    }
}
class x_QTextEncoder : public QTextEncoder {
    SmokeBinding* _binding;
public:
    void x_0(Smoke::Stack x) {
        // set the smoke binding
        _binding = (SmokeBinding*)x[1].s_class;
    }
    static void x_1(Smoke::Stack x) {
        // QTextEncoder* QTextEncoder(const QTextCodec*)
        x_QTextEncoder* xret = new x_QTextEncoder((const QTextCodec*)x[1].s_class);
        x[0].s_class = (void*)xret;
    }
    explicit x_QTextEncoder(const QTextCodec* x1) : QTextEncoder(x1) {}
    static void x_2(Smoke::Stack x) {
        // QTextEncoder* QTextEncoder(const QTextCodec*, QFlags<QTextCodec::ConversionFlag>)
        x_QTextEncoder* xret = new x_QTextEncoder((const QTextCodec*)x[1].s_class,(QFlags<QTextCodec::ConversionFlag>)x[2].s_uint);
        x[0].s_class = (void*)xret;
    }
    explicit x_QTextEncoder(const QTextCodec* x1, QFlags<QTextCodec::ConversionFlag> x2) : QTextEncoder(x1, x2) {}
    void x_3(Smoke::Stack x) {
        // QByteArray fromUnicode(const QString&)
        QByteArray xret = this->QTextEncoder::fromUnicode(*(const QString*)x[1].s_class);
        x[0].s_class = (void*)new QByteArray(xret);
    }
    void x_4(Smoke::Stack x) {
        // QByteArray fromUnicode(const QChar*, int)
        QByteArray xret = this->QTextEncoder::fromUnicode((const QChar*)x[1].s_class,(int)x[2].s_int);
        x[0].s_class = (void*)new QByteArray(xret);
    }
    void x_5(Smoke::Stack x) {
        // bool hasFailure() const
        bool xret = ((const x_QTextEncoder*)this)->QTextEncoder::hasFailure();
        x[0].s_bool = xret;
    }
    ~x_QTextEncoder() { this->_binding->deleted(125, (void*)this); }
};
void xcall_QTextEncoder(Smoke::Index xi, void *obj, Smoke::Stack args) {
    x_QTextEncoder *xself = (x_QTextEncoder*)obj;
    switch(xi) {
        case 0: xself->x_0(args);	break;
        case 1: x_QTextEncoder::x_1(args);	break;
        case 2: x_QTextEncoder::x_2(args);	break;
        case 3: xself->x_3(args);	break;
        case 4: xself->x_4(args);	break;
        case 5: xself->x_5(args);	break;
        case 6: delete (QTextEncoder*)xself;	break;
    }
}

}
