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

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

class __internal_SmokeClass {};

namespace __smokektexteditor {

class x_KTextEditor__Mark : public KTextEditor::Mark {
    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::Mark* Mark()
        x_KTextEditor__Mark* xret = new x_KTextEditor__Mark();
        x[0].s_class = (void*)xret;
    }
    explicit x_KTextEditor__Mark() : Mark() {}
    static void x_2(Smoke::Stack x) {
        // KTextEditor::Mark* Mark(const KTextEditor::Mark&)
        x_KTextEditor__Mark* xret = new x_KTextEditor__Mark(*(const KTextEditor::Mark*)x[1].s_class);
        x[0].s_class = (void*)xret;
    }
    explicit x_KTextEditor__Mark(const KTextEditor::Mark& x1) : Mark(x1) {}
    void x_3(Smoke::Stack x) {
        // int line
        x[0].s_int = this->KTextEditor::Mark::line;
    }
    void x_4(Smoke::Stack x) {
        // int line=
        this->KTextEditor::Mark::line = (int)x[1].s_int;
    }
    void x_5(Smoke::Stack x) {
        // unsigned int type
        x[0].s_uint = this->KTextEditor::Mark::type;
    }
    void x_6(Smoke::Stack x) {
        // unsigned int type=
        this->KTextEditor::Mark::type = (unsigned int)x[1].s_uint;
    }
    ~x_KTextEditor__Mark() { this->_binding->deleted(45, (void*)this); }
};
void xcall_KTextEditor__Mark(Smoke::Index xi, void *obj, Smoke::Stack args) {
    x_KTextEditor__Mark *xself = (x_KTextEditor__Mark*)obj;
    switch(xi) {
        case 0: xself->x_0(args);	break;
        case 1: x_KTextEditor__Mark::x_1(args);	break;
        case 2: x_KTextEditor__Mark::x_2(args);	break;
        case 3: xself->x_3(args);	break;
        case 4: xself->x_4(args);	break;
        case 5: xself->x_5(args);	break;
        case 6: xself->x_6(args);	break;
        case 7: delete (KTextEditor::Mark*)xself;	break;
    }
}
class x_KTextEditor__MarkInterface : public KTextEditor::MarkInterface, 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::MarkInterface* MarkInterface()
        x_KTextEditor__MarkInterface* xret = new x_KTextEditor__MarkInterface();
        x[0].s_class = (void*)xret;
    }
    explicit x_KTextEditor__MarkInterface() : MarkInterface() {}
    void x_2(Smoke::Stack x) {
        // virtual unsigned int mark(int) = 0
        unsigned int xret = this->mark((int)x[1].s_int);
        x[0].s_uint = xret;
    }
    void x_3(Smoke::Stack x) {
        // virtual void setMark(int, unsigned int) = 0
        this->setMark((int)x[1].s_int,(unsigned int)x[2].s_uint);
        (void)x; // noop (for compiler warning)
    }
    void x_4(Smoke::Stack x) {
        // virtual void clearMark(int) = 0
        this->clearMark((int)x[1].s_int);
        (void)x; // noop (for compiler warning)
    }
    void x_5(Smoke::Stack x) {
        // virtual void addMark(int, unsigned int) = 0
        this->addMark((int)x[1].s_int,(unsigned int)x[2].s_uint);
        (void)x; // noop (for compiler warning)
    }
    void x_6(Smoke::Stack x) {
        // virtual void removeMark(int, unsigned int) = 0
        this->removeMark((int)x[1].s_int,(unsigned int)x[2].s_uint);
        (void)x; // noop (for compiler warning)
    }
    void x_7(Smoke::Stack x) {
        // virtual const QHash<int,KTextEditor::Mark*>& marks() = 0
        const QHash<int,KTextEditor::Mark*>& xret = this->marks();
        x[0].s_class = (void*)&xret;
    }
    void x_8(Smoke::Stack x) {
        // virtual void clearMarks() = 0
        this->clearMarks();
        (void)x; // noop (for compiler warning)
    }
    static void x_9(Smoke::Stack x) {
        // static int reservedMarkersCount()
        int xret = KTextEditor::MarkInterface::reservedMarkersCount();
        x[0].s_int = xret;
    }
    void x_10(Smoke::Stack x) {
        // virtual void marksChanged(KTextEditor::Document*) = 0
        this->marksChanged((KTextEditor::Document*)x[1].s_class);
        (void)x; // noop (for compiler warning)
    }
    void x_11(Smoke::Stack x) {
        // virtual void setMarkPixmap(KTextEditor::MarkInterface::MarkTypes, const QPixmap&) = 0
        this->setMarkPixmap((KTextEditor::MarkInterface::MarkTypes)x[1].s_enum,*(const QPixmap*)x[2].s_class);
        (void)x; // noop (for compiler warning)
    }
    void x_12(Smoke::Stack x) {
        // virtual QPixmap markPixmap(KTextEditor::MarkInterface::MarkTypes) const = 0
        QPixmap xret = ((const x_KTextEditor__MarkInterface*)this)->markPixmap((KTextEditor::MarkInterface::MarkTypes)x[1].s_enum);
        x[0].s_class = (void*)new QPixmap(xret);
    }
    void x_13(Smoke::Stack x) {
        // virtual void setMarkDescription(KTextEditor::MarkInterface::MarkTypes, const QString&) = 0
        this->setMarkDescription((KTextEditor::MarkInterface::MarkTypes)x[1].s_enum,*(const QString*)x[2].s_class);
        (void)x; // noop (for compiler warning)
    }
    void x_14(Smoke::Stack x) {
        // virtual QString markDescription(KTextEditor::MarkInterface::MarkTypes) const = 0
        QString xret = ((const x_KTextEditor__MarkInterface*)this)->markDescription((KTextEditor::MarkInterface::MarkTypes)x[1].s_enum);
        x[0].s_class = (void*)new QString(xret);
    }
    void x_15(Smoke::Stack x) {
        // virtual void setEditableMarks(unsigned int) = 0
        this->setEditableMarks((unsigned int)x[1].s_uint);
        (void)x; // noop (for compiler warning)
    }
    void x_16(Smoke::Stack x) {
        // virtual unsigned int editableMarks() const = 0
        unsigned int xret = ((const x_KTextEditor__MarkInterface*)this)->editableMarks();
        x[0].s_uint = xret;
    }
    void x_17(Smoke::Stack x) {
        // virtual void markChanged(KTextEditor::Document*, KTextEditor::Mark, KTextEditor::MarkInterface::MarkChangeAction) = 0
        this->markChanged((KTextEditor::Document*)x[1].s_class,*(KTextEditor::Mark*)x[2].s_class,(KTextEditor::MarkInterface::MarkChangeAction)x[3].s_enum);
        (void)x; // noop (for compiler warning)
    }
    static void x_18(Smoke::Stack x) {
        // KTextEditor::MarkInterface* MarkInterface(const KTextEditor::MarkInterface&)
        x_KTextEditor__MarkInterface* xret = new x_KTextEditor__MarkInterface(*(const KTextEditor::MarkInterface*)x[1].s_class);
        x[0].s_class = (void*)xret;
    }
    explicit x_KTextEditor__MarkInterface(const KTextEditor::MarkInterface& x1) : MarkInterface(x1) {}
    static void x_19(Smoke::Stack x) {
        x[0].s_enum = (long)KTextEditor::MarkInterface::markType01;
    }
    static void x_20(Smoke::Stack x) {
        x[0].s_enum = (long)KTextEditor::MarkInterface::markType02;
    }
    static void x_21(Smoke::Stack x) {
        x[0].s_enum = (long)KTextEditor::MarkInterface::markType03;
    }
    static void x_22(Smoke::Stack x) {
        x[0].s_enum = (long)KTextEditor::MarkInterface::markType04;
    }
    static void x_23(Smoke::Stack x) {
        x[0].s_enum = (long)KTextEditor::MarkInterface::markType05;
    }
    static void x_24(Smoke::Stack x) {
        x[0].s_enum = (long)KTextEditor::MarkInterface::markType06;
    }
    static void x_25(Smoke::Stack x) {
        x[0].s_enum = (long)KTextEditor::MarkInterface::markType07;
    }
    static void x_26(Smoke::Stack x) {
        x[0].s_enum = (long)KTextEditor::MarkInterface::markType08;
    }
    static void x_27(Smoke::Stack x) {
        x[0].s_enum = (long)KTextEditor::MarkInterface::markType09;
    }
    static void x_28(Smoke::Stack x) {
        x[0].s_enum = (long)KTextEditor::MarkInterface::markType10;
    }
    static void x_29(Smoke::Stack x) {
        x[0].s_enum = (long)KTextEditor::MarkInterface::markType11;
    }
    static void x_30(Smoke::Stack x) {
        x[0].s_enum = (long)KTextEditor::MarkInterface::markType12;
    }
    static void x_31(Smoke::Stack x) {
        x[0].s_enum = (long)KTextEditor::MarkInterface::markType13;
    }
    static void x_32(Smoke::Stack x) {
        x[0].s_enum = (long)KTextEditor::MarkInterface::markType14;
    }
    static void x_33(Smoke::Stack x) {
        x[0].s_enum = (long)KTextEditor::MarkInterface::markType15;
    }
    static void x_34(Smoke::Stack x) {
        x[0].s_enum = (long)KTextEditor::MarkInterface::markType16;
    }
    static void x_35(Smoke::Stack x) {
        x[0].s_enum = (long)KTextEditor::MarkInterface::markType17;
    }
    static void x_36(Smoke::Stack x) {
        x[0].s_enum = (long)KTextEditor::MarkInterface::markType18;
    }
    static void x_37(Smoke::Stack x) {
        x[0].s_enum = (long)KTextEditor::MarkInterface::markType19;
    }
    static void x_38(Smoke::Stack x) {
        x[0].s_enum = (long)KTextEditor::MarkInterface::markType20;
    }
    static void x_39(Smoke::Stack x) {
        x[0].s_enum = (long)KTextEditor::MarkInterface::markType21;
    }
    static void x_40(Smoke::Stack x) {
        x[0].s_enum = (long)KTextEditor::MarkInterface::markType22;
    }
    static void x_41(Smoke::Stack x) {
        x[0].s_enum = (long)KTextEditor::MarkInterface::markType23;
    }
    static void x_42(Smoke::Stack x) {
        x[0].s_enum = (long)KTextEditor::MarkInterface::markType24;
    }
    static void x_43(Smoke::Stack x) {
        x[0].s_enum = (long)KTextEditor::MarkInterface::markType25;
    }
    static void x_44(Smoke::Stack x) {
        x[0].s_enum = (long)KTextEditor::MarkInterface::markType26;
    }
    static void x_45(Smoke::Stack x) {
        x[0].s_enum = (long)KTextEditor::MarkInterface::markType27;
    }
    static void x_46(Smoke::Stack x) {
        x[0].s_enum = (long)KTextEditor::MarkInterface::markType28;
    }
    static void x_47(Smoke::Stack x) {
        x[0].s_enum = (long)KTextEditor::MarkInterface::markType29;
    }
    static void x_48(Smoke::Stack x) {
        x[0].s_enum = (long)KTextEditor::MarkInterface::markType30;
    }
    static void x_49(Smoke::Stack x) {
        x[0].s_enum = (long)KTextEditor::MarkInterface::markType31;
    }
    static void x_50(Smoke::Stack x) {
        x[0].s_enum = (long)KTextEditor::MarkInterface::markType32;
    }
    static void x_51(Smoke::Stack x) {
        x[0].s_enum = (long)KTextEditor::MarkInterface::Bookmark;
    }
    static void x_52(Smoke::Stack x) {
        x[0].s_enum = (long)KTextEditor::MarkInterface::BreakpointActive;
    }
    static void x_53(Smoke::Stack x) {
        x[0].s_enum = (long)KTextEditor::MarkInterface::BreakpointReached;
    }
    static void x_54(Smoke::Stack x) {
        x[0].s_enum = (long)KTextEditor::MarkInterface::BreakpointDisabled;
    }
    static void x_55(Smoke::Stack x) {
        x[0].s_enum = (long)KTextEditor::MarkInterface::Execution;
    }
    static void x_56(Smoke::Stack x) {
        x[0].s_enum = (long)KTextEditor::MarkInterface::Warning;
    }
    static void x_57(Smoke::Stack x) {
        x[0].s_enum = (long)KTextEditor::MarkInterface::Error;
    }
    static void x_58(Smoke::Stack x) {
        x[0].s_enum = (long)KTextEditor::MarkInterface::MarkAdded;
    }
    static void x_59(Smoke::Stack x) {
        x[0].s_enum = (long)KTextEditor::MarkInterface::MarkRemoved;
    }
    virtual unsigned int mark(int x1) {
        Smoke::StackItem x[2];
        x[1].s_int = x1;
        this->_binding->callMethod(525, (void*)this, x, true /*pure virtual*/);
        return (unsigned int)x[0].s_uint;
    }
    virtual void setMark(int x1, unsigned int x2) {
        Smoke::StackItem x[3];
        x[1].s_int = x1;
        x[2].s_uint = x2;
        this->_binding->callMethod(526, (void*)this, x, true /*pure virtual*/);
    }
    virtual void clearMark(int x1) {
        Smoke::StackItem x[2];
        x[1].s_int = x1;
        this->_binding->callMethod(527, (void*)this, x, true /*pure virtual*/);
    }
    virtual void addMark(int x1, unsigned int x2) {
        Smoke::StackItem x[3];
        x[1].s_int = x1;
        x[2].s_uint = x2;
        this->_binding->callMethod(528, (void*)this, x, true /*pure virtual*/);
    }
    virtual void removeMark(int x1, unsigned int x2) {
        Smoke::StackItem x[3];
        x[1].s_int = x1;
        x[2].s_uint = x2;
        this->_binding->callMethod(529, (void*)this, x, true /*pure virtual*/);
    }
    virtual const QHash<int,KTextEditor::Mark*>& marks() {
        Smoke::StackItem x[1];
        this->_binding->callMethod(530, (void*)this, x, true /*pure virtual*/);
        const QHash<int,KTextEditor::Mark*>* xptr = (const QHash<int,KTextEditor::Mark*>*)x[0].s_class;
        const QHash<int,KTextEditor::Mark*>& xret(*xptr);
        delete xptr;
        return xret;
    }
    virtual void clearMarks() {
        Smoke::StackItem x[1];
        this->_binding->callMethod(531, (void*)this, x, true /*pure virtual*/);
    }
    virtual void marksChanged(KTextEditor::Document* x1) {
        Smoke::StackItem x[2];
        x[1].s_class = (void*)x1;
        this->_binding->callMethod(533, (void*)this, x, true /*pure virtual*/);
    }
    virtual void setMarkPixmap(KTextEditor::MarkInterface::MarkTypes x1, const QPixmap& x2) {
        Smoke::StackItem x[3];
        x[1].s_enum = x1;
        x[2].s_class = (void*)&x2;
        this->_binding->callMethod(534, (void*)this, x, true /*pure virtual*/);
    }
    virtual QPixmap markPixmap(KTextEditor::MarkInterface::MarkTypes x1) const {
        Smoke::StackItem x[2];
        x[1].s_enum = x1;
        this->_binding->callMethod(535, (void*)this, x, true /*pure virtual*/);
        QPixmap* xptr = (QPixmap*)x[0].s_class;
        QPixmap xret(*xptr);
        delete xptr;
        return xret;
    }
    virtual void setMarkDescription(KTextEditor::MarkInterface::MarkTypes x1, const QString& x2) {
        Smoke::StackItem x[3];
        x[1].s_enum = x1;
        x[2].s_class = (void*)&x2;
        this->_binding->callMethod(536, (void*)this, x, true /*pure virtual*/);
    }
    virtual QString markDescription(KTextEditor::MarkInterface::MarkTypes x1) const {
        Smoke::StackItem x[2];
        x[1].s_enum = x1;
        this->_binding->callMethod(537, (void*)this, x, true /*pure virtual*/);
        QString* xptr = (QString*)x[0].s_class;
        QString xret(*xptr);
        delete xptr;
        return xret;
    }
    virtual void setEditableMarks(unsigned int x1) {
        Smoke::StackItem x[2];
        x[1].s_uint = x1;
        this->_binding->callMethod(538, (void*)this, x, true /*pure virtual*/);
    }
    virtual unsigned int editableMarks() const {
        Smoke::StackItem x[1];
        this->_binding->callMethod(539, (void*)this, x, true /*pure virtual*/);
        return (unsigned int)x[0].s_uint;
    }
    virtual void markChanged(KTextEditor::Document* x1, KTextEditor::Mark x2, KTextEditor::MarkInterface::MarkChangeAction x3) {
        Smoke::StackItem x[4];
        x[1].s_class = (void*)x1;
        x[2].s_class = (void*)new KTextEditor::Mark(x2);
        x[3].s_enum = x3;
        this->_binding->callMethod(540, (void*)this, x, true /*pure virtual*/);
    }
    static void xenum_operation(Smoke::EnumOperation xop, Smoke::Index xtype, void *&xdata, long &xvalue) {
        switch(xtype) {
        case 67: //KTextEditor::MarkInterface::MarkTypes
            switch(xop) {
                case Smoke::EnumNew:
                    xdata = (void*)new KTextEditor::MarkInterface::MarkTypes;
                    break;
                case Smoke::EnumDelete:
                    delete (KTextEditor::MarkInterface::MarkTypes*)xdata;
                    break;
                case Smoke::EnumFromLong:
                    *(KTextEditor::MarkInterface::MarkTypes*)xdata = (KTextEditor::MarkInterface::MarkTypes)xvalue;
                    break;
                case Smoke::EnumToLong:
                    xvalue = (long)*(KTextEditor::MarkInterface::MarkTypes*)xdata;
                    break;
            }
            break;
        case 66: //KTextEditor::MarkInterface::MarkChangeAction
            switch(xop) {
                case Smoke::EnumNew:
                    xdata = (void*)new KTextEditor::MarkInterface::MarkChangeAction;
                    break;
                case Smoke::EnumDelete:
                    delete (KTextEditor::MarkInterface::MarkChangeAction*)xdata;
                    break;
                case Smoke::EnumFromLong:
                    *(KTextEditor::MarkInterface::MarkChangeAction*)xdata = (KTextEditor::MarkInterface::MarkChangeAction)xvalue;
                    break;
                case Smoke::EnumToLong:
                    xvalue = (long)*(KTextEditor::MarkInterface::MarkChangeAction*)xdata;
                    break;
            }
            break;
        }
    }
    ~x_KTextEditor__MarkInterface() { this->_binding->deleted(46, (void*)this); }
};
void xenum_KTextEditor__MarkInterface(Smoke::EnumOperation xop, Smoke::Index xtype, void *&xdata, long &xvalue) {
    x_KTextEditor__MarkInterface::xenum_operation(xop, xtype, xdata, xvalue);
}
void xcall_KTextEditor__MarkInterface(Smoke::Index xi, void *obj, Smoke::Stack args) {
    x_KTextEditor__MarkInterface *xself = (x_KTextEditor__MarkInterface*)obj;
    switch(xi) {
        case 0: xself->x_0(args);	break;
        case 1: x_KTextEditor__MarkInterface::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__MarkInterface::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: x_KTextEditor__MarkInterface::x_18(args);	break;
        case 19: x_KTextEditor__MarkInterface::x_19(args);	break;
        case 20: x_KTextEditor__MarkInterface::x_20(args);	break;
        case 21: x_KTextEditor__MarkInterface::x_21(args);	break;
        case 22: x_KTextEditor__MarkInterface::x_22(args);	break;
        case 23: x_KTextEditor__MarkInterface::x_23(args);	break;
        case 24: x_KTextEditor__MarkInterface::x_24(args);	break;
        case 25: x_KTextEditor__MarkInterface::x_25(args);	break;
        case 26: x_KTextEditor__MarkInterface::x_26(args);	break;
        case 27: x_KTextEditor__MarkInterface::x_27(args);	break;
        case 28: x_KTextEditor__MarkInterface::x_28(args);	break;
        case 29: x_KTextEditor__MarkInterface::x_29(args);	break;
        case 30: x_KTextEditor__MarkInterface::x_30(args);	break;
        case 31: x_KTextEditor__MarkInterface::x_31(args);	break;
        case 32: x_KTextEditor__MarkInterface::x_32(args);	break;
        case 33: x_KTextEditor__MarkInterface::x_33(args);	break;
        case 34: x_KTextEditor__MarkInterface::x_34(args);	break;
        case 35: x_KTextEditor__MarkInterface::x_35(args);	break;
        case 36: x_KTextEditor__MarkInterface::x_36(args);	break;
        case 37: x_KTextEditor__MarkInterface::x_37(args);	break;
        case 38: x_KTextEditor__MarkInterface::x_38(args);	break;
        case 39: x_KTextEditor__MarkInterface::x_39(args);	break;
        case 40: x_KTextEditor__MarkInterface::x_40(args);	break;
        case 41: x_KTextEditor__MarkInterface::x_41(args);	break;
        case 42: x_KTextEditor__MarkInterface::x_42(args);	break;
        case 43: x_KTextEditor__MarkInterface::x_43(args);	break;
        case 44: x_KTextEditor__MarkInterface::x_44(args);	break;
        case 45: x_KTextEditor__MarkInterface::x_45(args);	break;
        case 46: x_KTextEditor__MarkInterface::x_46(args);	break;
        case 47: x_KTextEditor__MarkInterface::x_47(args);	break;
        case 48: x_KTextEditor__MarkInterface::x_48(args);	break;
        case 49: x_KTextEditor__MarkInterface::x_49(args);	break;
        case 50: x_KTextEditor__MarkInterface::x_50(args);	break;
        case 51: x_KTextEditor__MarkInterface::x_51(args);	break;
        case 52: x_KTextEditor__MarkInterface::x_52(args);	break;
        case 53: x_KTextEditor__MarkInterface::x_53(args);	break;
        case 54: x_KTextEditor__MarkInterface::x_54(args);	break;
        case 55: x_KTextEditor__MarkInterface::x_55(args);	break;
        case 56: x_KTextEditor__MarkInterface::x_56(args);	break;
        case 57: x_KTextEditor__MarkInterface::x_57(args);	break;
        case 58: x_KTextEditor__MarkInterface::x_58(args);	break;
        case 59: x_KTextEditor__MarkInterface::x_59(args);	break;
        case 60: delete (KTextEditor::MarkInterface*)xself;	break;
    }
}
class x_KTextEditor__MdiContainer : public KTextEditor::MdiContainer, 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::MdiContainer* MdiContainer()
        x_KTextEditor__MdiContainer* xret = new x_KTextEditor__MdiContainer();
        x[0].s_class = (void*)xret;
    }
    explicit x_KTextEditor__MdiContainer() : MdiContainer() {}
    void x_2(Smoke::Stack x) {
        // virtual void setActiveView(KTextEditor::View*) = 0
        this->setActiveView((KTextEditor::View*)x[1].s_class);
        (void)x; // noop (for compiler warning)
    }
    void x_3(Smoke::Stack x) {
        // virtual KTextEditor::View* activeView() = 0
        KTextEditor::View* xret = this->activeView();
        x[0].s_class = (void*)xret;
    }
    void x_4(Smoke::Stack x) {
        // virtual KTextEditor::Document* createDocument() = 0
        KTextEditor::Document* xret = this->createDocument();
        x[0].s_class = (void*)xret;
    }
    void x_5(Smoke::Stack x) {
        // virtual bool closeDocument(KTextEditor::Document*) = 0
        bool xret = this->closeDocument((KTextEditor::Document*)x[1].s_class);
        x[0].s_bool = xret;
    }
    void x_6(Smoke::Stack x) {
        // virtual KTextEditor::View* createView(KTextEditor::Document*) = 0
        KTextEditor::View* xret = this->createView((KTextEditor::Document*)x[1].s_class);
        x[0].s_class = (void*)xret;
    }
    void x_7(Smoke::Stack x) {
        // virtual bool closeView(KTextEditor::View*) = 0
        bool xret = this->closeView((KTextEditor::View*)x[1].s_class);
        x[0].s_bool = xret;
    }
    static void x_8(Smoke::Stack x) {
        // KTextEditor::MdiContainer* MdiContainer(const KTextEditor::MdiContainer&)
        x_KTextEditor__MdiContainer* xret = new x_KTextEditor__MdiContainer(*(const KTextEditor::MdiContainer*)x[1].s_class);
        x[0].s_class = (void*)xret;
    }
    explicit x_KTextEditor__MdiContainer(const KTextEditor::MdiContainer& x1) : MdiContainer(x1) {}
    virtual void setActiveView(KTextEditor::View* x1) {
        Smoke::StackItem x[2];
        x[1].s_class = (void*)x1;
        this->_binding->callMethod(585, (void*)this, x, true /*pure virtual*/);
    }
    virtual KTextEditor::View* activeView() {
        Smoke::StackItem x[1];
        this->_binding->callMethod(586, (void*)this, x, true /*pure virtual*/);
        return (KTextEditor::View*)x[0].s_class;
    }
    virtual KTextEditor::Document* createDocument() {
        Smoke::StackItem x[1];
        this->_binding->callMethod(587, (void*)this, x, true /*pure virtual*/);
        return (KTextEditor::Document*)x[0].s_class;
    }
    virtual bool closeDocument(KTextEditor::Document* x1) {
        Smoke::StackItem x[2];
        x[1].s_class = (void*)x1;
        this->_binding->callMethod(588, (void*)this, x, true /*pure virtual*/);
        return (bool)x[0].s_bool;
    }
    virtual KTextEditor::View* createView(KTextEditor::Document* x1) {
        Smoke::StackItem x[2];
        x[1].s_class = (void*)x1;
        this->_binding->callMethod(589, (void*)this, x, true /*pure virtual*/);
        return (KTextEditor::View*)x[0].s_class;
    }
    virtual bool closeView(KTextEditor::View* x1) {
        Smoke::StackItem x[2];
        x[1].s_class = (void*)x1;
        this->_binding->callMethod(590, (void*)this, x, true /*pure virtual*/);
        return (bool)x[0].s_bool;
    }
    ~x_KTextEditor__MdiContainer() { this->_binding->deleted(47, (void*)this); }
};
void xcall_KTextEditor__MdiContainer(Smoke::Index xi, void *obj, Smoke::Stack args) {
    x_KTextEditor__MdiContainer *xself = (x_KTextEditor__MdiContainer*)obj;
    switch(xi) {
        case 0: xself->x_0(args);	break;
        case 1: x_KTextEditor__MdiContainer::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: x_KTextEditor__MdiContainer::x_8(args);	break;
        case 9: delete (KTextEditor::MdiContainer*)xself;	break;
    }
}
class x_KTextEditor__ModificationInterface : public KTextEditor::ModificationInterface, 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::ModificationInterface* ModificationInterface()
        x_KTextEditor__ModificationInterface* xret = new x_KTextEditor__ModificationInterface();
        x[0].s_class = (void*)xret;
    }
    explicit x_KTextEditor__ModificationInterface() : ModificationInterface() {}
    void x_2(Smoke::Stack x) {
        // virtual void setModifiedOnDisk(KTextEditor::ModificationInterface::ModifiedOnDiskReason) = 0
        this->setModifiedOnDisk((KTextEditor::ModificationInterface::ModifiedOnDiskReason)x[1].s_enum);
        (void)x; // noop (for compiler warning)
    }
    void x_3(Smoke::Stack x) {
        // virtual void setModifiedOnDiskWarning(bool) = 0
        this->setModifiedOnDiskWarning((bool)x[1].s_bool);
        (void)x; // noop (for compiler warning)
    }
    void x_4(Smoke::Stack x) {
        // virtual void slotModifiedOnDisk(KTextEditor::View*) = 0
        this->slotModifiedOnDisk((KTextEditor::View*)x[1].s_class);
        (void)x; // noop (for compiler warning)
    }
    void x_5(Smoke::Stack x) {
        // virtual void modifiedOnDisk(KTextEditor::Document*, bool, KTextEditor::ModificationInterface::ModifiedOnDiskReason) = 0
        this->modifiedOnDisk((KTextEditor::Document*)x[1].s_class,(bool)x[2].s_bool,(KTextEditor::ModificationInterface::ModifiedOnDiskReason)x[3].s_enum);
        (void)x; // noop (for compiler warning)
    }
    static void x_6(Smoke::Stack x) {
        // KTextEditor::ModificationInterface* ModificationInterface(const KTextEditor::ModificationInterface&)
        x_KTextEditor__ModificationInterface* xret = new x_KTextEditor__ModificationInterface(*(const KTextEditor::ModificationInterface*)x[1].s_class);
        x[0].s_class = (void*)xret;
    }
    explicit x_KTextEditor__ModificationInterface(const KTextEditor::ModificationInterface& x1) : ModificationInterface(x1) {}
    void x_7(Smoke::Stack x) {
        // void slotModifiedOnDisk()
        this->slotModifiedOnDisk((KTextEditor::View*)0);
        (void)x; // noop (for compiler warning)
    }
    static void x_8(Smoke::Stack x) {
        x[0].s_enum = (long)KTextEditor::ModificationInterface::OnDiskUnmodified;
    }
    static void x_9(Smoke::Stack x) {
        x[0].s_enum = (long)KTextEditor::ModificationInterface::OnDiskModified;
    }
    static void x_10(Smoke::Stack x) {
        x[0].s_enum = (long)KTextEditor::ModificationInterface::OnDiskCreated;
    }
    static void x_11(Smoke::Stack x) {
        x[0].s_enum = (long)KTextEditor::ModificationInterface::OnDiskDeleted;
    }
    virtual void setModifiedOnDisk(KTextEditor::ModificationInterface::ModifiedOnDiskReason x1) {
        Smoke::StackItem x[2];
        x[1].s_enum = x1;
        this->_binding->callMethod(594, (void*)this, x, true /*pure virtual*/);
    }
    virtual void setModifiedOnDiskWarning(bool x1) {
        Smoke::StackItem x[2];
        x[1].s_bool = x1;
        this->_binding->callMethod(595, (void*)this, x, true /*pure virtual*/);
    }
    virtual void slotModifiedOnDisk(KTextEditor::View* x1) {
        Smoke::StackItem x[2];
        x[1].s_class = (void*)x1;
        this->_binding->callMethod(596, (void*)this, x, true /*pure virtual*/);
    }
    virtual void modifiedOnDisk(KTextEditor::Document* x1, bool x2, KTextEditor::ModificationInterface::ModifiedOnDiskReason x3) {
        Smoke::StackItem x[4];
        x[1].s_class = (void*)x1;
        x[2].s_bool = x2;
        x[3].s_enum = x3;
        this->_binding->callMethod(597, (void*)this, x, true /*pure virtual*/);
    }
    static void xenum_operation(Smoke::EnumOperation xop, Smoke::Index xtype, void *&xdata, long &xvalue) {
        switch(xtype) {
        case 70: //KTextEditor::ModificationInterface::ModifiedOnDiskReason
            switch(xop) {
                case Smoke::EnumNew:
                    xdata = (void*)new KTextEditor::ModificationInterface::ModifiedOnDiskReason;
                    break;
                case Smoke::EnumDelete:
                    delete (KTextEditor::ModificationInterface::ModifiedOnDiskReason*)xdata;
                    break;
                case Smoke::EnumFromLong:
                    *(KTextEditor::ModificationInterface::ModifiedOnDiskReason*)xdata = (KTextEditor::ModificationInterface::ModifiedOnDiskReason)xvalue;
                    break;
                case Smoke::EnumToLong:
                    xvalue = (long)*(KTextEditor::ModificationInterface::ModifiedOnDiskReason*)xdata;
                    break;
            }
            break;
        }
    }
    ~x_KTextEditor__ModificationInterface() { this->_binding->deleted(48, (void*)this); }
};
void xenum_KTextEditor__ModificationInterface(Smoke::EnumOperation xop, Smoke::Index xtype, void *&xdata, long &xvalue) {
    x_KTextEditor__ModificationInterface::xenum_operation(xop, xtype, xdata, xvalue);
}
void xcall_KTextEditor__ModificationInterface(Smoke::Index xi, void *obj, Smoke::Stack args) {
    x_KTextEditor__ModificationInterface *xself = (x_KTextEditor__ModificationInterface*)obj;
    switch(xi) {
        case 0: xself->x_0(args);	break;
        case 1: x_KTextEditor__ModificationInterface::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: x_KTextEditor__ModificationInterface::x_6(args);	break;
        case 7: xself->x_7(args);	break;
        case 8: x_KTextEditor__ModificationInterface::x_8(args);	break;
        case 9: x_KTextEditor__ModificationInterface::x_9(args);	break;
        case 10: x_KTextEditor__ModificationInterface::x_10(args);	break;
        case 11: x_KTextEditor__ModificationInterface::x_11(args);	break;
        case 12: delete (KTextEditor::ModificationInterface*)xself;	break;
    }
}

}
