//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__SearchInterface : public KTextEditor::SearchInterface, 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::SearchInterface* SearchInterface()
        x_KTextEditor__SearchInterface* xret = new x_KTextEditor__SearchInterface();
        x[0].s_class = (void*)xret;
    }
    explicit x_KTextEditor__SearchInterface() : SearchInterface() {}
    void x_2(Smoke::Stack x) {
        // virtual QVector<KTextEditor::Range> searchText(const KTextEditor::Range&, const QString&, const QFlags<KTextEditor::Search::SearchOptionsEnum>) = 0
        QVector<KTextEditor::Range> xret = this->searchText(*(const KTextEditor::Range*)x[1].s_class,*(const QString*)x[2].s_class,(const QFlags<KTextEditor::Search::SearchOptionsEnum>)x[3].s_uint);
        x[0].s_class = (void*)new QVector<KTextEditor::Range>(xret);
    }
    void x_3(Smoke::Stack x) {
        // virtual QFlags<KTextEditor::Search::SearchOptionsEnum> supportedSearchOptions() const = 0
        QFlags<KTextEditor::Search::SearchOptionsEnum> xret = ((const x_KTextEditor__SearchInterface*)this)->supportedSearchOptions();
        x[0].s_uint = (uint)xret;
    }
    static void x_4(Smoke::Stack x) {
        // KTextEditor::SearchInterface* SearchInterface(const KTextEditor::SearchInterface&)
        x_KTextEditor__SearchInterface* xret = new x_KTextEditor__SearchInterface(*(const KTextEditor::SearchInterface*)x[1].s_class);
        x[0].s_class = (void*)xret;
    }
    explicit x_KTextEditor__SearchInterface(const KTextEditor::SearchInterface& x1) : SearchInterface(x1) {}
    void x_5(Smoke::Stack x) {
        // QVector<KTextEditor::Range> searchText(const KTextEditor::Range&, const QString&)
        QVector<KTextEditor::Range> xret = this->searchText(*(const KTextEditor::Range*)x[1].s_class,*(const QString*)x[2].s_class,(const QFlags<KTextEditor::Search::SearchOptionsEnum>)KTextEditor::Search::Default);
        x[0].s_class = (void*)new QVector<KTextEditor::Range>(xret);
    }
    virtual QVector<KTextEditor::Range> searchText(const KTextEditor::Range& x1, const QString& x2, const QFlags<KTextEditor::Search::SearchOptionsEnum> x3) {
        Smoke::StackItem x[4];
        x[1].s_class = (void*)&x1;
        x[2].s_class = (void*)&x2;
        x[3].s_uint = (uint)x3;
        this->_binding->callMethod(683, (void*)this, x, true /*pure virtual*/);
        QVector<KTextEditor::Range>* xptr = (QVector<KTextEditor::Range>*)x[0].s_class;
        QVector<KTextEditor::Range> xret(*xptr);
        delete xptr;
        return xret;
    }
    virtual QFlags<KTextEditor::Search::SearchOptionsEnum> supportedSearchOptions() const {
        Smoke::StackItem x[1];
        this->_binding->callMethod(684, (void*)this, x, true /*pure virtual*/);
        return (QFlags<KTextEditor::Search::SearchOptionsEnum>)x[0].s_uint;
    }
    ~x_KTextEditor__SearchInterface() { this->_binding->deleted(53, (void*)this); }
};
void xcall_KTextEditor__SearchInterface(Smoke::Index xi, void *obj, Smoke::Stack args) {
    x_KTextEditor__SearchInterface *xself = (x_KTextEditor__SearchInterface*)obj;
    switch(xi) {
        case 0: xself->x_0(args);	break;
        case 1: x_KTextEditor__SearchInterface::x_1(args);	break;
        case 2: xself->x_2(args);	break;
        case 3: xself->x_3(args);	break;
        case 4: x_KTextEditor__SearchInterface::x_4(args);	break;
        case 5: xself->x_5(args);	break;
        case 6: delete (KTextEditor::SearchInterface*)xself;	break;
    }
}
class x_KTextEditor__SessionConfigInterface : public KTextEditor::SessionConfigInterface, 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::SessionConfigInterface* SessionConfigInterface()
        x_KTextEditor__SessionConfigInterface* xret = new x_KTextEditor__SessionConfigInterface();
        x[0].s_class = (void*)xret;
    }
    explicit x_KTextEditor__SessionConfigInterface() : SessionConfigInterface() {}
    void x_2(Smoke::Stack x) {
        // virtual void readSessionConfig(const KConfigGroup&) = 0
        this->readSessionConfig(*(const KConfigGroup*)x[1].s_class);
        (void)x; // noop (for compiler warning)
    }
    void x_3(Smoke::Stack x) {
        // virtual void writeSessionConfig(KConfigGroup&) = 0
        this->writeSessionConfig(*(KConfigGroup*)x[1].s_class);
        (void)x; // noop (for compiler warning)
    }
    static void x_4(Smoke::Stack x) {
        // KTextEditor::SessionConfigInterface* SessionConfigInterface(const KTextEditor::SessionConfigInterface&)
        x_KTextEditor__SessionConfigInterface* xret = new x_KTextEditor__SessionConfigInterface(*(const KTextEditor::SessionConfigInterface*)x[1].s_class);
        x[0].s_class = (void*)xret;
    }
    explicit x_KTextEditor__SessionConfigInterface(const KTextEditor::SessionConfigInterface& x1) : SessionConfigInterface(x1) {}
    virtual void readSessionConfig(const KConfigGroup& x1) {
        Smoke::StackItem x[2];
        x[1].s_class = (void*)&x1;
        this->_binding->callMethod(689, (void*)this, x, true /*pure virtual*/);
    }
    virtual void writeSessionConfig(KConfigGroup& x1) {
        Smoke::StackItem x[2];
        x[1].s_class = (void*)&x1;
        this->_binding->callMethod(690, (void*)this, x, true /*pure virtual*/);
    }
    ~x_KTextEditor__SessionConfigInterface() { this->_binding->deleted(54, (void*)this); }
};
void xcall_KTextEditor__SessionConfigInterface(Smoke::Index xi, void *obj, Smoke::Stack args) {
    x_KTextEditor__SessionConfigInterface *xself = (x_KTextEditor__SessionConfigInterface*)obj;
    switch(xi) {
        case 0: xself->x_0(args);	break;
        case 1: x_KTextEditor__SessionConfigInterface::x_1(args);	break;
        case 2: xself->x_2(args);	break;
        case 3: xself->x_3(args);	break;
        case 4: x_KTextEditor__SessionConfigInterface::x_4(args);	break;
        case 5: delete (KTextEditor::SessionConfigInterface*)xself;	break;
    }
}
class x_KTextEditor__SmartCursor : public KTextEditor::SmartCursor, 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 isSmartCursor() const
        if (dynamic_cast<__internal_SmokeClass*>(static_cast<KTextEditor::SmartCursor*>(this))) {
            bool xret = ((const x_KTextEditor__SmartCursor*)this)->KTextEditor::SmartCursor::isSmartCursor();
            x[0].s_bool = xret;
        } else {
            bool xret = ((const x_KTextEditor__SmartCursor*)this)->isSmartCursor();
            x[0].s_bool = xret;
        }
    }
    void x_2(Smoke::Stack x) {
        // virtual KTextEditor::SmartCursor* toSmartCursor() const
        if (dynamic_cast<__internal_SmokeClass*>(static_cast<KTextEditor::SmartCursor*>(this))) {
            KTextEditor::SmartCursor* xret = ((const x_KTextEditor__SmartCursor*)this)->KTextEditor::SmartCursor::toSmartCursor();
            x[0].s_class = (void*)xret;
        } else {
            KTextEditor::SmartCursor* xret = ((const x_KTextEditor__SmartCursor*)this)->toSmartCursor();
            x[0].s_class = (void*)xret;
        }
    }
    void x_3(Smoke::Stack x) {
        // KTextEditor::SmartRange* smartRange() const
        KTextEditor::SmartRange* xret = ((const x_KTextEditor__SmartCursor*)this)->KTextEditor::SmartCursor::smartRange();
        x[0].s_class = (void*)xret;
    }
    void x_4(Smoke::Stack x) {
        // KTextEditor::Document* document() const
        KTextEditor::Document* xret = ((const x_KTextEditor__SmartCursor*)this)->KTextEditor::SmartCursor::document();
        x[0].s_class = (void*)xret;
    }
    void x_5(Smoke::Stack x) {
        // virtual bool atEndOfLine() const
        if (dynamic_cast<__internal_SmokeClass*>(static_cast<KTextEditor::SmartCursor*>(this))) {
            bool xret = ((const x_KTextEditor__SmartCursor*)this)->KTextEditor::SmartCursor::atEndOfLine();
            x[0].s_bool = xret;
        } else {
            bool xret = ((const x_KTextEditor__SmartCursor*)this)->atEndOfLine();
            x[0].s_bool = xret;
        }
    }
    void x_6(Smoke::Stack x) {
        // virtual bool atEndOfDocument() const
        if (dynamic_cast<__internal_SmokeClass*>(static_cast<KTextEditor::SmartCursor*>(this))) {
            bool xret = ((const x_KTextEditor__SmartCursor*)this)->KTextEditor::SmartCursor::atEndOfDocument();
            x[0].s_bool = xret;
        } else {
            bool xret = ((const x_KTextEditor__SmartCursor*)this)->atEndOfDocument();
            x[0].s_bool = xret;
        }
    }
    void x_7(Smoke::Stack x) {
        // virtual bool isValid() const
        if (dynamic_cast<__internal_SmokeClass*>(static_cast<KTextEditor::SmartCursor*>(this))) {
            bool xret = ((const x_KTextEditor__SmartCursor*)this)->KTextEditor::SmartCursor::isValid();
            x[0].s_bool = xret;
        } else {
            bool xret = ((const x_KTextEditor__SmartCursor*)this)->isValid();
            x[0].s_bool = xret;
        }
    }
    void x_8(Smoke::Stack x) {
        // QChar character() const
        QChar xret = ((const x_KTextEditor__SmartCursor*)this)->KTextEditor::SmartCursor::character();
        x[0].s_class = (void*)new QChar(xret);
    }
    void x_9(Smoke::Stack x) {
        // virtual bool insertText(const QStringList&, bool)
        if (dynamic_cast<__internal_SmokeClass*>(static_cast<KTextEditor::SmartCursor*>(this))) {
            bool xret = this->KTextEditor::SmartCursor::insertText(*(const QStringList*)x[1].s_class,(bool)x[2].s_bool);
            x[0].s_bool = xret;
        } else {
            bool xret = this->insertText(*(const QStringList*)x[1].s_class,(bool)x[2].s_bool);
            x[0].s_bool = xret;
        }
    }
    void x_10(Smoke::Stack x) {
        // virtual bool advance(int, KTextEditor::SmartCursor::AdvanceMode)
        if (dynamic_cast<__internal_SmokeClass*>(static_cast<KTextEditor::SmartCursor*>(this))) {
            bool xret = this->KTextEditor::SmartCursor::advance((int)x[1].s_int,(KTextEditor::SmartCursor::AdvanceMode)x[2].s_enum);
            x[0].s_bool = xret;
        } else {
            bool xret = this->advance((int)x[1].s_int,(KTextEditor::SmartCursor::AdvanceMode)x[2].s_enum);
            x[0].s_bool = xret;
        }
    }
    void x_11(Smoke::Stack x) {
        // KTextEditor::SmartCursor::InsertBehavior insertBehavior() const
        KTextEditor::SmartCursor::InsertBehavior xret = ((const x_KTextEditor__SmartCursor*)this)->KTextEditor::SmartCursor::insertBehavior();
        x[0].s_enum = xret;
    }
    void x_12(Smoke::Stack x) {
        // void setInsertBehavior(KTextEditor::SmartCursor::InsertBehavior)
        this->KTextEditor::SmartCursor::setInsertBehavior((KTextEditor::SmartCursor::InsertBehavior)x[1].s_enum);
        (void)x; // noop (for compiler warning)
    }
    void x_13(Smoke::Stack x) {
        // virtual bool hasNotifier() const = 0
        bool xret = ((const x_KTextEditor__SmartCursor*)this)->hasNotifier();
        x[0].s_bool = xret;
    }
    void x_14(Smoke::Stack x) {
        // virtual KTextEditor::SmartCursorNotifier* notifier() = 0
        KTextEditor::SmartCursorNotifier* xret = this->notifier();
        x[0].s_class = (void*)xret;
    }
    void x_15(Smoke::Stack x) {
        // virtual void deleteNotifier() = 0
        this->deleteNotifier();
        (void)x; // noop (for compiler warning)
    }
    void x_16(Smoke::Stack x) {
        // virtual KTextEditor::SmartCursorWatcher* watcher() const = 0
        KTextEditor::SmartCursorWatcher* xret = ((const x_KTextEditor__SmartCursor*)this)->watcher();
        x[0].s_class = (void*)xret;
    }
    void x_17(Smoke::Stack x) {
        // virtual void setWatcher(KTextEditor::SmartCursorWatcher*) = 0
        this->setWatcher((KTextEditor::SmartCursorWatcher*)x[1].s_class);
        (void)x; // noop (for compiler warning)
    }
    void x_18(Smoke::Stack x) {
        // KTextEditor::SmartCursor& operator=(const KTextEditor::SmartCursor&)
        KTextEditor::SmartCursor& xret = this->KTextEditor::SmartCursor::operator=(*(const KTextEditor::SmartCursor*)x[1].s_class);
        x[0].s_class = (void*)&xret;
    }
    static void x_19(Smoke::Stack x) {
        // KTextEditor::SmartCursor* SmartCursor(const KTextEditor::Cursor&, KTextEditor::Document*, KTextEditor::SmartCursor::InsertBehavior)
        x_KTextEditor__SmartCursor* xret = new x_KTextEditor__SmartCursor(*(const KTextEditor::Cursor*)x[1].s_class,(KTextEditor::Document*)x[2].s_class,(KTextEditor::SmartCursor::InsertBehavior)x[3].s_enum);
        x[0].s_class = (void*)xret;
    }
    explicit x_KTextEditor__SmartCursor(const KTextEditor::Cursor& x1, KTextEditor::Document* x2, KTextEditor::SmartCursor::InsertBehavior x3) : SmartCursor(x1, x2, x3) {}
    void x_20(Smoke::Stack x) {
        // bool insertText(const QStringList&)
        bool xret = this->KTextEditor::SmartCursor::insertText(*(const QStringList*)x[1].s_class,(bool)false);
        x[0].s_bool = xret;
    }
    void x_21(Smoke::Stack x) {
        // bool advance(int)
        bool xret = this->KTextEditor::SmartCursor::advance((int)x[1].s_int,(KTextEditor::SmartCursor::AdvanceMode)KTextEditor::SmartCursor::ByCharacter);
        x[0].s_bool = xret;
    }
    void x_22(Smoke::Stack x) {
        // void setWatcher()
        this->setWatcher((KTextEditor::SmartCursorWatcher*)0L);
        (void)x; // noop (for compiler warning)
    }
    static void x_23(Smoke::Stack x) {
        x[0].s_enum = (long)KTextEditor::SmartCursor::ByCharacter;
    }
    static void x_24(Smoke::Stack x) {
        x[0].s_enum = (long)KTextEditor::SmartCursor::ByCursorPosition;
    }
    static void x_25(Smoke::Stack x) {
        x[0].s_enum = (long)KTextEditor::SmartCursor::StayOnInsert;
    }
    static void x_26(Smoke::Stack x) {
        x[0].s_enum = (long)KTextEditor::SmartCursor::MoveOnInsert;
    }
    virtual bool isSmartCursor() const {
        Smoke::StackItem x[1];
        if (this->_binding->callMethod(693, (void*)this, x)) return (bool)x[0].s_bool;
        return this->KTextEditor::SmartCursor::isSmartCursor();
    }
    virtual KTextEditor::SmartCursor* toSmartCursor() const {
        Smoke::StackItem x[1];
        if (this->_binding->callMethod(694, (void*)this, x)) return (KTextEditor::SmartCursor*)x[0].s_class;
        return this->KTextEditor::SmartCursor::toSmartCursor();
    }
    virtual bool atEndOfLine() const {
        Smoke::StackItem x[1];
        if (this->_binding->callMethod(697, (void*)this, x)) return (bool)x[0].s_bool;
        return this->KTextEditor::SmartCursor::atEndOfLine();
    }
    virtual bool atEndOfDocument() const {
        Smoke::StackItem x[1];
        if (this->_binding->callMethod(698, (void*)this, x)) return (bool)x[0].s_bool;
        return this->KTextEditor::SmartCursor::atEndOfDocument();
    }
    virtual bool isValid() const {
        Smoke::StackItem x[1];
        if (this->_binding->callMethod(699, (void*)this, x)) return (bool)x[0].s_bool;
        return this->KTextEditor::SmartCursor::isValid();
    }
    virtual bool insertText(const QStringList& x1, bool x2) {
        Smoke::StackItem x[3];
        x[1].s_class = (void*)&x1;
        x[2].s_bool = x2;
        if (this->_binding->callMethod(701, (void*)this, x)) return (bool)x[0].s_bool;
        return this->KTextEditor::SmartCursor::insertText(x1, x2);
    }
    virtual bool advance(int x1, KTextEditor::SmartCursor::AdvanceMode x2) {
        Smoke::StackItem x[3];
        x[1].s_int = x1;
        x[2].s_enum = x2;
        if (this->_binding->callMethod(702, (void*)this, x)) return (bool)x[0].s_bool;
        return this->KTextEditor::SmartCursor::advance(x1, x2);
    }
    virtual bool hasNotifier() const {
        Smoke::StackItem x[1];
        this->_binding->callMethod(705, (void*)this, x, true /*pure virtual*/);
        return (bool)x[0].s_bool;
    }
    virtual KTextEditor::SmartCursorNotifier* notifier() {
        Smoke::StackItem x[1];
        this->_binding->callMethod(706, (void*)this, x, true /*pure virtual*/);
        return (KTextEditor::SmartCursorNotifier*)x[0].s_class;
    }
    virtual void deleteNotifier() {
        Smoke::StackItem x[1];
        this->_binding->callMethod(707, (void*)this, x, true /*pure virtual*/);
    }
    virtual KTextEditor::SmartCursorWatcher* watcher() const {
        Smoke::StackItem x[1];
        this->_binding->callMethod(708, (void*)this, x, true /*pure virtual*/);
        return (KTextEditor::SmartCursorWatcher*)x[0].s_class;
    }
    virtual void setWatcher(KTextEditor::SmartCursorWatcher* x1) {
        Smoke::StackItem x[2];
        x[1].s_class = (void*)x1;
        this->_binding->callMethod(709, (void*)this, x, true /*pure virtual*/);
    }
    virtual void setPosition(const KTextEditor::Cursor& x1) {
        Smoke::StackItem x[2];
        x[1].s_class = (void*)&x1;
        if (this->_binding->callMethod(296, (void*)this, x)) return;
        this->KTextEditor::Cursor::setPosition(x1);
    }
    virtual int line() const {
        Smoke::StackItem x[1];
        if (this->_binding->callMethod(298, (void*)this, x)) return (int)x[0].s_int;
        return this->KTextEditor::Cursor::line();
    }
    virtual void setLine(int x1) {
        Smoke::StackItem x[2];
        x[1].s_int = x1;
        if (this->_binding->callMethod(299, (void*)this, x)) return;
        this->KTextEditor::Cursor::setLine(x1);
    }
    virtual void setColumn(int x1) {
        Smoke::StackItem x[2];
        x[1].s_int = x1;
        if (this->_binding->callMethod(301, (void*)this, x)) return;
        this->KTextEditor::Cursor::setColumn(x1);
    }
    virtual void setRange(KTextEditor::Range* x1) {
        Smoke::StackItem x[2];
        x[1].s_class = (void*)x1;
        if (this->_binding->callMethod(307, (void*)this, x)) return;
        this->KTextEditor::Cursor::setRange(x1);
    }
    static void xenum_operation(Smoke::EnumOperation xop, Smoke::Index xtype, void *&xdata, long &xvalue) {
        switch(xtype) {
        case 84: //KTextEditor::SmartCursor::AdvanceMode
            switch(xop) {
                case Smoke::EnumNew:
                    xdata = (void*)new KTextEditor::SmartCursor::AdvanceMode;
                    break;
                case Smoke::EnumDelete:
                    delete (KTextEditor::SmartCursor::AdvanceMode*)xdata;
                    break;
                case Smoke::EnumFromLong:
                    *(KTextEditor::SmartCursor::AdvanceMode*)xdata = (KTextEditor::SmartCursor::AdvanceMode)xvalue;
                    break;
                case Smoke::EnumToLong:
                    xvalue = (long)*(KTextEditor::SmartCursor::AdvanceMode*)xdata;
                    break;
            }
            break;
        case 85: //KTextEditor::SmartCursor::InsertBehavior
            switch(xop) {
                case Smoke::EnumNew:
                    xdata = (void*)new KTextEditor::SmartCursor::InsertBehavior;
                    break;
                case Smoke::EnumDelete:
                    delete (KTextEditor::SmartCursor::InsertBehavior*)xdata;
                    break;
                case Smoke::EnumFromLong:
                    *(KTextEditor::SmartCursor::InsertBehavior*)xdata = (KTextEditor::SmartCursor::InsertBehavior)xvalue;
                    break;
                case Smoke::EnumToLong:
                    xvalue = (long)*(KTextEditor::SmartCursor::InsertBehavior*)xdata;
                    break;
            }
            break;
        }
    }
    ~x_KTextEditor__SmartCursor() { this->_binding->deleted(55, (void*)this); }
};
void xenum_KTextEditor__SmartCursor(Smoke::EnumOperation xop, Smoke::Index xtype, void *&xdata, long &xvalue) {
    x_KTextEditor__SmartCursor::xenum_operation(xop, xtype, xdata, xvalue);
}
void xcall_KTextEditor__SmartCursor(Smoke::Index xi, void *obj, Smoke::Stack args) {
    x_KTextEditor__SmartCursor *xself = (x_KTextEditor__SmartCursor*)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: 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: 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: x_KTextEditor__SmartCursor::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: x_KTextEditor__SmartCursor::x_23(args);	break;
        case 24: x_KTextEditor__SmartCursor::x_24(args);	break;
        case 25: x_KTextEditor__SmartCursor::x_25(args);	break;
        case 26: x_KTextEditor__SmartCursor::x_26(args);	break;
        case 27: delete (KTextEditor::SmartCursor*)xself;	break;
    }
}
class x_KTextEditor__SmartCursorNotifier : public KTextEditor::SmartCursorNotifier, 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::SmartCursorNotifier*>(this))) {
            const QMetaObject* xret = ((const x_KTextEditor__SmartCursorNotifier*)this)->KTextEditor::SmartCursorNotifier::metaObject();
            x[0].s_class = (void*)xret;
        } else {
            const QMetaObject* xret = ((const x_KTextEditor__SmartCursorNotifier*)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::SmartCursorNotifier*>(this))) {
            void* xret = this->KTextEditor::SmartCursorNotifier::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::SmartCursorNotifier::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::SmartCursorNotifier::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::SmartCursorNotifier::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::SmartCursorNotifier::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::SmartCursorNotifier*>(this))) {
            int xret = this->KTextEditor::SmartCursorNotifier::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::SmartCursorNotifier* SmartCursorNotifier()
        x_KTextEditor__SmartCursorNotifier* xret = new x_KTextEditor__SmartCursorNotifier();
        x[0].s_class = (void*)xret;
    }
    explicit x_KTextEditor__SmartCursorNotifier() : SmartCursorNotifier() {}
    void x_9(Smoke::Stack x) {
        // bool wantsDirectChanges() const
        bool xret = ((const x_KTextEditor__SmartCursorNotifier*)this)->KTextEditor::SmartCursorNotifier::wantsDirectChanges();
        x[0].s_bool = xret;
    }
    void x_10(Smoke::Stack x) {
        // void setWantsDirectChanges(bool)
        this->KTextEditor::SmartCursorNotifier::setWantsDirectChanges((bool)x[1].s_bool);
        (void)x; // noop (for compiler warning)
    }
    void x_11(Smoke::Stack x) {
        // void positionChanged(KTextEditor::SmartCursor*)
        this->KTextEditor::SmartCursorNotifier::positionChanged((KTextEditor::SmartCursor*)x[1].s_class);
        (void)x; // noop (for compiler warning)
    }
    void x_12(Smoke::Stack x) {
        // void positionDeleted(KTextEditor::SmartCursor*)
        this->KTextEditor::SmartCursorNotifier::positionDeleted((KTextEditor::SmartCursor*)x[1].s_class);
        (void)x; // noop (for compiler warning)
    }
    void x_13(Smoke::Stack x) {
        // void characterDeleted(KTextEditor::SmartCursor*, bool)
        this->KTextEditor::SmartCursorNotifier::characterDeleted((KTextEditor::SmartCursor*)x[1].s_class,(bool)x[2].s_bool);
        (void)x; // noop (for compiler warning)
    }
    void x_14(Smoke::Stack x) {
        // void characterInserted(KTextEditor::SmartCursor*, bool)
        this->KTextEditor::SmartCursorNotifier::characterInserted((KTextEditor::SmartCursor*)x[1].s_class,(bool)x[2].s_bool);
        (void)x; // noop (for compiler warning)
    }
    void x_15(Smoke::Stack x) {
        // void deleted(KTextEditor::SmartCursor*)
        this->KTextEditor::SmartCursorNotifier::deleted((KTextEditor::SmartCursor*)x[1].s_class);
        (void)x; // noop (for compiler warning)
    }
    static void x_16(Smoke::Stack x) {
        // static QString tr(const char*)
        QString xret = KTextEditor::SmartCursorNotifier::tr((const char*)x[1].s_class,(const char*)0);
        x[0].s_class = (void*)new QString(xret);
    }
    static void x_17(Smoke::Stack x) {
        // static QString trUtf8(const char*)
        QString xret = KTextEditor::SmartCursorNotifier::trUtf8((const char*)x[1].s_class,(const char*)0);
        x[0].s_class = (void*)new QString(xret);
    }
    static void x_18(Smoke::Stack x) {
        // static const QMetaObject staticMetaObject
        x[0].s_class = (void*)&KTextEditor::SmartCursorNotifier::staticMetaObject;
    }
    virtual const QMetaObject* metaObject() const {
        Smoke::StackItem x[1];
        if (this->_binding->callMethod(720, (void*)this, x)) return (const QMetaObject*)x[0].s_class;
        return this->KTextEditor::SmartCursorNotifier::metaObject();
    }
    virtual void* qt_metacast(const char* x1) {
        Smoke::StackItem x[2];
        x[1].s_class = (void*)x1;
        if (this->_binding->callMethod(721, (void*)this, x)) return (void*)x[0].s_class;
        return this->KTextEditor::SmartCursorNotifier::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(726, (void*)this, x)) return (int)x[0].s_int;
        return this->KTextEditor::SmartCursorNotifier::qt_metacall(x1, x2, x3);
    }
    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__SmartCursorNotifier() { this->_binding->deleted(56, (void*)this); }
};
void xcall_KTextEditor__SmartCursorNotifier(Smoke::Index xi, void *obj, Smoke::Stack args) {
    x_KTextEditor__SmartCursorNotifier *xself = (x_KTextEditor__SmartCursorNotifier*)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__SmartCursorNotifier::x_3(args);	break;
        case 4: x_KTextEditor__SmartCursorNotifier::x_4(args);	break;
        case 5: x_KTextEditor__SmartCursorNotifier::x_5(args);	break;
        case 6: x_KTextEditor__SmartCursorNotifier::x_6(args);	break;
        case 7: xself->x_7(args);	break;
        case 8: x_KTextEditor__SmartCursorNotifier::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: x_KTextEditor__SmartCursorNotifier::x_16(args);	break;
        case 17: x_KTextEditor__SmartCursorNotifier::x_17(args);	break;
        case 18: x_KTextEditor__SmartCursorNotifier::x_18(args);	break;
        case 19: delete (KTextEditor::SmartCursorNotifier*)xself;	break;
    }
}

}
