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

#include <smoke.h>
#include <qt3support_smoke.h>

class __internal_SmokeClass {};

namespace __smokeqt3support {

class x_Q3Canvas : public Q3Canvas, 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<Q3Canvas*>(this))) {
            const QMetaObject* xret = ((const x_Q3Canvas*)this)->Q3Canvas::metaObject();
            x[0].s_class = (void*)xret;
        } else {
            const QMetaObject* xret = ((const x_Q3Canvas*)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<Q3Canvas*>(this))) {
            void* xret = this->Q3Canvas::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 = Q3Canvas::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 = Q3Canvas::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 = Q3Canvas::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 = Q3Canvas::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<Q3Canvas*>(this))) {
            int xret = this->Q3Canvas::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) {
        // Q3Canvas* Q3Canvas(QObject*, const char*)
        x_Q3Canvas* xret = new x_Q3Canvas((QObject*)x[1].s_class,(const char*)x[2].s_class);
        x[0].s_class = (void*)xret;
    }
    explicit x_Q3Canvas(QObject* x1, const char* x2) : Q3Canvas(x1, x2) {}
    static void x_9(Smoke::Stack x) {
        // Q3Canvas* Q3Canvas(int, int)
        x_Q3Canvas* xret = new x_Q3Canvas((int)x[1].s_int,(int)x[2].s_int);
        x[0].s_class = (void*)xret;
    }
    explicit x_Q3Canvas(int x1, int x2) : Q3Canvas(x1, x2) {}
    static void x_10(Smoke::Stack x) {
        // Q3Canvas* Q3Canvas(QPixmap, int, int, int, int)
        x_Q3Canvas* xret = new x_Q3Canvas(*(QPixmap*)x[1].s_class,(int)x[2].s_int,(int)x[3].s_int,(int)x[4].s_int,(int)x[5].s_int);
        x[0].s_class = (void*)xret;
    }
    explicit x_Q3Canvas(QPixmap x1, int x2, int x3, int x4, int x5) : Q3Canvas(x1, x2, x3, x4, x5) {}
    void x_11(Smoke::Stack x) {
        // virtual void setTiles(QPixmap, int, int, int, int)
        if (dynamic_cast<__internal_SmokeClass*>(static_cast<Q3Canvas*>(this))) {
            this->Q3Canvas::setTiles(*(QPixmap*)x[1].s_class,(int)x[2].s_int,(int)x[3].s_int,(int)x[4].s_int,(int)x[5].s_int);
            (void)x; // noop (for compiler warning)
        } else {
            this->setTiles(*(QPixmap*)x[1].s_class,(int)x[2].s_int,(int)x[3].s_int,(int)x[4].s_int,(int)x[5].s_int);
            (void)x; // noop (for compiler warning)
        }
    }
    void x_12(Smoke::Stack x) {
        // virtual void setBackgroundPixmap(const QPixmap&)
        if (dynamic_cast<__internal_SmokeClass*>(static_cast<Q3Canvas*>(this))) {
            this->Q3Canvas::setBackgroundPixmap(*(const QPixmap*)x[1].s_class);
            (void)x; // noop (for compiler warning)
        } else {
            this->setBackgroundPixmap(*(const QPixmap*)x[1].s_class);
            (void)x; // noop (for compiler warning)
        }
    }
    void x_13(Smoke::Stack x) {
        // QPixmap backgroundPixmap() const
        QPixmap xret = ((const x_Q3Canvas*)this)->Q3Canvas::backgroundPixmap();
        x[0].s_class = (void*)new QPixmap(xret);
    }
    void x_14(Smoke::Stack x) {
        // virtual void setBackgroundColor(const QColor&)
        if (dynamic_cast<__internal_SmokeClass*>(static_cast<Q3Canvas*>(this))) {
            this->Q3Canvas::setBackgroundColor(*(const QColor*)x[1].s_class);
            (void)x; // noop (for compiler warning)
        } else {
            this->setBackgroundColor(*(const QColor*)x[1].s_class);
            (void)x; // noop (for compiler warning)
        }
    }
    void x_15(Smoke::Stack x) {
        // QColor backgroundColor() const
        QColor xret = ((const x_Q3Canvas*)this)->Q3Canvas::backgroundColor();
        x[0].s_class = (void*)new QColor(xret);
    }
    void x_16(Smoke::Stack x) {
        // virtual void setTile(int, int, int)
        if (dynamic_cast<__internal_SmokeClass*>(static_cast<Q3Canvas*>(this))) {
            this->Q3Canvas::setTile((int)x[1].s_int,(int)x[2].s_int,(int)x[3].s_int);
            (void)x; // noop (for compiler warning)
        } else {
            this->setTile((int)x[1].s_int,(int)x[2].s_int,(int)x[3].s_int);
            (void)x; // noop (for compiler warning)
        }
    }
    void x_17(Smoke::Stack x) {
        // int tile(int, int) const
        int xret = ((const x_Q3Canvas*)this)->Q3Canvas::tile((int)x[1].s_int,(int)x[2].s_int);
        x[0].s_int = xret;
    }
    void x_18(Smoke::Stack x) {
        // int tilesHorizontally() const
        int xret = ((const x_Q3Canvas*)this)->Q3Canvas::tilesHorizontally();
        x[0].s_int = xret;
    }
    void x_19(Smoke::Stack x) {
        // int tilesVertically() const
        int xret = ((const x_Q3Canvas*)this)->Q3Canvas::tilesVertically();
        x[0].s_int = xret;
    }
    void x_20(Smoke::Stack x) {
        // int tileWidth() const
        int xret = ((const x_Q3Canvas*)this)->Q3Canvas::tileWidth();
        x[0].s_int = xret;
    }
    void x_21(Smoke::Stack x) {
        // int tileHeight() const
        int xret = ((const x_Q3Canvas*)this)->Q3Canvas::tileHeight();
        x[0].s_int = xret;
    }
    void x_22(Smoke::Stack x) {
        // virtual void resize(int, int)
        if (dynamic_cast<__internal_SmokeClass*>(static_cast<Q3Canvas*>(this))) {
            this->Q3Canvas::resize((int)x[1].s_int,(int)x[2].s_int);
            (void)x; // noop (for compiler warning)
        } else {
            this->resize((int)x[1].s_int,(int)x[2].s_int);
            (void)x; // noop (for compiler warning)
        }
    }
    void x_23(Smoke::Stack x) {
        // int width() const
        int xret = ((const x_Q3Canvas*)this)->Q3Canvas::width();
        x[0].s_int = xret;
    }
    void x_24(Smoke::Stack x) {
        // int height() const
        int xret = ((const x_Q3Canvas*)this)->Q3Canvas::height();
        x[0].s_int = xret;
    }
    void x_25(Smoke::Stack x) {
        // QSize size() const
        QSize xret = ((const x_Q3Canvas*)this)->Q3Canvas::size();
        x[0].s_class = (void*)new QSize(xret);
    }
    void x_26(Smoke::Stack x) {
        // QRect rect() const
        QRect xret = ((const x_Q3Canvas*)this)->Q3Canvas::rect();
        x[0].s_class = (void*)new QRect(xret);
    }
    void x_27(Smoke::Stack x) {
        // bool onCanvas(int, int) const
        bool xret = ((const x_Q3Canvas*)this)->Q3Canvas::onCanvas((int)x[1].s_int,(int)x[2].s_int);
        x[0].s_bool = xret;
    }
    void x_28(Smoke::Stack x) {
        // bool onCanvas(const QPoint&) const
        bool xret = ((const x_Q3Canvas*)this)->Q3Canvas::onCanvas(*(const QPoint*)x[1].s_class);
        x[0].s_bool = xret;
    }
    void x_29(Smoke::Stack x) {
        // bool validChunk(int, int) const
        bool xret = ((const x_Q3Canvas*)this)->Q3Canvas::validChunk((int)x[1].s_int,(int)x[2].s_int);
        x[0].s_bool = xret;
    }
    void x_30(Smoke::Stack x) {
        // bool validChunk(const QPoint&) const
        bool xret = ((const x_Q3Canvas*)this)->Q3Canvas::validChunk(*(const QPoint*)x[1].s_class);
        x[0].s_bool = xret;
    }
    void x_31(Smoke::Stack x) {
        // int chunkSize() const
        int xret = ((const x_Q3Canvas*)this)->Q3Canvas::chunkSize();
        x[0].s_int = xret;
    }
    void x_32(Smoke::Stack x) {
        // virtual void retune(int, int)
        if (dynamic_cast<__internal_SmokeClass*>(static_cast<Q3Canvas*>(this))) {
            this->Q3Canvas::retune((int)x[1].s_int,(int)x[2].s_int);
            (void)x; // noop (for compiler warning)
        } else {
            this->retune((int)x[1].s_int,(int)x[2].s_int);
            (void)x; // noop (for compiler warning)
        }
    }
    void x_33(Smoke::Stack x) {
        // bool sameChunk(int, int, int, int) const
        bool xret = ((const x_Q3Canvas*)this)->Q3Canvas::sameChunk((int)x[1].s_int,(int)x[2].s_int,(int)x[3].s_int,(int)x[4].s_int);
        x[0].s_bool = xret;
    }
    void x_34(Smoke::Stack x) {
        // virtual void setChangedChunk(int, int)
        if (dynamic_cast<__internal_SmokeClass*>(static_cast<Q3Canvas*>(this))) {
            this->Q3Canvas::setChangedChunk((int)x[1].s_int,(int)x[2].s_int);
            (void)x; // noop (for compiler warning)
        } else {
            this->setChangedChunk((int)x[1].s_int,(int)x[2].s_int);
            (void)x; // noop (for compiler warning)
        }
    }
    void x_35(Smoke::Stack x) {
        // virtual void setChangedChunkContaining(int, int)
        if (dynamic_cast<__internal_SmokeClass*>(static_cast<Q3Canvas*>(this))) {
            this->Q3Canvas::setChangedChunkContaining((int)x[1].s_int,(int)x[2].s_int);
            (void)x; // noop (for compiler warning)
        } else {
            this->setChangedChunkContaining((int)x[1].s_int,(int)x[2].s_int);
            (void)x; // noop (for compiler warning)
        }
    }
    void x_36(Smoke::Stack x) {
        // virtual void setAllChanged()
        if (dynamic_cast<__internal_SmokeClass*>(static_cast<Q3Canvas*>(this))) {
            this->Q3Canvas::setAllChanged();
            (void)x; // noop (for compiler warning)
        } else {
            this->setAllChanged();
            (void)x; // noop (for compiler warning)
        }
    }
    void x_37(Smoke::Stack x) {
        // virtual void setChanged(const QRect&)
        if (dynamic_cast<__internal_SmokeClass*>(static_cast<Q3Canvas*>(this))) {
            this->Q3Canvas::setChanged(*(const QRect*)x[1].s_class);
            (void)x; // noop (for compiler warning)
        } else {
            this->setChanged(*(const QRect*)x[1].s_class);
            (void)x; // noop (for compiler warning)
        }
    }
    void x_38(Smoke::Stack x) {
        // virtual void setUnchanged(const QRect&)
        if (dynamic_cast<__internal_SmokeClass*>(static_cast<Q3Canvas*>(this))) {
            this->Q3Canvas::setUnchanged(*(const QRect*)x[1].s_class);
            (void)x; // noop (for compiler warning)
        } else {
            this->setUnchanged(*(const QRect*)x[1].s_class);
            (void)x; // noop (for compiler warning)
        }
    }
    void x_39(Smoke::Stack x) {
        // void addItemToChunk(Q3CanvasItem*, int, int)
        this->Q3Canvas::addItemToChunk((Q3CanvasItem*)x[1].s_class,(int)x[2].s_int,(int)x[3].s_int);
        (void)x; // noop (for compiler warning)
    }
    void x_40(Smoke::Stack x) {
        // void removeItemFromChunk(Q3CanvasItem*, int, int)
        this->Q3Canvas::removeItemFromChunk((Q3CanvasItem*)x[1].s_class,(int)x[2].s_int,(int)x[3].s_int);
        (void)x; // noop (for compiler warning)
    }
    void x_41(Smoke::Stack x) {
        // void addItemToChunkContaining(Q3CanvasItem*, int, int)
        this->Q3Canvas::addItemToChunkContaining((Q3CanvasItem*)x[1].s_class,(int)x[2].s_int,(int)x[3].s_int);
        (void)x; // noop (for compiler warning)
    }
    void x_42(Smoke::Stack x) {
        // void removeItemFromChunkContaining(Q3CanvasItem*, int, int)
        this->Q3Canvas::removeItemFromChunkContaining((Q3CanvasItem*)x[1].s_class,(int)x[2].s_int,(int)x[3].s_int);
        (void)x; // noop (for compiler warning)
    }
    void x_43(Smoke::Stack x) {
        // Q3CanvasItemList allItems()
        Q3CanvasItemList xret = this->Q3Canvas::allItems();
        x[0].s_class = (void*)new Q3CanvasItemList(xret);
    }
    void x_44(Smoke::Stack x) {
        // Q3CanvasItemList collisions(const QPoint&) const
        Q3CanvasItemList xret = ((const x_Q3Canvas*)this)->Q3Canvas::collisions(*(const QPoint*)x[1].s_class);
        x[0].s_class = (void*)new Q3CanvasItemList(xret);
    }
    void x_45(Smoke::Stack x) {
        // Q3CanvasItemList collisions(const QRect&) const
        Q3CanvasItemList xret = ((const x_Q3Canvas*)this)->Q3Canvas::collisions(*(const QRect*)x[1].s_class);
        x[0].s_class = (void*)new Q3CanvasItemList(xret);
    }
    void x_46(Smoke::Stack x) {
        // Q3CanvasItemList collisions(const Q3PointArray&, const Q3CanvasItem*, bool) const
        Q3CanvasItemList xret = ((const x_Q3Canvas*)this)->Q3Canvas::collisions(*(const Q3PointArray*)x[1].s_class,(const Q3CanvasItem*)x[2].s_class,(bool)x[3].s_bool);
        x[0].s_class = (void*)new Q3CanvasItemList(xret);
    }
    void x_47(Smoke::Stack x) {
        // void drawArea(const QRect&, QPainter*, bool)
        this->Q3Canvas::drawArea(*(const QRect*)x[1].s_class,(QPainter*)x[2].s_class,(bool)x[3].s_bool);
        (void)x; // noop (for compiler warning)
    }
    void x_48(Smoke::Stack x) {
        // virtual void addView(Q3CanvasView*)
        if (dynamic_cast<__internal_SmokeClass*>(static_cast<Q3Canvas*>(this))) {
            this->Q3Canvas::addView((Q3CanvasView*)x[1].s_class);
            (void)x; // noop (for compiler warning)
        } else {
            this->addView((Q3CanvasView*)x[1].s_class);
            (void)x; // noop (for compiler warning)
        }
    }
    void x_49(Smoke::Stack x) {
        // virtual void removeView(Q3CanvasView*)
        if (dynamic_cast<__internal_SmokeClass*>(static_cast<Q3Canvas*>(this))) {
            this->Q3Canvas::removeView((Q3CanvasView*)x[1].s_class);
            (void)x; // noop (for compiler warning)
        } else {
            this->removeView((Q3CanvasView*)x[1].s_class);
            (void)x; // noop (for compiler warning)
        }
    }
    void x_50(Smoke::Stack x) {
        // void drawCanvasArea(const QRect&, QPainter*, bool)
        this->Q3Canvas::drawCanvasArea(*(const QRect*)x[1].s_class,(QPainter*)x[2].s_class,(bool)x[3].s_bool);
        (void)x; // noop (for compiler warning)
    }
    void x_51(Smoke::Stack x) {
        // void drawViewArea(Q3CanvasView*, QPainter*, const QRect&, bool)
        this->Q3Canvas::drawViewArea((Q3CanvasView*)x[1].s_class,(QPainter*)x[2].s_class,*(const QRect*)x[3].s_class,(bool)x[4].s_bool);
        (void)x; // noop (for compiler warning)
    }
    void x_52(Smoke::Stack x) {
        // virtual void addItem(Q3CanvasItem*)
        if (dynamic_cast<__internal_SmokeClass*>(static_cast<Q3Canvas*>(this))) {
            this->Q3Canvas::addItem((Q3CanvasItem*)x[1].s_class);
            (void)x; // noop (for compiler warning)
        } else {
            this->addItem((Q3CanvasItem*)x[1].s_class);
            (void)x; // noop (for compiler warning)
        }
    }
    void x_53(Smoke::Stack x) {
        // virtual void addAnimation(Q3CanvasItem*)
        if (dynamic_cast<__internal_SmokeClass*>(static_cast<Q3Canvas*>(this))) {
            this->Q3Canvas::addAnimation((Q3CanvasItem*)x[1].s_class);
            (void)x; // noop (for compiler warning)
        } else {
            this->addAnimation((Q3CanvasItem*)x[1].s_class);
            (void)x; // noop (for compiler warning)
        }
    }
    void x_54(Smoke::Stack x) {
        // virtual void removeItem(Q3CanvasItem*)
        if (dynamic_cast<__internal_SmokeClass*>(static_cast<Q3Canvas*>(this))) {
            this->Q3Canvas::removeItem((Q3CanvasItem*)x[1].s_class);
            (void)x; // noop (for compiler warning)
        } else {
            this->removeItem((Q3CanvasItem*)x[1].s_class);
            (void)x; // noop (for compiler warning)
        }
    }
    void x_55(Smoke::Stack x) {
        // virtual void removeAnimation(Q3CanvasItem*)
        if (dynamic_cast<__internal_SmokeClass*>(static_cast<Q3Canvas*>(this))) {
            this->Q3Canvas::removeAnimation((Q3CanvasItem*)x[1].s_class);
            (void)x; // noop (for compiler warning)
        } else {
            this->removeAnimation((Q3CanvasItem*)x[1].s_class);
            (void)x; // noop (for compiler warning)
        }
    }
    void x_56(Smoke::Stack x) {
        // virtual void setAdvancePeriod(int)
        if (dynamic_cast<__internal_SmokeClass*>(static_cast<Q3Canvas*>(this))) {
            this->Q3Canvas::setAdvancePeriod((int)x[1].s_int);
            (void)x; // noop (for compiler warning)
        } else {
            this->setAdvancePeriod((int)x[1].s_int);
            (void)x; // noop (for compiler warning)
        }
    }
    void x_57(Smoke::Stack x) {
        // virtual void setUpdatePeriod(int)
        if (dynamic_cast<__internal_SmokeClass*>(static_cast<Q3Canvas*>(this))) {
            this->Q3Canvas::setUpdatePeriod((int)x[1].s_int);
            (void)x; // noop (for compiler warning)
        } else {
            this->setUpdatePeriod((int)x[1].s_int);
            (void)x; // noop (for compiler warning)
        }
    }
    void x_58(Smoke::Stack x) {
        // virtual void setDoubleBuffering(bool)
        if (dynamic_cast<__internal_SmokeClass*>(static_cast<Q3Canvas*>(this))) {
            this->Q3Canvas::setDoubleBuffering((bool)x[1].s_bool);
            (void)x; // noop (for compiler warning)
        } else {
            this->setDoubleBuffering((bool)x[1].s_bool);
            (void)x; // noop (for compiler warning)
        }
    }
    void x_59(Smoke::Stack x) {
        // void resized()
        this->Q3Canvas::resized();
        (void)x; // noop (for compiler warning)
    }
    void x_60(Smoke::Stack x) {
        // virtual void advance()
        if (dynamic_cast<__internal_SmokeClass*>(static_cast<Q3Canvas*>(this))) {
            this->Q3Canvas::advance();
            (void)x; // noop (for compiler warning)
        } else {
            this->advance();
            (void)x; // noop (for compiler warning)
        }
    }
    void x_61(Smoke::Stack x) {
        // virtual void update()
        if (dynamic_cast<__internal_SmokeClass*>(static_cast<Q3Canvas*>(this))) {
            this->Q3Canvas::update();
            (void)x; // noop (for compiler warning)
        } else {
            this->update();
            (void)x; // noop (for compiler warning)
        }
    }
    void x_62(Smoke::Stack x) {
        // virtual void drawBackground(QPainter&, const QRect&)
        if (dynamic_cast<__internal_SmokeClass*>(static_cast<Q3Canvas*>(this))) {
            this->Q3Canvas::drawBackground(*(QPainter*)x[1].s_class,*(const QRect*)x[2].s_class);
            (void)x; // noop (for compiler warning)
        } else {
            this->drawBackground(*(QPainter*)x[1].s_class,*(const QRect*)x[2].s_class);
            (void)x; // noop (for compiler warning)
        }
    }
    void x_63(Smoke::Stack x) {
        // virtual void drawForeground(QPainter&, const QRect&)
        if (dynamic_cast<__internal_SmokeClass*>(static_cast<Q3Canvas*>(this))) {
            this->Q3Canvas::drawForeground(*(QPainter*)x[1].s_class,*(const QRect*)x[2].s_class);
            (void)x; // noop (for compiler warning)
        } else {
            this->drawForeground(*(QPainter*)x[1].s_class,*(const QRect*)x[2].s_class);
            (void)x; // noop (for compiler warning)
        }
    }
    static void x_64(Smoke::Stack x) {
        // static QString tr(const char*)
        QString xret = Q3Canvas::tr((const char*)x[1].s_class,(const char*)0);
        x[0].s_class = (void*)new QString(xret);
    }
    static void x_65(Smoke::Stack x) {
        // static QString trUtf8(const char*)
        QString xret = Q3Canvas::trUtf8((const char*)x[1].s_class,(const char*)0);
        x[0].s_class = (void*)new QString(xret);
    }
    static void x_66(Smoke::Stack x) {
        // Q3Canvas* Q3Canvas()
        x_Q3Canvas* xret = new x_Q3Canvas((QObject*)0,(const char*)0);
        x[0].s_class = (void*)xret;
    }
    static void x_67(Smoke::Stack x) {
        // Q3Canvas* Q3Canvas(QObject*)
        x_Q3Canvas* xret = new x_Q3Canvas((QObject*)x[1].s_class,(const char*)0);
        x[0].s_class = (void*)xret;
    }
    void x_68(Smoke::Stack x) {
        // void retune(int)
        this->Q3Canvas::retune((int)x[1].s_int,(int)100);
        (void)x; // noop (for compiler warning)
    }
    void x_69(Smoke::Stack x) {
        // void drawArea(const QRect&, QPainter*)
        this->Q3Canvas::drawArea(*(const QRect*)x[1].s_class,(QPainter*)x[2].s_class,(bool)false);
        (void)x; // noop (for compiler warning)
    }
    void x_70(Smoke::Stack x) {
        // void drawCanvasArea(const QRect&)
        this->Q3Canvas::drawCanvasArea(*(const QRect*)x[1].s_class,(QPainter*)0,(bool)true);
        (void)x; // noop (for compiler warning)
    }
    void x_71(Smoke::Stack x) {
        // void drawCanvasArea(const QRect&, QPainter*)
        this->Q3Canvas::drawCanvasArea(*(const QRect*)x[1].s_class,(QPainter*)x[2].s_class,(bool)true);
        (void)x; // noop (for compiler warning)
    }
    static void x_72(Smoke::Stack x) {
        // static const QMetaObject staticMetaObject
        x[0].s_class = (void*)&Q3Canvas::staticMetaObject;
    }
    virtual const QMetaObject* metaObject() const {
        Smoke::StackItem x[1];
        if (this->_binding->callMethod(206, (void*)this, x)) return (const QMetaObject*)x[0].s_class;
        return this->Q3Canvas::metaObject();
    }
    virtual void* qt_metacast(const char* x1) {
        Smoke::StackItem x[2];
        x[1].s_class = (void*)x1;
        if (this->_binding->callMethod(207, (void*)this, x)) return (void*)x[0].s_class;
        return this->Q3Canvas::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(212, (void*)this, x)) return (int)x[0].s_int;
        return this->Q3Canvas::qt_metacall(x1, x2, x3);
    }
    virtual void setTiles(QPixmap x1, int x2, int x3, int x4, int x5) {
        Smoke::StackItem x[6];
        x[1].s_class = (void*)new QPixmap(x1);
        x[2].s_int = x2;
        x[3].s_int = x3;
        x[4].s_int = x4;
        x[5].s_int = x5;
        if (this->_binding->callMethod(216, (void*)this, x)) return;
        this->Q3Canvas::setTiles(x1, x2, x3, x4, x5);
    }
    virtual void setBackgroundPixmap(const QPixmap& x1) {
        Smoke::StackItem x[2];
        x[1].s_class = (void*)&x1;
        if (this->_binding->callMethod(217, (void*)this, x)) return;
        this->Q3Canvas::setBackgroundPixmap(x1);
    }
    virtual void setBackgroundColor(const QColor& x1) {
        Smoke::StackItem x[2];
        x[1].s_class = (void*)&x1;
        if (this->_binding->callMethod(219, (void*)this, x)) return;
        this->Q3Canvas::setBackgroundColor(x1);
    }
    virtual void setTile(int x1, int x2, int x3) {
        Smoke::StackItem x[4];
        x[1].s_int = x1;
        x[2].s_int = x2;
        x[3].s_int = x3;
        if (this->_binding->callMethod(221, (void*)this, x)) return;
        this->Q3Canvas::setTile(x1, x2, x3);
    }
    virtual void resize(int x1, int x2) {
        Smoke::StackItem x[3];
        x[1].s_int = x1;
        x[2].s_int = x2;
        if (this->_binding->callMethod(227, (void*)this, x)) return;
        this->Q3Canvas::resize(x1, x2);
    }
    virtual void retune(int x1, int x2) {
        Smoke::StackItem x[3];
        x[1].s_int = x1;
        x[2].s_int = x2;
        if (this->_binding->callMethod(237, (void*)this, x)) return;
        this->Q3Canvas::retune(x1, x2);
    }
    virtual void setChangedChunk(int x1, int x2) {
        Smoke::StackItem x[3];
        x[1].s_int = x1;
        x[2].s_int = x2;
        if (this->_binding->callMethod(239, (void*)this, x)) return;
        this->Q3Canvas::setChangedChunk(x1, x2);
    }
    virtual void setChangedChunkContaining(int x1, int x2) {
        Smoke::StackItem x[3];
        x[1].s_int = x1;
        x[2].s_int = x2;
        if (this->_binding->callMethod(240, (void*)this, x)) return;
        this->Q3Canvas::setChangedChunkContaining(x1, x2);
    }
    virtual void setAllChanged() {
        Smoke::StackItem x[1];
        if (this->_binding->callMethod(241, (void*)this, x)) return;
        this->Q3Canvas::setAllChanged();
    }
    virtual void setChanged(const QRect& x1) {
        Smoke::StackItem x[2];
        x[1].s_class = (void*)&x1;
        if (this->_binding->callMethod(242, (void*)this, x)) return;
        this->Q3Canvas::setChanged(x1);
    }
    virtual void setUnchanged(const QRect& x1) {
        Smoke::StackItem x[2];
        x[1].s_class = (void*)&x1;
        if (this->_binding->callMethod(243, (void*)this, x)) return;
        this->Q3Canvas::setUnchanged(x1);
    }
    virtual void addView(Q3CanvasView* x1) {
        Smoke::StackItem x[2];
        x[1].s_class = (void*)x1;
        if (this->_binding->callMethod(253, (void*)this, x)) return;
        this->Q3Canvas::addView(x1);
    }
    virtual void removeView(Q3CanvasView* x1) {
        Smoke::StackItem x[2];
        x[1].s_class = (void*)x1;
        if (this->_binding->callMethod(254, (void*)this, x)) return;
        this->Q3Canvas::removeView(x1);
    }
    virtual void addItem(Q3CanvasItem* x1) {
        Smoke::StackItem x[2];
        x[1].s_class = (void*)x1;
        if (this->_binding->callMethod(257, (void*)this, x)) return;
        this->Q3Canvas::addItem(x1);
    }
    virtual void addAnimation(Q3CanvasItem* x1) {
        Smoke::StackItem x[2];
        x[1].s_class = (void*)x1;
        if (this->_binding->callMethod(258, (void*)this, x)) return;
        this->Q3Canvas::addAnimation(x1);
    }
    virtual void removeItem(Q3CanvasItem* x1) {
        Smoke::StackItem x[2];
        x[1].s_class = (void*)x1;
        if (this->_binding->callMethod(259, (void*)this, x)) return;
        this->Q3Canvas::removeItem(x1);
    }
    virtual void removeAnimation(Q3CanvasItem* x1) {
        Smoke::StackItem x[2];
        x[1].s_class = (void*)x1;
        if (this->_binding->callMethod(260, (void*)this, x)) return;
        this->Q3Canvas::removeAnimation(x1);
    }
    virtual void setAdvancePeriod(int x1) {
        Smoke::StackItem x[2];
        x[1].s_int = x1;
        if (this->_binding->callMethod(261, (void*)this, x)) return;
        this->Q3Canvas::setAdvancePeriod(x1);
    }
    virtual void setUpdatePeriod(int x1) {
        Smoke::StackItem x[2];
        x[1].s_int = x1;
        if (this->_binding->callMethod(262, (void*)this, x)) return;
        this->Q3Canvas::setUpdatePeriod(x1);
    }
    virtual void setDoubleBuffering(bool x1) {
        Smoke::StackItem x[2];
        x[1].s_bool = x1;
        if (this->_binding->callMethod(263, (void*)this, x)) return;
        this->Q3Canvas::setDoubleBuffering(x1);
    }
    virtual void advance() {
        Smoke::StackItem x[1];
        if (this->_binding->callMethod(265, (void*)this, x)) return;
        this->Q3Canvas::advance();
    }
    virtual void update() {
        Smoke::StackItem x[1];
        if (this->_binding->callMethod(266, (void*)this, x)) return;
        this->Q3Canvas::update();
    }
    virtual void drawBackground(QPainter& x1, const QRect& x2) {
        Smoke::StackItem x[3];
        x[1].s_class = (void*)&x1;
        x[2].s_class = (void*)&x2;
        if (this->_binding->callMethod(267, (void*)this, x)) return;
        this->Q3Canvas::drawBackground(x1, x2);
    }
    virtual void drawForeground(QPainter& x1, const QRect& x2) {
        Smoke::StackItem x[3];
        x[1].s_class = (void*)&x1;
        x[2].s_class = (void*)&x2;
        if (this->_binding->callMethod(268, (void*)this, x)) return;
        this->Q3Canvas::drawForeground(x1, x2);
    }
    virtual bool event(QEvent* x1) {
        Smoke::StackItem x[2];
        x[1].s_class = (void*)x1;
        if (this->_binding->callMethod(5238, (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(5239, (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(5240, (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(5241, (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(5242, (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(5243, (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(5244, (void*)this, x)) return;
        this->QObject::disconnectNotify(x1);
    }
    ~x_Q3Canvas() { this->_binding->deleted(8, (void*)this); }
};
void xcall_Q3Canvas(Smoke::Index xi, void *obj, Smoke::Stack args) {
    x_Q3Canvas *xself = (x_Q3Canvas*)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_Q3Canvas::x_3(args);	break;
        case 4: x_Q3Canvas::x_4(args);	break;
        case 5: x_Q3Canvas::x_5(args);	break;
        case 6: x_Q3Canvas::x_6(args);	break;
        case 7: xself->x_7(args);	break;
        case 8: x_Q3Canvas::x_8(args);	break;
        case 9: x_Q3Canvas::x_9(args);	break;
        case 10: x_Q3Canvas::x_10(args);	break;
        case 11: xself->x_11(args);	break;
        case 12: xself->x_12(args);	break;
        case 13: xself->x_13(args);	break;
        case 14: xself->x_14(args);	break;
        case 15: xself->x_15(args);	break;
        case 16: xself->x_16(args);	break;
        case 17: xself->x_17(args);	break;
        case 18: xself->x_18(args);	break;
        case 19: xself->x_19(args);	break;
        case 20: xself->x_20(args);	break;
        case 21: xself->x_21(args);	break;
        case 22: xself->x_22(args);	break;
        case 23: xself->x_23(args);	break;
        case 24: xself->x_24(args);	break;
        case 25: xself->x_25(args);	break;
        case 26: xself->x_26(args);	break;
        case 27: xself->x_27(args);	break;
        case 28: xself->x_28(args);	break;
        case 29: xself->x_29(args);	break;
        case 30: xself->x_30(args);	break;
        case 31: xself->x_31(args);	break;
        case 32: xself->x_32(args);	break;
        case 33: xself->x_33(args);	break;
        case 34: xself->x_34(args);	break;
        case 35: xself->x_35(args);	break;
        case 36: xself->x_36(args);	break;
        case 37: xself->x_37(args);	break;
        case 38: xself->x_38(args);	break;
        case 39: xself->x_39(args);	break;
        case 40: xself->x_40(args);	break;
        case 41: xself->x_41(args);	break;
        case 42: xself->x_42(args);	break;
        case 43: xself->x_43(args);	break;
        case 44: xself->x_44(args);	break;
        case 45: xself->x_45(args);	break;
        case 46: xself->x_46(args);	break;
        case 47: xself->x_47(args);	break;
        case 48: xself->x_48(args);	break;
        case 49: xself->x_49(args);	break;
        case 50: xself->x_50(args);	break;
        case 51: xself->x_51(args);	break;
        case 52: xself->x_52(args);	break;
        case 53: xself->x_53(args);	break;
        case 54: xself->x_54(args);	break;
        case 55: xself->x_55(args);	break;
        case 56: xself->x_56(args);	break;
        case 57: xself->x_57(args);	break;
        case 58: xself->x_58(args);	break;
        case 59: xself->x_59(args);	break;
        case 60: xself->x_60(args);	break;
        case 61: xself->x_61(args);	break;
        case 62: xself->x_62(args);	break;
        case 63: xself->x_63(args);	break;
        case 64: x_Q3Canvas::x_64(args);	break;
        case 65: x_Q3Canvas::x_65(args);	break;
        case 66: x_Q3Canvas::x_66(args);	break;
        case 67: x_Q3Canvas::x_67(args);	break;
        case 68: xself->x_68(args);	break;
        case 69: xself->x_69(args);	break;
        case 70: xself->x_70(args);	break;
        case 71: xself->x_71(args);	break;
        case 72: x_Q3Canvas::x_72(args);	break;
        case 73: delete (Q3Canvas*)xself;	break;
    }
}
class x_Q3CanvasEllipse : public Q3CanvasEllipse, 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) {
        // Q3CanvasEllipse* Q3CanvasEllipse(Q3Canvas*)
        x_Q3CanvasEllipse* xret = new x_Q3CanvasEllipse((Q3Canvas*)x[1].s_class);
        x[0].s_class = (void*)xret;
    }
    explicit x_Q3CanvasEllipse(Q3Canvas* x1) : Q3CanvasEllipse(x1) {}
    static void x_2(Smoke::Stack x) {
        // Q3CanvasEllipse* Q3CanvasEllipse(int, int, Q3Canvas*)
        x_Q3CanvasEllipse* xret = new x_Q3CanvasEllipse((int)x[1].s_int,(int)x[2].s_int,(Q3Canvas*)x[3].s_class);
        x[0].s_class = (void*)xret;
    }
    explicit x_Q3CanvasEllipse(int x1, int x2, Q3Canvas* x3) : Q3CanvasEllipse(x1, x2, x3) {}
    static void x_3(Smoke::Stack x) {
        // Q3CanvasEllipse* Q3CanvasEllipse(int, int, int, int, Q3Canvas*)
        x_Q3CanvasEllipse* xret = new x_Q3CanvasEllipse((int)x[1].s_int,(int)x[2].s_int,(int)x[3].s_int,(int)x[4].s_int,(Q3Canvas*)x[5].s_class);
        x[0].s_class = (void*)xret;
    }
    explicit x_Q3CanvasEllipse(int x1, int x2, int x3, int x4, Q3Canvas* x5) : Q3CanvasEllipse(x1, x2, x3, x4, x5) {}
    void x_4(Smoke::Stack x) {
        // int width() const
        int xret = ((const x_Q3CanvasEllipse*)this)->Q3CanvasEllipse::width();
        x[0].s_int = xret;
    }
    void x_5(Smoke::Stack x) {
        // int height() const
        int xret = ((const x_Q3CanvasEllipse*)this)->Q3CanvasEllipse::height();
        x[0].s_int = xret;
    }
    void x_6(Smoke::Stack x) {
        // void setSize(int, int)
        this->Q3CanvasEllipse::setSize((int)x[1].s_int,(int)x[2].s_int);
        (void)x; // noop (for compiler warning)
    }
    void x_7(Smoke::Stack x) {
        // void setAngles(int, int)
        this->Q3CanvasEllipse::setAngles((int)x[1].s_int,(int)x[2].s_int);
        (void)x; // noop (for compiler warning)
    }
    void x_8(Smoke::Stack x) {
        // int angleStart() const
        int xret = ((const x_Q3CanvasEllipse*)this)->Q3CanvasEllipse::angleStart();
        x[0].s_int = xret;
    }
    void x_9(Smoke::Stack x) {
        // int angleLength() const
        int xret = ((const x_Q3CanvasEllipse*)this)->Q3CanvasEllipse::angleLength();
        x[0].s_int = xret;
    }
    void x_10(Smoke::Stack x) {
        // Q3PointArray areaPoints() const
        if (dynamic_cast<__internal_SmokeClass*>(static_cast<Q3CanvasEllipse*>(this))) {
            Q3PointArray xret = ((const x_Q3CanvasEllipse*)this)->Q3CanvasEllipse::areaPoints();
            x[0].s_class = (void*)new Q3PointArray(xret);
        } else {
            Q3PointArray xret = ((const x_Q3CanvasEllipse*)this)->areaPoints();
            x[0].s_class = (void*)new Q3PointArray(xret);
        }
    }
    void x_11(Smoke::Stack x) {
        // bool collidesWith(const Q3CanvasItem*) const
        if (dynamic_cast<__internal_SmokeClass*>(static_cast<Q3CanvasEllipse*>(this))) {
            bool xret = ((const x_Q3CanvasEllipse*)this)->Q3CanvasEllipse::collidesWith((const Q3CanvasItem*)x[1].s_class);
            x[0].s_bool = xret;
        } else {
            bool xret = ((const x_Q3CanvasEllipse*)this)->collidesWith((const Q3CanvasItem*)x[1].s_class);
            x[0].s_bool = xret;
        }
    }
    void x_12(Smoke::Stack x) {
        // int rtti() const
        if (dynamic_cast<__internal_SmokeClass*>(static_cast<Q3CanvasEllipse*>(this))) {
            int xret = ((const x_Q3CanvasEllipse*)this)->Q3CanvasEllipse::rtti();
            x[0].s_int = xret;
        } else {
            int xret = ((const x_Q3CanvasEllipse*)this)->rtti();
            x[0].s_int = xret;
        }
    }
    void x_13(Smoke::Stack x) {
        // void drawShape(QPainter&)
        if (dynamic_cast<__internal_SmokeClass*>(static_cast<Q3CanvasEllipse*>(this))) {
            this->Q3CanvasEllipse::drawShape(*(QPainter*)x[1].s_class);
            (void)x; // noop (for compiler warning)
        } else {
            this->drawShape(*(QPainter*)x[1].s_class);
            (void)x; // noop (for compiler warning)
        }
    }
    static void x_14(Smoke::Stack x) {
        // Q3CanvasEllipse* Q3CanvasEllipse(const Q3CanvasEllipse&)
        x_Q3CanvasEllipse* xret = new x_Q3CanvasEllipse(*(const Q3CanvasEllipse*)x[1].s_class);
        x[0].s_class = (void*)xret;
    }
    explicit x_Q3CanvasEllipse(const Q3CanvasEllipse& x1) : Q3CanvasEllipse(x1) {}
    static void x_15(Smoke::Stack x) {
        // static int RTTI
        x[0].s_int = Q3CanvasEllipse::RTTI;
    }
    static void x_16(Smoke::Stack x) {
        // static int RTTI=
        Q3CanvasEllipse::RTTI = (int)x[1].s_int;
    }
    virtual void setPen(QPen x1) {
        Smoke::StackItem x[2];
        x[1].s_class = (void*)new QPen(x1);
        if (this->_binding->callMethod(403, (void*)this, x)) return;
        this->Q3CanvasPolygonalItem::setPen(x1);
    }
    virtual void setBrush(QBrush x1) {
        Smoke::StackItem x[2];
        x[1].s_class = (void*)new QBrush(x1);
        if (this->_binding->callMethod(404, (void*)this, x)) return;
        this->Q3CanvasPolygonalItem::setBrush(x1);
    }
    virtual Q3PointArray areaPoints() const {
        Smoke::StackItem x[1];
        if (this->_binding->callMethod(288, (void*)this, x)) {
            Q3PointArray* xptr = (Q3PointArray*)x[0].s_class;
            Q3PointArray xret(*xptr);
            delete xptr;
            return xret;
        }
        return this->Q3CanvasEllipse::areaPoints();
    }
    virtual Q3PointArray areaPointsAdvanced() const {
        Smoke::StackItem x[1];
        if (this->_binding->callMethod(408, (void*)this, x)) {
            Q3PointArray* xptr = (Q3PointArray*)x[0].s_class;
            Q3PointArray xret(*xptr);
            delete xptr;
            return xret;
        }
        return this->Q3CanvasPolygonalItem::areaPointsAdvanced();
    }
    virtual void drawShape(QPainter& x1) {
        Smoke::StackItem x[2];
        x[1].s_class = (void*)&x1;
        if (this->_binding->callMethod(291, (void*)this, x)) return;
        this->Q3CanvasEllipse::drawShape(x1);
    }
    virtual void moveBy(double x1, double x2) {
        Smoke::StackItem x[3];
        x[1].s_double = x1;
        x[2].s_double = x2;
        if (this->_binding->callMethod(299, (void*)this, x)) return;
        this->Q3CanvasItem::moveBy(x1, x2);
    }
    virtual void setAnimated(bool x1) {
        Smoke::StackItem x[2];
        x[1].s_bool = x1;
        if (this->_binding->callMethod(305, (void*)this, x)) return;
        this->Q3CanvasItem::setAnimated(x1);
    }
    virtual void setVelocity(double x1, double x2) {
        Smoke::StackItem x[3];
        x[1].s_double = x1;
        x[2].s_double = x2;
        if (this->_binding->callMethod(306, (void*)this, x)) return;
        this->Q3CanvasItem::setVelocity(x1, x2);
    }
    virtual void advance(int x1) {
        Smoke::StackItem x[2];
        x[1].s_int = x1;
        if (this->_binding->callMethod(311, (void*)this, x)) return;
        this->Q3CanvasItem::advance(x1);
    }
    virtual bool collidesWith(const Q3CanvasItem* x1) const {
        Smoke::StackItem x[2];
        x[1].s_class = (void*)x1;
        if (this->_binding->callMethod(289, (void*)this, x)) return (bool)x[0].s_bool;
        return this->Q3CanvasEllipse::collidesWith(x1);
    }
    virtual void setCanvas(Q3Canvas* x1) {
        Smoke::StackItem x[2];
        x[1].s_class = (void*)x1;
        if (this->_binding->callMethod(314, (void*)this, x)) return;
        this->Q3CanvasItem::setCanvas(x1);
    }
    virtual void draw(QPainter& x1) {
        Smoke::StackItem x[2];
        x[1].s_class = (void*)&x1;
        if (this->_binding->callMethod(411, (void*)this, x)) return;
        this->Q3CanvasPolygonalItem::draw(x1);
    }
    virtual void setVisible(bool x1) {
        Smoke::StackItem x[2];
        x[1].s_bool = x1;
        if (this->_binding->callMethod(318, (void*)this, x)) return;
        this->Q3CanvasItem::setVisible(x1);
    }
    virtual void setSelected(bool x1) {
        Smoke::StackItem x[2];
        x[1].s_bool = x1;
        if (this->_binding->callMethod(320, (void*)this, x)) return;
        this->Q3CanvasItem::setSelected(x1);
    }
    virtual void setEnabled(bool x1) {
        Smoke::StackItem x[2];
        x[1].s_bool = x1;
        if (this->_binding->callMethod(322, (void*)this, x)) return;
        this->Q3CanvasItem::setEnabled(x1);
    }
    virtual void setActive(bool x1) {
        Smoke::StackItem x[2];
        x[1].s_bool = x1;
        if (this->_binding->callMethod(324, (void*)this, x)) return;
        this->Q3CanvasItem::setActive(x1);
    }
    virtual int rtti() const {
        Smoke::StackItem x[1];
        if (this->_binding->callMethod(290, (void*)this, x)) return (int)x[0].s_int;
        return this->Q3CanvasEllipse::rtti();
    }
    virtual QRect boundingRect() const {
        Smoke::StackItem x[1];
        if (this->_binding->callMethod(409, (void*)this, x)) {
            QRect* xptr = (QRect*)x[0].s_class;
            QRect xret(*xptr);
            delete xptr;
            return xret;
        }
        return this->Q3CanvasPolygonalItem::boundingRect();
    }
    virtual QRect boundingRectAdvanced() const {
        Smoke::StackItem x[1];
        if (this->_binding->callMethod(332, (void*)this, x)) {
            QRect* xptr = (QRect*)x[0].s_class;
            QRect xret(*xptr);
            delete xptr;
            return xret;
        }
        return this->Q3CanvasItem::boundingRectAdvanced();
    }
    ~x_Q3CanvasEllipse() { this->_binding->deleted(9, (void*)this); }
};
void xcall_Q3CanvasEllipse(Smoke::Index xi, void *obj, Smoke::Stack args) {
    x_Q3CanvasEllipse *xself = (x_Q3CanvasEllipse*)obj;
    switch(xi) {
        case 0: xself->x_0(args);	break;
        case 1: x_Q3CanvasEllipse::x_1(args);	break;
        case 2: x_Q3CanvasEllipse::x_2(args);	break;
        case 3: x_Q3CanvasEllipse::x_3(args);	break;
        case 4: xself->x_4(args);	break;
        case 5: xself->x_5(args);	break;
        case 6: xself->x_6(args);	break;
        case 7: xself->x_7(args);	break;
        case 8: xself->x_8(args);	break;
        case 9: xself->x_9(args);	break;
        case 10: xself->x_10(args);	break;
        case 11: xself->x_11(args);	break;
        case 12: xself->x_12(args);	break;
        case 13: xself->x_13(args);	break;
        case 14: x_Q3CanvasEllipse::x_14(args);	break;
        case 15: x_Q3CanvasEllipse::x_15(args);	break;
        case 16: x_Q3CanvasEllipse::x_16(args);	break;
        case 17: delete (Q3CanvasEllipse*)xself;	break;
    }
}
class x_Q3CanvasItem : public Q3CanvasItem, public __internal_SmokeClass {
public:
    void x_1(Smoke::Stack x) {
        // double x() const
        double xret = ((const x_Q3CanvasItem*)this)->Q3CanvasItem::x();
        x[0].s_double = xret;
    }
    void x_2(Smoke::Stack x) {
        // double y() const
        double xret = ((const x_Q3CanvasItem*)this)->Q3CanvasItem::y();
        x[0].s_double = xret;
    }
    void x_3(Smoke::Stack x) {
        // double z() const
        double xret = ((const x_Q3CanvasItem*)this)->Q3CanvasItem::z();
        x[0].s_double = xret;
    }
    void x_4(Smoke::Stack x) {
        // virtual void moveBy(double, double)
        this->Q3CanvasItem::moveBy((double)x[1].s_double,(double)x[2].s_double);
        (void)x; // noop (for compiler warning)
    }
    void x_5(Smoke::Stack x) {
        // void move(double, double)
        this->Q3CanvasItem::move((double)x[1].s_double,(double)x[2].s_double);
        (void)x; // noop (for compiler warning)
    }
    void x_6(Smoke::Stack x) {
        // void setX(double)
        this->Q3CanvasItem::setX((double)x[1].s_double);
        (void)x; // noop (for compiler warning)
    }
    void x_7(Smoke::Stack x) {
        // void setY(double)
        this->Q3CanvasItem::setY((double)x[1].s_double);
        (void)x; // noop (for compiler warning)
    }
    void x_8(Smoke::Stack x) {
        // void setZ(double)
        this->Q3CanvasItem::setZ((double)x[1].s_double);
        (void)x; // noop (for compiler warning)
    }
    void x_9(Smoke::Stack x) {
        // bool animated() const
        bool xret = ((const x_Q3CanvasItem*)this)->Q3CanvasItem::animated();
        x[0].s_bool = xret;
    }
    void x_10(Smoke::Stack x) {
        // virtual void setAnimated(bool)
        this->Q3CanvasItem::setAnimated((bool)x[1].s_bool);
        (void)x; // noop (for compiler warning)
    }
    void x_11(Smoke::Stack x) {
        // virtual void setVelocity(double, double)
        this->Q3CanvasItem::setVelocity((double)x[1].s_double,(double)x[2].s_double);
        (void)x; // noop (for compiler warning)
    }
    void x_12(Smoke::Stack x) {
        // void setXVelocity(double)
        this->Q3CanvasItem::setXVelocity((double)x[1].s_double);
        (void)x; // noop (for compiler warning)
    }
    void x_13(Smoke::Stack x) {
        // void setYVelocity(double)
        this->Q3CanvasItem::setYVelocity((double)x[1].s_double);
        (void)x; // noop (for compiler warning)
    }
    void x_14(Smoke::Stack x) {
        // double xVelocity() const
        double xret = ((const x_Q3CanvasItem*)this)->Q3CanvasItem::xVelocity();
        x[0].s_double = xret;
    }
    void x_15(Smoke::Stack x) {
        // double yVelocity() const
        double xret = ((const x_Q3CanvasItem*)this)->Q3CanvasItem::yVelocity();
        x[0].s_double = xret;
    }
    void x_16(Smoke::Stack x) {
        // virtual void advance(int)
        this->Q3CanvasItem::advance((int)x[1].s_int);
        (void)x; // noop (for compiler warning)
    }
    void x_17(Smoke::Stack x) {
        // virtual bool collidesWith(const Q3CanvasItem*) const = 0
        bool xret = ((const x_Q3CanvasItem*)this)->collidesWith((const Q3CanvasItem*)x[1].s_class);
        x[0].s_bool = xret;
    }
    void x_18(Smoke::Stack x) {
        // Q3CanvasItemList collisions(bool) const
        Q3CanvasItemList xret = ((const x_Q3CanvasItem*)this)->Q3CanvasItem::collisions((bool)x[1].s_bool);
        x[0].s_class = (void*)new Q3CanvasItemList(xret);
    }
    void x_19(Smoke::Stack x) {
        // virtual void setCanvas(Q3Canvas*)
        this->Q3CanvasItem::setCanvas((Q3Canvas*)x[1].s_class);
        (void)x; // noop (for compiler warning)
    }
    void x_20(Smoke::Stack x) {
        // virtual void draw(QPainter&) = 0
        this->draw(*(QPainter*)x[1].s_class);
        (void)x; // noop (for compiler warning)
    }
    void x_21(Smoke::Stack x) {
        // void show()
        this->Q3CanvasItem::show();
        (void)x; // noop (for compiler warning)
    }
    void x_22(Smoke::Stack x) {
        // void hide()
        this->Q3CanvasItem::hide();
        (void)x; // noop (for compiler warning)
    }
    void x_23(Smoke::Stack x) {
        // virtual void setVisible(bool)
        this->Q3CanvasItem::setVisible((bool)x[1].s_bool);
        (void)x; // noop (for compiler warning)
    }
    void x_24(Smoke::Stack x) {
        // bool isVisible() const
        bool xret = ((const x_Q3CanvasItem*)this)->Q3CanvasItem::isVisible();
        x[0].s_bool = xret;
    }
    void x_25(Smoke::Stack x) {
        // virtual void setSelected(bool)
        this->Q3CanvasItem::setSelected((bool)x[1].s_bool);
        (void)x; // noop (for compiler warning)
    }
    void x_26(Smoke::Stack x) {
        // bool isSelected() const
        bool xret = ((const x_Q3CanvasItem*)this)->Q3CanvasItem::isSelected();
        x[0].s_bool = xret;
    }
    void x_27(Smoke::Stack x) {
        // virtual void setEnabled(bool)
        this->Q3CanvasItem::setEnabled((bool)x[1].s_bool);
        (void)x; // noop (for compiler warning)
    }
    void x_28(Smoke::Stack x) {
        // bool isEnabled() const
        bool xret = ((const x_Q3CanvasItem*)this)->Q3CanvasItem::isEnabled();
        x[0].s_bool = xret;
    }
    void x_29(Smoke::Stack x) {
        // virtual void setActive(bool)
        this->Q3CanvasItem::setActive((bool)x[1].s_bool);
        (void)x; // noop (for compiler warning)
    }
    void x_30(Smoke::Stack x) {
        // bool isActive() const
        bool xret = ((const x_Q3CanvasItem*)this)->Q3CanvasItem::isActive();
        x[0].s_bool = xret;
    }
    void x_31(Smoke::Stack x) {
        // bool visible() const
        bool xret = ((const x_Q3CanvasItem*)this)->Q3CanvasItem::visible();
        x[0].s_bool = xret;
    }
    void x_32(Smoke::Stack x) {
        // bool selected() const
        bool xret = ((const x_Q3CanvasItem*)this)->Q3CanvasItem::selected();
        x[0].s_bool = xret;
    }
    void x_33(Smoke::Stack x) {
        // bool enabled() const
        bool xret = ((const x_Q3CanvasItem*)this)->Q3CanvasItem::enabled();
        x[0].s_bool = xret;
    }
    void x_34(Smoke::Stack x) {
        // bool active() const
        bool xret = ((const x_Q3CanvasItem*)this)->Q3CanvasItem::active();
        x[0].s_bool = xret;
    }
    void x_35(Smoke::Stack x) {
        // virtual int rtti() const
        int xret = ((const x_Q3CanvasItem*)this)->Q3CanvasItem::rtti();
        x[0].s_int = xret;
    }
    void x_36(Smoke::Stack x) {
        // virtual QRect boundingRect() const = 0
        QRect xret = ((const x_Q3CanvasItem*)this)->boundingRect();
        x[0].s_class = (void*)new QRect(xret);
    }
    void x_37(Smoke::Stack x) {
        // virtual QRect boundingRectAdvanced() const
        QRect xret = ((const x_Q3CanvasItem*)this)->Q3CanvasItem::boundingRectAdvanced();
        x[0].s_class = (void*)new QRect(xret);
    }
    void x_38(Smoke::Stack x) {
        // Q3Canvas* canvas() const
        Q3Canvas* xret = ((const x_Q3CanvasItem*)this)->Q3CanvasItem::canvas();
        x[0].s_class = (void*)xret;
    }
    void x_39(Smoke::Stack x) {
        // void update()
        this->Q3CanvasItem::update();
        (void)x; // noop (for compiler warning)
    }
    static void x_40(Smoke::Stack x) {
        // static int RTTI
        x[0].s_int = Q3CanvasItem::RTTI;
    }
    static void x_41(Smoke::Stack x) {
        // static int RTTI=
        Q3CanvasItem::RTTI = (int)x[1].s_int;
    }
    static void x_42(Smoke::Stack x) {
        x[0].s_enum = (long)Q3CanvasItem::Rtti_Item;
    }
    static void x_43(Smoke::Stack x) {
        x[0].s_enum = (long)Q3CanvasItem::Rtti_Sprite;
    }
    static void x_44(Smoke::Stack x) {
        x[0].s_enum = (long)Q3CanvasItem::Rtti_PolygonalItem;
    }
    static void x_45(Smoke::Stack x) {
        x[0].s_enum = (long)Q3CanvasItem::Rtti_Text;
    }
    static void x_46(Smoke::Stack x) {
        x[0].s_enum = (long)Q3CanvasItem::Rtti_Polygon;
    }
    static void x_47(Smoke::Stack x) {
        x[0].s_enum = (long)Q3CanvasItem::Rtti_Rectangle;
    }
    static void x_48(Smoke::Stack x) {
        x[0].s_enum = (long)Q3CanvasItem::Rtti_Ellipse;
    }
    static void x_49(Smoke::Stack x) {
        x[0].s_enum = (long)Q3CanvasItem::Rtti_Line;
    }
    static void x_50(Smoke::Stack x) {
        x[0].s_enum = (long)Q3CanvasItem::Rtti_Spline;
    }
    static void xenum_operation(Smoke::EnumOperation xop, Smoke::Index xtype, void *&xdata, long &xvalue) {
        switch(xtype) {
        case 13: //Q3CanvasItem::RttiValues
            switch(xop) {
                case Smoke::EnumNew:
                    xdata = (void*)new Q3CanvasItem::RttiValues;
                    break;
                case Smoke::EnumDelete:
                    delete (Q3CanvasItem::RttiValues*)xdata;
                    break;
                case Smoke::EnumFromLong:
                    *(Q3CanvasItem::RttiValues*)xdata = (Q3CanvasItem::RttiValues)xvalue;
                    break;
                case Smoke::EnumToLong:
                    xvalue = (long)*(Q3CanvasItem::RttiValues*)xdata;
                    break;
            }
            break;
        }
    }
};
void xenum_Q3CanvasItem(Smoke::EnumOperation xop, Smoke::Index xtype, void *&xdata, long &xvalue) {
    x_Q3CanvasItem::xenum_operation(xop, xtype, xdata, xvalue);
}
void xcall_Q3CanvasItem(Smoke::Index xi, void *obj, Smoke::Stack args) {
    x_Q3CanvasItem *xself = (x_Q3CanvasItem*)obj;
    switch(xi) {
        case 1: xself->x_1(args);	break;
        case 2: xself->x_2(args);	break;
        case 3: xself->x_3(args);	break;
        case 4: xself->x_4(args);	break;
        case 5: xself->x_5(args);	break;
        case 6: xself->x_6(args);	break;
        case 7: xself->x_7(args);	break;
        case 8: xself->x_8(args);	break;
        case 9: xself->x_9(args);	break;
        case 10: xself->x_10(args);	break;
        case 11: xself->x_11(args);	break;
        case 12: xself->x_12(args);	break;
        case 13: xself->x_13(args);	break;
        case 14: xself->x_14(args);	break;
        case 15: xself->x_15(args);	break;
        case 16: xself->x_16(args);	break;
        case 17: xself->x_17(args);	break;
        case 18: xself->x_18(args);	break;
        case 19: xself->x_19(args);	break;
        case 20: xself->x_20(args);	break;
        case 21: xself->x_21(args);	break;
        case 22: xself->x_22(args);	break;
        case 23: xself->x_23(args);	break;
        case 24: xself->x_24(args);	break;
        case 25: xself->x_25(args);	break;
        case 26: xself->x_26(args);	break;
        case 27: xself->x_27(args);	break;
        case 28: xself->x_28(args);	break;
        case 29: xself->x_29(args);	break;
        case 30: xself->x_30(args);	break;
        case 31: xself->x_31(args);	break;
        case 32: xself->x_32(args);	break;
        case 33: xself->x_33(args);	break;
        case 34: xself->x_34(args);	break;
        case 35: xself->x_35(args);	break;
        case 36: xself->x_36(args);	break;
        case 37: xself->x_37(args);	break;
        case 38: xself->x_38(args);	break;
        case 39: xself->x_39(args);	break;
        case 40: x_Q3CanvasItem::x_40(args);	break;
        case 41: x_Q3CanvasItem::x_41(args);	break;
        case 42: x_Q3CanvasItem::x_42(args);	break;
        case 43: x_Q3CanvasItem::x_43(args);	break;
        case 44: x_Q3CanvasItem::x_44(args);	break;
        case 45: x_Q3CanvasItem::x_45(args);	break;
        case 46: x_Q3CanvasItem::x_46(args);	break;
        case 47: x_Q3CanvasItem::x_47(args);	break;
        case 48: x_Q3CanvasItem::x_48(args);	break;
        case 49: x_Q3CanvasItem::x_49(args);	break;
        case 50: x_Q3CanvasItem::x_50(args);	break;
        case 51: delete (Q3CanvasItem*)xself;	break;
    }
}
class x_Q3CanvasItemList : public Q3CanvasItemList {
    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) {
        // void sort()
        this->Q3CanvasItemList::sort();
        (void)x; // noop (for compiler warning)
    }
    void x_2(Smoke::Stack x) {
        // void drawUnique(QPainter&)
        this->Q3CanvasItemList::drawUnique(*(QPainter*)x[1].s_class);
        (void)x; // noop (for compiler warning)
    }
    void x_3(Smoke::Stack x) {
        // Q3CanvasItemList operator+(const Q3CanvasItemList&) const
        Q3CanvasItemList xret = ((const x_Q3CanvasItemList*)this)->Q3CanvasItemList::operator+(*(const Q3CanvasItemList*)x[1].s_class);
        x[0].s_class = (void*)new Q3CanvasItemList(xret);
    }
    static void x_4(Smoke::Stack x) {
        // Q3CanvasItemList* Q3CanvasItemList()
        x_Q3CanvasItemList* xret = new x_Q3CanvasItemList();
        x[0].s_class = (void*)xret;
    }
    explicit x_Q3CanvasItemList() : Q3CanvasItemList() {}
    static void x_5(Smoke::Stack x) {
        // Q3CanvasItemList* Q3CanvasItemList(const Q3CanvasItemList&)
        x_Q3CanvasItemList* xret = new x_Q3CanvasItemList(*(const Q3CanvasItemList*)x[1].s_class);
        x[0].s_class = (void*)xret;
    }
    explicit x_Q3CanvasItemList(const Q3CanvasItemList& x1) : Q3CanvasItemList(x1) {}
    ~x_Q3CanvasItemList() { this->_binding->deleted(11, (void*)this); }
};
void xcall_Q3CanvasItemList(Smoke::Index xi, void *obj, Smoke::Stack args) {
    x_Q3CanvasItemList *xself = (x_Q3CanvasItemList*)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: x_Q3CanvasItemList::x_4(args);	break;
        case 5: x_Q3CanvasItemList::x_5(args);	break;
        case 6: delete (Q3CanvasItemList*)xself;	break;
    }
}
class x_Q3CanvasLine : public Q3CanvasLine, 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) {
        // Q3CanvasLine* Q3CanvasLine(Q3Canvas*)
        x_Q3CanvasLine* xret = new x_Q3CanvasLine((Q3Canvas*)x[1].s_class);
        x[0].s_class = (void*)xret;
    }
    explicit x_Q3CanvasLine(Q3Canvas* x1) : Q3CanvasLine(x1) {}
    void x_2(Smoke::Stack x) {
        // void setPoints(int, int, int, int)
        this->Q3CanvasLine::setPoints((int)x[1].s_int,(int)x[2].s_int,(int)x[3].s_int,(int)x[4].s_int);
        (void)x; // noop (for compiler warning)
    }
    void x_3(Smoke::Stack x) {
        // QPoint startPoint() const
        QPoint xret = ((const x_Q3CanvasLine*)this)->Q3CanvasLine::startPoint();
        x[0].s_class = (void*)new QPoint(xret);
    }
    void x_4(Smoke::Stack x) {
        // QPoint endPoint() const
        QPoint xret = ((const x_Q3CanvasLine*)this)->Q3CanvasLine::endPoint();
        x[0].s_class = (void*)new QPoint(xret);
    }
    void x_5(Smoke::Stack x) {
        // int rtti() const
        if (dynamic_cast<__internal_SmokeClass*>(static_cast<Q3CanvasLine*>(this))) {
            int xret = ((const x_Q3CanvasLine*)this)->Q3CanvasLine::rtti();
            x[0].s_int = xret;
        } else {
            int xret = ((const x_Q3CanvasLine*)this)->rtti();
            x[0].s_int = xret;
        }
    }
    void x_6(Smoke::Stack x) {
        // void setPen(QPen)
        if (dynamic_cast<__internal_SmokeClass*>(static_cast<Q3CanvasLine*>(this))) {
            this->Q3CanvasLine::setPen(*(QPen*)x[1].s_class);
            (void)x; // noop (for compiler warning)
        } else {
            this->setPen(*(QPen*)x[1].s_class);
            (void)x; // noop (for compiler warning)
        }
    }
    void x_7(Smoke::Stack x) {
        // void moveBy(double, double)
        if (dynamic_cast<__internal_SmokeClass*>(static_cast<Q3CanvasLine*>(this))) {
            this->Q3CanvasLine::moveBy((double)x[1].s_double,(double)x[2].s_double);
            (void)x; // noop (for compiler warning)
        } else {
            this->moveBy((double)x[1].s_double,(double)x[2].s_double);
            (void)x; // noop (for compiler warning)
        }
    }
    void x_8(Smoke::Stack x) {
        // void drawShape(QPainter&)
        if (dynamic_cast<__internal_SmokeClass*>(static_cast<Q3CanvasLine*>(this))) {
            this->Q3CanvasLine::drawShape(*(QPainter*)x[1].s_class);
            (void)x; // noop (for compiler warning)
        } else {
            this->drawShape(*(QPainter*)x[1].s_class);
            (void)x; // noop (for compiler warning)
        }
    }
    void x_9(Smoke::Stack x) {
        // Q3PointArray areaPoints() const
        if (dynamic_cast<__internal_SmokeClass*>(static_cast<Q3CanvasLine*>(this))) {
            Q3PointArray xret = ((const x_Q3CanvasLine*)this)->Q3CanvasLine::areaPoints();
            x[0].s_class = (void*)new Q3PointArray(xret);
        } else {
            Q3PointArray xret = ((const x_Q3CanvasLine*)this)->areaPoints();
            x[0].s_class = (void*)new Q3PointArray(xret);
        }
    }
    static void x_10(Smoke::Stack x) {
        // Q3CanvasLine* Q3CanvasLine(const Q3CanvasLine&)
        x_Q3CanvasLine* xret = new x_Q3CanvasLine(*(const Q3CanvasLine*)x[1].s_class);
        x[0].s_class = (void*)xret;
    }
    explicit x_Q3CanvasLine(const Q3CanvasLine& x1) : Q3CanvasLine(x1) {}
    static void x_11(Smoke::Stack x) {
        // static int RTTI
        x[0].s_int = Q3CanvasLine::RTTI;
    }
    static void x_12(Smoke::Stack x) {
        // static int RTTI=
        Q3CanvasLine::RTTI = (int)x[1].s_int;
    }
    virtual void setPen(QPen x1) {
        Smoke::StackItem x[2];
        x[1].s_class = (void*)new QPen(x1);
        if (this->_binding->callMethod(358, (void*)this, x)) return;
        this->Q3CanvasLine::setPen(x1);
    }
    virtual void setBrush(QBrush x1) {
        Smoke::StackItem x[2];
        x[1].s_class = (void*)new QBrush(x1);
        if (this->_binding->callMethod(404, (void*)this, x)) return;
        this->Q3CanvasPolygonalItem::setBrush(x1);
    }
    virtual Q3PointArray areaPoints() const {
        Smoke::StackItem x[1];
        if (this->_binding->callMethod(361, (void*)this, x)) {
            Q3PointArray* xptr = (Q3PointArray*)x[0].s_class;
            Q3PointArray xret(*xptr);
            delete xptr;
            return xret;
        }
        return this->Q3CanvasLine::areaPoints();
    }
    virtual Q3PointArray areaPointsAdvanced() const {
        Smoke::StackItem x[1];
        if (this->_binding->callMethod(408, (void*)this, x)) {
            Q3PointArray* xptr = (Q3PointArray*)x[0].s_class;
            Q3PointArray xret(*xptr);
            delete xptr;
            return xret;
        }
        return this->Q3CanvasPolygonalItem::areaPointsAdvanced();
    }
    virtual void drawShape(QPainter& x1) {
        Smoke::StackItem x[2];
        x[1].s_class = (void*)&x1;
        if (this->_binding->callMethod(360, (void*)this, x)) return;
        this->Q3CanvasLine::drawShape(x1);
    }
    virtual void moveBy(double x1, double x2) {
        Smoke::StackItem x[3];
        x[1].s_double = x1;
        x[2].s_double = x2;
        if (this->_binding->callMethod(359, (void*)this, x)) return;
        this->Q3CanvasLine::moveBy(x1, x2);
    }
    virtual void setAnimated(bool x1) {
        Smoke::StackItem x[2];
        x[1].s_bool = x1;
        if (this->_binding->callMethod(305, (void*)this, x)) return;
        this->Q3CanvasItem::setAnimated(x1);
    }
    virtual void setVelocity(double x1, double x2) {
        Smoke::StackItem x[3];
        x[1].s_double = x1;
        x[2].s_double = x2;
        if (this->_binding->callMethod(306, (void*)this, x)) return;
        this->Q3CanvasItem::setVelocity(x1, x2);
    }
    virtual void advance(int x1) {
        Smoke::StackItem x[2];
        x[1].s_int = x1;
        if (this->_binding->callMethod(311, (void*)this, x)) return;
        this->Q3CanvasItem::advance(x1);
    }
    virtual bool collidesWith(const Q3CanvasItem* x1) const {
        Smoke::StackItem x[2];
        x[1].s_class = (void*)x1;
        if (this->_binding->callMethod(402, (void*)this, x)) return (bool)x[0].s_bool;
        return this->Q3CanvasPolygonalItem::collidesWith(x1);
    }
    virtual void setCanvas(Q3Canvas* x1) {
        Smoke::StackItem x[2];
        x[1].s_class = (void*)x1;
        if (this->_binding->callMethod(314, (void*)this, x)) return;
        this->Q3CanvasItem::setCanvas(x1);
    }
    virtual void draw(QPainter& x1) {
        Smoke::StackItem x[2];
        x[1].s_class = (void*)&x1;
        if (this->_binding->callMethod(411, (void*)this, x)) return;
        this->Q3CanvasPolygonalItem::draw(x1);
    }
    virtual void setVisible(bool x1) {
        Smoke::StackItem x[2];
        x[1].s_bool = x1;
        if (this->_binding->callMethod(318, (void*)this, x)) return;
        this->Q3CanvasItem::setVisible(x1);
    }
    virtual void setSelected(bool x1) {
        Smoke::StackItem x[2];
        x[1].s_bool = x1;
        if (this->_binding->callMethod(320, (void*)this, x)) return;
        this->Q3CanvasItem::setSelected(x1);
    }
    virtual void setEnabled(bool x1) {
        Smoke::StackItem x[2];
        x[1].s_bool = x1;
        if (this->_binding->callMethod(322, (void*)this, x)) return;
        this->Q3CanvasItem::setEnabled(x1);
    }
    virtual void setActive(bool x1) {
        Smoke::StackItem x[2];
        x[1].s_bool = x1;
        if (this->_binding->callMethod(324, (void*)this, x)) return;
        this->Q3CanvasItem::setActive(x1);
    }
    virtual int rtti() const {
        Smoke::StackItem x[1];
        if (this->_binding->callMethod(357, (void*)this, x)) return (int)x[0].s_int;
        return this->Q3CanvasLine::rtti();
    }
    virtual QRect boundingRect() const {
        Smoke::StackItem x[1];
        if (this->_binding->callMethod(409, (void*)this, x)) {
            QRect* xptr = (QRect*)x[0].s_class;
            QRect xret(*xptr);
            delete xptr;
            return xret;
        }
        return this->Q3CanvasPolygonalItem::boundingRect();
    }
    virtual QRect boundingRectAdvanced() const {
        Smoke::StackItem x[1];
        if (this->_binding->callMethod(332, (void*)this, x)) {
            QRect* xptr = (QRect*)x[0].s_class;
            QRect xret(*xptr);
            delete xptr;
            return xret;
        }
        return this->Q3CanvasItem::boundingRectAdvanced();
    }
    ~x_Q3CanvasLine() { this->_binding->deleted(12, (void*)this); }
};
void xcall_Q3CanvasLine(Smoke::Index xi, void *obj, Smoke::Stack args) {
    x_Q3CanvasLine *xself = (x_Q3CanvasLine*)obj;
    switch(xi) {
        case 0: xself->x_0(args);	break;
        case 1: x_Q3CanvasLine::x_1(args);	break;
        case 2: xself->x_2(args);	break;
        case 3: xself->x_3(args);	break;
        case 4: xself->x_4(args);	break;
        case 5: xself->x_5(args);	break;
        case 6: xself->x_6(args);	break;
        case 7: xself->x_7(args);	break;
        case 8: xself->x_8(args);	break;
        case 9: xself->x_9(args);	break;
        case 10: x_Q3CanvasLine::x_10(args);	break;
        case 11: x_Q3CanvasLine::x_11(args);	break;
        case 12: x_Q3CanvasLine::x_12(args);	break;
        case 13: delete (Q3CanvasLine*)xself;	break;
    }
}
class x_Q3CanvasPixmap : public Q3CanvasPixmap, 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) {
        // Q3CanvasPixmap* Q3CanvasPixmap(const QString&)
        x_Q3CanvasPixmap* xret = new x_Q3CanvasPixmap(*(const QString*)x[1].s_class);
        x[0].s_class = (void*)xret;
    }
    explicit x_Q3CanvasPixmap(const QString& x1) : Q3CanvasPixmap(x1) {}
    static void x_2(Smoke::Stack x) {
        // Q3CanvasPixmap* Q3CanvasPixmap(const QImage&)
        x_Q3CanvasPixmap* xret = new x_Q3CanvasPixmap(*(const QImage*)x[1].s_class);
        x[0].s_class = (void*)xret;
    }
    explicit x_Q3CanvasPixmap(const QImage& x1) : Q3CanvasPixmap(x1) {}
    static void x_3(Smoke::Stack x) {
        // Q3CanvasPixmap* Q3CanvasPixmap(const QPixmap&, const QPoint&)
        x_Q3CanvasPixmap* xret = new x_Q3CanvasPixmap(*(const QPixmap*)x[1].s_class,*(const QPoint*)x[2].s_class);
        x[0].s_class = (void*)xret;
    }
    explicit x_Q3CanvasPixmap(const QPixmap& x1, const QPoint& x2) : Q3CanvasPixmap(x1, x2) {}
    void x_4(Smoke::Stack x) {
        // int offsetX() const
        int xret = ((const x_Q3CanvasPixmap*)this)->Q3CanvasPixmap::offsetX();
        x[0].s_int = xret;
    }
    void x_5(Smoke::Stack x) {
        // int offsetY() const
        int xret = ((const x_Q3CanvasPixmap*)this)->Q3CanvasPixmap::offsetY();
        x[0].s_int = xret;
    }
    void x_6(Smoke::Stack x) {
        // void setOffset(int, int)
        this->Q3CanvasPixmap::setOffset((int)x[1].s_int,(int)x[2].s_int);
        (void)x; // noop (for compiler warning)
    }
    virtual int devType() const {
        Smoke::StackItem x[1];
        if (this->_binding->callMethod(5249, (void*)this, x)) return (int)x[0].s_int;
        return this->QPixmap::devType();
    }
    virtual QPaintEngine* paintEngine() const {
        Smoke::StackItem x[1];
        if (this->_binding->callMethod(5250, (void*)this, x)) return (QPaintEngine*)x[0].s_class;
        return this->QPixmap::paintEngine();
    }
    virtual int metric(QPaintDevice::PaintDeviceMetric x1) const {
        Smoke::StackItem x[2];
        x[1].s_enum = x1;
        if (this->_binding->callMethod(5251, (void*)this, x)) return (int)x[0].s_int;
        return this->QPixmap::metric(x1);
    }
    ~x_Q3CanvasPixmap() { this->_binding->deleted(13, (void*)this); }
};
void xcall_Q3CanvasPixmap(Smoke::Index xi, void *obj, Smoke::Stack args) {
    x_Q3CanvasPixmap *xself = (x_Q3CanvasPixmap*)obj;
    switch(xi) {
        case 0: xself->x_0(args);	break;
        case 1: x_Q3CanvasPixmap::x_1(args);	break;
        case 2: x_Q3CanvasPixmap::x_2(args);	break;
        case 3: x_Q3CanvasPixmap::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 (Q3CanvasPixmap*)xself;	break;
    }
}

}
