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

#include <smoke.h>
#include <qwt_smoke.h>

class __internal_SmokeClass {};

namespace __smokeqwt {

class x_QwtClipper : public QwtClipper {
    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) {
        // static QPolygon clipPolygon(const QRect&, const QPolygon&)
        QPolygon xret = QwtClipper::clipPolygon(*(const QRect*)x[1].s_class,*(const QPolygon*)x[2].s_class);
        x[0].s_class = (void*)new QPolygon(xret);
    }
    static void x_2(Smoke::Stack x) {
        // static QPolygonF clipPolygonF(const QRectF&, const QPolygonF&)
        QPolygonF xret = QwtClipper::clipPolygonF(*(const QRectF*)x[1].s_class,*(const QPolygonF*)x[2].s_class);
        x[0].s_class = (void*)new QPolygonF(xret);
    }
    static void x_3(Smoke::Stack x) {
        // static QVector<QwtDoubleInterval> clipCircle(const QRectF&, const QPointF&, double)
        QVector<QwtDoubleInterval> xret = QwtClipper::clipCircle(*(const QRectF*)x[1].s_class,*(const QPointF*)x[2].s_class,(double)x[3].s_double);
        x[0].s_class = (void*)new QVector<QwtDoubleInterval>(xret);
    }
    static void x_4(Smoke::Stack x) {
        // QwtClipper* QwtClipper()
        x_QwtClipper* xret = new x_QwtClipper();
        x[0].s_class = (void*)xret;
    }
    explicit x_QwtClipper() : QwtClipper() {}
    static void x_5(Smoke::Stack x) {
        // QwtClipper* QwtClipper(const QwtClipper&)
        x_QwtClipper* xret = new x_QwtClipper(*(const QwtClipper*)x[1].s_class);
        x[0].s_class = (void*)xret;
    }
    explicit x_QwtClipper(const QwtClipper& x1) : QwtClipper(x1) {}
    ~x_QwtClipper() { this->_binding->deleted(67, (void*)this); }
};
void xcall_QwtClipper(Smoke::Index xi, void *obj, Smoke::Stack args) {
    x_QwtClipper *xself = (x_QwtClipper*)obj;
    switch(xi) {
        case 0: xself->x_0(args);	break;
        case 1: x_QwtClipper::x_1(args);	break;
        case 2: x_QwtClipper::x_2(args);	break;
        case 3: x_QwtClipper::x_3(args);	break;
        case 4: x_QwtClipper::x_4(args);	break;
        case 5: x_QwtClipper::x_5(args);	break;
        case 6: delete (QwtClipper*)xself;	break;
    }
}
class x_QwtColorMap : public QwtColorMap, 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) {
        // QwtColorMap* QwtColorMap(QwtColorMap::Format)
        x_QwtColorMap* xret = new x_QwtColorMap((QwtColorMap::Format)x[1].s_enum);
        x[0].s_class = (void*)xret;
    }
    explicit x_QwtColorMap(QwtColorMap::Format x1) : QwtColorMap(x1) {}
    void x_2(Smoke::Stack x) {
        // QwtColorMap::Format format() const
        QwtColorMap::Format xret = ((const x_QwtColorMap*)this)->QwtColorMap::format();
        x[0].s_enum = xret;
    }
    void x_3(Smoke::Stack x) {
        // virtual QwtColorMap* copy() const = 0
        QwtColorMap* xret = ((const x_QwtColorMap*)this)->copy();
        x[0].s_class = (void*)xret;
    }
    void x_4(Smoke::Stack x) {
        // virtual unsigned int rgb(const QwtDoubleInterval&, double) const = 0
        unsigned int xret = ((const x_QwtColorMap*)this)->rgb(*(const QwtDoubleInterval*)x[1].s_class,(double)x[2].s_double);
        x[0].s_uint = xret;
    }
    void x_5(Smoke::Stack x) {
        // virtual unsigned char colorIndex(const QwtDoubleInterval&, double) const = 0
        unsigned char xret = ((const x_QwtColorMap*)this)->colorIndex(*(const QwtDoubleInterval*)x[1].s_class,(double)x[2].s_double);
        x[0].s_uchar = xret;
    }
    void x_6(Smoke::Stack x) {
        // QColor color(const QwtDoubleInterval&, double) const
        QColor xret = ((const x_QwtColorMap*)this)->QwtColorMap::color(*(const QwtDoubleInterval*)x[1].s_class,(double)x[2].s_double);
        x[0].s_class = (void*)new QColor(xret);
    }
    void x_7(Smoke::Stack x) {
        // virtual QVector<unsigned int> colorTable(const QwtDoubleInterval&) const
        if (dynamic_cast<__internal_SmokeClass*>(static_cast<QwtColorMap*>(this))) {
            QVector<unsigned int> xret = ((const x_QwtColorMap*)this)->QwtColorMap::colorTable(*(const QwtDoubleInterval*)x[1].s_class);
            x[0].s_class = (void*)new QVector<unsigned int>(xret);
        } else {
            QVector<unsigned int> xret = ((const x_QwtColorMap*)this)->colorTable(*(const QwtDoubleInterval*)x[1].s_class);
            x[0].s_class = (void*)new QVector<unsigned int>(xret);
        }
    }
    static void x_8(Smoke::Stack x) {
        // QwtColorMap* QwtColorMap(const QwtColorMap&)
        x_QwtColorMap* xret = new x_QwtColorMap(*(const QwtColorMap*)x[1].s_class);
        x[0].s_class = (void*)xret;
    }
    explicit x_QwtColorMap(const QwtColorMap& x1) : QwtColorMap(x1) {}
    static void x_9(Smoke::Stack x) {
        // QwtColorMap* QwtColorMap()
        x_QwtColorMap* xret = new x_QwtColorMap((QwtColorMap::Format)QwtColorMap::RGB);
        x[0].s_class = (void*)xret;
    }
    static void x_10(Smoke::Stack x) {
        x[0].s_enum = (long)QwtColorMap::RGB;
    }
    static void x_11(Smoke::Stack x) {
        x[0].s_enum = (long)QwtColorMap::Indexed;
    }
    virtual QwtColorMap* copy() const {
        Smoke::StackItem x[1];
        this->_binding->callMethod(270, (void*)this, x, true /*pure virtual*/);
        return (QwtColorMap*)x[0].s_class;
    }
    virtual unsigned int rgb(const QwtDoubleInterval& x1, double x2) const {
        Smoke::StackItem x[3];
        x[1].s_class = (void*)&x1;
        x[2].s_double = x2;
        this->_binding->callMethod(271, (void*)this, x, true /*pure virtual*/);
        return (unsigned int)x[0].s_uint;
    }
    virtual unsigned char colorIndex(const QwtDoubleInterval& x1, double x2) const {
        Smoke::StackItem x[3];
        x[1].s_class = (void*)&x1;
        x[2].s_double = x2;
        this->_binding->callMethod(272, (void*)this, x, true /*pure virtual*/);
        return (unsigned char)x[0].s_uchar;
    }
    virtual QVector<unsigned int> colorTable(const QwtDoubleInterval& x1) const {
        Smoke::StackItem x[2];
        x[1].s_class = (void*)&x1;
        if (this->_binding->callMethod(274, (void*)this, x)) {
            QVector<unsigned int>* xptr = (QVector<unsigned int>*)x[0].s_class;
            QVector<unsigned int> xret(*xptr);
            delete xptr;
            return xret;
        }
        return this->QwtColorMap::colorTable(x1);
    }
    static void xenum_operation(Smoke::EnumOperation xop, Smoke::Index xtype, void *&xdata, long &xvalue) {
        switch(xtype) {
        case 167: //QwtColorMap::Format
            switch(xop) {
                case Smoke::EnumNew:
                    xdata = (void*)new QwtColorMap::Format;
                    break;
                case Smoke::EnumDelete:
                    delete (QwtColorMap::Format*)xdata;
                    break;
                case Smoke::EnumFromLong:
                    *(QwtColorMap::Format*)xdata = (QwtColorMap::Format)xvalue;
                    break;
                case Smoke::EnumToLong:
                    xvalue = (long)*(QwtColorMap::Format*)xdata;
                    break;
            }
            break;
        }
    }
    ~x_QwtColorMap() { this->_binding->deleted(68, (void*)this); }
};
void xenum_QwtColorMap(Smoke::EnumOperation xop, Smoke::Index xtype, void *&xdata, long &xvalue) {
    x_QwtColorMap::xenum_operation(xop, xtype, xdata, xvalue);
}
void xcall_QwtColorMap(Smoke::Index xi, void *obj, Smoke::Stack args) {
    x_QwtColorMap *xself = (x_QwtColorMap*)obj;
    switch(xi) {
        case 0: xself->x_0(args);	break;
        case 1: x_QwtColorMap::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_QwtColorMap::x_8(args);	break;
        case 9: x_QwtColorMap::x_9(args);	break;
        case 10: x_QwtColorMap::x_10(args);	break;
        case 11: x_QwtColorMap::x_11(args);	break;
        case 12: delete (QwtColorMap*)xself;	break;
    }
}
class x_QwtCompass : public QwtCompass, 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<QwtCompass*>(this))) {
            const QMetaObject* xret = ((const x_QwtCompass*)this)->QwtCompass::metaObject();
            x[0].s_class = (void*)xret;
        } else {
            const QMetaObject* xret = ((const x_QwtCompass*)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<QwtCompass*>(this))) {
            void* xret = this->QwtCompass::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 = QwtCompass::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 = QwtCompass::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 = QwtCompass::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 = QwtCompass::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<QwtCompass*>(this))) {
            int xret = this->QwtCompass::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) {
        // QwtCompass* QwtCompass(QWidget*)
        x_QwtCompass* xret = new x_QwtCompass((QWidget*)x[1].s_class);
        x[0].s_class = (void*)xret;
    }
    explicit x_QwtCompass(QWidget* x1) : QwtCompass(x1) {}
    void x_9(Smoke::Stack x) {
        // void setRose(QwtCompassRose*)
        this->QwtCompass::setRose((QwtCompassRose*)x[1].s_class);
        (void)x; // noop (for compiler warning)
    }
    void x_10(Smoke::Stack x) {
        // const QwtCompassRose* rose() const
        const QwtCompassRose* xret = ((const x_QwtCompass*)this)->QwtCompass::rose();
        x[0].s_class = (void*)xret;
    }
    void x_11(Smoke::Stack x) {
        // QwtCompassRose* rose()
        QwtCompassRose* xret = this->QwtCompass::rose();
        x[0].s_class = (void*)xret;
    }
    void x_12(Smoke::Stack x) {
        // const QMap<double,QString>& labelMap() const
        const QMap<double,QString>& xret = ((const x_QwtCompass*)this)->QwtCompass::labelMap();
        x[0].s_class = (void*)&xret;
    }
    void x_13(Smoke::Stack x) {
        // QMap<double,QString>& labelMap()
        QMap<double,QString>& xret = this->QwtCompass::labelMap();
        x[0].s_class = (void*)&xret;
    }
    void x_14(Smoke::Stack x) {
        // void setLabelMap(const QMap<double,QString>&)
        this->QwtCompass::setLabelMap(*(const QMap<double,QString>*)x[1].s_class);
        (void)x; // noop (for compiler warning)
    }
    void x_15(Smoke::Stack x) {
        // virtual QwtText scaleLabel(double) const
        if (dynamic_cast<__internal_SmokeClass*>(static_cast<QwtCompass*>(this))) {
            QwtText xret = ((const x_QwtCompass*)this)->QwtCompass::scaleLabel((double)x[1].s_double);
            x[0].s_class = (void*)new QwtText(xret);
        } else {
            QwtText xret = ((const x_QwtCompass*)this)->scaleLabel((double)x[1].s_double);
            x[0].s_class = (void*)new QwtText(xret);
        }
    }
    void x_16(Smoke::Stack x) {
        // virtual void drawRose(QPainter*, const QPoint&, int, double, QPalette::ColorGroup) const
        if (dynamic_cast<__internal_SmokeClass*>(static_cast<QwtCompass*>(this))) {
            ((const x_QwtCompass*)this)->QwtCompass::drawRose((QPainter*)x[1].s_class,*(const QPoint*)x[2].s_class,(int)x[3].s_int,(double)x[4].s_double,(QPalette::ColorGroup)x[5].s_enum);
            (void)x; // noop (for compiler warning)
        } else {
            ((const x_QwtCompass*)this)->drawRose((QPainter*)x[1].s_class,*(const QPoint*)x[2].s_class,(int)x[3].s_int,(double)x[4].s_double,(QPalette::ColorGroup)x[5].s_enum);
            (void)x; // noop (for compiler warning)
        }
    }
    void x_17(Smoke::Stack x) {
        // virtual void drawScaleContents(QPainter*, const QPoint&, int) const
        if (dynamic_cast<__internal_SmokeClass*>(static_cast<QwtCompass*>(this))) {
            ((const x_QwtCompass*)this)->QwtCompass::drawScaleContents((QPainter*)x[1].s_class,*(const QPoint*)x[2].s_class,(int)x[3].s_int);
            (void)x; // noop (for compiler warning)
        } else {
            ((const x_QwtCompass*)this)->drawScaleContents((QPainter*)x[1].s_class,*(const QPoint*)x[2].s_class,(int)x[3].s_int);
            (void)x; // noop (for compiler warning)
        }
    }
    void x_18(Smoke::Stack x) {
        // virtual void keyPressEvent(QKeyEvent*)
        if (dynamic_cast<__internal_SmokeClass*>(static_cast<QwtCompass*>(this))) {
            this->QwtCompass::keyPressEvent((QKeyEvent*)x[1].s_class);
            (void)x; // noop (for compiler warning)
        } else {
            this->keyPressEvent((QKeyEvent*)x[1].s_class);
            (void)x; // noop (for compiler warning)
        }
    }
    static void x_19(Smoke::Stack x) {
        // static QString tr(const char*)
        QString xret = QwtCompass::tr((const char*)x[1].s_class,(const char*)0);
        x[0].s_class = (void*)new QString(xret);
    }
    static void x_20(Smoke::Stack x) {
        // static QString trUtf8(const char*)
        QString xret = QwtCompass::trUtf8((const char*)x[1].s_class,(const char*)0);
        x[0].s_class = (void*)new QString(xret);
    }
    static void x_21(Smoke::Stack x) {
        // QwtCompass* QwtCompass()
        x_QwtCompass* xret = new x_QwtCompass((QWidget*)NULL);
        x[0].s_class = (void*)xret;
    }
    static void x_22(Smoke::Stack x) {
        // static const QMetaObject staticMetaObject
        x[0].s_class = (void*)&QwtCompass::staticMetaObject;
    }
    virtual const QMetaObject* metaObject() const {
        Smoke::StackItem x[1];
        if (this->_binding->callMethod(280, (void*)this, x)) return (const QMetaObject*)x[0].s_class;
        return this->QwtCompass::metaObject();
    }
    virtual void* qt_metacast(const char* x1) {
        Smoke::StackItem x[2];
        x[1].s_class = (void*)x1;
        if (this->_binding->callMethod(281, (void*)this, x)) return (void*)x[0].s_class;
        return this->QwtCompass::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(286, (void*)this, x)) return (int)x[0].s_int;
        return this->QwtCompass::qt_metacall(x1, x2, x3);
    }
    virtual QwtText scaleLabel(double x1) const {
        Smoke::StackItem x[2];
        x[1].s_double = x1;
        if (this->_binding->callMethod(294, (void*)this, x)) {
            QwtText* xptr = (QwtText*)x[0].s_class;
            QwtText xret(*xptr);
            delete xptr;
            return xret;
        }
        return this->QwtCompass::scaleLabel(x1);
    }
    virtual void drawRose(QPainter* x1, const QPoint& x2, int x3, double x4, QPalette::ColorGroup x5) const {
        Smoke::StackItem x[6];
        x[1].s_class = (void*)x1;
        x[2].s_class = (void*)&x2;
        x[3].s_int = x3;
        x[4].s_double = x4;
        x[5].s_enum = x5;
        if (this->_binding->callMethod(295, (void*)this, x)) return;
        this->QwtCompass::drawRose(x1, x2, x3, x4, x5);
    }
    virtual void drawScaleContents(QPainter* x1, const QPoint& x2, int x3) const {
        Smoke::StackItem x[4];
        x[1].s_class = (void*)x1;
        x[2].s_class = (void*)&x2;
        x[3].s_int = x3;
        if (this->_binding->callMethod(296, (void*)this, x)) return;
        this->QwtCompass::drawScaleContents(x1, x2, x3);
    }
    virtual void keyPressEvent(QKeyEvent* x1) {
        Smoke::StackItem x[2];
        x[1].s_class = (void*)x1;
        if (this->_binding->callMethod(297, (void*)this, x)) return;
        this->QwtCompass::keyPressEvent(x1);
    }
    virtual void setWrapping(bool x1) {
        Smoke::StackItem x[2];
        x[1].s_bool = x1;
        if (this->_binding->callMethod(406, (void*)this, x)) return;
        this->QwtDial::setWrapping(x1);
    }
    virtual void setScale(int x1, int x2, double x3) {
        Smoke::StackItem x[4];
        x[1].s_int = x1;
        x[2].s_int = x2;
        x[3].s_double = x3;
        if (this->_binding->callMethod(408, (void*)this, x)) return;
        this->QwtDial::setScale(x1, x2, x3);
    }
    virtual void setOrigin(double x1) {
        Smoke::StackItem x[2];
        x[1].s_double = x1;
        if (this->_binding->callMethod(414, (void*)this, x)) return;
        this->QwtDial::setOrigin(x1);
    }
    virtual void setNeedle(QwtDialNeedle* x1) {
        Smoke::StackItem x[2];
        x[1].s_class = (void*)x1;
        if (this->_binding->callMethod(418, (void*)this, x)) return;
        this->QwtDial::setNeedle(x1);
    }
    virtual QRect scaleContentsRect() const {
        Smoke::StackItem x[1];
        if (this->_binding->callMethod(423, (void*)this, x)) {
            QRect* xptr = (QRect*)x[0].s_class;
            QRect xret(*xptr);
            delete xptr;
            return xret;
        }
        return this->QwtDial::scaleContentsRect();
    }
    virtual QSize sizeHint() const {
        Smoke::StackItem x[1];
        if (this->_binding->callMethod(424, (void*)this, x)) {
            QSize* xptr = (QSize*)x[0].s_class;
            QSize xret(*xptr);
            delete xptr;
            return xret;
        }
        return this->QwtDial::sizeHint();
    }
    virtual QSize minimumSizeHint() const {
        Smoke::StackItem x[1];
        if (this->_binding->callMethod(425, (void*)this, x)) {
            QSize* xptr = (QSize*)x[0].s_class;
            QSize xret(*xptr);
            delete xptr;
            return xret;
        }
        return this->QwtDial::minimumSizeHint();
    }
    virtual void setScaleDraw(QwtDialScaleDraw* x1) {
        Smoke::StackItem x[2];
        x[1].s_class = (void*)x1;
        if (this->_binding->callMethod(426, (void*)this, x)) return;
        this->QwtDial::setScaleDraw(x1);
    }
    virtual void paintEvent(QPaintEvent* x1) {
        Smoke::StackItem x[2];
        x[1].s_class = (void*)x1;
        if (this->_binding->callMethod(429, (void*)this, x)) return;
        this->QwtDial::paintEvent(x1);
    }
    virtual void resizeEvent(QResizeEvent* x1) {
        Smoke::StackItem x[2];
        x[1].s_class = (void*)x1;
        if (this->_binding->callMethod(430, (void*)this, x)) return;
        this->QwtDial::resizeEvent(x1);
    }
    virtual void updateMask() {
        Smoke::StackItem x[1];
        if (this->_binding->callMethod(432, (void*)this, x)) return;
        this->QwtDial::updateMask();
    }
    virtual void drawFrame(QPainter* x1) {
        Smoke::StackItem x[2];
        x[1].s_class = (void*)x1;
        if (this->_binding->callMethod(433, (void*)this, x)) return;
        this->QwtDial::drawFrame(x1);
    }
    virtual void drawContents(QPainter* x1) const {
        Smoke::StackItem x[2];
        x[1].s_class = (void*)x1;
        if (this->_binding->callMethod(434, (void*)this, x)) return;
        this->QwtDial::drawContents(x1);
    }
    virtual void drawFocusIndicator(QPainter* x1) const {
        Smoke::StackItem x[2];
        x[1].s_class = (void*)x1;
        if (this->_binding->callMethod(435, (void*)this, x)) return;
        this->QwtDial::drawFocusIndicator(x1);
    }
    virtual void drawScale(QPainter* x1, const QPoint& x2, int x3, double x4, double x5, double x6) const {
        Smoke::StackItem x[7];
        x[1].s_class = (void*)x1;
        x[2].s_class = (void*)&x2;
        x[3].s_int = x3;
        x[4].s_double = x4;
        x[5].s_double = x5;
        x[6].s_double = x6;
        if (this->_binding->callMethod(436, (void*)this, x)) return;
        this->QwtDial::drawScale(x1, x2, x3, x4, x5, x6);
    }
    virtual void drawNeedle(QPainter* x1, const QPoint& x2, int x3, double x4, QPalette::ColorGroup x5) const {
        Smoke::StackItem x[6];
        x[1].s_class = (void*)x1;
        x[2].s_class = (void*)&x2;
        x[3].s_int = x3;
        x[4].s_double = x4;
        x[5].s_enum = x5;
        if (this->_binding->callMethod(438, (void*)this, x)) return;
        this->QwtDial::drawNeedle(x1, x2, x3, x4, x5);
    }
    virtual void rangeChange() {
        Smoke::StackItem x[1];
        if (this->_binding->callMethod(441, (void*)this, x)) return;
        this->QwtDial::rangeChange();
    }
    virtual void valueChange() {
        Smoke::StackItem x[1];
        if (this->_binding->callMethod(442, (void*)this, x)) return;
        this->QwtDial::valueChange();
    }
    virtual double getValue(const QPoint& x1) {
        Smoke::StackItem x[2];
        x[1].s_class = (void*)&x1;
        if (this->_binding->callMethod(443, (void*)this, x)) return (double)x[0].s_double;
        return this->QwtDial::getValue(x1);
    }
    virtual void getScrollMode(const QPoint& x1, int& x2, int& x3) {
        Smoke::StackItem x[4];
        x[1].s_class = (void*)&x1;
        x[2].s_class = (void*)&x2;
        x[3].s_class = (void*)&x3;
        if (this->_binding->callMethod(444, (void*)this, x)) return;
        this->QwtDial::getScrollMode(x1, x2, x3);
    }
    virtual void setMass(double x1) {
        Smoke::StackItem x[2];
        x[1].s_double = x1;
        if (this->_binding->callMethod(153, (void*)this, x)) return;
        this->QwtAbstractSlider::setMass(x1);
    }
    virtual double mass() const {
        Smoke::StackItem x[1];
        if (this->_binding->callMethod(154, (void*)this, x)) return (double)x[0].s_double;
        return this->QwtAbstractSlider::mass();
    }
    virtual void setOrientation(Qt::Orientation x1) {
        Smoke::StackItem x[2];
        x[1].s_enum = x1;
        if (this->_binding->callMethod(155, (void*)this, x)) return;
        this->QwtAbstractSlider::setOrientation(x1);
    }
    virtual void setValue(double x1) {
        Smoke::StackItem x[2];
        x[1].s_double = x1;
        if (this->_binding->callMethod(160, (void*)this, x)) return;
        this->QwtAbstractSlider::setValue(x1);
    }
    virtual void fitValue(double x1) {
        Smoke::StackItem x[2];
        x[1].s_double = x1;
        if (this->_binding->callMethod(161, (void*)this, x)) return;
        this->QwtAbstractSlider::fitValue(x1);
    }
    virtual void incValue(int x1) {
        Smoke::StackItem x[2];
        x[1].s_int = x1;
        if (this->_binding->callMethod(162, (void*)this, x)) return;
        this->QwtAbstractSlider::incValue(x1);
    }
    virtual void setReadOnly(bool x1) {
        Smoke::StackItem x[2];
        x[1].s_bool = x1;
        if (this->_binding->callMethod(163, (void*)this, x)) return;
        this->QwtAbstractSlider::setReadOnly(x1);
    }
    virtual void setPosition(const QPoint& x1) {
        Smoke::StackItem x[2];
        x[1].s_class = (void*)&x1;
        if (this->_binding->callMethod(168, (void*)this, x)) return;
        this->QwtAbstractSlider::setPosition(x1);
    }
    virtual void timerEvent(QTimerEvent* x1) {
        Smoke::StackItem x[2];
        x[1].s_class = (void*)x1;
        if (this->_binding->callMethod(170, (void*)this, x)) return;
        this->QwtAbstractSlider::timerEvent(x1);
    }
    virtual void mousePressEvent(QMouseEvent* x1) {
        Smoke::StackItem x[2];
        x[1].s_class = (void*)x1;
        if (this->_binding->callMethod(171, (void*)this, x)) return;
        this->QwtAbstractSlider::mousePressEvent(x1);
    }
    virtual void mouseReleaseEvent(QMouseEvent* x1) {
        Smoke::StackItem x[2];
        x[1].s_class = (void*)x1;
        if (this->_binding->callMethod(172, (void*)this, x)) return;
        this->QwtAbstractSlider::mouseReleaseEvent(x1);
    }
    virtual void mouseMoveEvent(QMouseEvent* x1) {
        Smoke::StackItem x[2];
        x[1].s_class = (void*)x1;
        if (this->_binding->callMethod(173, (void*)this, x)) return;
        this->QwtAbstractSlider::mouseMoveEvent(x1);
    }
    virtual void wheelEvent(QWheelEvent* x1) {
        Smoke::StackItem x[2];
        x[1].s_class = (void*)x1;
        if (this->_binding->callMethod(175, (void*)this, x)) return;
        this->QwtAbstractSlider::wheelEvent(x1);
    }
    virtual void setVisible(bool x1) {
        Smoke::StackItem x[2];
        x[1].s_bool = x1;
        if (this->_binding->callMethod(46, (void*)this, x)) return;
        this->QWidget::setVisible(x1);
    }
    virtual int heightForWidth(int x1) const {
        Smoke::StackItem x[2];
        x[1].s_int = x1;
        if (this->_binding->callMethod(49, (void*)this, x)) return (int)x[0].s_int;
        return this->QWidget::heightForWidth(x1);
    }
    virtual void mouseDoubleClickEvent(QMouseEvent* x1) {
        Smoke::StackItem x[2];
        x[1].s_class = (void*)x1;
        if (this->_binding->callMethod(54, (void*)this, x)) return;
        this->QWidget::mouseDoubleClickEvent(x1);
    }
    virtual void keyReleaseEvent(QKeyEvent* x1) {
        Smoke::StackItem x[2];
        x[1].s_class = (void*)x1;
        if (this->_binding->callMethod(58, (void*)this, x)) return;
        this->QWidget::keyReleaseEvent(x1);
    }
    virtual void focusInEvent(QFocusEvent* x1) {
        Smoke::StackItem x[2];
        x[1].s_class = (void*)x1;
        if (this->_binding->callMethod(59, (void*)this, x)) return;
        this->QWidget::focusInEvent(x1);
    }
    virtual void focusOutEvent(QFocusEvent* x1) {
        Smoke::StackItem x[2];
        x[1].s_class = (void*)x1;
        if (this->_binding->callMethod(60, (void*)this, x)) return;
        this->QWidget::focusOutEvent(x1);
    }
    virtual void enterEvent(QEvent* x1) {
        Smoke::StackItem x[2];
        x[1].s_class = (void*)x1;
        if (this->_binding->callMethod(61, (void*)this, x)) return;
        this->QWidget::enterEvent(x1);
    }
    virtual void leaveEvent(QEvent* x1) {
        Smoke::StackItem x[2];
        x[1].s_class = (void*)x1;
        if (this->_binding->callMethod(62, (void*)this, x)) return;
        this->QWidget::leaveEvent(x1);
    }
    virtual void moveEvent(QMoveEvent* x1) {
        Smoke::StackItem x[2];
        x[1].s_class = (void*)x1;
        if (this->_binding->callMethod(64, (void*)this, x)) return;
        this->QWidget::moveEvent(x1);
    }
    virtual void closeEvent(QCloseEvent* x1) {
        Smoke::StackItem x[2];
        x[1].s_class = (void*)x1;
        if (this->_binding->callMethod(66, (void*)this, x)) return;
        this->QWidget::closeEvent(x1);
    }
    virtual void contextMenuEvent(QContextMenuEvent* x1) {
        Smoke::StackItem x[2];
        x[1].s_class = (void*)x1;
        if (this->_binding->callMethod(67, (void*)this, x)) return;
        this->QWidget::contextMenuEvent(x1);
    }
    virtual void tabletEvent(QTabletEvent* x1) {
        Smoke::StackItem x[2];
        x[1].s_class = (void*)x1;
        if (this->_binding->callMethod(68, (void*)this, x)) return;
        this->QWidget::tabletEvent(x1);
    }
    virtual void actionEvent(QActionEvent* x1) {
        Smoke::StackItem x[2];
        x[1].s_class = (void*)x1;
        if (this->_binding->callMethod(69, (void*)this, x)) return;
        this->QWidget::actionEvent(x1);
    }
    virtual void dragEnterEvent(QDragEnterEvent* x1) {
        Smoke::StackItem x[2];
        x[1].s_class = (void*)x1;
        if (this->_binding->callMethod(70, (void*)this, x)) return;
        this->QWidget::dragEnterEvent(x1);
    }
    virtual void dragMoveEvent(QDragMoveEvent* x1) {
        Smoke::StackItem x[2];
        x[1].s_class = (void*)x1;
        if (this->_binding->callMethod(71, (void*)this, x)) return;
        this->QWidget::dragMoveEvent(x1);
    }
    virtual void dragLeaveEvent(QDragLeaveEvent* x1) {
        Smoke::StackItem x[2];
        x[1].s_class = (void*)x1;
        if (this->_binding->callMethod(72, (void*)this, x)) return;
        this->QWidget::dragLeaveEvent(x1);
    }
    virtual void dropEvent(QDropEvent* x1) {
        Smoke::StackItem x[2];
        x[1].s_class = (void*)x1;
        if (this->_binding->callMethod(73, (void*)this, x)) return;
        this->QWidget::dropEvent(x1);
    }
    virtual void showEvent(QShowEvent* x1) {
        Smoke::StackItem x[2];
        x[1].s_class = (void*)x1;
        if (this->_binding->callMethod(74, (void*)this, x)) return;
        this->QWidget::showEvent(x1);
    }
    virtual void hideEvent(QHideEvent* x1) {
        Smoke::StackItem x[2];
        x[1].s_class = (void*)x1;
        if (this->_binding->callMethod(75, (void*)this, x)) return;
        this->QWidget::hideEvent(x1);
    }
    virtual bool x11Event(_XEvent* x1) {
        Smoke::StackItem x[2];
        x[1].s_class = (void*)x1;
        if (this->_binding->callMethod(76, (void*)this, x)) return (bool)x[0].s_bool;
        return this->QWidget::x11Event(x1);
    }
    virtual void changeEvent(QEvent* x1) {
        Smoke::StackItem x[2];
        x[1].s_class = (void*)x1;
        if (this->_binding->callMethod(77, (void*)this, x)) return;
        this->QWidget::changeEvent(x1);
    }
    virtual void inputMethodEvent(QInputMethodEvent* x1) {
        Smoke::StackItem x[2];
        x[1].s_class = (void*)x1;
        if (this->_binding->callMethod(79, (void*)this, x)) return;
        this->QWidget::inputMethodEvent(x1);
    }
    virtual QVariant inputMethodQuery(Qt::InputMethodQuery x1) const {
        Smoke::StackItem x[2];
        x[1].s_enum = x1;
        if (this->_binding->callMethod(80, (void*)this, x)) {
            QVariant* xptr = (QVariant*)x[0].s_class;
            QVariant xret(*xptr);
            delete xptr;
            return xret;
        }
        return this->QWidget::inputMethodQuery(x1);
    }
    virtual bool focusNextPrevChild(bool x1) {
        Smoke::StackItem x[2];
        x[1].s_bool = x1;
        if (this->_binding->callMethod(81, (void*)this, x)) return (bool)x[0].s_bool;
        return this->QWidget::focusNextPrevChild(x1);
    }
    virtual void styleChange(QStyle& x1) {
        Smoke::StackItem x[2];
        x[1].s_class = (void*)&x1;
        if (this->_binding->callMethod(82, (void*)this, x)) return;
        this->QWidget::styleChange(x1);
    }
    virtual void enabledChange(bool x1) {
        Smoke::StackItem x[2];
        x[1].s_bool = x1;
        if (this->_binding->callMethod(83, (void*)this, x)) return;
        this->QWidget::enabledChange(x1);
    }
    virtual void paletteChange(const QPalette& x1) {
        Smoke::StackItem x[2];
        x[1].s_class = (void*)&x1;
        if (this->_binding->callMethod(84, (void*)this, x)) return;
        this->QWidget::paletteChange(x1);
    }
    virtual void fontChange(const QFont& x1) {
        Smoke::StackItem x[2];
        x[1].s_class = (void*)&x1;
        if (this->_binding->callMethod(85, (void*)this, x)) return;
        this->QWidget::fontChange(x1);
    }
    virtual void windowActivationChange(bool x1) {
        Smoke::StackItem x[2];
        x[1].s_bool = x1;
        if (this->_binding->callMethod(86, (void*)this, x)) return;
        this->QWidget::windowActivationChange(x1);
    }
    virtual void languageChange() {
        Smoke::StackItem x[1];
        if (this->_binding->callMethod(87, (void*)this, x)) return;
        this->QWidget::languageChange();
    }
    virtual bool event(QEvent* x1) {
        Smoke::StackItem x[2];
        x[1].s_class = (void*)x1;
        if (this->_binding->callMethod(51, (void*)this, x)) return (bool)x[0].s_bool;
        return this->QWidget::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(33, (void*)this, x)) return (bool)x[0].s_bool;
        return this->QObject::eventFilter(x1, x2);
    }
    virtual void childEvent(QChildEvent* x1) {
        Smoke::StackItem x[2];
        x[1].s_class = (void*)x1;
        if (this->_binding->callMethod(35, (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(36, (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(37, (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(38, (void*)this, x)) return;
        this->QObject::disconnectNotify(x1);
    }
    virtual int devType() const {
        Smoke::StackItem x[1];
        if (this->_binding->callMethod(45, (void*)this, x)) return (int)x[0].s_int;
        return this->QWidget::devType();
    }
    virtual QPaintEngine* paintEngine() const {
        Smoke::StackItem x[1];
        if (this->_binding->callMethod(50, (void*)this, x)) return (QPaintEngine*)x[0].s_class;
        return this->QWidget::paintEngine();
    }
    virtual int metric(QPaintDevice::PaintDeviceMetric x1) const {
        Smoke::StackItem x[2];
        x[1].s_enum = x1;
        if (this->_binding->callMethod(78, (void*)this, x)) return (int)x[0].s_int;
        return this->QWidget::metric(x1);
    }
    virtual void incPages(int x1) {
        Smoke::StackItem x[2];
        x[1].s_int = x1;
        if (this->_binding->callMethod(542, (void*)this, x)) return;
        this->QwtDoubleRange::incPages(x1);
    }
    virtual void stepChange() {
        Smoke::StackItem x[1];
        if (this->_binding->callMethod(548, (void*)this, x)) return;
        this->QwtDoubleRange::stepChange();
    }
    ~x_QwtCompass() { this->_binding->deleted(69, (void*)this); }
};
void xcall_QwtCompass(Smoke::Index xi, void *obj, Smoke::Stack args) {
    x_QwtCompass *xself = (x_QwtCompass*)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_QwtCompass::x_3(args);	break;
        case 4: x_QwtCompass::x_4(args);	break;
        case 5: x_QwtCompass::x_5(args);	break;
        case 6: x_QwtCompass::x_6(args);	break;
        case 7: xself->x_7(args);	break;
        case 8: x_QwtCompass::x_8(args);	break;
        case 9: xself->x_9(args);	break;
        case 10: xself->x_10(args);	break;
        case 11: xself->x_11(args);	break;
        case 12: xself->x_12(args);	break;
        case 13: xself->x_13(args);	break;
        case 14: xself->x_14(args);	break;
        case 15: xself->x_15(args);	break;
        case 16: xself->x_16(args);	break;
        case 17: xself->x_17(args);	break;
        case 18: xself->x_18(args);	break;
        case 19: x_QwtCompass::x_19(args);	break;
        case 20: x_QwtCompass::x_20(args);	break;
        case 21: x_QwtCompass::x_21(args);	break;
        case 22: x_QwtCompass::x_22(args);	break;
        case 23: delete (QwtCompass*)xself;	break;
    }
}
class x_QwtCompassMagnetNeedle : public QwtCompassMagnetNeedle, 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) {
        // QwtCompassMagnetNeedle* QwtCompassMagnetNeedle(QwtCompassMagnetNeedle::Style, const QColor&, const QColor&)
        x_QwtCompassMagnetNeedle* xret = new x_QwtCompassMagnetNeedle((QwtCompassMagnetNeedle::Style)x[1].s_enum,*(const QColor*)x[2].s_class,*(const QColor*)x[3].s_class);
        x[0].s_class = (void*)xret;
    }
    explicit x_QwtCompassMagnetNeedle(QwtCompassMagnetNeedle::Style x1, const QColor& x2, const QColor& x3) : QwtCompassMagnetNeedle(x1, x2, x3) {}
    void x_2(Smoke::Stack x) {
        // virtual void draw(QPainter*, const QPoint&, int, double, QPalette::ColorGroup) const
        if (dynamic_cast<__internal_SmokeClass*>(static_cast<QwtCompassMagnetNeedle*>(this))) {
            ((const x_QwtCompassMagnetNeedle*)this)->QwtCompassMagnetNeedle::draw((QPainter*)x[1].s_class,*(const QPoint*)x[2].s_class,(int)x[3].s_int,(double)x[4].s_double,(QPalette::ColorGroup)x[5].s_enum);
            (void)x; // noop (for compiler warning)
        } else {
            ((const x_QwtCompassMagnetNeedle*)this)->draw((QPainter*)x[1].s_class,*(const QPoint*)x[2].s_class,(int)x[3].s_int,(double)x[4].s_double,(QPalette::ColorGroup)x[5].s_enum);
            (void)x; // noop (for compiler warning)
        }
    }
    static void x_3(Smoke::Stack x) {
        // static void drawTriangleNeedle(QPainter*, const QPalette&, QPalette::ColorGroup, const QPoint&, int, double)
        QwtCompassMagnetNeedle::drawTriangleNeedle((QPainter*)x[1].s_class,*(const QPalette*)x[2].s_class,(QPalette::ColorGroup)x[3].s_enum,*(const QPoint*)x[4].s_class,(int)x[5].s_int,(double)x[6].s_double);
        (void)x; // noop (for compiler warning)
    }
    static void x_4(Smoke::Stack x) {
        // static void drawThinNeedle(QPainter*, const QPalette&, QPalette::ColorGroup, const QPoint&, int, double)
        QwtCompassMagnetNeedle::drawThinNeedle((QPainter*)x[1].s_class,*(const QPalette*)x[2].s_class,(QPalette::ColorGroup)x[3].s_enum,*(const QPoint*)x[4].s_class,(int)x[5].s_int,(double)x[6].s_double);
        (void)x; // noop (for compiler warning)
    }
    static void x_5(Smoke::Stack x) {
        // static void drawPointer(QPainter*, const QBrush&, int, const QPoint&, int, int, double)
        QwtCompassMagnetNeedle::drawPointer((QPainter*)x[1].s_class,*(const QBrush*)x[2].s_class,(int)x[3].s_int,*(const QPoint*)x[4].s_class,(int)x[5].s_int,(int)x[6].s_int,(double)x[7].s_double);
        (void)x; // noop (for compiler warning)
    }
    static void x_6(Smoke::Stack x) {
        // QwtCompassMagnetNeedle* QwtCompassMagnetNeedle(const QwtCompassMagnetNeedle&)
        x_QwtCompassMagnetNeedle* xret = new x_QwtCompassMagnetNeedle(*(const QwtCompassMagnetNeedle*)x[1].s_class);
        x[0].s_class = (void*)xret;
    }
    explicit x_QwtCompassMagnetNeedle(const QwtCompassMagnetNeedle& x1) : QwtCompassMagnetNeedle(x1) {}
    static void x_7(Smoke::Stack x) {
        // QwtCompassMagnetNeedle* QwtCompassMagnetNeedle()
        x_QwtCompassMagnetNeedle* xret = new x_QwtCompassMagnetNeedle((QwtCompassMagnetNeedle::Style)QwtCompassMagnetNeedle::TriangleStyle,(const QColor&)Qt::white,(const QColor&)Qt::red);
        x[0].s_class = (void*)xret;
    }
    static void x_8(Smoke::Stack x) {
        // QwtCompassMagnetNeedle* QwtCompassMagnetNeedle(QwtCompassMagnetNeedle::Style)
        x_QwtCompassMagnetNeedle* xret = new x_QwtCompassMagnetNeedle((QwtCompassMagnetNeedle::Style)x[1].s_enum,(const QColor&)Qt::white,(const QColor&)Qt::red);
        x[0].s_class = (void*)xret;
    }
    static void x_9(Smoke::Stack x) {
        // QwtCompassMagnetNeedle* QwtCompassMagnetNeedle(QwtCompassMagnetNeedle::Style, const QColor&)
        x_QwtCompassMagnetNeedle* xret = new x_QwtCompassMagnetNeedle((QwtCompassMagnetNeedle::Style)x[1].s_enum,*(const QColor*)x[2].s_class,(const QColor&)Qt::red);
        x[0].s_class = (void*)xret;
    }
    void x_10(Smoke::Stack x) {
        // void draw(QPainter*, const QPoint&, int, double) const
        ((const x_QwtCompassMagnetNeedle*)this)->QwtCompassMagnetNeedle::draw((QPainter*)x[1].s_class,*(const QPoint*)x[2].s_class,(int)x[3].s_int,(double)x[4].s_double,(QPalette::ColorGroup)QPalette::Active);
        (void)x; // noop (for compiler warning)
    }
    static void x_11(Smoke::Stack x) {
        x[0].s_enum = (long)QwtCompassMagnetNeedle::TriangleStyle;
    }
    static void x_12(Smoke::Stack x) {
        x[0].s_enum = (long)QwtCompassMagnetNeedle::ThinStyle;
    }
    virtual void draw(QPainter* x1, const QPoint& x2, int x3, double x4, QPalette::ColorGroup x5) const {
        Smoke::StackItem x[6];
        x[1].s_class = (void*)x1;
        x[2].s_class = (void*)&x2;
        x[3].s_int = x3;
        x[4].s_double = x4;
        x[5].s_enum = x5;
        if (this->_binding->callMethod(304, (void*)this, x)) return;
        this->QwtCompassMagnetNeedle::draw(x1, x2, x3, x4, x5);
    }
    virtual void setPalette(const QPalette& x1) {
        Smoke::StackItem x[2];
        x[1].s_class = (void*)&x1;
        if (this->_binding->callMethod(464, (void*)this, x)) return;
        this->QwtDialNeedle::setPalette(x1);
    }
    static void xenum_operation(Smoke::EnumOperation xop, Smoke::Index xtype, void *&xdata, long &xvalue) {
        switch(xtype) {
        case 170: //QwtCompassMagnetNeedle::Style
            switch(xop) {
                case Smoke::EnumNew:
                    xdata = (void*)new QwtCompassMagnetNeedle::Style;
                    break;
                case Smoke::EnumDelete:
                    delete (QwtCompassMagnetNeedle::Style*)xdata;
                    break;
                case Smoke::EnumFromLong:
                    *(QwtCompassMagnetNeedle::Style*)xdata = (QwtCompassMagnetNeedle::Style)xvalue;
                    break;
                case Smoke::EnumToLong:
                    xvalue = (long)*(QwtCompassMagnetNeedle::Style*)xdata;
                    break;
            }
            break;
        }
    }
    ~x_QwtCompassMagnetNeedle() { this->_binding->deleted(70, (void*)this); }
};
void xenum_QwtCompassMagnetNeedle(Smoke::EnumOperation xop, Smoke::Index xtype, void *&xdata, long &xvalue) {
    x_QwtCompassMagnetNeedle::xenum_operation(xop, xtype, xdata, xvalue);
}
void xcall_QwtCompassMagnetNeedle(Smoke::Index xi, void *obj, Smoke::Stack args) {
    x_QwtCompassMagnetNeedle *xself = (x_QwtCompassMagnetNeedle*)obj;
    switch(xi) {
        case 0: xself->x_0(args);	break;
        case 1: x_QwtCompassMagnetNeedle::x_1(args);	break;
        case 2: xself->x_2(args);	break;
        case 3: x_QwtCompassMagnetNeedle::x_3(args);	break;
        case 4: x_QwtCompassMagnetNeedle::x_4(args);	break;
        case 5: x_QwtCompassMagnetNeedle::x_5(args);	break;
        case 6: x_QwtCompassMagnetNeedle::x_6(args);	break;
        case 7: x_QwtCompassMagnetNeedle::x_7(args);	break;
        case 8: x_QwtCompassMagnetNeedle::x_8(args);	break;
        case 9: x_QwtCompassMagnetNeedle::x_9(args);	break;
        case 10: xself->x_10(args);	break;
        case 11: x_QwtCompassMagnetNeedle::x_11(args);	break;
        case 12: x_QwtCompassMagnetNeedle::x_12(args);	break;
        case 13: delete (QwtCompassMagnetNeedle*)xself;	break;
    }
}
class x_QwtCompassRose : public QwtCompassRose, 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 void setPalette(const QPalette&)
        if (dynamic_cast<__internal_SmokeClass*>(static_cast<QwtCompassRose*>(this))) {
            this->QwtCompassRose::setPalette(*(const QPalette*)x[1].s_class);
            (void)x; // noop (for compiler warning)
        } else {
            this->setPalette(*(const QPalette*)x[1].s_class);
            (void)x; // noop (for compiler warning)
        }
    }
    void x_2(Smoke::Stack x) {
        // const QPalette& palette() const
        const QPalette& xret = ((const x_QwtCompassRose*)this)->QwtCompassRose::palette();
        x[0].s_class = (void*)&xret;
    }
    void x_3(Smoke::Stack x) {
        // virtual void draw(QPainter*, const QPoint&, int, double, QPalette::ColorGroup) const = 0
        ((const x_QwtCompassRose*)this)->draw((QPainter*)x[1].s_class,*(const QPoint*)x[2].s_class,(int)x[3].s_int,(double)x[4].s_double,(QPalette::ColorGroup)x[5].s_enum);
        (void)x; // noop (for compiler warning)
    }
    static void x_4(Smoke::Stack x) {
        // QwtCompassRose* QwtCompassRose()
        x_QwtCompassRose* xret = new x_QwtCompassRose();
        x[0].s_class = (void*)xret;
    }
    explicit x_QwtCompassRose() : QwtCompassRose() {}
    static void x_5(Smoke::Stack x) {
        // QwtCompassRose* QwtCompassRose(const QwtCompassRose&)
        x_QwtCompassRose* xret = new x_QwtCompassRose(*(const QwtCompassRose*)x[1].s_class);
        x[0].s_class = (void*)xret;
    }
    explicit x_QwtCompassRose(const QwtCompassRose& x1) : QwtCompassRose(x1) {}
    void x_6(Smoke::Stack x) {
        // void draw(QPainter*, const QPoint&, int, double) const
        ((const x_QwtCompassRose*)this)->draw((QPainter*)x[1].s_class,*(const QPoint*)x[2].s_class,(int)x[3].s_int,(double)x[4].s_double,(QPalette::ColorGroup)QPalette::Active);
        (void)x; // noop (for compiler warning)
    }
    virtual void setPalette(const QPalette& x1) {
        Smoke::StackItem x[2];
        x[1].s_class = (void*)&x1;
        if (this->_binding->callMethod(316, (void*)this, x)) return;
        this->QwtCompassRose::setPalette(x1);
    }
    virtual void draw(QPainter* x1, const QPoint& x2, int x3, double x4, QPalette::ColorGroup x5) const {
        Smoke::StackItem x[6];
        x[1].s_class = (void*)x1;
        x[2].s_class = (void*)&x2;
        x[3].s_int = x3;
        x[4].s_double = x4;
        x[5].s_enum = x5;
        this->_binding->callMethod(318, (void*)this, x, true /*pure virtual*/);
    }
    ~x_QwtCompassRose() { this->_binding->deleted(71, (void*)this); }
};
void xcall_QwtCompassRose(Smoke::Index xi, void *obj, Smoke::Stack args) {
    x_QwtCompassRose *xself = (x_QwtCompassRose*)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_QwtCompassRose::x_4(args);	break;
        case 5: x_QwtCompassRose::x_5(args);	break;
        case 6: xself->x_6(args);	break;
        case 7: delete (QwtCompassRose*)xself;	break;
    }
}
class x_QwtCompassWindArrow : public QwtCompassWindArrow, 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) {
        // QwtCompassWindArrow* QwtCompassWindArrow(QwtCompassWindArrow::Style, const QColor&, const QColor&)
        x_QwtCompassWindArrow* xret = new x_QwtCompassWindArrow((QwtCompassWindArrow::Style)x[1].s_enum,*(const QColor*)x[2].s_class,*(const QColor*)x[3].s_class);
        x[0].s_class = (void*)xret;
    }
    explicit x_QwtCompassWindArrow(QwtCompassWindArrow::Style x1, const QColor& x2, const QColor& x3) : QwtCompassWindArrow(x1, x2, x3) {}
    void x_2(Smoke::Stack x) {
        // virtual void draw(QPainter*, const QPoint&, int, double, QPalette::ColorGroup) const
        if (dynamic_cast<__internal_SmokeClass*>(static_cast<QwtCompassWindArrow*>(this))) {
            ((const x_QwtCompassWindArrow*)this)->QwtCompassWindArrow::draw((QPainter*)x[1].s_class,*(const QPoint*)x[2].s_class,(int)x[3].s_int,(double)x[4].s_double,(QPalette::ColorGroup)x[5].s_enum);
            (void)x; // noop (for compiler warning)
        } else {
            ((const x_QwtCompassWindArrow*)this)->draw((QPainter*)x[1].s_class,*(const QPoint*)x[2].s_class,(int)x[3].s_int,(double)x[4].s_double,(QPalette::ColorGroup)x[5].s_enum);
            (void)x; // noop (for compiler warning)
        }
    }
    static void x_3(Smoke::Stack x) {
        // static void drawStyle1Needle(QPainter*, const QPalette&, QPalette::ColorGroup, const QPoint&, int, double)
        QwtCompassWindArrow::drawStyle1Needle((QPainter*)x[1].s_class,*(const QPalette*)x[2].s_class,(QPalette::ColorGroup)x[3].s_enum,*(const QPoint*)x[4].s_class,(int)x[5].s_int,(double)x[6].s_double);
        (void)x; // noop (for compiler warning)
    }
    static void x_4(Smoke::Stack x) {
        // static void drawStyle2Needle(QPainter*, const QPalette&, QPalette::ColorGroup, const QPoint&, int, double)
        QwtCompassWindArrow::drawStyle2Needle((QPainter*)x[1].s_class,*(const QPalette*)x[2].s_class,(QPalette::ColorGroup)x[3].s_enum,*(const QPoint*)x[4].s_class,(int)x[5].s_int,(double)x[6].s_double);
        (void)x; // noop (for compiler warning)
    }
    static void x_5(Smoke::Stack x) {
        // QwtCompassWindArrow* QwtCompassWindArrow(const QwtCompassWindArrow&)
        x_QwtCompassWindArrow* xret = new x_QwtCompassWindArrow(*(const QwtCompassWindArrow*)x[1].s_class);
        x[0].s_class = (void*)xret;
    }
    explicit x_QwtCompassWindArrow(const QwtCompassWindArrow& x1) : QwtCompassWindArrow(x1) {}
    static void x_6(Smoke::Stack x) {
        // QwtCompassWindArrow* QwtCompassWindArrow(QwtCompassWindArrow::Style)
        x_QwtCompassWindArrow* xret = new x_QwtCompassWindArrow((QwtCompassWindArrow::Style)x[1].s_enum,(const QColor&)Qt::white,(const QColor&)Qt::gray);
        x[0].s_class = (void*)xret;
    }
    static void x_7(Smoke::Stack x) {
        // QwtCompassWindArrow* QwtCompassWindArrow(QwtCompassWindArrow::Style, const QColor&)
        x_QwtCompassWindArrow* xret = new x_QwtCompassWindArrow((QwtCompassWindArrow::Style)x[1].s_enum,*(const QColor*)x[2].s_class,(const QColor&)Qt::gray);
        x[0].s_class = (void*)xret;
    }
    void x_8(Smoke::Stack x) {
        // void draw(QPainter*, const QPoint&, int, double) const
        ((const x_QwtCompassWindArrow*)this)->QwtCompassWindArrow::draw((QPainter*)x[1].s_class,*(const QPoint*)x[2].s_class,(int)x[3].s_int,(double)x[4].s_double,(QPalette::ColorGroup)QPalette::Active);
        (void)x; // noop (for compiler warning)
    }
    static void x_9(Smoke::Stack x) {
        x[0].s_enum = (long)QwtCompassWindArrow::Style1;
    }
    static void x_10(Smoke::Stack x) {
        x[0].s_enum = (long)QwtCompassWindArrow::Style2;
    }
    virtual void draw(QPainter* x1, const QPoint& x2, int x3, double x4, QPalette::ColorGroup x5) const {
        Smoke::StackItem x[6];
        x[1].s_class = (void*)x1;
        x[2].s_class = (void*)&x2;
        x[3].s_int = x3;
        x[4].s_double = x4;
        x[5].s_enum = x5;
        if (this->_binding->callMethod(324, (void*)this, x)) return;
        this->QwtCompassWindArrow::draw(x1, x2, x3, x4, x5);
    }
    virtual void setPalette(const QPalette& x1) {
        Smoke::StackItem x[2];
        x[1].s_class = (void*)&x1;
        if (this->_binding->callMethod(464, (void*)this, x)) return;
        this->QwtDialNeedle::setPalette(x1);
    }
    static void xenum_operation(Smoke::EnumOperation xop, Smoke::Index xtype, void *&xdata, long &xvalue) {
        switch(xtype) {
        case 173: //QwtCompassWindArrow::Style
            switch(xop) {
                case Smoke::EnumNew:
                    xdata = (void*)new QwtCompassWindArrow::Style;
                    break;
                case Smoke::EnumDelete:
                    delete (QwtCompassWindArrow::Style*)xdata;
                    break;
                case Smoke::EnumFromLong:
                    *(QwtCompassWindArrow::Style*)xdata = (QwtCompassWindArrow::Style)xvalue;
                    break;
                case Smoke::EnumToLong:
                    xvalue = (long)*(QwtCompassWindArrow::Style*)xdata;
                    break;
            }
            break;
        }
    }
    ~x_QwtCompassWindArrow() { this->_binding->deleted(72, (void*)this); }
};
void xenum_QwtCompassWindArrow(Smoke::EnumOperation xop, Smoke::Index xtype, void *&xdata, long &xvalue) {
    x_QwtCompassWindArrow::xenum_operation(xop, xtype, xdata, xvalue);
}
void xcall_QwtCompassWindArrow(Smoke::Index xi, void *obj, Smoke::Stack args) {
    x_QwtCompassWindArrow *xself = (x_QwtCompassWindArrow*)obj;
    switch(xi) {
        case 0: xself->x_0(args);	break;
        case 1: x_QwtCompassWindArrow::x_1(args);	break;
        case 2: xself->x_2(args);	break;
        case 3: x_QwtCompassWindArrow::x_3(args);	break;
        case 4: x_QwtCompassWindArrow::x_4(args);	break;
        case 5: x_QwtCompassWindArrow::x_5(args);	break;
        case 6: x_QwtCompassWindArrow::x_6(args);	break;
        case 7: x_QwtCompassWindArrow::x_7(args);	break;
        case 8: xself->x_8(args);	break;
        case 9: x_QwtCompassWindArrow::x_9(args);	break;
        case 10: x_QwtCompassWindArrow::x_10(args);	break;
        case 11: delete (QwtCompassWindArrow*)xself;	break;
    }
}
class x_QwtCounter : public QwtCounter, 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<QwtCounter*>(this))) {
            const QMetaObject* xret = ((const x_QwtCounter*)this)->QwtCounter::metaObject();
            x[0].s_class = (void*)xret;
        } else {
            const QMetaObject* xret = ((const x_QwtCounter*)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<QwtCounter*>(this))) {
            void* xret = this->QwtCounter::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 = QwtCounter::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 = QwtCounter::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 = QwtCounter::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 = QwtCounter::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<QwtCounter*>(this))) {
            int xret = this->QwtCounter::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) {
        // QwtCounter* QwtCounter(QWidget*)
        x_QwtCounter* xret = new x_QwtCounter((QWidget*)x[1].s_class);
        x[0].s_class = (void*)xret;
    }
    explicit x_QwtCounter(QWidget* x1) : QwtCounter(x1) {}
    void x_9(Smoke::Stack x) {
        // bool editable() const
        bool xret = ((const x_QwtCounter*)this)->QwtCounter::editable();
        x[0].s_bool = xret;
    }
    void x_10(Smoke::Stack x) {
        // void setEditable(bool)
        this->QwtCounter::setEditable((bool)x[1].s_bool);
        (void)x; // noop (for compiler warning)
    }
    void x_11(Smoke::Stack x) {
        // void setNumButtons(int)
        this->QwtCounter::setNumButtons((int)x[1].s_int);
        (void)x; // noop (for compiler warning)
    }
    void x_12(Smoke::Stack x) {
        // int numButtons() const
        int xret = ((const x_QwtCounter*)this)->QwtCounter::numButtons();
        x[0].s_int = xret;
    }
    void x_13(Smoke::Stack x) {
        // void setIncSteps(QwtCounter::Button, int)
        this->QwtCounter::setIncSteps((QwtCounter::Button)x[1].s_enum,(int)x[2].s_int);
        (void)x; // noop (for compiler warning)
    }
    void x_14(Smoke::Stack x) {
        // int incSteps(QwtCounter::Button) const
        int xret = ((const x_QwtCounter*)this)->QwtCounter::incSteps((QwtCounter::Button)x[1].s_enum);
        x[0].s_int = xret;
    }
    void x_15(Smoke::Stack x) {
        // virtual void setValue(double)
        if (dynamic_cast<__internal_SmokeClass*>(static_cast<QwtCounter*>(this))) {
            this->QwtCounter::setValue((double)x[1].s_double);
            (void)x; // noop (for compiler warning)
        } else {
            this->setValue((double)x[1].s_double);
            (void)x; // noop (for compiler warning)
        }
    }
    void x_16(Smoke::Stack x) {
        // virtual QSize sizeHint() const
        if (dynamic_cast<__internal_SmokeClass*>(static_cast<QwtCounter*>(this))) {
            QSize xret = ((const x_QwtCounter*)this)->QwtCounter::sizeHint();
            x[0].s_class = (void*)new QSize(xret);
        } else {
            QSize xret = ((const x_QwtCounter*)this)->sizeHint();
            x[0].s_class = (void*)new QSize(xret);
        }
    }
    void x_17(Smoke::Stack x) {
        // virtual void polish()
        if (dynamic_cast<__internal_SmokeClass*>(static_cast<QwtCounter*>(this))) {
            this->QwtCounter::polish();
            (void)x; // noop (for compiler warning)
        } else {
            this->polish();
            (void)x; // noop (for compiler warning)
        }
    }
    void x_18(Smoke::Stack x) {
        // double step() const
        double xret = ((const x_QwtCounter*)this)->QwtCounter::step();
        x[0].s_double = xret;
    }
    void x_19(Smoke::Stack x) {
        // void setStep(double)
        this->QwtCounter::setStep((double)x[1].s_double);
        (void)x; // noop (for compiler warning)
    }
    void x_20(Smoke::Stack x) {
        // double minVal() const
        double xret = ((const x_QwtCounter*)this)->QwtCounter::minVal();
        x[0].s_double = xret;
    }
    void x_21(Smoke::Stack x) {
        // void setMinValue(double)
        this->QwtCounter::setMinValue((double)x[1].s_double);
        (void)x; // noop (for compiler warning)
    }
    void x_22(Smoke::Stack x) {
        // double maxVal() const
        double xret = ((const x_QwtCounter*)this)->QwtCounter::maxVal();
        x[0].s_double = xret;
    }
    void x_23(Smoke::Stack x) {
        // void setMaxValue(double)
        this->QwtCounter::setMaxValue((double)x[1].s_double);
        (void)x; // noop (for compiler warning)
    }
    void x_24(Smoke::Stack x) {
        // void setStepButton1(int)
        this->QwtCounter::setStepButton1((int)x[1].s_int);
        (void)x; // noop (for compiler warning)
    }
    void x_25(Smoke::Stack x) {
        // int stepButton1() const
        int xret = ((const x_QwtCounter*)this)->QwtCounter::stepButton1();
        x[0].s_int = xret;
    }
    void x_26(Smoke::Stack x) {
        // void setStepButton2(int)
        this->QwtCounter::setStepButton2((int)x[1].s_int);
        (void)x; // noop (for compiler warning)
    }
    void x_27(Smoke::Stack x) {
        // int stepButton2() const
        int xret = ((const x_QwtCounter*)this)->QwtCounter::stepButton2();
        x[0].s_int = xret;
    }
    void x_28(Smoke::Stack x) {
        // void setStepButton3(int)
        this->QwtCounter::setStepButton3((int)x[1].s_int);
        (void)x; // noop (for compiler warning)
    }
    void x_29(Smoke::Stack x) {
        // int stepButton3() const
        int xret = ((const x_QwtCounter*)this)->QwtCounter::stepButton3();
        x[0].s_int = xret;
    }
    void x_30(Smoke::Stack x) {
        // virtual double value() const
        if (dynamic_cast<__internal_SmokeClass*>(static_cast<QwtCounter*>(this))) {
            double xret = ((const x_QwtCounter*)this)->QwtCounter::value();
            x[0].s_double = xret;
        } else {
            double xret = ((const x_QwtCounter*)this)->value();
            x[0].s_double = xret;
        }
    }
    void x_31(Smoke::Stack x) {
        // void buttonReleased(double)
        this->QwtCounter::buttonReleased((double)x[1].s_double);
        (void)x; // noop (for compiler warning)
    }
    void x_32(Smoke::Stack x) {
        // void valueChanged(double)
        this->QwtCounter::valueChanged((double)x[1].s_double);
        (void)x; // noop (for compiler warning)
    }
    void x_33(Smoke::Stack x) {
        // virtual bool event(QEvent*)
        if (dynamic_cast<__internal_SmokeClass*>(static_cast<QwtCounter*>(this))) {
            bool xret = this->QwtCounter::event((QEvent*)x[1].s_class);
            x[0].s_bool = xret;
        } else {
            bool xret = this->event((QEvent*)x[1].s_class);
            x[0].s_bool = xret;
        }
    }
    void x_34(Smoke::Stack x) {
        // virtual void wheelEvent(QWheelEvent*)
        if (dynamic_cast<__internal_SmokeClass*>(static_cast<QwtCounter*>(this))) {
            this->QwtCounter::wheelEvent((QWheelEvent*)x[1].s_class);
            (void)x; // noop (for compiler warning)
        } else {
            this->wheelEvent((QWheelEvent*)x[1].s_class);
            (void)x; // noop (for compiler warning)
        }
    }
    void x_35(Smoke::Stack x) {
        // virtual void keyPressEvent(QKeyEvent*)
        if (dynamic_cast<__internal_SmokeClass*>(static_cast<QwtCounter*>(this))) {
            this->QwtCounter::keyPressEvent((QKeyEvent*)x[1].s_class);
            (void)x; // noop (for compiler warning)
        } else {
            this->keyPressEvent((QKeyEvent*)x[1].s_class);
            (void)x; // noop (for compiler warning)
        }
    }
    void x_36(Smoke::Stack x) {
        // virtual void rangeChange()
        if (dynamic_cast<__internal_SmokeClass*>(static_cast<QwtCounter*>(this))) {
            this->QwtCounter::rangeChange();
            (void)x; // noop (for compiler warning)
        } else {
            this->rangeChange();
            (void)x; // noop (for compiler warning)
        }
    }
    static void x_37(Smoke::Stack x) {
        // static QString tr(const char*)
        QString xret = QwtCounter::tr((const char*)x[1].s_class,(const char*)0);
        x[0].s_class = (void*)new QString(xret);
    }
    static void x_38(Smoke::Stack x) {
        // static QString trUtf8(const char*)
        QString xret = QwtCounter::trUtf8((const char*)x[1].s_class,(const char*)0);
        x[0].s_class = (void*)new QString(xret);
    }
    static void x_39(Smoke::Stack x) {
        // QwtCounter* QwtCounter()
        x_QwtCounter* xret = new x_QwtCounter((QWidget*)NULL);
        x[0].s_class = (void*)xret;
    }
    static void x_40(Smoke::Stack x) {
        // static const QMetaObject staticMetaObject
        x[0].s_class = (void*)&QwtCounter::staticMetaObject;
    }
    static void x_41(Smoke::Stack x) {
        x[0].s_enum = (long)QwtCounter::Button1;
    }
    static void x_42(Smoke::Stack x) {
        x[0].s_enum = (long)QwtCounter::Button2;
    }
    static void x_43(Smoke::Stack x) {
        x[0].s_enum = (long)QwtCounter::Button3;
    }
    static void x_44(Smoke::Stack x) {
        x[0].s_enum = (long)QwtCounter::ButtonCnt;
    }
    virtual const QMetaObject* metaObject() const {
        Smoke::StackItem x[1];
        if (this->_binding->callMethod(334, (void*)this, x)) return (const QMetaObject*)x[0].s_class;
        return this->QwtCounter::metaObject();
    }
    virtual void* qt_metacast(const char* x1) {
        Smoke::StackItem x[2];
        x[1].s_class = (void*)x1;
        if (this->_binding->callMethod(335, (void*)this, x)) return (void*)x[0].s_class;
        return this->QwtCounter::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(340, (void*)this, x)) return (int)x[0].s_int;
        return this->QwtCounter::qt_metacall(x1, x2, x3);
    }
    virtual void setValue(double x1) {
        Smoke::StackItem x[2];
        x[1].s_double = x1;
        if (this->_binding->callMethod(348, (void*)this, x)) return;
        this->QwtCounter::setValue(x1);
    }
    virtual QSize sizeHint() const {
        Smoke::StackItem x[1];
        if (this->_binding->callMethod(349, (void*)this, x)) {
            QSize* xptr = (QSize*)x[0].s_class;
            QSize xret(*xptr);
            delete xptr;
            return xret;
        }
        return this->QwtCounter::sizeHint();
    }
    virtual void polish() {
        Smoke::StackItem x[1];
        if (this->_binding->callMethod(350, (void*)this, x)) return;
        this->QwtCounter::polish();
    }
    virtual double value() const {
        Smoke::StackItem x[1];
        if (this->_binding->callMethod(363, (void*)this, x)) return (double)x[0].s_double;
        return this->QwtCounter::value();
    }
    virtual bool event(QEvent* x1) {
        Smoke::StackItem x[2];
        x[1].s_class = (void*)x1;
        if (this->_binding->callMethod(366, (void*)this, x)) return (bool)x[0].s_bool;
        return this->QwtCounter::event(x1);
    }
    virtual void wheelEvent(QWheelEvent* x1) {
        Smoke::StackItem x[2];
        x[1].s_class = (void*)x1;
        if (this->_binding->callMethod(367, (void*)this, x)) return;
        this->QwtCounter::wheelEvent(x1);
    }
    virtual void keyPressEvent(QKeyEvent* x1) {
        Smoke::StackItem x[2];
        x[1].s_class = (void*)x1;
        if (this->_binding->callMethod(368, (void*)this, x)) return;
        this->QwtCounter::keyPressEvent(x1);
    }
    virtual void rangeChange() {
        Smoke::StackItem x[1];
        if (this->_binding->callMethod(369, (void*)this, x)) return;
        this->QwtCounter::rangeChange();
    }
    virtual void setVisible(bool x1) {
        Smoke::StackItem x[2];
        x[1].s_bool = x1;
        if (this->_binding->callMethod(46, (void*)this, x)) return;
        this->QWidget::setVisible(x1);
    }
    virtual QSize minimumSizeHint() const {
        Smoke::StackItem x[1];
        if (this->_binding->callMethod(48, (void*)this, x)) {
            QSize* xptr = (QSize*)x[0].s_class;
            QSize xret(*xptr);
            delete xptr;
            return xret;
        }
        return this->QWidget::minimumSizeHint();
    }
    virtual int heightForWidth(int x1) const {
        Smoke::StackItem x[2];
        x[1].s_int = x1;
        if (this->_binding->callMethod(49, (void*)this, x)) return (int)x[0].s_int;
        return this->QWidget::heightForWidth(x1);
    }
    virtual void mousePressEvent(QMouseEvent* x1) {
        Smoke::StackItem x[2];
        x[1].s_class = (void*)x1;
        if (this->_binding->callMethod(52, (void*)this, x)) return;
        this->QWidget::mousePressEvent(x1);
    }
    virtual void mouseReleaseEvent(QMouseEvent* x1) {
        Smoke::StackItem x[2];
        x[1].s_class = (void*)x1;
        if (this->_binding->callMethod(53, (void*)this, x)) return;
        this->QWidget::mouseReleaseEvent(x1);
    }
    virtual void mouseDoubleClickEvent(QMouseEvent* x1) {
        Smoke::StackItem x[2];
        x[1].s_class = (void*)x1;
        if (this->_binding->callMethod(54, (void*)this, x)) return;
        this->QWidget::mouseDoubleClickEvent(x1);
    }
    virtual void mouseMoveEvent(QMouseEvent* x1) {
        Smoke::StackItem x[2];
        x[1].s_class = (void*)x1;
        if (this->_binding->callMethod(55, (void*)this, x)) return;
        this->QWidget::mouseMoveEvent(x1);
    }
    virtual void keyReleaseEvent(QKeyEvent* x1) {
        Smoke::StackItem x[2];
        x[1].s_class = (void*)x1;
        if (this->_binding->callMethod(58, (void*)this, x)) return;
        this->QWidget::keyReleaseEvent(x1);
    }
    virtual void focusInEvent(QFocusEvent* x1) {
        Smoke::StackItem x[2];
        x[1].s_class = (void*)x1;
        if (this->_binding->callMethod(59, (void*)this, x)) return;
        this->QWidget::focusInEvent(x1);
    }
    virtual void focusOutEvent(QFocusEvent* x1) {
        Smoke::StackItem x[2];
        x[1].s_class = (void*)x1;
        if (this->_binding->callMethod(60, (void*)this, x)) return;
        this->QWidget::focusOutEvent(x1);
    }
    virtual void enterEvent(QEvent* x1) {
        Smoke::StackItem x[2];
        x[1].s_class = (void*)x1;
        if (this->_binding->callMethod(61, (void*)this, x)) return;
        this->QWidget::enterEvent(x1);
    }
    virtual void leaveEvent(QEvent* x1) {
        Smoke::StackItem x[2];
        x[1].s_class = (void*)x1;
        if (this->_binding->callMethod(62, (void*)this, x)) return;
        this->QWidget::leaveEvent(x1);
    }
    virtual void paintEvent(QPaintEvent* x1) {
        Smoke::StackItem x[2];
        x[1].s_class = (void*)x1;
        if (this->_binding->callMethod(63, (void*)this, x)) return;
        this->QWidget::paintEvent(x1);
    }
    virtual void moveEvent(QMoveEvent* x1) {
        Smoke::StackItem x[2];
        x[1].s_class = (void*)x1;
        if (this->_binding->callMethod(64, (void*)this, x)) return;
        this->QWidget::moveEvent(x1);
    }
    virtual void resizeEvent(QResizeEvent* x1) {
        Smoke::StackItem x[2];
        x[1].s_class = (void*)x1;
        if (this->_binding->callMethod(65, (void*)this, x)) return;
        this->QWidget::resizeEvent(x1);
    }
    virtual void closeEvent(QCloseEvent* x1) {
        Smoke::StackItem x[2];
        x[1].s_class = (void*)x1;
        if (this->_binding->callMethod(66, (void*)this, x)) return;
        this->QWidget::closeEvent(x1);
    }
    virtual void contextMenuEvent(QContextMenuEvent* x1) {
        Smoke::StackItem x[2];
        x[1].s_class = (void*)x1;
        if (this->_binding->callMethod(67, (void*)this, x)) return;
        this->QWidget::contextMenuEvent(x1);
    }
    virtual void tabletEvent(QTabletEvent* x1) {
        Smoke::StackItem x[2];
        x[1].s_class = (void*)x1;
        if (this->_binding->callMethod(68, (void*)this, x)) return;
        this->QWidget::tabletEvent(x1);
    }
    virtual void actionEvent(QActionEvent* x1) {
        Smoke::StackItem x[2];
        x[1].s_class = (void*)x1;
        if (this->_binding->callMethod(69, (void*)this, x)) return;
        this->QWidget::actionEvent(x1);
    }
    virtual void dragEnterEvent(QDragEnterEvent* x1) {
        Smoke::StackItem x[2];
        x[1].s_class = (void*)x1;
        if (this->_binding->callMethod(70, (void*)this, x)) return;
        this->QWidget::dragEnterEvent(x1);
    }
    virtual void dragMoveEvent(QDragMoveEvent* x1) {
        Smoke::StackItem x[2];
        x[1].s_class = (void*)x1;
        if (this->_binding->callMethod(71, (void*)this, x)) return;
        this->QWidget::dragMoveEvent(x1);
    }
    virtual void dragLeaveEvent(QDragLeaveEvent* x1) {
        Smoke::StackItem x[2];
        x[1].s_class = (void*)x1;
        if (this->_binding->callMethod(72, (void*)this, x)) return;
        this->QWidget::dragLeaveEvent(x1);
    }
    virtual void dropEvent(QDropEvent* x1) {
        Smoke::StackItem x[2];
        x[1].s_class = (void*)x1;
        if (this->_binding->callMethod(73, (void*)this, x)) return;
        this->QWidget::dropEvent(x1);
    }
    virtual void showEvent(QShowEvent* x1) {
        Smoke::StackItem x[2];
        x[1].s_class = (void*)x1;
        if (this->_binding->callMethod(74, (void*)this, x)) return;
        this->QWidget::showEvent(x1);
    }
    virtual void hideEvent(QHideEvent* x1) {
        Smoke::StackItem x[2];
        x[1].s_class = (void*)x1;
        if (this->_binding->callMethod(75, (void*)this, x)) return;
        this->QWidget::hideEvent(x1);
    }
    virtual bool x11Event(_XEvent* x1) {
        Smoke::StackItem x[2];
        x[1].s_class = (void*)x1;
        if (this->_binding->callMethod(76, (void*)this, x)) return (bool)x[0].s_bool;
        return this->QWidget::x11Event(x1);
    }
    virtual void changeEvent(QEvent* x1) {
        Smoke::StackItem x[2];
        x[1].s_class = (void*)x1;
        if (this->_binding->callMethod(77, (void*)this, x)) return;
        this->QWidget::changeEvent(x1);
    }
    virtual void inputMethodEvent(QInputMethodEvent* x1) {
        Smoke::StackItem x[2];
        x[1].s_class = (void*)x1;
        if (this->_binding->callMethod(79, (void*)this, x)) return;
        this->QWidget::inputMethodEvent(x1);
    }
    virtual QVariant inputMethodQuery(Qt::InputMethodQuery x1) const {
        Smoke::StackItem x[2];
        x[1].s_enum = x1;
        if (this->_binding->callMethod(80, (void*)this, x)) {
            QVariant* xptr = (QVariant*)x[0].s_class;
            QVariant xret(*xptr);
            delete xptr;
            return xret;
        }
        return this->QWidget::inputMethodQuery(x1);
    }
    virtual bool focusNextPrevChild(bool x1) {
        Smoke::StackItem x[2];
        x[1].s_bool = x1;
        if (this->_binding->callMethod(81, (void*)this, x)) return (bool)x[0].s_bool;
        return this->QWidget::focusNextPrevChild(x1);
    }
    virtual void styleChange(QStyle& x1) {
        Smoke::StackItem x[2];
        x[1].s_class = (void*)&x1;
        if (this->_binding->callMethod(82, (void*)this, x)) return;
        this->QWidget::styleChange(x1);
    }
    virtual void enabledChange(bool x1) {
        Smoke::StackItem x[2];
        x[1].s_bool = x1;
        if (this->_binding->callMethod(83, (void*)this, x)) return;
        this->QWidget::enabledChange(x1);
    }
    virtual void paletteChange(const QPalette& x1) {
        Smoke::StackItem x[2];
        x[1].s_class = (void*)&x1;
        if (this->_binding->callMethod(84, (void*)this, x)) return;
        this->QWidget::paletteChange(x1);
    }
    virtual void fontChange(const QFont& x1) {
        Smoke::StackItem x[2];
        x[1].s_class = (void*)&x1;
        if (this->_binding->callMethod(85, (void*)this, x)) return;
        this->QWidget::fontChange(x1);
    }
    virtual void windowActivationChange(bool x1) {
        Smoke::StackItem x[2];
        x[1].s_bool = x1;
        if (this->_binding->callMethod(86, (void*)this, x)) return;
        this->QWidget::windowActivationChange(x1);
    }
    virtual void languageChange() {
        Smoke::StackItem x[1];
        if (this->_binding->callMethod(87, (void*)this, x)) return;
        this->QWidget::languageChange();
    }
    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(33, (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(34, (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(35, (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(36, (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(37, (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(38, (void*)this, x)) return;
        this->QObject::disconnectNotify(x1);
    }
    virtual int devType() const {
        Smoke::StackItem x[1];
        if (this->_binding->callMethod(45, (void*)this, x)) return (int)x[0].s_int;
        return this->QWidget::devType();
    }
    virtual QPaintEngine* paintEngine() const {
        Smoke::StackItem x[1];
        if (this->_binding->callMethod(50, (void*)this, x)) return (QPaintEngine*)x[0].s_class;
        return this->QWidget::paintEngine();
    }
    virtual int metric(QPaintDevice::PaintDeviceMetric x1) const {
        Smoke::StackItem x[2];
        x[1].s_enum = x1;
        if (this->_binding->callMethod(78, (void*)this, x)) return (int)x[0].s_int;
        return this->QWidget::metric(x1);
    }
    virtual void incValue(int x1) {
        Smoke::StackItem x[2];
        x[1].s_int = x1;
        if (this->_binding->callMethod(541, (void*)this, x)) return;
        this->QwtDoubleRange::incValue(x1);
    }
    virtual void incPages(int x1) {
        Smoke::StackItem x[2];
        x[1].s_int = x1;
        if (this->_binding->callMethod(542, (void*)this, x)) return;
        this->QwtDoubleRange::incPages(x1);
    }
    virtual void fitValue(double x1) {
        Smoke::StackItem x[2];
        x[1].s_double = x1;
        if (this->_binding->callMethod(543, (void*)this, x)) return;
        this->QwtDoubleRange::fitValue(x1);
    }
    virtual void stepChange() {
        Smoke::StackItem x[1];
        if (this->_binding->callMethod(548, (void*)this, x)) return;
        this->QwtDoubleRange::stepChange();
    }
    static void xenum_operation(Smoke::EnumOperation xop, Smoke::Index xtype, void *&xdata, long &xvalue) {
        switch(xtype) {
        case 175: //QwtCounter::Button
            switch(xop) {
                case Smoke::EnumNew:
                    xdata = (void*)new QwtCounter::Button;
                    break;
                case Smoke::EnumDelete:
                    delete (QwtCounter::Button*)xdata;
                    break;
                case Smoke::EnumFromLong:
                    *(QwtCounter::Button*)xdata = (QwtCounter::Button)xvalue;
                    break;
                case Smoke::EnumToLong:
                    xvalue = (long)*(QwtCounter::Button*)xdata;
                    break;
            }
            break;
        }
    }
    ~x_QwtCounter() { this->_binding->deleted(73, (void*)this); }
};
void xenum_QwtCounter(Smoke::EnumOperation xop, Smoke::Index xtype, void *&xdata, long &xvalue) {
    x_QwtCounter::xenum_operation(xop, xtype, xdata, xvalue);
}
void xcall_QwtCounter(Smoke::Index xi, void *obj, Smoke::Stack args) {
    x_QwtCounter *xself = (x_QwtCounter*)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_QwtCounter::x_3(args);	break;
        case 4: x_QwtCounter::x_4(args);	break;
        case 5: x_QwtCounter::x_5(args);	break;
        case 6: x_QwtCounter::x_6(args);	break;
        case 7: xself->x_7(args);	break;
        case 8: x_QwtCounter::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: x_QwtCounter::x_37(args);	break;
        case 38: x_QwtCounter::x_38(args);	break;
        case 39: x_QwtCounter::x_39(args);	break;
        case 40: x_QwtCounter::x_40(args);	break;
        case 41: x_QwtCounter::x_41(args);	break;
        case 42: x_QwtCounter::x_42(args);	break;
        case 43: x_QwtCounter::x_43(args);	break;
        case 44: x_QwtCounter::x_44(args);	break;
        case 45: delete (QwtCounter*)xself;	break;
    }
}
class x_QwtCurveFitter : public QwtCurveFitter, 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 QPolygonF fitCurve(const QPolygonF&) const = 0
        QPolygonF xret = ((const x_QwtCurveFitter*)this)->fitCurve(*(const QPolygonF*)x[1].s_class);
        x[0].s_class = (void*)new QPolygonF(xret);
    }
    static void x_2(Smoke::Stack x) {
        // QwtCurveFitter* QwtCurveFitter()
        x_QwtCurveFitter* xret = new x_QwtCurveFitter();
        x[0].s_class = (void*)xret;
    }
    explicit x_QwtCurveFitter() : QwtCurveFitter() {}
    virtual QPolygonF fitCurve(const QPolygonF& x1) const {
        Smoke::StackItem x[2];
        x[1].s_class = (void*)&x1;
        this->_binding->callMethod(379, (void*)this, x, true /*pure virtual*/);
        QPolygonF* xptr = (QPolygonF*)x[0].s_class;
        QPolygonF xret(*xptr);
        delete xptr;
        return xret;
    }
    ~x_QwtCurveFitter() { this->_binding->deleted(74, (void*)this); }
};
void xcall_QwtCurveFitter(Smoke::Index xi, void *obj, Smoke::Stack args) {
    x_QwtCurveFitter *xself = (x_QwtCurveFitter*)obj;
    switch(xi) {
        case 0: xself->x_0(args);	break;
        case 1: xself->x_1(args);	break;
        case 2: x_QwtCurveFitter::x_2(args);	break;
        case 3: delete (QwtCurveFitter*)xself;	break;
    }
}

}
