//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__CodeCompletionInterface : public KTextEditor::CodeCompletionInterface, 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 isCompletionActive() const = 0
        bool xret = ((const x_KTextEditor__CodeCompletionInterface*)this)->isCompletionActive();
        x[0].s_bool = xret;
    }
    void x_2(Smoke::Stack x) {
        // virtual void startCompletion(const KTextEditor::Range&, KTextEditor::CodeCompletionModel*) = 0
        this->startCompletion(*(const KTextEditor::Range*)x[1].s_class,(KTextEditor::CodeCompletionModel*)x[2].s_class);
        (void)x; // noop (for compiler warning)
    }
    void x_3(Smoke::Stack x) {
        // virtual void abortCompletion() = 0
        this->abortCompletion();
        (void)x; // noop (for compiler warning)
    }
    void x_4(Smoke::Stack x) {
        // virtual void forceCompletion() = 0
        this->forceCompletion();
        (void)x; // noop (for compiler warning)
    }
    void x_5(Smoke::Stack x) {
        // virtual void registerCompletionModel(KTextEditor::CodeCompletionModel*) = 0
        this->registerCompletionModel((KTextEditor::CodeCompletionModel*)x[1].s_class);
        (void)x; // noop (for compiler warning)
    }
    void x_6(Smoke::Stack x) {
        // virtual void unregisterCompletionModel(KTextEditor::CodeCompletionModel*) = 0
        this->unregisterCompletionModel((KTextEditor::CodeCompletionModel*)x[1].s_class);
        (void)x; // noop (for compiler warning)
    }
    void x_7(Smoke::Stack x) {
        // virtual bool isAutomaticInvocationEnabled() const = 0
        bool xret = ((const x_KTextEditor__CodeCompletionInterface*)this)->isAutomaticInvocationEnabled();
        x[0].s_bool = xret;
    }
    void x_8(Smoke::Stack x) {
        // virtual void setAutomaticInvocationEnabled(bool) = 0
        this->setAutomaticInvocationEnabled((bool)x[1].s_bool);
        (void)x; // noop (for compiler warning)
    }
    static void x_9(Smoke::Stack x) {
        // KTextEditor::CodeCompletionInterface* CodeCompletionInterface()
        x_KTextEditor__CodeCompletionInterface* xret = new x_KTextEditor__CodeCompletionInterface();
        x[0].s_class = (void*)xret;
    }
    explicit x_KTextEditor__CodeCompletionInterface() : CodeCompletionInterface() {}
    static void x_10(Smoke::Stack x) {
        // KTextEditor::CodeCompletionInterface* CodeCompletionInterface(const KTextEditor::CodeCompletionInterface&)
        x_KTextEditor__CodeCompletionInterface* xret = new x_KTextEditor__CodeCompletionInterface(*(const KTextEditor::CodeCompletionInterface*)x[1].s_class);
        x[0].s_class = (void*)xret;
    }
    explicit x_KTextEditor__CodeCompletionInterface(const KTextEditor::CodeCompletionInterface& x1) : CodeCompletionInterface(x1) {}
    void x_11(Smoke::Stack x) {
        // void setAutomaticInvocationEnabled()
        this->setAutomaticInvocationEnabled((bool)true);
        (void)x; // noop (for compiler warning)
    }
    virtual bool isCompletionActive() const {
        Smoke::StackItem x[1];
        this->_binding->callMethod(110, (void*)this, x, true /*pure virtual*/);
        return (bool)x[0].s_bool;
    }
    virtual void startCompletion(const KTextEditor::Range& x1, KTextEditor::CodeCompletionModel* x2) {
        Smoke::StackItem x[3];
        x[1].s_class = (void*)&x1;
        x[2].s_class = (void*)x2;
        this->_binding->callMethod(111, (void*)this, x, true /*pure virtual*/);
    }
    virtual void abortCompletion() {
        Smoke::StackItem x[1];
        this->_binding->callMethod(112, (void*)this, x, true /*pure virtual*/);
    }
    virtual void forceCompletion() {
        Smoke::StackItem x[1];
        this->_binding->callMethod(113, (void*)this, x, true /*pure virtual*/);
    }
    virtual void registerCompletionModel(KTextEditor::CodeCompletionModel* x1) {
        Smoke::StackItem x[2];
        x[1].s_class = (void*)x1;
        this->_binding->callMethod(114, (void*)this, x, true /*pure virtual*/);
    }
    virtual void unregisterCompletionModel(KTextEditor::CodeCompletionModel* x1) {
        Smoke::StackItem x[2];
        x[1].s_class = (void*)x1;
        this->_binding->callMethod(115, (void*)this, x, true /*pure virtual*/);
    }
    virtual bool isAutomaticInvocationEnabled() const {
        Smoke::StackItem x[1];
        this->_binding->callMethod(116, (void*)this, x, true /*pure virtual*/);
        return (bool)x[0].s_bool;
    }
    virtual void setAutomaticInvocationEnabled(bool x1) {
        Smoke::StackItem x[2];
        x[1].s_bool = x1;
        this->_binding->callMethod(117, (void*)this, x, true /*pure virtual*/);
    }
    ~x_KTextEditor__CodeCompletionInterface() { this->_binding->deleted(25, (void*)this); }
};
void xcall_KTextEditor__CodeCompletionInterface(Smoke::Index xi, void *obj, Smoke::Stack args) {
    x_KTextEditor__CodeCompletionInterface *xself = (x_KTextEditor__CodeCompletionInterface*)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: x_KTextEditor__CodeCompletionInterface::x_9(args);	break;
        case 10: x_KTextEditor__CodeCompletionInterface::x_10(args);	break;
        case 11: xself->x_11(args);	break;
        case 12: delete (KTextEditor::CodeCompletionInterface*)xself;	break;
    }
}
class x_KTextEditor__CodeCompletionModel : public KTextEditor::CodeCompletionModel, 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::CodeCompletionModel*>(this))) {
            const QMetaObject* xret = ((const x_KTextEditor__CodeCompletionModel*)this)->KTextEditor::CodeCompletionModel::metaObject();
            x[0].s_class = (void*)xret;
        } else {
            const QMetaObject* xret = ((const x_KTextEditor__CodeCompletionModel*)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::CodeCompletionModel*>(this))) {
            void* xret = this->KTextEditor::CodeCompletionModel::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::CodeCompletionModel::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::CodeCompletionModel::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::CodeCompletionModel::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::CodeCompletionModel::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::CodeCompletionModel*>(this))) {
            int xret = this->KTextEditor::CodeCompletionModel::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::CodeCompletionModel* CodeCompletionModel(QObject*)
        x_KTextEditor__CodeCompletionModel* xret = new x_KTextEditor__CodeCompletionModel((QObject*)x[1].s_class);
        x[0].s_class = (void*)xret;
    }
    explicit x_KTextEditor__CodeCompletionModel(QObject* x1) : CodeCompletionModel(x1) {}
    void x_9(Smoke::Stack x) {
        // void setRowCount(int)
        this->KTextEditor::CodeCompletionModel::setRowCount((int)x[1].s_int);
        (void)x; // noop (for compiler warning)
    }
    void x_10(Smoke::Stack x) {
        // virtual void completionInvoked(KTextEditor::View*, const KTextEditor::Range&, KTextEditor::CodeCompletionModel::InvocationType)
        if (dynamic_cast<__internal_SmokeClass*>(static_cast<KTextEditor::CodeCompletionModel*>(this))) {
            this->KTextEditor::CodeCompletionModel::completionInvoked((KTextEditor::View*)x[1].s_class,*(const KTextEditor::Range*)x[2].s_class,(KTextEditor::CodeCompletionModel::InvocationType)x[3].s_enum);
            (void)x; // noop (for compiler warning)
        } else {
            this->completionInvoked((KTextEditor::View*)x[1].s_class,*(const KTextEditor::Range*)x[2].s_class,(KTextEditor::CodeCompletionModel::InvocationType)x[3].s_enum);
            (void)x; // noop (for compiler warning)
        }
    }
    void x_11(Smoke::Stack x) {
        // virtual void executeCompletionItem(KTextEditor::Document*, const KTextEditor::Range&, int) const
        if (dynamic_cast<__internal_SmokeClass*>(static_cast<KTextEditor::CodeCompletionModel*>(this))) {
            ((const x_KTextEditor__CodeCompletionModel*)this)->KTextEditor::CodeCompletionModel::executeCompletionItem((KTextEditor::Document*)x[1].s_class,*(const KTextEditor::Range*)x[2].s_class,(int)x[3].s_int);
            (void)x; // noop (for compiler warning)
        } else {
            ((const x_KTextEditor__CodeCompletionModel*)this)->executeCompletionItem((KTextEditor::Document*)x[1].s_class,*(const KTextEditor::Range*)x[2].s_class,(int)x[3].s_int);
            (void)x; // noop (for compiler warning)
        }
    }
    void x_12(Smoke::Stack x) {
        // virtual int columnCount(const QModelIndex&) const
        if (dynamic_cast<__internal_SmokeClass*>(static_cast<KTextEditor::CodeCompletionModel*>(this))) {
            int xret = ((const x_KTextEditor__CodeCompletionModel*)this)->KTextEditor::CodeCompletionModel::columnCount(*(const QModelIndex*)x[1].s_class);
            x[0].s_int = xret;
        } else {
            int xret = ((const x_KTextEditor__CodeCompletionModel*)this)->columnCount(*(const QModelIndex*)x[1].s_class);
            x[0].s_int = xret;
        }
    }
    void x_13(Smoke::Stack x) {
        // virtual QModelIndex index(int, int, const QModelIndex&) const
        if (dynamic_cast<__internal_SmokeClass*>(static_cast<KTextEditor::CodeCompletionModel*>(this))) {
            QModelIndex xret = ((const x_KTextEditor__CodeCompletionModel*)this)->KTextEditor::CodeCompletionModel::index((int)x[1].s_int,(int)x[2].s_int,*(const QModelIndex*)x[3].s_class);
            x[0].s_class = (void*)new QModelIndex(xret);
        } else {
            QModelIndex xret = ((const x_KTextEditor__CodeCompletionModel*)this)->index((int)x[1].s_int,(int)x[2].s_int,*(const QModelIndex*)x[3].s_class);
            x[0].s_class = (void*)new QModelIndex(xret);
        }
    }
    void x_14(Smoke::Stack x) {
        // virtual QMap<int,QVariant> itemData(const QModelIndex&) const
        if (dynamic_cast<__internal_SmokeClass*>(static_cast<KTextEditor::CodeCompletionModel*>(this))) {
            QMap<int,QVariant> xret = ((const x_KTextEditor__CodeCompletionModel*)this)->KTextEditor::CodeCompletionModel::itemData(*(const QModelIndex*)x[1].s_class);
            x[0].s_class = (void*)new QMap<int,QVariant>(xret);
        } else {
            QMap<int,QVariant> xret = ((const x_KTextEditor__CodeCompletionModel*)this)->itemData(*(const QModelIndex*)x[1].s_class);
            x[0].s_class = (void*)new QMap<int,QVariant>(xret);
        }
    }
    void x_15(Smoke::Stack x) {
        // virtual QModelIndex parent(const QModelIndex&) const
        if (dynamic_cast<__internal_SmokeClass*>(static_cast<KTextEditor::CodeCompletionModel*>(this))) {
            QModelIndex xret = ((const x_KTextEditor__CodeCompletionModel*)this)->KTextEditor::CodeCompletionModel::parent(*(const QModelIndex*)x[1].s_class);
            x[0].s_class = (void*)new QModelIndex(xret);
        } else {
            QModelIndex xret = ((const x_KTextEditor__CodeCompletionModel*)this)->parent(*(const QModelIndex*)x[1].s_class);
            x[0].s_class = (void*)new QModelIndex(xret);
        }
    }
    void x_16(Smoke::Stack x) {
        // virtual int rowCount(const QModelIndex&) const
        if (dynamic_cast<__internal_SmokeClass*>(static_cast<KTextEditor::CodeCompletionModel*>(this))) {
            int xret = ((const x_KTextEditor__CodeCompletionModel*)this)->KTextEditor::CodeCompletionModel::rowCount(*(const QModelIndex*)x[1].s_class);
            x[0].s_int = xret;
        } else {
            int xret = ((const x_KTextEditor__CodeCompletionModel*)this)->rowCount(*(const QModelIndex*)x[1].s_class);
            x[0].s_int = xret;
        }
    }
    void x_17(Smoke::Stack x) {
        // bool hasGroups() const
        bool xret = ((const x_KTextEditor__CodeCompletionModel*)this)->KTextEditor::CodeCompletionModel::hasGroups();
        x[0].s_bool = xret;
    }
    void x_18(Smoke::Stack x) {
        // void waitForReset()
        this->KTextEditor::CodeCompletionModel::waitForReset();
        (void)x; // noop (for compiler warning)
    }
    void x_19(Smoke::Stack x) {
        // void hasGroupsChanged(KTextEditor::CodeCompletionModel*, bool)
        this->KTextEditor::CodeCompletionModel::hasGroupsChanged((KTextEditor::CodeCompletionModel*)x[1].s_class,(bool)x[2].s_bool);
        (void)x; // noop (for compiler warning)
    }
    void x_20(Smoke::Stack x) {
        // void setHasGroups(bool)
        this->KTextEditor::CodeCompletionModel::setHasGroups((bool)x[1].s_bool);
        (void)x; // noop (for compiler warning)
    }
    static void x_21(Smoke::Stack x) {
        // static QString tr(const char*)
        QString xret = KTextEditor::CodeCompletionModel::tr((const char*)x[1].s_class,(const char*)0);
        x[0].s_class = (void*)new QString(xret);
    }
    static void x_22(Smoke::Stack x) {
        // static QString trUtf8(const char*)
        QString xret = KTextEditor::CodeCompletionModel::trUtf8((const char*)x[1].s_class,(const char*)0);
        x[0].s_class = (void*)new QString(xret);
    }
    void x_23(Smoke::Stack x) {
        // int columnCount() const
        int xret = ((const x_KTextEditor__CodeCompletionModel*)this)->KTextEditor::CodeCompletionModel::columnCount((const QModelIndex&)QModelIndex());
        x[0].s_int = xret;
    }
    void x_24(Smoke::Stack x) {
        // QModelIndex index(int, int) const
        QModelIndex xret = ((const x_KTextEditor__CodeCompletionModel*)this)->KTextEditor::CodeCompletionModel::index((int)x[1].s_int,(int)x[2].s_int,(const QModelIndex&)QModelIndex());
        x[0].s_class = (void*)new QModelIndex(xret);
    }
    void x_25(Smoke::Stack x) {
        // int rowCount() const
        int xret = ((const x_KTextEditor__CodeCompletionModel*)this)->KTextEditor::CodeCompletionModel::rowCount((const QModelIndex&)QModelIndex());
        x[0].s_int = xret;
    }
    static void x_26(Smoke::Stack x) {
        // static const QMetaObject staticMetaObject
        x[0].s_class = (void*)&KTextEditor::CodeCompletionModel::staticMetaObject;
    }
    static void x_27(Smoke::Stack x) {
        // static const int ColumnCount
        x[0].s_int = KTextEditor::CodeCompletionModel::ColumnCount;
    }
    static void x_28(Smoke::Stack x) {
        // static const int LastItemDataRole
        x[0].s_int = KTextEditor::CodeCompletionModel::LastItemDataRole;
    }
    static void x_29(Smoke::Stack x) {
        x[0].s_enum = (long)KTextEditor::CodeCompletionModel::Prefix;
    }
    static void x_30(Smoke::Stack x) {
        x[0].s_enum = (long)KTextEditor::CodeCompletionModel::Icon;
    }
    static void x_31(Smoke::Stack x) {
        x[0].s_enum = (long)KTextEditor::CodeCompletionModel::Scope;
    }
    static void x_32(Smoke::Stack x) {
        x[0].s_enum = (long)KTextEditor::CodeCompletionModel::Name;
    }
    static void x_33(Smoke::Stack x) {
        x[0].s_enum = (long)KTextEditor::CodeCompletionModel::Arguments;
    }
    static void x_34(Smoke::Stack x) {
        x[0].s_enum = (long)KTextEditor::CodeCompletionModel::Postfix;
    }
    static void x_35(Smoke::Stack x) {
        x[0].s_enum = (long)KTextEditor::CodeCompletionModel::NoProperty;
    }
    static void x_36(Smoke::Stack x) {
        x[0].s_enum = (long)KTextEditor::CodeCompletionModel::FirstProperty;
    }
    static void x_37(Smoke::Stack x) {
        x[0].s_enum = (long)KTextEditor::CodeCompletionModel::Public;
    }
    static void x_38(Smoke::Stack x) {
        x[0].s_enum = (long)KTextEditor::CodeCompletionModel::Protected;
    }
    static void x_39(Smoke::Stack x) {
        x[0].s_enum = (long)KTextEditor::CodeCompletionModel::Private;
    }
    static void x_40(Smoke::Stack x) {
        x[0].s_enum = (long)KTextEditor::CodeCompletionModel::Static;
    }
    static void x_41(Smoke::Stack x) {
        x[0].s_enum = (long)KTextEditor::CodeCompletionModel::Const;
    }
    static void x_42(Smoke::Stack x) {
        x[0].s_enum = (long)KTextEditor::CodeCompletionModel::Namespace;
    }
    static void x_43(Smoke::Stack x) {
        x[0].s_enum = (long)KTextEditor::CodeCompletionModel::Class;
    }
    static void x_44(Smoke::Stack x) {
        x[0].s_enum = (long)KTextEditor::CodeCompletionModel::Struct;
    }
    static void x_45(Smoke::Stack x) {
        x[0].s_enum = (long)KTextEditor::CodeCompletionModel::Union;
    }
    static void x_46(Smoke::Stack x) {
        x[0].s_enum = (long)KTextEditor::CodeCompletionModel::Function;
    }
    static void x_47(Smoke::Stack x) {
        x[0].s_enum = (long)KTextEditor::CodeCompletionModel::Variable;
    }
    static void x_48(Smoke::Stack x) {
        x[0].s_enum = (long)KTextEditor::CodeCompletionModel::Enum;
    }
    static void x_49(Smoke::Stack x) {
        x[0].s_enum = (long)KTextEditor::CodeCompletionModel::Template;
    }
    static void x_50(Smoke::Stack x) {
        x[0].s_enum = (long)KTextEditor::CodeCompletionModel::TypeAlias;
    }
    static void x_51(Smoke::Stack x) {
        x[0].s_enum = (long)KTextEditor::CodeCompletionModel::Virtual;
    }
    static void x_52(Smoke::Stack x) {
        x[0].s_enum = (long)KTextEditor::CodeCompletionModel::Override;
    }
    static void x_53(Smoke::Stack x) {
        x[0].s_enum = (long)KTextEditor::CodeCompletionModel::Inline;
    }
    static void x_54(Smoke::Stack x) {
        x[0].s_enum = (long)KTextEditor::CodeCompletionModel::Friend;
    }
    static void x_55(Smoke::Stack x) {
        x[0].s_enum = (long)KTextEditor::CodeCompletionModel::Signal;
    }
    static void x_56(Smoke::Stack x) {
        x[0].s_enum = (long)KTextEditor::CodeCompletionModel::Slot;
    }
    static void x_57(Smoke::Stack x) {
        x[0].s_enum = (long)KTextEditor::CodeCompletionModel::LocalScope;
    }
    static void x_58(Smoke::Stack x) {
        x[0].s_enum = (long)KTextEditor::CodeCompletionModel::NamespaceScope;
    }
    static void x_59(Smoke::Stack x) {
        x[0].s_enum = (long)KTextEditor::CodeCompletionModel::GlobalScope;
    }
    static void x_60(Smoke::Stack x) {
        x[0].s_enum = (long)KTextEditor::CodeCompletionModel::LastProperty;
    }
    static void x_61(Smoke::Stack x) {
        x[0].s_enum = (long)KTextEditor::CodeCompletionModel::NoHighlighting;
    }
    static void x_62(Smoke::Stack x) {
        x[0].s_enum = (long)KTextEditor::CodeCompletionModel::InternalHighlighting;
    }
    static void x_63(Smoke::Stack x) {
        x[0].s_enum = (long)KTextEditor::CodeCompletionModel::CustomHighlighting;
    }
    static void x_64(Smoke::Stack x) {
        x[0].s_enum = (long)KTextEditor::CodeCompletionModel::CompletionRole;
    }
    static void x_65(Smoke::Stack x) {
        x[0].s_enum = (long)KTextEditor::CodeCompletionModel::ScopeIndex;
    }
    static void x_66(Smoke::Stack x) {
        x[0].s_enum = (long)KTextEditor::CodeCompletionModel::MatchQuality;
    }
    static void x_67(Smoke::Stack x) {
        x[0].s_enum = (long)KTextEditor::CodeCompletionModel::SetMatchContext;
    }
    static void x_68(Smoke::Stack x) {
        x[0].s_enum = (long)KTextEditor::CodeCompletionModel::HighlightingMethod;
    }
    static void x_69(Smoke::Stack x) {
        x[0].s_enum = (long)KTextEditor::CodeCompletionModel::CustomHighlight;
    }
    static void x_70(Smoke::Stack x) {
        x[0].s_enum = (long)KTextEditor::CodeCompletionModel::InheritanceDepth;
    }
    static void x_71(Smoke::Stack x) {
        x[0].s_enum = (long)KTextEditor::CodeCompletionModel::IsExpandable;
    }
    static void x_72(Smoke::Stack x) {
        x[0].s_enum = (long)KTextEditor::CodeCompletionModel::ExpandingWidget;
    }
    static void x_73(Smoke::Stack x) {
        x[0].s_enum = (long)KTextEditor::CodeCompletionModel::ItemSelected;
    }
    static void x_74(Smoke::Stack x) {
        x[0].s_enum = (long)KTextEditor::CodeCompletionModel::ArgumentHintDepth;
    }
    static void x_75(Smoke::Stack x) {
        x[0].s_enum = (long)KTextEditor::CodeCompletionModel::BestMatchesCount;
    }
    static void x_76(Smoke::Stack x) {
        x[0].s_enum = (long)KTextEditor::CodeCompletionModel::AccessibilityNext;
    }
    static void x_77(Smoke::Stack x) {
        x[0].s_enum = (long)KTextEditor::CodeCompletionModel::AccessibilityPrevious;
    }
    static void x_78(Smoke::Stack x) {
        x[0].s_enum = (long)KTextEditor::CodeCompletionModel::AccessibilityAccept;
    }
    static void x_79(Smoke::Stack x) {
        x[0].s_enum = (long)KTextEditor::CodeCompletionModel::GroupRole;
    }
    static void x_80(Smoke::Stack x) {
        x[0].s_enum = (long)KTextEditor::CodeCompletionModel::UnimportantItemRole;
    }
    static void x_81(Smoke::Stack x) {
        x[0].s_enum = (long)KTextEditor::CodeCompletionModel::LastExtraItemDataRole;
    }
    static void x_82(Smoke::Stack x) {
        x[0].s_enum = (long)KTextEditor::CodeCompletionModel::AutomaticInvocation;
    }
    static void x_83(Smoke::Stack x) {
        x[0].s_enum = (long)KTextEditor::CodeCompletionModel::UserInvocation;
    }
    static void x_84(Smoke::Stack x) {
        x[0].s_enum = (long)KTextEditor::CodeCompletionModel::ManualInvocation;
    }
    virtual const QMetaObject* metaObject() const {
        Smoke::StackItem x[1];
        if (this->_binding->callMethod(122, (void*)this, x)) return (const QMetaObject*)x[0].s_class;
        return this->KTextEditor::CodeCompletionModel::metaObject();
    }
    virtual void* qt_metacast(const char* x1) {
        Smoke::StackItem x[2];
        x[1].s_class = (void*)x1;
        if (this->_binding->callMethod(123, (void*)this, x)) return (void*)x[0].s_class;
        return this->KTextEditor::CodeCompletionModel::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(128, (void*)this, x)) return (int)x[0].s_int;
        return this->KTextEditor::CodeCompletionModel::qt_metacall(x1, x2, x3);
    }
    virtual void completionInvoked(KTextEditor::View* x1, const KTextEditor::Range& x2, KTextEditor::CodeCompletionModel::InvocationType x3) {
        Smoke::StackItem x[4];
        x[1].s_class = (void*)x1;
        x[2].s_class = (void*)&x2;
        x[3].s_enum = x3;
        if (this->_binding->callMethod(131, (void*)this, x)) return;
        this->KTextEditor::CodeCompletionModel::completionInvoked(x1, x2, x3);
    }
    virtual void executeCompletionItem(KTextEditor::Document* x1, const KTextEditor::Range& x2, int x3) const {
        Smoke::StackItem x[4];
        x[1].s_class = (void*)x1;
        x[2].s_class = (void*)&x2;
        x[3].s_int = x3;
        if (this->_binding->callMethod(132, (void*)this, x)) return;
        this->KTextEditor::CodeCompletionModel::executeCompletionItem(x1, x2, x3);
    }
    virtual int columnCount(const QModelIndex& x1) const {
        Smoke::StackItem x[2];
        x[1].s_class = (void*)&x1;
        if (this->_binding->callMethod(133, (void*)this, x)) return (int)x[0].s_int;
        return this->KTextEditor::CodeCompletionModel::columnCount(x1);
    }
    virtual QModelIndex index(int x1, int x2, const QModelIndex& x3) const {
        Smoke::StackItem x[4];
        x[1].s_int = x1;
        x[2].s_int = x2;
        x[3].s_class = (void*)&x3;
        if (this->_binding->callMethod(134, (void*)this, x)) {
            QModelIndex* xptr = (QModelIndex*)x[0].s_class;
            QModelIndex xret(*xptr);
            delete xptr;
            return xret;
        }
        return this->KTextEditor::CodeCompletionModel::index(x1, x2, x3);
    }
    virtual QMap<int,QVariant> itemData(const QModelIndex& x1) const {
        Smoke::StackItem x[2];
        x[1].s_class = (void*)&x1;
        if (this->_binding->callMethod(135, (void*)this, x)) {
            QMap<int,QVariant>* xptr = (QMap<int,QVariant>*)x[0].s_class;
            QMap<int,QVariant> xret(*xptr);
            delete xptr;
            return xret;
        }
        return this->KTextEditor::CodeCompletionModel::itemData(x1);
    }
    virtual QModelIndex parent(const QModelIndex& x1) const {
        Smoke::StackItem x[2];
        x[1].s_class = (void*)&x1;
        if (this->_binding->callMethod(136, (void*)this, x)) {
            QModelIndex* xptr = (QModelIndex*)x[0].s_class;
            QModelIndex xret(*xptr);
            delete xptr;
            return xret;
        }
        return this->KTextEditor::CodeCompletionModel::parent(x1);
    }
    virtual int rowCount(const QModelIndex& x1) const {
        Smoke::StackItem x[2];
        x[1].s_class = (void*)&x1;
        if (this->_binding->callMethod(137, (void*)this, x)) return (int)x[0].s_int;
        return this->KTextEditor::CodeCompletionModel::rowCount(x1);
    }
    virtual bool hasChildren(const QModelIndex& x1) const {
        Smoke::StackItem x[2];
        x[1].s_class = (void*)&x1;
        if (this->_binding->callMethod(1011, (void*)this, x)) return (bool)x[0].s_bool;
        return this->QAbstractItemModel::hasChildren(x1);
    }
    virtual QVariant data(const QModelIndex& x1, int x2) const {
        Smoke::StackItem x[3];
        x[1].s_class = (void*)&x1;
        x[2].s_int = x2;
        this->_binding->callMethod(1012, (void*)this, x, true /*pure virtual*/);
        QVariant* xptr = (QVariant*)x[0].s_class;
        QVariant xret(*xptr);
        delete xptr;
        return xret;
    }
    virtual bool setData(const QModelIndex& x1, const QVariant& x2, int x3) {
        Smoke::StackItem x[4];
        x[1].s_class = (void*)&x1;
        x[2].s_class = (void*)&x2;
        x[3].s_int = x3;
        if (this->_binding->callMethod(1013, (void*)this, x)) return (bool)x[0].s_bool;
        return this->QAbstractItemModel::setData(x1, x2, x3);
    }
    virtual QVariant headerData(int x1, Qt::Orientation x2, int x3) const {
        Smoke::StackItem x[4];
        x[1].s_int = x1;
        x[2].s_enum = x2;
        x[3].s_int = x3;
        if (this->_binding->callMethod(1014, (void*)this, x)) {
            QVariant* xptr = (QVariant*)x[0].s_class;
            QVariant xret(*xptr);
            delete xptr;
            return xret;
        }
        return this->QAbstractItemModel::headerData(x1, x2, x3);
    }
    virtual bool setHeaderData(int x1, Qt::Orientation x2, const QVariant& x3, int x4) {
        Smoke::StackItem x[5];
        x[1].s_int = x1;
        x[2].s_enum = x2;
        x[3].s_class = (void*)&x3;
        x[4].s_int = x4;
        if (this->_binding->callMethod(1015, (void*)this, x)) return (bool)x[0].s_bool;
        return this->QAbstractItemModel::setHeaderData(x1, x2, x3, x4);
    }
    virtual bool setItemData(const QModelIndex& x1, const QMap<int,QVariant>& x2) {
        Smoke::StackItem x[3];
        x[1].s_class = (void*)&x1;
        x[2].s_class = (void*)&x2;
        if (this->_binding->callMethod(1016, (void*)this, x)) return (bool)x[0].s_bool;
        return this->QAbstractItemModel::setItemData(x1, x2);
    }
    virtual QStringList mimeTypes() const {
        Smoke::StackItem x[1];
        if (this->_binding->callMethod(1017, (void*)this, x)) {
            QStringList* xptr = (QStringList*)x[0].s_class;
            QStringList xret(*xptr);
            delete xptr;
            return xret;
        }
        return this->QAbstractItemModel::mimeTypes();
    }
    virtual QMimeData* mimeData(const QList<QModelIndex>& x1) const {
        Smoke::StackItem x[2];
        x[1].s_class = (void*)&x1;
        if (this->_binding->callMethod(1018, (void*)this, x)) return (QMimeData*)x[0].s_class;
        return this->QAbstractItemModel::mimeData(x1);
    }
    virtual bool dropMimeData(const QMimeData* x1, Qt::DropAction x2, int x3, int x4, const QModelIndex& x5) {
        Smoke::StackItem x[6];
        x[1].s_class = (void*)x1;
        x[2].s_enum = x2;
        x[3].s_int = x3;
        x[4].s_int = x4;
        x[5].s_class = (void*)&x5;
        if (this->_binding->callMethod(1019, (void*)this, x)) return (bool)x[0].s_bool;
        return this->QAbstractItemModel::dropMimeData(x1, x2, x3, x4, x5);
    }
    virtual QFlags<Qt::DropAction> supportedDropActions() const {
        Smoke::StackItem x[1];
        if (this->_binding->callMethod(1020, (void*)this, x)) return (QFlags<Qt::DropAction>)x[0].s_uint;
        return this->QAbstractItemModel::supportedDropActions();
    }
    virtual bool insertRows(int x1, int x2, const QModelIndex& x3) {
        Smoke::StackItem x[4];
        x[1].s_int = x1;
        x[2].s_int = x2;
        x[3].s_class = (void*)&x3;
        if (this->_binding->callMethod(1021, (void*)this, x)) return (bool)x[0].s_bool;
        return this->QAbstractItemModel::insertRows(x1, x2, x3);
    }
    virtual bool insertColumns(int x1, int x2, const QModelIndex& x3) {
        Smoke::StackItem x[4];
        x[1].s_int = x1;
        x[2].s_int = x2;
        x[3].s_class = (void*)&x3;
        if (this->_binding->callMethod(1022, (void*)this, x)) return (bool)x[0].s_bool;
        return this->QAbstractItemModel::insertColumns(x1, x2, x3);
    }
    virtual bool removeRows(int x1, int x2, const QModelIndex& x3) {
        Smoke::StackItem x[4];
        x[1].s_int = x1;
        x[2].s_int = x2;
        x[3].s_class = (void*)&x3;
        if (this->_binding->callMethod(1023, (void*)this, x)) return (bool)x[0].s_bool;
        return this->QAbstractItemModel::removeRows(x1, x2, x3);
    }
    virtual bool removeColumns(int x1, int x2, const QModelIndex& x3) {
        Smoke::StackItem x[4];
        x[1].s_int = x1;
        x[2].s_int = x2;
        x[3].s_class = (void*)&x3;
        if (this->_binding->callMethod(1024, (void*)this, x)) return (bool)x[0].s_bool;
        return this->QAbstractItemModel::removeColumns(x1, x2, x3);
    }
    virtual void fetchMore(const QModelIndex& x1) {
        Smoke::StackItem x[2];
        x[1].s_class = (void*)&x1;
        if (this->_binding->callMethod(1025, (void*)this, x)) return;
        this->QAbstractItemModel::fetchMore(x1);
    }
    virtual bool canFetchMore(const QModelIndex& x1) const {
        Smoke::StackItem x[2];
        x[1].s_class = (void*)&x1;
        if (this->_binding->callMethod(1026, (void*)this, x)) return (bool)x[0].s_bool;
        return this->QAbstractItemModel::canFetchMore(x1);
    }
    virtual QFlags<Qt::ItemFlag> flags(const QModelIndex& x1) const {
        Smoke::StackItem x[2];
        x[1].s_class = (void*)&x1;
        if (this->_binding->callMethod(1027, (void*)this, x)) return (QFlags<Qt::ItemFlag>)x[0].s_uint;
        return this->QAbstractItemModel::flags(x1);
    }
    virtual void sort(int x1, Qt::SortOrder x2) {
        Smoke::StackItem x[3];
        x[1].s_int = x1;
        x[2].s_enum = x2;
        if (this->_binding->callMethod(1028, (void*)this, x)) return;
        this->QAbstractItemModel::sort(x1, x2);
    }
    virtual QModelIndex buddy(const QModelIndex& x1) const {
        Smoke::StackItem x[2];
        x[1].s_class = (void*)&x1;
        if (this->_binding->callMethod(1029, (void*)this, x)) {
            QModelIndex* xptr = (QModelIndex*)x[0].s_class;
            QModelIndex xret(*xptr);
            delete xptr;
            return xret;
        }
        return this->QAbstractItemModel::buddy(x1);
    }
    virtual QList<QModelIndex> match(const QModelIndex& x1, int x2, const QVariant& x3, int x4, QFlags<Qt::MatchFlag> x5) const {
        Smoke::StackItem x[6];
        x[1].s_class = (void*)&x1;
        x[2].s_int = x2;
        x[3].s_class = (void*)&x3;
        x[4].s_int = x4;
        x[5].s_uint = (uint)x5;
        if (this->_binding->callMethod(1030, (void*)this, x)) {
            QList<QModelIndex>* xptr = (QList<QModelIndex>*)x[0].s_class;
            QList<QModelIndex> xret(*xptr);
            delete xptr;
            return xret;
        }
        return this->QAbstractItemModel::match(x1, x2, x3, x4, x5);
    }
    virtual QSize span(const QModelIndex& x1) const {
        Smoke::StackItem x[2];
        x[1].s_class = (void*)&x1;
        if (this->_binding->callMethod(1031, (void*)this, x)) {
            QSize* xptr = (QSize*)x[0].s_class;
            QSize xret(*xptr);
            delete xptr;
            return xret;
        }
        return this->QAbstractItemModel::span(x1);
    }
    virtual bool submit() {
        Smoke::StackItem x[1];
        if (this->_binding->callMethod(1032, (void*)this, x)) return (bool)x[0].s_bool;
        return this->QAbstractItemModel::submit();
    }
    virtual void revert() {
        Smoke::StackItem x[1];
        if (this->_binding->callMethod(1033, (void*)this, x)) return;
        this->QAbstractItemModel::revert();
    }
    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);
    }
    static void xenum_operation(Smoke::EnumOperation xop, Smoke::Index xtype, void *&xdata, long &xvalue) {
        switch(xtype) {
        case 34: //KTextEditor::CodeCompletionModel::Columns
            switch(xop) {
                case Smoke::EnumNew:
                    xdata = (void*)new KTextEditor::CodeCompletionModel::Columns;
                    break;
                case Smoke::EnumDelete:
                    delete (KTextEditor::CodeCompletionModel::Columns*)xdata;
                    break;
                case Smoke::EnumFromLong:
                    *(KTextEditor::CodeCompletionModel::Columns*)xdata = (KTextEditor::CodeCompletionModel::Columns)xvalue;
                    break;
                case Smoke::EnumToLong:
                    xvalue = (long)*(KTextEditor::CodeCompletionModel::Columns*)xdata;
                    break;
            }
            break;
        case 36: //KTextEditor::CodeCompletionModel::CompletionProperty
            switch(xop) {
                case Smoke::EnumNew:
                    xdata = (void*)new KTextEditor::CodeCompletionModel::CompletionProperty;
                    break;
                case Smoke::EnumDelete:
                    delete (KTextEditor::CodeCompletionModel::CompletionProperty*)xdata;
                    break;
                case Smoke::EnumFromLong:
                    *(KTextEditor::CodeCompletionModel::CompletionProperty*)xdata = (KTextEditor::CodeCompletionModel::CompletionProperty)xvalue;
                    break;
                case Smoke::EnumToLong:
                    xvalue = (long)*(KTextEditor::CodeCompletionModel::CompletionProperty*)xdata;
                    break;
            }
            break;
        case 38: //KTextEditor::CodeCompletionModel::HighlightMethod
            switch(xop) {
                case Smoke::EnumNew:
                    xdata = (void*)new KTextEditor::CodeCompletionModel::HighlightMethod;
                    break;
                case Smoke::EnumDelete:
                    delete (KTextEditor::CodeCompletionModel::HighlightMethod*)xdata;
                    break;
                case Smoke::EnumFromLong:
                    *(KTextEditor::CodeCompletionModel::HighlightMethod*)xdata = (KTextEditor::CodeCompletionModel::HighlightMethod)xvalue;
                    break;
                case Smoke::EnumToLong:
                    xvalue = (long)*(KTextEditor::CodeCompletionModel::HighlightMethod*)xdata;
                    break;
            }
            break;
        case 37: //KTextEditor::CodeCompletionModel::ExtraItemDataRoles
            switch(xop) {
                case Smoke::EnumNew:
                    xdata = (void*)new KTextEditor::CodeCompletionModel::ExtraItemDataRoles;
                    break;
                case Smoke::EnumDelete:
                    delete (KTextEditor::CodeCompletionModel::ExtraItemDataRoles*)xdata;
                    break;
                case Smoke::EnumFromLong:
                    *(KTextEditor::CodeCompletionModel::ExtraItemDataRoles*)xdata = (KTextEditor::CodeCompletionModel::ExtraItemDataRoles)xvalue;
                    break;
                case Smoke::EnumToLong:
                    xvalue = (long)*(KTextEditor::CodeCompletionModel::ExtraItemDataRoles*)xdata;
                    break;
            }
            break;
        case 40: //KTextEditor::CodeCompletionModel::InvocationType
            switch(xop) {
                case Smoke::EnumNew:
                    xdata = (void*)new KTextEditor::CodeCompletionModel::InvocationType;
                    break;
                case Smoke::EnumDelete:
                    delete (KTextEditor::CodeCompletionModel::InvocationType*)xdata;
                    break;
                case Smoke::EnumFromLong:
                    *(KTextEditor::CodeCompletionModel::InvocationType*)xdata = (KTextEditor::CodeCompletionModel::InvocationType)xvalue;
                    break;
                case Smoke::EnumToLong:
                    xvalue = (long)*(KTextEditor::CodeCompletionModel::InvocationType*)xdata;
                    break;
            }
            break;
        }
    }
    ~x_KTextEditor__CodeCompletionModel() { this->_binding->deleted(26, (void*)this); }
};
void xenum_KTextEditor__CodeCompletionModel(Smoke::EnumOperation xop, Smoke::Index xtype, void *&xdata, long &xvalue) {
    x_KTextEditor__CodeCompletionModel::xenum_operation(xop, xtype, xdata, xvalue);
}
void xcall_KTextEditor__CodeCompletionModel(Smoke::Index xi, void *obj, Smoke::Stack args) {
    x_KTextEditor__CodeCompletionModel *xself = (x_KTextEditor__CodeCompletionModel*)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__CodeCompletionModel::x_3(args);	break;
        case 4: x_KTextEditor__CodeCompletionModel::x_4(args);	break;
        case 5: x_KTextEditor__CodeCompletionModel::x_5(args);	break;
        case 6: x_KTextEditor__CodeCompletionModel::x_6(args);	break;
        case 7: xself->x_7(args);	break;
        case 8: x_KTextEditor__CodeCompletionModel::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: x_KTextEditor__CodeCompletionModel::x_21(args);	break;
        case 22: x_KTextEditor__CodeCompletionModel::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: x_KTextEditor__CodeCompletionModel::x_26(args);	break;
        case 27: x_KTextEditor__CodeCompletionModel::x_27(args);	break;
        case 28: x_KTextEditor__CodeCompletionModel::x_28(args);	break;
        case 29: x_KTextEditor__CodeCompletionModel::x_29(args);	break;
        case 30: x_KTextEditor__CodeCompletionModel::x_30(args);	break;
        case 31: x_KTextEditor__CodeCompletionModel::x_31(args);	break;
        case 32: x_KTextEditor__CodeCompletionModel::x_32(args);	break;
        case 33: x_KTextEditor__CodeCompletionModel::x_33(args);	break;
        case 34: x_KTextEditor__CodeCompletionModel::x_34(args);	break;
        case 35: x_KTextEditor__CodeCompletionModel::x_35(args);	break;
        case 36: x_KTextEditor__CodeCompletionModel::x_36(args);	break;
        case 37: x_KTextEditor__CodeCompletionModel::x_37(args);	break;
        case 38: x_KTextEditor__CodeCompletionModel::x_38(args);	break;
        case 39: x_KTextEditor__CodeCompletionModel::x_39(args);	break;
        case 40: x_KTextEditor__CodeCompletionModel::x_40(args);	break;
        case 41: x_KTextEditor__CodeCompletionModel::x_41(args);	break;
        case 42: x_KTextEditor__CodeCompletionModel::x_42(args);	break;
        case 43: x_KTextEditor__CodeCompletionModel::x_43(args);	break;
        case 44: x_KTextEditor__CodeCompletionModel::x_44(args);	break;
        case 45: x_KTextEditor__CodeCompletionModel::x_45(args);	break;
        case 46: x_KTextEditor__CodeCompletionModel::x_46(args);	break;
        case 47: x_KTextEditor__CodeCompletionModel::x_47(args);	break;
        case 48: x_KTextEditor__CodeCompletionModel::x_48(args);	break;
        case 49: x_KTextEditor__CodeCompletionModel::x_49(args);	break;
        case 50: x_KTextEditor__CodeCompletionModel::x_50(args);	break;
        case 51: x_KTextEditor__CodeCompletionModel::x_51(args);	break;
        case 52: x_KTextEditor__CodeCompletionModel::x_52(args);	break;
        case 53: x_KTextEditor__CodeCompletionModel::x_53(args);	break;
        case 54: x_KTextEditor__CodeCompletionModel::x_54(args);	break;
        case 55: x_KTextEditor__CodeCompletionModel::x_55(args);	break;
        case 56: x_KTextEditor__CodeCompletionModel::x_56(args);	break;
        case 57: x_KTextEditor__CodeCompletionModel::x_57(args);	break;
        case 58: x_KTextEditor__CodeCompletionModel::x_58(args);	break;
        case 59: x_KTextEditor__CodeCompletionModel::x_59(args);	break;
        case 60: x_KTextEditor__CodeCompletionModel::x_60(args);	break;
        case 61: x_KTextEditor__CodeCompletionModel::x_61(args);	break;
        case 62: x_KTextEditor__CodeCompletionModel::x_62(args);	break;
        case 63: x_KTextEditor__CodeCompletionModel::x_63(args);	break;
        case 64: x_KTextEditor__CodeCompletionModel::x_64(args);	break;
        case 65: x_KTextEditor__CodeCompletionModel::x_65(args);	break;
        case 66: x_KTextEditor__CodeCompletionModel::x_66(args);	break;
        case 67: x_KTextEditor__CodeCompletionModel::x_67(args);	break;
        case 68: x_KTextEditor__CodeCompletionModel::x_68(args);	break;
        case 69: x_KTextEditor__CodeCompletionModel::x_69(args);	break;
        case 70: x_KTextEditor__CodeCompletionModel::x_70(args);	break;
        case 71: x_KTextEditor__CodeCompletionModel::x_71(args);	break;
        case 72: x_KTextEditor__CodeCompletionModel::x_72(args);	break;
        case 73: x_KTextEditor__CodeCompletionModel::x_73(args);	break;
        case 74: x_KTextEditor__CodeCompletionModel::x_74(args);	break;
        case 75: x_KTextEditor__CodeCompletionModel::x_75(args);	break;
        case 76: x_KTextEditor__CodeCompletionModel::x_76(args);	break;
        case 77: x_KTextEditor__CodeCompletionModel::x_77(args);	break;
        case 78: x_KTextEditor__CodeCompletionModel::x_78(args);	break;
        case 79: x_KTextEditor__CodeCompletionModel::x_79(args);	break;
        case 80: x_KTextEditor__CodeCompletionModel::x_80(args);	break;
        case 81: x_KTextEditor__CodeCompletionModel::x_81(args);	break;
        case 82: x_KTextEditor__CodeCompletionModel::x_82(args);	break;
        case 83: x_KTextEditor__CodeCompletionModel::x_83(args);	break;
        case 84: x_KTextEditor__CodeCompletionModel::x_84(args);	break;
        case 85: delete (KTextEditor::CodeCompletionModel*)xself;	break;
    }
}
class x_KTextEditor__CodeCompletionModel2 : public KTextEditor::CodeCompletionModel2, 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::CodeCompletionModel2*>(this))) {
            const QMetaObject* xret = ((const x_KTextEditor__CodeCompletionModel2*)this)->KTextEditor::CodeCompletionModel2::metaObject();
            x[0].s_class = (void*)xret;
        } else {
            const QMetaObject* xret = ((const x_KTextEditor__CodeCompletionModel2*)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::CodeCompletionModel2*>(this))) {
            void* xret = this->KTextEditor::CodeCompletionModel2::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::CodeCompletionModel2::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::CodeCompletionModel2::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::CodeCompletionModel2::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::CodeCompletionModel2::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::CodeCompletionModel2*>(this))) {
            int xret = this->KTextEditor::CodeCompletionModel2::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::CodeCompletionModel2* CodeCompletionModel2(QObject*)
        x_KTextEditor__CodeCompletionModel2* xret = new x_KTextEditor__CodeCompletionModel2((QObject*)x[1].s_class);
        x[0].s_class = (void*)xret;
    }
    explicit x_KTextEditor__CodeCompletionModel2(QObject* x1) : CodeCompletionModel2(x1) {}
    void x_9(Smoke::Stack x) {
        // virtual void executeCompletionItem2(KTextEditor::Document*, const KTextEditor::Range&, const QModelIndex&) const
        if (dynamic_cast<__internal_SmokeClass*>(static_cast<KTextEditor::CodeCompletionModel2*>(this))) {
            ((const x_KTextEditor__CodeCompletionModel2*)this)->KTextEditor::CodeCompletionModel2::executeCompletionItem2((KTextEditor::Document*)x[1].s_class,*(const KTextEditor::Range*)x[2].s_class,*(const QModelIndex*)x[3].s_class);
            (void)x; // noop (for compiler warning)
        } else {
            ((const x_KTextEditor__CodeCompletionModel2*)this)->executeCompletionItem2((KTextEditor::Document*)x[1].s_class,*(const KTextEditor::Range*)x[2].s_class,*(const QModelIndex*)x[3].s_class);
            (void)x; // noop (for compiler warning)
        }
    }
    static void x_10(Smoke::Stack x) {
        // static QString tr(const char*)
        QString xret = KTextEditor::CodeCompletionModel2::tr((const char*)x[1].s_class,(const char*)0);
        x[0].s_class = (void*)new QString(xret);
    }
    static void x_11(Smoke::Stack x) {
        // static QString trUtf8(const char*)
        QString xret = KTextEditor::CodeCompletionModel2::trUtf8((const char*)x[1].s_class,(const char*)0);
        x[0].s_class = (void*)new QString(xret);
    }
    static void x_12(Smoke::Stack x) {
        // static const QMetaObject staticMetaObject
        x[0].s_class = (void*)&KTextEditor::CodeCompletionModel2::staticMetaObject;
    }
    virtual const QMetaObject* metaObject() const {
        Smoke::StackItem x[1];
        if (this->_binding->callMethod(207, (void*)this, x)) return (const QMetaObject*)x[0].s_class;
        return this->KTextEditor::CodeCompletionModel2::metaObject();
    }
    virtual void* qt_metacast(const char* x1) {
        Smoke::StackItem x[2];
        x[1].s_class = (void*)x1;
        if (this->_binding->callMethod(208, (void*)this, x)) return (void*)x[0].s_class;
        return this->KTextEditor::CodeCompletionModel2::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(213, (void*)this, x)) return (int)x[0].s_int;
        return this->KTextEditor::CodeCompletionModel2::qt_metacall(x1, x2, x3);
    }
    virtual void executeCompletionItem2(KTextEditor::Document* x1, const KTextEditor::Range& x2, const QModelIndex& x3) const {
        Smoke::StackItem x[4];
        x[1].s_class = (void*)x1;
        x[2].s_class = (void*)&x2;
        x[3].s_class = (void*)&x3;
        if (this->_binding->callMethod(215, (void*)this, x)) return;
        this->KTextEditor::CodeCompletionModel2::executeCompletionItem2(x1, x2, x3);
    }
    virtual void completionInvoked(KTextEditor::View* x1, const KTextEditor::Range& x2, KTextEditor::CodeCompletionModel::InvocationType x3) {
        Smoke::StackItem x[4];
        x[1].s_class = (void*)x1;
        x[2].s_class = (void*)&x2;
        x[3].s_enum = x3;
        if (this->_binding->callMethod(131, (void*)this, x)) return;
        this->KTextEditor::CodeCompletionModel::completionInvoked(x1, x2, x3);
    }
    virtual void executeCompletionItem(KTextEditor::Document* x1, const KTextEditor::Range& x2, int x3) const {
        Smoke::StackItem x[4];
        x[1].s_class = (void*)x1;
        x[2].s_class = (void*)&x2;
        x[3].s_int = x3;
        if (this->_binding->callMethod(132, (void*)this, x)) return;
        this->KTextEditor::CodeCompletionModel::executeCompletionItem(x1, x2, x3);
    }
    virtual int columnCount(const QModelIndex& x1) const {
        Smoke::StackItem x[2];
        x[1].s_class = (void*)&x1;
        if (this->_binding->callMethod(133, (void*)this, x)) return (int)x[0].s_int;
        return this->KTextEditor::CodeCompletionModel::columnCount(x1);
    }
    virtual QModelIndex index(int x1, int x2, const QModelIndex& x3) const {
        Smoke::StackItem x[4];
        x[1].s_int = x1;
        x[2].s_int = x2;
        x[3].s_class = (void*)&x3;
        if (this->_binding->callMethod(134, (void*)this, x)) {
            QModelIndex* xptr = (QModelIndex*)x[0].s_class;
            QModelIndex xret(*xptr);
            delete xptr;
            return xret;
        }
        return this->KTextEditor::CodeCompletionModel::index(x1, x2, x3);
    }
    virtual QMap<int,QVariant> itemData(const QModelIndex& x1) const {
        Smoke::StackItem x[2];
        x[1].s_class = (void*)&x1;
        if (this->_binding->callMethod(135, (void*)this, x)) {
            QMap<int,QVariant>* xptr = (QMap<int,QVariant>*)x[0].s_class;
            QMap<int,QVariant> xret(*xptr);
            delete xptr;
            return xret;
        }
        return this->KTextEditor::CodeCompletionModel::itemData(x1);
    }
    virtual QModelIndex parent(const QModelIndex& x1) const {
        Smoke::StackItem x[2];
        x[1].s_class = (void*)&x1;
        if (this->_binding->callMethod(136, (void*)this, x)) {
            QModelIndex* xptr = (QModelIndex*)x[0].s_class;
            QModelIndex xret(*xptr);
            delete xptr;
            return xret;
        }
        return this->KTextEditor::CodeCompletionModel::parent(x1);
    }
    virtual int rowCount(const QModelIndex& x1) const {
        Smoke::StackItem x[2];
        x[1].s_class = (void*)&x1;
        if (this->_binding->callMethod(137, (void*)this, x)) return (int)x[0].s_int;
        return this->KTextEditor::CodeCompletionModel::rowCount(x1);
    }
    virtual bool hasChildren(const QModelIndex& x1) const {
        Smoke::StackItem x[2];
        x[1].s_class = (void*)&x1;
        if (this->_binding->callMethod(1011, (void*)this, x)) return (bool)x[0].s_bool;
        return this->QAbstractItemModel::hasChildren(x1);
    }
    virtual QVariant data(const QModelIndex& x1, int x2) const {
        Smoke::StackItem x[3];
        x[1].s_class = (void*)&x1;
        x[2].s_int = x2;
        this->_binding->callMethod(1012, (void*)this, x, true /*pure virtual*/);
        QVariant* xptr = (QVariant*)x[0].s_class;
        QVariant xret(*xptr);
        delete xptr;
        return xret;
    }
    virtual bool setData(const QModelIndex& x1, const QVariant& x2, int x3) {
        Smoke::StackItem x[4];
        x[1].s_class = (void*)&x1;
        x[2].s_class = (void*)&x2;
        x[3].s_int = x3;
        if (this->_binding->callMethod(1013, (void*)this, x)) return (bool)x[0].s_bool;
        return this->QAbstractItemModel::setData(x1, x2, x3);
    }
    virtual QVariant headerData(int x1, Qt::Orientation x2, int x3) const {
        Smoke::StackItem x[4];
        x[1].s_int = x1;
        x[2].s_enum = x2;
        x[3].s_int = x3;
        if (this->_binding->callMethod(1014, (void*)this, x)) {
            QVariant* xptr = (QVariant*)x[0].s_class;
            QVariant xret(*xptr);
            delete xptr;
            return xret;
        }
        return this->QAbstractItemModel::headerData(x1, x2, x3);
    }
    virtual bool setHeaderData(int x1, Qt::Orientation x2, const QVariant& x3, int x4) {
        Smoke::StackItem x[5];
        x[1].s_int = x1;
        x[2].s_enum = x2;
        x[3].s_class = (void*)&x3;
        x[4].s_int = x4;
        if (this->_binding->callMethod(1015, (void*)this, x)) return (bool)x[0].s_bool;
        return this->QAbstractItemModel::setHeaderData(x1, x2, x3, x4);
    }
    virtual bool setItemData(const QModelIndex& x1, const QMap<int,QVariant>& x2) {
        Smoke::StackItem x[3];
        x[1].s_class = (void*)&x1;
        x[2].s_class = (void*)&x2;
        if (this->_binding->callMethod(1016, (void*)this, x)) return (bool)x[0].s_bool;
        return this->QAbstractItemModel::setItemData(x1, x2);
    }
    virtual QStringList mimeTypes() const {
        Smoke::StackItem x[1];
        if (this->_binding->callMethod(1017, (void*)this, x)) {
            QStringList* xptr = (QStringList*)x[0].s_class;
            QStringList xret(*xptr);
            delete xptr;
            return xret;
        }
        return this->QAbstractItemModel::mimeTypes();
    }
    virtual QMimeData* mimeData(const QList<QModelIndex>& x1) const {
        Smoke::StackItem x[2];
        x[1].s_class = (void*)&x1;
        if (this->_binding->callMethod(1018, (void*)this, x)) return (QMimeData*)x[0].s_class;
        return this->QAbstractItemModel::mimeData(x1);
    }
    virtual bool dropMimeData(const QMimeData* x1, Qt::DropAction x2, int x3, int x4, const QModelIndex& x5) {
        Smoke::StackItem x[6];
        x[1].s_class = (void*)x1;
        x[2].s_enum = x2;
        x[3].s_int = x3;
        x[4].s_int = x4;
        x[5].s_class = (void*)&x5;
        if (this->_binding->callMethod(1019, (void*)this, x)) return (bool)x[0].s_bool;
        return this->QAbstractItemModel::dropMimeData(x1, x2, x3, x4, x5);
    }
    virtual QFlags<Qt::DropAction> supportedDropActions() const {
        Smoke::StackItem x[1];
        if (this->_binding->callMethod(1020, (void*)this, x)) return (QFlags<Qt::DropAction>)x[0].s_uint;
        return this->QAbstractItemModel::supportedDropActions();
    }
    virtual bool insertRows(int x1, int x2, const QModelIndex& x3) {
        Smoke::StackItem x[4];
        x[1].s_int = x1;
        x[2].s_int = x2;
        x[3].s_class = (void*)&x3;
        if (this->_binding->callMethod(1021, (void*)this, x)) return (bool)x[0].s_bool;
        return this->QAbstractItemModel::insertRows(x1, x2, x3);
    }
    virtual bool insertColumns(int x1, int x2, const QModelIndex& x3) {
        Smoke::StackItem x[4];
        x[1].s_int = x1;
        x[2].s_int = x2;
        x[3].s_class = (void*)&x3;
        if (this->_binding->callMethod(1022, (void*)this, x)) return (bool)x[0].s_bool;
        return this->QAbstractItemModel::insertColumns(x1, x2, x3);
    }
    virtual bool removeRows(int x1, int x2, const QModelIndex& x3) {
        Smoke::StackItem x[4];
        x[1].s_int = x1;
        x[2].s_int = x2;
        x[3].s_class = (void*)&x3;
        if (this->_binding->callMethod(1023, (void*)this, x)) return (bool)x[0].s_bool;
        return this->QAbstractItemModel::removeRows(x1, x2, x3);
    }
    virtual bool removeColumns(int x1, int x2, const QModelIndex& x3) {
        Smoke::StackItem x[4];
        x[1].s_int = x1;
        x[2].s_int = x2;
        x[3].s_class = (void*)&x3;
        if (this->_binding->callMethod(1024, (void*)this, x)) return (bool)x[0].s_bool;
        return this->QAbstractItemModel::removeColumns(x1, x2, x3);
    }
    virtual void fetchMore(const QModelIndex& x1) {
        Smoke::StackItem x[2];
        x[1].s_class = (void*)&x1;
        if (this->_binding->callMethod(1025, (void*)this, x)) return;
        this->QAbstractItemModel::fetchMore(x1);
    }
    virtual bool canFetchMore(const QModelIndex& x1) const {
        Smoke::StackItem x[2];
        x[1].s_class = (void*)&x1;
        if (this->_binding->callMethod(1026, (void*)this, x)) return (bool)x[0].s_bool;
        return this->QAbstractItemModel::canFetchMore(x1);
    }
    virtual QFlags<Qt::ItemFlag> flags(const QModelIndex& x1) const {
        Smoke::StackItem x[2];
        x[1].s_class = (void*)&x1;
        if (this->_binding->callMethod(1027, (void*)this, x)) return (QFlags<Qt::ItemFlag>)x[0].s_uint;
        return this->QAbstractItemModel::flags(x1);
    }
    virtual void sort(int x1, Qt::SortOrder x2) {
        Smoke::StackItem x[3];
        x[1].s_int = x1;
        x[2].s_enum = x2;
        if (this->_binding->callMethod(1028, (void*)this, x)) return;
        this->QAbstractItemModel::sort(x1, x2);
    }
    virtual QModelIndex buddy(const QModelIndex& x1) const {
        Smoke::StackItem x[2];
        x[1].s_class = (void*)&x1;
        if (this->_binding->callMethod(1029, (void*)this, x)) {
            QModelIndex* xptr = (QModelIndex*)x[0].s_class;
            QModelIndex xret(*xptr);
            delete xptr;
            return xret;
        }
        return this->QAbstractItemModel::buddy(x1);
    }
    virtual QList<QModelIndex> match(const QModelIndex& x1, int x2, const QVariant& x3, int x4, QFlags<Qt::MatchFlag> x5) const {
        Smoke::StackItem x[6];
        x[1].s_class = (void*)&x1;
        x[2].s_int = x2;
        x[3].s_class = (void*)&x3;
        x[4].s_int = x4;
        x[5].s_uint = (uint)x5;
        if (this->_binding->callMethod(1030, (void*)this, x)) {
            QList<QModelIndex>* xptr = (QList<QModelIndex>*)x[0].s_class;
            QList<QModelIndex> xret(*xptr);
            delete xptr;
            return xret;
        }
        return this->QAbstractItemModel::match(x1, x2, x3, x4, x5);
    }
    virtual QSize span(const QModelIndex& x1) const {
        Smoke::StackItem x[2];
        x[1].s_class = (void*)&x1;
        if (this->_binding->callMethod(1031, (void*)this, x)) {
            QSize* xptr = (QSize*)x[0].s_class;
            QSize xret(*xptr);
            delete xptr;
            return xret;
        }
        return this->QAbstractItemModel::span(x1);
    }
    virtual bool submit() {
        Smoke::StackItem x[1];
        if (this->_binding->callMethod(1032, (void*)this, x)) return (bool)x[0].s_bool;
        return this->QAbstractItemModel::submit();
    }
    virtual void revert() {
        Smoke::StackItem x[1];
        if (this->_binding->callMethod(1033, (void*)this, x)) return;
        this->QAbstractItemModel::revert();
    }
    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__CodeCompletionModel2() { this->_binding->deleted(27, (void*)this); }
};
void xcall_KTextEditor__CodeCompletionModel2(Smoke::Index xi, void *obj, Smoke::Stack args) {
    x_KTextEditor__CodeCompletionModel2 *xself = (x_KTextEditor__CodeCompletionModel2*)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__CodeCompletionModel2::x_3(args);	break;
        case 4: x_KTextEditor__CodeCompletionModel2::x_4(args);	break;
        case 5: x_KTextEditor__CodeCompletionModel2::x_5(args);	break;
        case 6: x_KTextEditor__CodeCompletionModel2::x_6(args);	break;
        case 7: xself->x_7(args);	break;
        case 8: x_KTextEditor__CodeCompletionModel2::x_8(args);	break;
        case 9: xself->x_9(args);	break;
        case 10: x_KTextEditor__CodeCompletionModel2::x_10(args);	break;
        case 11: x_KTextEditor__CodeCompletionModel2::x_11(args);	break;
        case 12: x_KTextEditor__CodeCompletionModel2::x_12(args);	break;
        case 13: delete (KTextEditor::CodeCompletionModel2*)xself;	break;
    }
}
class x_KTextEditor__CodeCompletionModelControllerInterface : public KTextEditor::CodeCompletionModelControllerInterface, 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::CodeCompletionModelControllerInterface* CodeCompletionModelControllerInterface()
        x_KTextEditor__CodeCompletionModelControllerInterface* xret = new x_KTextEditor__CodeCompletionModelControllerInterface();
        x[0].s_class = (void*)xret;
    }
    explicit x_KTextEditor__CodeCompletionModelControllerInterface() : CodeCompletionModelControllerInterface() {}
    void x_2(Smoke::Stack x) {
        // virtual bool shouldStartCompletion(KTextEditor::View*, const QString&, bool, const KTextEditor::Cursor&)
        if (dynamic_cast<__internal_SmokeClass*>(static_cast<KTextEditor::CodeCompletionModelControllerInterface*>(this))) {
            bool xret = this->KTextEditor::CodeCompletionModelControllerInterface::shouldStartCompletion((KTextEditor::View*)x[1].s_class,*(const QString*)x[2].s_class,(bool)x[3].s_bool,*(const KTextEditor::Cursor*)x[4].s_class);
            x[0].s_bool = xret;
        } else {
            bool xret = this->shouldStartCompletion((KTextEditor::View*)x[1].s_class,*(const QString*)x[2].s_class,(bool)x[3].s_bool,*(const KTextEditor::Cursor*)x[4].s_class);
            x[0].s_bool = xret;
        }
    }
    void x_3(Smoke::Stack x) {
        // virtual KTextEditor::Range completionRange(KTextEditor::View*, const KTextEditor::Cursor&)
        if (dynamic_cast<__internal_SmokeClass*>(static_cast<KTextEditor::CodeCompletionModelControllerInterface*>(this))) {
            KTextEditor::Range xret = this->KTextEditor::CodeCompletionModelControllerInterface::completionRange((KTextEditor::View*)x[1].s_class,*(const KTextEditor::Cursor*)x[2].s_class);
            x[0].s_class = (void*)new KTextEditor::Range(xret);
        } else {
            KTextEditor::Range xret = this->completionRange((KTextEditor::View*)x[1].s_class,*(const KTextEditor::Cursor*)x[2].s_class);
            x[0].s_class = (void*)new KTextEditor::Range(xret);
        }
    }
    void x_4(Smoke::Stack x) {
        // virtual void updateCompletionRange(KTextEditor::View*, KTextEditor::SmartRange&)
        if (dynamic_cast<__internal_SmokeClass*>(static_cast<KTextEditor::CodeCompletionModelControllerInterface*>(this))) {
            this->KTextEditor::CodeCompletionModelControllerInterface::updateCompletionRange((KTextEditor::View*)x[1].s_class,*(KTextEditor::SmartRange*)x[2].s_class);
            (void)x; // noop (for compiler warning)
        } else {
            this->updateCompletionRange((KTextEditor::View*)x[1].s_class,*(KTextEditor::SmartRange*)x[2].s_class);
            (void)x; // noop (for compiler warning)
        }
    }
    void x_5(Smoke::Stack x) {
        // virtual QString filterString(KTextEditor::View*, const KTextEditor::SmartRange&, const KTextEditor::Cursor&)
        if (dynamic_cast<__internal_SmokeClass*>(static_cast<KTextEditor::CodeCompletionModelControllerInterface*>(this))) {
            QString xret = this->KTextEditor::CodeCompletionModelControllerInterface::filterString((KTextEditor::View*)x[1].s_class,*(const KTextEditor::SmartRange*)x[2].s_class,*(const KTextEditor::Cursor*)x[3].s_class);
            x[0].s_class = (void*)new QString(xret);
        } else {
            QString xret = this->filterString((KTextEditor::View*)x[1].s_class,*(const KTextEditor::SmartRange*)x[2].s_class,*(const KTextEditor::Cursor*)x[3].s_class);
            x[0].s_class = (void*)new QString(xret);
        }
    }
    void x_6(Smoke::Stack x) {
        // virtual bool shouldAbortCompletion(KTextEditor::View*, const KTextEditor::SmartRange&, const QString&)
        if (dynamic_cast<__internal_SmokeClass*>(static_cast<KTextEditor::CodeCompletionModelControllerInterface*>(this))) {
            bool xret = this->KTextEditor::CodeCompletionModelControllerInterface::shouldAbortCompletion((KTextEditor::View*)x[1].s_class,*(const KTextEditor::SmartRange*)x[2].s_class,*(const QString*)x[3].s_class);
            x[0].s_bool = xret;
        } else {
            bool xret = this->shouldAbortCompletion((KTextEditor::View*)x[1].s_class,*(const KTextEditor::SmartRange*)x[2].s_class,*(const QString*)x[3].s_class);
            x[0].s_bool = xret;
        }
    }
    void x_7(Smoke::Stack x) {
        // virtual bool shouldExecute(const QModelIndex&, QChar)
        if (dynamic_cast<__internal_SmokeClass*>(static_cast<KTextEditor::CodeCompletionModelControllerInterface*>(this))) {
            bool xret = this->KTextEditor::CodeCompletionModelControllerInterface::shouldExecute(*(const QModelIndex*)x[1].s_class,*(QChar*)x[2].s_class);
            x[0].s_bool = xret;
        } else {
            bool xret = this->shouldExecute(*(const QModelIndex*)x[1].s_class,*(QChar*)x[2].s_class);
            x[0].s_bool = xret;
        }
    }
    void x_8(Smoke::Stack x) {
        // virtual void aborted(KTextEditor::View*)
        if (dynamic_cast<__internal_SmokeClass*>(static_cast<KTextEditor::CodeCompletionModelControllerInterface*>(this))) {
            this->KTextEditor::CodeCompletionModelControllerInterface::aborted((KTextEditor::View*)x[1].s_class);
            (void)x; // noop (for compiler warning)
        } else {
            this->aborted((KTextEditor::View*)x[1].s_class);
            (void)x; // noop (for compiler warning)
        }
    }
    static void x_9(Smoke::Stack x) {
        // KTextEditor::CodeCompletionModelControllerInterface* CodeCompletionModelControllerInterface(const KTextEditor::CodeCompletionModelControllerInterface&)
        x_KTextEditor__CodeCompletionModelControllerInterface* xret = new x_KTextEditor__CodeCompletionModelControllerInterface(*(const KTextEditor::CodeCompletionModelControllerInterface*)x[1].s_class);
        x[0].s_class = (void*)xret;
    }
    explicit x_KTextEditor__CodeCompletionModelControllerInterface(const KTextEditor::CodeCompletionModelControllerInterface& x1) : CodeCompletionModelControllerInterface(x1) {}
    virtual bool shouldStartCompletion(KTextEditor::View* x1, const QString& x2, bool x3, const KTextEditor::Cursor& x4) {
        Smoke::StackItem x[5];
        x[1].s_class = (void*)x1;
        x[2].s_class = (void*)&x2;
        x[3].s_bool = x3;
        x[4].s_class = (void*)&x4;
        if (this->_binding->callMethod(221, (void*)this, x)) return (bool)x[0].s_bool;
        return this->KTextEditor::CodeCompletionModelControllerInterface::shouldStartCompletion(x1, x2, x3, x4);
    }
    virtual KTextEditor::Range completionRange(KTextEditor::View* x1, const KTextEditor::Cursor& x2) {
        Smoke::StackItem x[3];
        x[1].s_class = (void*)x1;
        x[2].s_class = (void*)&x2;
        if (this->_binding->callMethod(222, (void*)this, x)) {
            KTextEditor::Range* xptr = (KTextEditor::Range*)x[0].s_class;
            KTextEditor::Range xret(*xptr);
            delete xptr;
            return xret;
        }
        return this->KTextEditor::CodeCompletionModelControllerInterface::completionRange(x1, x2);
    }
    virtual void updateCompletionRange(KTextEditor::View* x1, KTextEditor::SmartRange& x2) {
        Smoke::StackItem x[3];
        x[1].s_class = (void*)x1;
        x[2].s_class = (void*)&x2;
        if (this->_binding->callMethod(223, (void*)this, x)) return;
        this->KTextEditor::CodeCompletionModelControllerInterface::updateCompletionRange(x1, x2);
    }
    virtual QString filterString(KTextEditor::View* x1, const KTextEditor::SmartRange& x2, const KTextEditor::Cursor& x3) {
        Smoke::StackItem x[4];
        x[1].s_class = (void*)x1;
        x[2].s_class = (void*)&x2;
        x[3].s_class = (void*)&x3;
        if (this->_binding->callMethod(224, (void*)this, x)) {
            QString* xptr = (QString*)x[0].s_class;
            QString xret(*xptr);
            delete xptr;
            return xret;
        }
        return this->KTextEditor::CodeCompletionModelControllerInterface::filterString(x1, x2, x3);
    }
    virtual bool shouldAbortCompletion(KTextEditor::View* x1, const KTextEditor::SmartRange& x2, const QString& x3) {
        Smoke::StackItem x[4];
        x[1].s_class = (void*)x1;
        x[2].s_class = (void*)&x2;
        x[3].s_class = (void*)&x3;
        if (this->_binding->callMethod(225, (void*)this, x)) return (bool)x[0].s_bool;
        return this->KTextEditor::CodeCompletionModelControllerInterface::shouldAbortCompletion(x1, x2, x3);
    }
    virtual bool shouldExecute(const QModelIndex& x1, QChar x2) {
        Smoke::StackItem x[3];
        x[1].s_class = (void*)&x1;
        x[2].s_class = (void*)new QChar(x2);
        if (this->_binding->callMethod(226, (void*)this, x)) return (bool)x[0].s_bool;
        return this->KTextEditor::CodeCompletionModelControllerInterface::shouldExecute(x1, x2);
    }
    virtual void aborted(KTextEditor::View* x1) {
        Smoke::StackItem x[2];
        x[1].s_class = (void*)x1;
        if (this->_binding->callMethod(227, (void*)this, x)) return;
        this->KTextEditor::CodeCompletionModelControllerInterface::aborted(x1);
    }
    ~x_KTextEditor__CodeCompletionModelControllerInterface() { this->_binding->deleted(28, (void*)this); }
};
void xcall_KTextEditor__CodeCompletionModelControllerInterface(Smoke::Index xi, void *obj, Smoke::Stack args) {
    x_KTextEditor__CodeCompletionModelControllerInterface *xself = (x_KTextEditor__CodeCompletionModelControllerInterface*)obj;
    switch(xi) {
        case 0: xself->x_0(args);	break;
        case 1: x_KTextEditor__CodeCompletionModelControllerInterface::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: x_KTextEditor__CodeCompletionModelControllerInterface::x_9(args);	break;
        case 10: delete (KTextEditor::CodeCompletionModelControllerInterface*)xself;	break;
    }
}

}
