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

#include <smoke.h>
#include <ktexteditor_smoke.h>

class __internal_SmokeClass {};

namespace __smokektexteditor {

class x_KTextEditor__ParameterizedSessionConfigInterface : public KTextEditor::ParameterizedSessionConfigInterface, public __internal_SmokeClass {
    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) {
        // KTextEditor::ParameterizedSessionConfigInterface* ParameterizedSessionConfigInterface()
        x_KTextEditor__ParameterizedSessionConfigInterface* xret = new x_KTextEditor__ParameterizedSessionConfigInterface();
        x[0].s_class = (void*)xret;
    }
    explicit x_KTextEditor__ParameterizedSessionConfigInterface() : ParameterizedSessionConfigInterface() {}
    void x_2(Smoke::Stack x) {
        // virtual void readParameterizedSessionConfig(const KConfigGroup&, unsigned long) = 0
        this->readParameterizedSessionConfig(*(const KConfigGroup*)x[1].s_class,(unsigned long)x[2].s_ulong);
        (void)x; // noop (for compiler warning)
    }
    void x_3(Smoke::Stack x) {
        // virtual void writeParameterizedSessionConfig(KConfigGroup&, unsigned long) = 0
        this->writeParameterizedSessionConfig(*(KConfigGroup*)x[1].s_class,(unsigned long)x[2].s_ulong);
        (void)x; // noop (for compiler warning)
    }
    static void x_4(Smoke::Stack x) {
        // KTextEditor::ParameterizedSessionConfigInterface* ParameterizedSessionConfigInterface(const KTextEditor::ParameterizedSessionConfigInterface&)
        x_KTextEditor__ParameterizedSessionConfigInterface* xret = new x_KTextEditor__ParameterizedSessionConfigInterface(*(const KTextEditor::ParameterizedSessionConfigInterface*)x[1].s_class);
        x[0].s_class = (void*)xret;
    }
    explicit x_KTextEditor__ParameterizedSessionConfigInterface(const KTextEditor::ParameterizedSessionConfigInterface& x1) : ParameterizedSessionConfigInterface(x1) {}
    static void x_5(Smoke::Stack x) {
        x[0].s_enum = (long)KTextEditor::ParameterizedSessionConfigInterface::SkipNone;
    }
    static void x_6(Smoke::Stack x) {
        x[0].s_enum = (long)KTextEditor::ParameterizedSessionConfigInterface::SkipUrl;
    }
    static void x_7(Smoke::Stack x) {
        x[0].s_enum = (long)KTextEditor::ParameterizedSessionConfigInterface::SkipMode;
    }
    static void x_8(Smoke::Stack x) {
        x[0].s_enum = (long)KTextEditor::ParameterizedSessionConfigInterface::SkipHighlighting;
    }
    static void x_9(Smoke::Stack x) {
        x[0].s_enum = (long)KTextEditor::ParameterizedSessionConfigInterface::SkipEncoding;
    }
    static void x_10(Smoke::Stack x) {
        x[0].s_enum = (long)KTextEditor::ParameterizedSessionConfigInterface::SkipFolding;
    }
    virtual void readParameterizedSessionConfig(const KConfigGroup& x1, unsigned long x2) {
        Smoke::StackItem x[3];
        x[1].s_class = (void*)&x1;
        x[2].s_ulong = x2;
        this->_binding->callMethod(606, (void*)this, x, true /*pure virtual*/);
    }
    virtual void writeParameterizedSessionConfig(KConfigGroup& x1, unsigned long x2) {
        Smoke::StackItem x[3];
        x[1].s_class = (void*)&x1;
        x[2].s_ulong = x2;
        this->_binding->callMethod(607, (void*)this, x, true /*pure virtual*/);
    }
    static void xenum_operation(Smoke::EnumOperation xop, Smoke::Index xtype, void *&xdata, long &xvalue) {
        switch(xtype) {
        case 72: //KTextEditor::ParameterizedSessionConfigInterface::SessionConfigParameter
            switch(xop) {
                case Smoke::EnumNew:
                    xdata = (void*)new KTextEditor::ParameterizedSessionConfigInterface::SessionConfigParameter;
                    break;
                case Smoke::EnumDelete:
                    delete (KTextEditor::ParameterizedSessionConfigInterface::SessionConfigParameter*)xdata;
                    break;
                case Smoke::EnumFromLong:
                    *(KTextEditor::ParameterizedSessionConfigInterface::SessionConfigParameter*)xdata = (KTextEditor::ParameterizedSessionConfigInterface::SessionConfigParameter)xvalue;
                    break;
                case Smoke::EnumToLong:
                    xvalue = (long)*(KTextEditor::ParameterizedSessionConfigInterface::SessionConfigParameter*)xdata;
                    break;
            }
            break;
        }
    }
    ~x_KTextEditor__ParameterizedSessionConfigInterface() { this->_binding->deleted(49, (void*)this); }
};
void xenum_KTextEditor__ParameterizedSessionConfigInterface(Smoke::EnumOperation xop, Smoke::Index xtype, void *&xdata, long &xvalue) {
    x_KTextEditor__ParameterizedSessionConfigInterface::xenum_operation(xop, xtype, xdata, xvalue);
}
void xcall_KTextEditor__ParameterizedSessionConfigInterface(Smoke::Index xi, void *obj, Smoke::Stack args) {
    x_KTextEditor__ParameterizedSessionConfigInterface *xself = (x_KTextEditor__ParameterizedSessionConfigInterface*)obj;
    switch(xi) {
        case 0: xself->x_0(args);	break;
        case 1: x_KTextEditor__ParameterizedSessionConfigInterface::x_1(args);	break;
        case 2: xself->x_2(args);	break;
        case 3: xself->x_3(args);	break;
        case 4: x_KTextEditor__ParameterizedSessionConfigInterface::x_4(args);	break;
        case 5: x_KTextEditor__ParameterizedSessionConfigInterface::x_5(args);	break;
        case 6: x_KTextEditor__ParameterizedSessionConfigInterface::x_6(args);	break;
        case 7: x_KTextEditor__ParameterizedSessionConfigInterface::x_7(args);	break;
        case 8: x_KTextEditor__ParameterizedSessionConfigInterface::x_8(args);	break;
        case 9: x_KTextEditor__ParameterizedSessionConfigInterface::x_9(args);	break;
        case 10: x_KTextEditor__ParameterizedSessionConfigInterface::x_10(args);	break;
        case 11: delete (KTextEditor::ParameterizedSessionConfigInterface*)xself;	break;
    }
}
class x_KTextEditor__Plugin : public KTextEditor::Plugin, 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<KTextEditor::Plugin*>(this))) {
            const QMetaObject* xret = ((const x_KTextEditor__Plugin*)this)->KTextEditor::Plugin::metaObject();
            x[0].s_class = (void*)xret;
        } else {
            const QMetaObject* xret = ((const x_KTextEditor__Plugin*)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<KTextEditor::Plugin*>(this))) {
            void* xret = this->KTextEditor::Plugin::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 = KTextEditor::Plugin::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 = KTextEditor::Plugin::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 = KTextEditor::Plugin::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 = KTextEditor::Plugin::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<KTextEditor::Plugin*>(this))) {
            int xret = this->KTextEditor::Plugin::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) {
        // KTextEditor::Plugin* Plugin(QObject*)
        x_KTextEditor__Plugin* xret = new x_KTextEditor__Plugin((QObject*)x[1].s_class);
        x[0].s_class = (void*)xret;
    }
    explicit x_KTextEditor__Plugin(QObject* x1) : Plugin(x1) {}
    void x_9(Smoke::Stack x) {
        // virtual void addDocument(KTextEditor::Document*)
        if (dynamic_cast<__internal_SmokeClass*>(static_cast<KTextEditor::Plugin*>(this))) {
            this->KTextEditor::Plugin::addDocument((KTextEditor::Document*)x[1].s_class);
            (void)x; // noop (for compiler warning)
        } else {
            this->addDocument((KTextEditor::Document*)x[1].s_class);
            (void)x; // noop (for compiler warning)
        }
    }
    void x_10(Smoke::Stack x) {
        // virtual void removeDocument(KTextEditor::Document*)
        if (dynamic_cast<__internal_SmokeClass*>(static_cast<KTextEditor::Plugin*>(this))) {
            this->KTextEditor::Plugin::removeDocument((KTextEditor::Document*)x[1].s_class);
            (void)x; // noop (for compiler warning)
        } else {
            this->removeDocument((KTextEditor::Document*)x[1].s_class);
            (void)x; // noop (for compiler warning)
        }
    }
    void x_11(Smoke::Stack x) {
        // virtual void addView(KTextEditor::View*)
        if (dynamic_cast<__internal_SmokeClass*>(static_cast<KTextEditor::Plugin*>(this))) {
            this->KTextEditor::Plugin::addView((KTextEditor::View*)x[1].s_class);
            (void)x; // noop (for compiler warning)
        } else {
            this->addView((KTextEditor::View*)x[1].s_class);
            (void)x; // noop (for compiler warning)
        }
    }
    void x_12(Smoke::Stack x) {
        // virtual void removeView(KTextEditor::View*)
        if (dynamic_cast<__internal_SmokeClass*>(static_cast<KTextEditor::Plugin*>(this))) {
            this->KTextEditor::Plugin::removeView((KTextEditor::View*)x[1].s_class);
            (void)x; // noop (for compiler warning)
        } else {
            this->removeView((KTextEditor::View*)x[1].s_class);
            (void)x; // noop (for compiler warning)
        }
    }
    static void x_13(Smoke::Stack x) {
        // static QString tr(const char*)
        QString xret = KTextEditor::Plugin::tr((const char*)x[1].s_class,(const char*)0);
        x[0].s_class = (void*)new QString(xret);
    }
    static void x_14(Smoke::Stack x) {
        // static QString trUtf8(const char*)
        QString xret = KTextEditor::Plugin::trUtf8((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 const QMetaObject staticMetaObject
        x[0].s_class = (void*)&KTextEditor::Plugin::staticMetaObject;
    }
    virtual const QMetaObject* metaObject() const {
        Smoke::StackItem x[1];
        if (this->_binding->callMethod(616, (void*)this, x)) return (const QMetaObject*)x[0].s_class;
        return this->KTextEditor::Plugin::metaObject();
    }
    virtual void* qt_metacast(const char* x1) {
        Smoke::StackItem x[2];
        x[1].s_class = (void*)x1;
        if (this->_binding->callMethod(617, (void*)this, x)) return (void*)x[0].s_class;
        return this->KTextEditor::Plugin::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(622, (void*)this, x)) return (int)x[0].s_int;
        return this->KTextEditor::Plugin::qt_metacall(x1, x2, x3);
    }
    virtual void addDocument(KTextEditor::Document* x1) {
        Smoke::StackItem x[2];
        x[1].s_class = (void*)x1;
        if (this->_binding->callMethod(624, (void*)this, x)) return;
        this->KTextEditor::Plugin::addDocument(x1);
    }
    virtual void removeDocument(KTextEditor::Document* x1) {
        Smoke::StackItem x[2];
        x[1].s_class = (void*)x1;
        if (this->_binding->callMethod(625, (void*)this, x)) return;
        this->KTextEditor::Plugin::removeDocument(x1);
    }
    virtual void addView(KTextEditor::View* x1) {
        Smoke::StackItem x[2];
        x[1].s_class = (void*)x1;
        if (this->_binding->callMethod(626, (void*)this, x)) return;
        this->KTextEditor::Plugin::addView(x1);
    }
    virtual void removeView(KTextEditor::View* x1) {
        Smoke::StackItem x[2];
        x[1].s_class = (void*)x1;
        if (this->_binding->callMethod(627, (void*)this, x)) return;
        this->KTextEditor::Plugin::removeView(x1);
    }
    virtual bool event(QEvent* x1) {
        Smoke::StackItem x[2];
        x[1].s_class = (void*)x1;
        if (this->_binding->callMethod(1082, (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(1083, (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(1084, (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(1085, (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(1086, (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(1087, (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(1088, (void*)this, x)) return;
        this->QObject::disconnectNotify(x1);
    }
    ~x_KTextEditor__Plugin() { this->_binding->deleted(50, (void*)this); }
};
void xcall_KTextEditor__Plugin(Smoke::Index xi, void *obj, Smoke::Stack args) {
    x_KTextEditor__Plugin *xself = (x_KTextEditor__Plugin*)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_KTextEditor__Plugin::x_3(args);	break;
        case 4: x_KTextEditor__Plugin::x_4(args);	break;
        case 5: x_KTextEditor__Plugin::x_5(args);	break;
        case 6: x_KTextEditor__Plugin::x_6(args);	break;
        case 7: xself->x_7(args);	break;
        case 8: x_KTextEditor__Plugin::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: x_KTextEditor__Plugin::x_13(args);	break;
        case 14: x_KTextEditor__Plugin::x_14(args);	break;
        case 15: x_KTextEditor__Plugin::x_15(args);	break;
        case 16: delete (KTextEditor::Plugin*)xself;	break;
    }
}
class x_KTextEditor__Range : public KTextEditor::Range, public __internal_SmokeClass {
    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) {
        // KTextEditor::Range* Range()
        x_KTextEditor__Range* xret = new x_KTextEditor__Range();
        x[0].s_class = (void*)xret;
    }
    explicit x_KTextEditor__Range() : Range() {}
    static void x_2(Smoke::Stack x) {
        // KTextEditor::Range* Range(const KTextEditor::Cursor&, const KTextEditor::Cursor&)
        x_KTextEditor__Range* xret = new x_KTextEditor__Range(*(const KTextEditor::Cursor*)x[1].s_class,*(const KTextEditor::Cursor*)x[2].s_class);
        x[0].s_class = (void*)xret;
    }
    explicit x_KTextEditor__Range(const KTextEditor::Cursor& x1, const KTextEditor::Cursor& x2) : Range(x1, x2) {}
    static void x_3(Smoke::Stack x) {
        // KTextEditor::Range* Range(const KTextEditor::Cursor&, int)
        x_KTextEditor__Range* xret = new x_KTextEditor__Range(*(const KTextEditor::Cursor*)x[1].s_class,(int)x[2].s_int);
        x[0].s_class = (void*)xret;
    }
    explicit x_KTextEditor__Range(const KTextEditor::Cursor& x1, int x2) : Range(x1, x2) {}
    static void x_4(Smoke::Stack x) {
        // KTextEditor::Range* Range(const KTextEditor::Cursor&, int, int)
        x_KTextEditor__Range* xret = new x_KTextEditor__Range(*(const KTextEditor::Cursor*)x[1].s_class,(int)x[2].s_int,(int)x[3].s_int);
        x[0].s_class = (void*)xret;
    }
    explicit x_KTextEditor__Range(const KTextEditor::Cursor& x1, int x2, int x3) : Range(x1, x2, x3) {}
    static void x_5(Smoke::Stack x) {
        // KTextEditor::Range* Range(int, int, int, int)
        x_KTextEditor__Range* xret = new x_KTextEditor__Range((int)x[1].s_int,(int)x[2].s_int,(int)x[3].s_int,(int)x[4].s_int);
        x[0].s_class = (void*)xret;
    }
    explicit x_KTextEditor__Range(int x1, int x2, int x3, int x4) : Range(x1, x2, x3, x4) {}
    static void x_6(Smoke::Stack x) {
        // KTextEditor::Range* Range(const KTextEditor::Range&)
        x_KTextEditor__Range* xret = new x_KTextEditor__Range(*(const KTextEditor::Range*)x[1].s_class);
        x[0].s_class = (void*)xret;
    }
    explicit x_KTextEditor__Range(const KTextEditor::Range& x1) : Range(x1) {}
    void x_7(Smoke::Stack x) {
        // virtual bool isValid() const
        if (dynamic_cast<__internal_SmokeClass*>(static_cast<KTextEditor::Range*>(this))) {
            bool xret = ((const x_KTextEditor__Range*)this)->KTextEditor::Range::isValid();
            x[0].s_bool = xret;
        } else {
            bool xret = ((const x_KTextEditor__Range*)this)->isValid();
            x[0].s_bool = xret;
        }
    }
    static void x_8(Smoke::Stack x) {
        // static KTextEditor::Range invalid()
        KTextEditor::Range xret = KTextEditor::Range::invalid();
        x[0].s_class = (void*)new KTextEditor::Range(xret);
    }
    void x_9(Smoke::Stack x) {
        // virtual bool isSmartRange() const
        if (dynamic_cast<__internal_SmokeClass*>(static_cast<KTextEditor::Range*>(this))) {
            bool xret = ((const x_KTextEditor__Range*)this)->KTextEditor::Range::isSmartRange();
            x[0].s_bool = xret;
        } else {
            bool xret = ((const x_KTextEditor__Range*)this)->isSmartRange();
            x[0].s_bool = xret;
        }
    }
    void x_10(Smoke::Stack x) {
        // virtual KTextEditor::SmartRange* toSmartRange() const
        if (dynamic_cast<__internal_SmokeClass*>(static_cast<KTextEditor::Range*>(this))) {
            KTextEditor::SmartRange* xret = ((const x_KTextEditor__Range*)this)->KTextEditor::Range::toSmartRange();
            x[0].s_class = (void*)xret;
        } else {
            KTextEditor::SmartRange* xret = ((const x_KTextEditor__Range*)this)->toSmartRange();
            x[0].s_class = (void*)xret;
        }
    }
    void x_11(Smoke::Stack x) {
        // KTextEditor::Cursor& start()
        KTextEditor::Cursor& xret = this->KTextEditor::Range::start();
        x[0].s_class = (void*)&xret;
    }
    void x_12(Smoke::Stack x) {
        // const KTextEditor::Cursor& start() const
        const KTextEditor::Cursor& xret = ((const x_KTextEditor__Range*)this)->KTextEditor::Range::start();
        x[0].s_class = (void*)&xret;
    }
    void x_13(Smoke::Stack x) {
        // KTextEditor::Cursor& end()
        KTextEditor::Cursor& xret = this->KTextEditor::Range::end();
        x[0].s_class = (void*)&xret;
    }
    void x_14(Smoke::Stack x) {
        // const KTextEditor::Cursor& end() const
        const KTextEditor::Cursor& xret = ((const x_KTextEditor__Range*)this)->KTextEditor::Range::end();
        x[0].s_class = (void*)&xret;
    }
    void x_15(Smoke::Stack x) {
        // void setBothLines(int)
        this->KTextEditor::Range::setBothLines((int)x[1].s_int);
        (void)x; // noop (for compiler warning)
    }
    void x_16(Smoke::Stack x) {
        // void setBothColumns(int)
        this->KTextEditor::Range::setBothColumns((int)x[1].s_int);
        (void)x; // noop (for compiler warning)
    }
    void x_17(Smoke::Stack x) {
        // virtual void setRange(const KTextEditor::Range&)
        if (dynamic_cast<__internal_SmokeClass*>(static_cast<KTextEditor::Range*>(this))) {
            this->KTextEditor::Range::setRange(*(const KTextEditor::Range*)x[1].s_class);
            (void)x; // noop (for compiler warning)
        } else {
            this->setRange(*(const KTextEditor::Range*)x[1].s_class);
            (void)x; // noop (for compiler warning)
        }
    }
    void x_18(Smoke::Stack x) {
        // void setRange(const KTextEditor::Cursor&, const KTextEditor::Cursor&)
        this->KTextEditor::Range::setRange(*(const KTextEditor::Cursor*)x[1].s_class,*(const KTextEditor::Cursor*)x[2].s_class);
        (void)x; // noop (for compiler warning)
    }
    void x_19(Smoke::Stack x) {
        // virtual bool expandToRange(const KTextEditor::Range&)
        if (dynamic_cast<__internal_SmokeClass*>(static_cast<KTextEditor::Range*>(this))) {
            bool xret = this->KTextEditor::Range::expandToRange(*(const KTextEditor::Range*)x[1].s_class);
            x[0].s_bool = xret;
        } else {
            bool xret = this->expandToRange(*(const KTextEditor::Range*)x[1].s_class);
            x[0].s_bool = xret;
        }
    }
    void x_20(Smoke::Stack x) {
        // virtual bool confineToRange(const KTextEditor::Range&)
        if (dynamic_cast<__internal_SmokeClass*>(static_cast<KTextEditor::Range*>(this))) {
            bool xret = this->KTextEditor::Range::confineToRange(*(const KTextEditor::Range*)x[1].s_class);
            x[0].s_bool = xret;
        } else {
            bool xret = this->confineToRange(*(const KTextEditor::Range*)x[1].s_class);
            x[0].s_bool = xret;
        }
    }
    void x_21(Smoke::Stack x) {
        // bool onSingleLine() const
        bool xret = ((const x_KTextEditor__Range*)this)->KTextEditor::Range::onSingleLine();
        x[0].s_bool = xret;
    }
    void x_22(Smoke::Stack x) {
        // int numberOfLines() const
        int xret = ((const x_KTextEditor__Range*)this)->KTextEditor::Range::numberOfLines();
        x[0].s_int = xret;
    }
    void x_23(Smoke::Stack x) {
        // int columnWidth() const
        int xret = ((const x_KTextEditor__Range*)this)->KTextEditor::Range::columnWidth();
        x[0].s_int = xret;
    }
    void x_24(Smoke::Stack x) {
        // bool isEmpty() const
        bool xret = ((const x_KTextEditor__Range*)this)->KTextEditor::Range::isEmpty();
        x[0].s_bool = xret;
    }
    void x_25(Smoke::Stack x) {
        // bool contains(const KTextEditor::Range&) const
        bool xret = ((const x_KTextEditor__Range*)this)->KTextEditor::Range::contains(*(const KTextEditor::Range*)x[1].s_class);
        x[0].s_bool = xret;
    }
    void x_26(Smoke::Stack x) {
        // bool contains(const KTextEditor::Cursor&) const
        bool xret = ((const x_KTextEditor__Range*)this)->KTextEditor::Range::contains(*(const KTextEditor::Cursor*)x[1].s_class);
        x[0].s_bool = xret;
    }
    void x_27(Smoke::Stack x) {
        // bool containsLine(int) const
        bool xret = ((const x_KTextEditor__Range*)this)->KTextEditor::Range::containsLine((int)x[1].s_int);
        x[0].s_bool = xret;
    }
    void x_28(Smoke::Stack x) {
        // bool containsColumn(int) const
        bool xret = ((const x_KTextEditor__Range*)this)->KTextEditor::Range::containsColumn((int)x[1].s_int);
        x[0].s_bool = xret;
    }
    void x_29(Smoke::Stack x) {
        // bool overlaps(const KTextEditor::Range&) const
        bool xret = ((const x_KTextEditor__Range*)this)->KTextEditor::Range::overlaps(*(const KTextEditor::Range*)x[1].s_class);
        x[0].s_bool = xret;
    }
    void x_30(Smoke::Stack x) {
        // bool overlapsLine(int) const
        bool xret = ((const x_KTextEditor__Range*)this)->KTextEditor::Range::overlapsLine((int)x[1].s_int);
        x[0].s_bool = xret;
    }
    void x_31(Smoke::Stack x) {
        // bool overlapsColumn(int) const
        bool xret = ((const x_KTextEditor__Range*)this)->KTextEditor::Range::overlapsColumn((int)x[1].s_int);
        x[0].s_bool = xret;
    }
    void x_32(Smoke::Stack x) {
        // int positionRelativeToCursor(const KTextEditor::Cursor&) const
        int xret = ((const x_KTextEditor__Range*)this)->KTextEditor::Range::positionRelativeToCursor(*(const KTextEditor::Cursor*)x[1].s_class);
        x[0].s_int = xret;
    }
    void x_33(Smoke::Stack x) {
        // int positionRelativeToLine(int) const
        int xret = ((const x_KTextEditor__Range*)this)->KTextEditor::Range::positionRelativeToLine((int)x[1].s_int);
        x[0].s_int = xret;
    }
    void x_34(Smoke::Stack x) {
        // bool boundaryAtCursor(const KTextEditor::Cursor&) const
        bool xret = ((const x_KTextEditor__Range*)this)->KTextEditor::Range::boundaryAtCursor(*(const KTextEditor::Cursor*)x[1].s_class);
        x[0].s_bool = xret;
    }
    void x_35(Smoke::Stack x) {
        // bool boundaryOnLine(int) const
        bool xret = ((const x_KTextEditor__Range*)this)->KTextEditor::Range::boundaryOnLine((int)x[1].s_int);
        x[0].s_bool = xret;
    }
    void x_36(Smoke::Stack x) {
        // KTextEditor::Range intersect(const KTextEditor::Range&) const
        KTextEditor::Range xret = ((const x_KTextEditor__Range*)this)->KTextEditor::Range::intersect(*(const KTextEditor::Range*)x[1].s_class);
        x[0].s_class = (void*)new KTextEditor::Range(xret);
    }
    void x_37(Smoke::Stack x) {
        // KTextEditor::Range encompass(const KTextEditor::Range&) const
        KTextEditor::Range xret = ((const x_KTextEditor__Range*)this)->KTextEditor::Range::encompass(*(const KTextEditor::Range*)x[1].s_class);
        x[0].s_class = (void*)new KTextEditor::Range(xret);
    }
    void x_38(Smoke::Stack x) {
        // KTextEditor::Range& operator=(const KTextEditor::Range&)
        KTextEditor::Range& xret = this->KTextEditor::Range::operator=(*(const KTextEditor::Range*)x[1].s_class);
        x[0].s_class = (void*)&xret;
    }
    static void x_39(Smoke::Stack x) {
        // KTextEditor::Range* Range(KTextEditor::Cursor*, KTextEditor::Cursor*)
        x_KTextEditor__Range* xret = new x_KTextEditor__Range((KTextEditor::Cursor*)x[1].s_class,(KTextEditor::Cursor*)x[2].s_class);
        x[0].s_class = (void*)xret;
    }
    explicit x_KTextEditor__Range(KTextEditor::Cursor* x1, KTextEditor::Cursor* x2) : Range(x1, x2) {}
    void x_40(Smoke::Stack x) {
        // virtual void rangeChanged(KTextEditor::Cursor*, const KTextEditor::Range&)
        if (dynamic_cast<__internal_SmokeClass*>(static_cast<KTextEditor::Range*>(this))) {
            this->KTextEditor::Range::rangeChanged((KTextEditor::Cursor*)x[1].s_class,*(const KTextEditor::Range*)x[2].s_class);
            (void)x; // noop (for compiler warning)
        } else {
            this->rangeChanged((KTextEditor::Cursor*)x[1].s_class,*(const KTextEditor::Range*)x[2].s_class);
            (void)x; // noop (for compiler warning)
        }
    }
    void x_41(Smoke::Stack x) {
        // KTextEditor::Cursor* m_start
        x[0].s_class = (void*)this->KTextEditor::Range::m_start;
    }
    void x_42(Smoke::Stack x) {
        // KTextEditor::Cursor* m_start=
        this->KTextEditor::Range::m_start = (KTextEditor::Cursor*)x[1].s_class;
    }
    void x_43(Smoke::Stack x) {
        // KTextEditor::Cursor* m_end
        x[0].s_class = (void*)this->KTextEditor::Range::m_end;
    }
    void x_44(Smoke::Stack x) {
        // KTextEditor::Cursor* m_end=
        this->KTextEditor::Range::m_end = (KTextEditor::Cursor*)x[1].s_class;
    }
    virtual bool isValid() const {
        Smoke::StackItem x[1];
        if (this->_binding->callMethod(638, (void*)this, x)) return (bool)x[0].s_bool;
        return this->KTextEditor::Range::isValid();
    }
    virtual bool isSmartRange() const {
        Smoke::StackItem x[1];
        if (this->_binding->callMethod(640, (void*)this, x)) return (bool)x[0].s_bool;
        return this->KTextEditor::Range::isSmartRange();
    }
    virtual KTextEditor::SmartRange* toSmartRange() const {
        Smoke::StackItem x[1];
        if (this->_binding->callMethod(641, (void*)this, x)) return (KTextEditor::SmartRange*)x[0].s_class;
        return this->KTextEditor::Range::toSmartRange();
    }
    virtual void setRange(const KTextEditor::Range& x1) {
        Smoke::StackItem x[2];
        x[1].s_class = (void*)&x1;
        if (this->_binding->callMethod(648, (void*)this, x)) return;
        this->KTextEditor::Range::setRange(x1);
    }
    virtual bool expandToRange(const KTextEditor::Range& x1) {
        Smoke::StackItem x[2];
        x[1].s_class = (void*)&x1;
        if (this->_binding->callMethod(650, (void*)this, x)) return (bool)x[0].s_bool;
        return this->KTextEditor::Range::expandToRange(x1);
    }
    virtual bool confineToRange(const KTextEditor::Range& x1) {
        Smoke::StackItem x[2];
        x[1].s_class = (void*)&x1;
        if (this->_binding->callMethod(651, (void*)this, x)) return (bool)x[0].s_bool;
        return this->KTextEditor::Range::confineToRange(x1);
    }
    virtual void rangeChanged(KTextEditor::Cursor* x1, const KTextEditor::Range& x2) {
        Smoke::StackItem x[3];
        x[1].s_class = (void*)x1;
        x[2].s_class = (void*)&x2;
        if (this->_binding->callMethod(671, (void*)this, x)) return;
        this->KTextEditor::Range::rangeChanged(x1, x2);
    }
    ~x_KTextEditor__Range() { this->_binding->deleted(51, (void*)this); }
};
void xcall_KTextEditor__Range(Smoke::Index xi, void *obj, Smoke::Stack args) {
    x_KTextEditor__Range *xself = (x_KTextEditor__Range*)obj;
    switch(xi) {
        case 0: xself->x_0(args);	break;
        case 1: x_KTextEditor__Range::x_1(args);	break;
        case 2: x_KTextEditor__Range::x_2(args);	break;
        case 3: x_KTextEditor__Range::x_3(args);	break;
        case 4: x_KTextEditor__Range::x_4(args);	break;
        case 5: x_KTextEditor__Range::x_5(args);	break;
        case 6: x_KTextEditor__Range::x_6(args);	break;
        case 7: xself->x_7(args);	break;
        case 8: x_KTextEditor__Range::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: 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: xself->x_32(args);	break;
        case 33: xself->x_33(args);	break;
        case 34: xself->x_34(args);	break;
        case 35: xself->x_35(args);	break;
        case 36: xself->x_36(args);	break;
        case 37: xself->x_37(args);	break;
        case 38: xself->x_38(args);	break;
        case 39: x_KTextEditor__Range::x_39(args);	break;
        case 40: xself->x_40(args);	break;
        case 41: xself->x_41(args);	break;
        case 42: xself->x_42(args);	break;
        case 43: xself->x_43(args);	break;
        case 44: xself->x_44(args);	break;
        case 45: delete (KTextEditor::Range*)xself;	break;
    }
}
class x_KTextEditor__RangeCommand : public KTextEditor::RangeCommand, 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 bool exec(KTextEditor::View*, const QString&, QString&, const KTextEditor::Range&) = 0
        bool xret = this->exec((KTextEditor::View*)x[1].s_class,*(const QString*)x[2].s_class,*(QString*)x[3].s_class,*(const KTextEditor::Range*)x[4].s_class);
        x[0].s_bool = xret;
    }
    void x_2(Smoke::Stack x) {
        // virtual bool supportsRange(const QString&) = 0
        bool xret = this->supportsRange(*(const QString*)x[1].s_class);
        x[0].s_bool = xret;
    }
    static void x_3(Smoke::Stack x) {
        // KTextEditor::RangeCommand* RangeCommand()
        x_KTextEditor__RangeCommand* xret = new x_KTextEditor__RangeCommand();
        x[0].s_class = (void*)xret;
    }
    explicit x_KTextEditor__RangeCommand() : RangeCommand() {}
    static void x_4(Smoke::Stack x) {
        // KTextEditor::RangeCommand* RangeCommand(const KTextEditor::RangeCommand&)
        x_KTextEditor__RangeCommand* xret = new x_KTextEditor__RangeCommand(*(const KTextEditor::RangeCommand*)x[1].s_class);
        x[0].s_class = (void*)xret;
    }
    explicit x_KTextEditor__RangeCommand(const KTextEditor::RangeCommand& x1) : RangeCommand(x1) {}
    virtual bool exec(KTextEditor::View* x1, const QString& x2, QString& x3, const KTextEditor::Range& x4) {
        Smoke::StackItem x[5];
        x[1].s_class = (void*)x1;
        x[2].s_class = (void*)&x2;
        x[3].s_class = (void*)&x3;
        x[4].s_class = (void*)&x4;
        this->_binding->callMethod(677, (void*)this, x, true /*pure virtual*/);
        return (bool)x[0].s_bool;
    }
    virtual bool supportsRange(const QString& x1) {
        Smoke::StackItem x[2];
        x[1].s_class = (void*)&x1;
        this->_binding->callMethod(678, (void*)this, x, true /*pure virtual*/);
        return (bool)x[0].s_bool;
    }
    ~x_KTextEditor__RangeCommand() { this->_binding->deleted(52, (void*)this); }
};
void xcall_KTextEditor__RangeCommand(Smoke::Index xi, void *obj, Smoke::Stack args) {
    x_KTextEditor__RangeCommand *xself = (x_KTextEditor__RangeCommand*)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_KTextEditor__RangeCommand::x_3(args);	break;
        case 4: x_KTextEditor__RangeCommand::x_4(args);	break;
        case 5: delete (KTextEditor::RangeCommand*)xself;	break;
    }
}

}
