//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_QwtPlotPrintFilter : public QwtPlotPrintFilter, 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) {
        // QwtPlotPrintFilter* QwtPlotPrintFilter()
        x_QwtPlotPrintFilter* xret = new x_QwtPlotPrintFilter();
        x[0].s_class = (void*)xret;
    }
    explicit x_QwtPlotPrintFilter() : QwtPlotPrintFilter() {}
    void x_2(Smoke::Stack x) {
        // virtual QColor color(const QColor&, QwtPlotPrintFilter::Item) const
        if (dynamic_cast<__internal_SmokeClass*>(static_cast<QwtPlotPrintFilter*>(this))) {
            QColor xret = ((const x_QwtPlotPrintFilter*)this)->QwtPlotPrintFilter::color(*(const QColor*)x[1].s_class,(QwtPlotPrintFilter::Item)x[2].s_enum);
            x[0].s_class = (void*)new QColor(xret);
        } else {
            QColor xret = ((const x_QwtPlotPrintFilter*)this)->color(*(const QColor*)x[1].s_class,(QwtPlotPrintFilter::Item)x[2].s_enum);
            x[0].s_class = (void*)new QColor(xret);
        }
    }
    void x_3(Smoke::Stack x) {
        // virtual QFont font(const QFont&, QwtPlotPrintFilter::Item) const
        if (dynamic_cast<__internal_SmokeClass*>(static_cast<QwtPlotPrintFilter*>(this))) {
            QFont xret = ((const x_QwtPlotPrintFilter*)this)->QwtPlotPrintFilter::font(*(const QFont*)x[1].s_class,(QwtPlotPrintFilter::Item)x[2].s_enum);
            x[0].s_class = (void*)new QFont(xret);
        } else {
            QFont xret = ((const x_QwtPlotPrintFilter*)this)->font(*(const QFont*)x[1].s_class,(QwtPlotPrintFilter::Item)x[2].s_enum);
            x[0].s_class = (void*)new QFont(xret);
        }
    }
    void x_4(Smoke::Stack x) {
        // void setOptions(int)
        this->QwtPlotPrintFilter::setOptions((int)x[1].s_int);
        (void)x; // noop (for compiler warning)
    }
    void x_5(Smoke::Stack x) {
        // int options() const
        int xret = ((const x_QwtPlotPrintFilter*)this)->QwtPlotPrintFilter::options();
        x[0].s_int = xret;
    }
    void x_6(Smoke::Stack x) {
        // virtual void apply(QwtPlot*) const
        if (dynamic_cast<__internal_SmokeClass*>(static_cast<QwtPlotPrintFilter*>(this))) {
            ((const x_QwtPlotPrintFilter*)this)->QwtPlotPrintFilter::apply((QwtPlot*)x[1].s_class);
            (void)x; // noop (for compiler warning)
        } else {
            ((const x_QwtPlotPrintFilter*)this)->apply((QwtPlot*)x[1].s_class);
            (void)x; // noop (for compiler warning)
        }
    }
    void x_7(Smoke::Stack x) {
        // virtual void reset(QwtPlot*) const
        if (dynamic_cast<__internal_SmokeClass*>(static_cast<QwtPlotPrintFilter*>(this))) {
            ((const x_QwtPlotPrintFilter*)this)->QwtPlotPrintFilter::reset((QwtPlot*)x[1].s_class);
            (void)x; // noop (for compiler warning)
        } else {
            ((const x_QwtPlotPrintFilter*)this)->reset((QwtPlot*)x[1].s_class);
            (void)x; // noop (for compiler warning)
        }
    }
    void x_8(Smoke::Stack x) {
        // virtual void apply(QwtPlotItem*) const
        if (dynamic_cast<__internal_SmokeClass*>(static_cast<QwtPlotPrintFilter*>(this))) {
            ((const x_QwtPlotPrintFilter*)this)->QwtPlotPrintFilter::apply((QwtPlotItem*)x[1].s_class);
            (void)x; // noop (for compiler warning)
        } else {
            ((const x_QwtPlotPrintFilter*)this)->apply((QwtPlotItem*)x[1].s_class);
            (void)x; // noop (for compiler warning)
        }
    }
    void x_9(Smoke::Stack x) {
        // virtual void reset(QwtPlotItem*) const
        if (dynamic_cast<__internal_SmokeClass*>(static_cast<QwtPlotPrintFilter*>(this))) {
            ((const x_QwtPlotPrintFilter*)this)->QwtPlotPrintFilter::reset((QwtPlotItem*)x[1].s_class);
            (void)x; // noop (for compiler warning)
        } else {
            ((const x_QwtPlotPrintFilter*)this)->reset((QwtPlotItem*)x[1].s_class);
            (void)x; // noop (for compiler warning)
        }
    }
    static void x_10(Smoke::Stack x) {
        // QwtPlotPrintFilter* QwtPlotPrintFilter(const QwtPlotPrintFilter&)
        x_QwtPlotPrintFilter* xret = new x_QwtPlotPrintFilter(*(const QwtPlotPrintFilter*)x[1].s_class);
        x[0].s_class = (void*)xret;
    }
    explicit x_QwtPlotPrintFilter(const QwtPlotPrintFilter& x1) : QwtPlotPrintFilter(x1) {}
    static void x_11(Smoke::Stack x) {
        x[0].s_enum = (long)QwtPlotPrintFilter::PrintMargin;
    }
    static void x_12(Smoke::Stack x) {
        x[0].s_enum = (long)QwtPlotPrintFilter::PrintTitle;
    }
    static void x_13(Smoke::Stack x) {
        x[0].s_enum = (long)QwtPlotPrintFilter::PrintLegend;
    }
    static void x_14(Smoke::Stack x) {
        x[0].s_enum = (long)QwtPlotPrintFilter::PrintGrid;
    }
    static void x_15(Smoke::Stack x) {
        x[0].s_enum = (long)QwtPlotPrintFilter::PrintBackground;
    }
    static void x_16(Smoke::Stack x) {
        x[0].s_enum = (long)QwtPlotPrintFilter::PrintFrameWithScales;
    }
    static void x_17(Smoke::Stack x) {
        x[0].s_enum = (long)QwtPlotPrintFilter::PrintAll;
    }
    static void x_18(Smoke::Stack x) {
        x[0].s_enum = (long)QwtPlotPrintFilter::Title;
    }
    static void x_19(Smoke::Stack x) {
        x[0].s_enum = (long)QwtPlotPrintFilter::Legend;
    }
    static void x_20(Smoke::Stack x) {
        x[0].s_enum = (long)QwtPlotPrintFilter::Curve;
    }
    static void x_21(Smoke::Stack x) {
        x[0].s_enum = (long)QwtPlotPrintFilter::CurveSymbol;
    }
    static void x_22(Smoke::Stack x) {
        x[0].s_enum = (long)QwtPlotPrintFilter::Marker;
    }
    static void x_23(Smoke::Stack x) {
        x[0].s_enum = (long)QwtPlotPrintFilter::MarkerSymbol;
    }
    static void x_24(Smoke::Stack x) {
        x[0].s_enum = (long)QwtPlotPrintFilter::MajorGrid;
    }
    static void x_25(Smoke::Stack x) {
        x[0].s_enum = (long)QwtPlotPrintFilter::MinorGrid;
    }
    static void x_26(Smoke::Stack x) {
        x[0].s_enum = (long)QwtPlotPrintFilter::CanvasBackground;
    }
    static void x_27(Smoke::Stack x) {
        x[0].s_enum = (long)QwtPlotPrintFilter::AxisScale;
    }
    static void x_28(Smoke::Stack x) {
        x[0].s_enum = (long)QwtPlotPrintFilter::AxisTitle;
    }
    static void x_29(Smoke::Stack x) {
        x[0].s_enum = (long)QwtPlotPrintFilter::WidgetBackground;
    }
    virtual QColor color(const QColor& x1, QwtPlotPrintFilter::Item x2) const {
        Smoke::StackItem x[3];
        x[1].s_class = (void*)&x1;
        x[2].s_enum = x2;
        if (this->_binding->callMethod(1499, (void*)this, x)) {
            QColor* xptr = (QColor*)x[0].s_class;
            QColor xret(*xptr);
            delete xptr;
            return xret;
        }
        return this->QwtPlotPrintFilter::color(x1, x2);
    }
    virtual QFont font(const QFont& x1, QwtPlotPrintFilter::Item x2) const {
        Smoke::StackItem x[3];
        x[1].s_class = (void*)&x1;
        x[2].s_enum = x2;
        if (this->_binding->callMethod(1500, (void*)this, x)) {
            QFont* xptr = (QFont*)x[0].s_class;
            QFont xret(*xptr);
            delete xptr;
            return xret;
        }
        return this->QwtPlotPrintFilter::font(x1, x2);
    }
    virtual void apply(QwtPlot* x1) const {
        Smoke::StackItem x[2];
        x[1].s_class = (void*)x1;
        if (this->_binding->callMethod(1503, (void*)this, x)) return;
        this->QwtPlotPrintFilter::apply(x1);
    }
    virtual void reset(QwtPlot* x1) const {
        Smoke::StackItem x[2];
        x[1].s_class = (void*)x1;
        if (this->_binding->callMethod(1504, (void*)this, x)) return;
        this->QwtPlotPrintFilter::reset(x1);
    }
    virtual void apply(QwtPlotItem* x1) const {
        Smoke::StackItem x[2];
        x[1].s_class = (void*)x1;
        if (this->_binding->callMethod(1505, (void*)this, x)) return;
        this->QwtPlotPrintFilter::apply(x1);
    }
    virtual void reset(QwtPlotItem* x1) const {
        Smoke::StackItem x[2];
        x[1].s_class = (void*)x1;
        if (this->_binding->callMethod(1506, (void*)this, x)) return;
        this->QwtPlotPrintFilter::reset(x1);
    }
    static void xenum_operation(Smoke::EnumOperation xop, Smoke::Index xtype, void *&xdata, long &xvalue) {
        switch(xtype) {
        case 260: //QwtPlotPrintFilter::Options
            switch(xop) {
                case Smoke::EnumNew:
                    xdata = (void*)new QwtPlotPrintFilter::Options;
                    break;
                case Smoke::EnumDelete:
                    delete (QwtPlotPrintFilter::Options*)xdata;
                    break;
                case Smoke::EnumFromLong:
                    *(QwtPlotPrintFilter::Options*)xdata = (QwtPlotPrintFilter::Options)xvalue;
                    break;
                case Smoke::EnumToLong:
                    xvalue = (long)*(QwtPlotPrintFilter::Options*)xdata;
                    break;
            }
            break;
        case 259: //QwtPlotPrintFilter::Item
            switch(xop) {
                case Smoke::EnumNew:
                    xdata = (void*)new QwtPlotPrintFilter::Item;
                    break;
                case Smoke::EnumDelete:
                    delete (QwtPlotPrintFilter::Item*)xdata;
                    break;
                case Smoke::EnumFromLong:
                    *(QwtPlotPrintFilter::Item*)xdata = (QwtPlotPrintFilter::Item)xvalue;
                    break;
                case Smoke::EnumToLong:
                    xvalue = (long)*(QwtPlotPrintFilter::Item*)xdata;
                    break;
            }
            break;
        }
    }
    ~x_QwtPlotPrintFilter() { this->_binding->deleted(117, (void*)this); }
};
void xenum_QwtPlotPrintFilter(Smoke::EnumOperation xop, Smoke::Index xtype, void *&xdata, long &xvalue) {
    x_QwtPlotPrintFilter::xenum_operation(xop, xtype, xdata, xvalue);
}
void xcall_QwtPlotPrintFilter(Smoke::Index xi, void *obj, Smoke::Stack args) {
    x_QwtPlotPrintFilter *xself = (x_QwtPlotPrintFilter*)obj;
    switch(xi) {
        case 0: xself->x_0(args);	break;
        case 1: x_QwtPlotPrintFilter::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_QwtPlotPrintFilter::x_10(args);	break;
        case 11: x_QwtPlotPrintFilter::x_11(args);	break;
        case 12: x_QwtPlotPrintFilter::x_12(args);	break;
        case 13: x_QwtPlotPrintFilter::x_13(args);	break;
        case 14: x_QwtPlotPrintFilter::x_14(args);	break;
        case 15: x_QwtPlotPrintFilter::x_15(args);	break;
        case 16: x_QwtPlotPrintFilter::x_16(args);	break;
        case 17: x_QwtPlotPrintFilter::x_17(args);	break;
        case 18: x_QwtPlotPrintFilter::x_18(args);	break;
        case 19: x_QwtPlotPrintFilter::x_19(args);	break;
        case 20: x_QwtPlotPrintFilter::x_20(args);	break;
        case 21: x_QwtPlotPrintFilter::x_21(args);	break;
        case 22: x_QwtPlotPrintFilter::x_22(args);	break;
        case 23: x_QwtPlotPrintFilter::x_23(args);	break;
        case 24: x_QwtPlotPrintFilter::x_24(args);	break;
        case 25: x_QwtPlotPrintFilter::x_25(args);	break;
        case 26: x_QwtPlotPrintFilter::x_26(args);	break;
        case 27: x_QwtPlotPrintFilter::x_27(args);	break;
        case 28: x_QwtPlotPrintFilter::x_28(args);	break;
        case 29: x_QwtPlotPrintFilter::x_29(args);	break;
        case 30: delete (QwtPlotPrintFilter*)xself;	break;
    }
}
class x_QwtPlotRasterItem : public QwtPlotRasterItem, 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) {
        // QwtPlotRasterItem* QwtPlotRasterItem(const QString&)
        x_QwtPlotRasterItem* xret = new x_QwtPlotRasterItem(*(const QString*)x[1].s_class);
        x[0].s_class = (void*)xret;
    }
    explicit x_QwtPlotRasterItem(const QString& x1) : QwtPlotRasterItem(x1) {}
    static void x_2(Smoke::Stack x) {
        // QwtPlotRasterItem* QwtPlotRasterItem(const QwtText&)
        x_QwtPlotRasterItem* xret = new x_QwtPlotRasterItem(*(const QwtText*)x[1].s_class);
        x[0].s_class = (void*)xret;
    }
    explicit x_QwtPlotRasterItem(const QwtText& x1) : QwtPlotRasterItem(x1) {}
    void x_3(Smoke::Stack x) {
        // void setAlpha(int)
        this->QwtPlotRasterItem::setAlpha((int)x[1].s_int);
        (void)x; // noop (for compiler warning)
    }
    void x_4(Smoke::Stack x) {
        // int alpha() const
        int xret = ((const x_QwtPlotRasterItem*)this)->QwtPlotRasterItem::alpha();
        x[0].s_int = xret;
    }
    void x_5(Smoke::Stack x) {
        // void setCachePolicy(QwtPlotRasterItem::CachePolicy)
        this->QwtPlotRasterItem::setCachePolicy((QwtPlotRasterItem::CachePolicy)x[1].s_enum);
        (void)x; // noop (for compiler warning)
    }
    void x_6(Smoke::Stack x) {
        // QwtPlotRasterItem::CachePolicy cachePolicy() const
        QwtPlotRasterItem::CachePolicy xret = ((const x_QwtPlotRasterItem*)this)->QwtPlotRasterItem::cachePolicy();
        x[0].s_enum = xret;
    }
    void x_7(Smoke::Stack x) {
        // void invalidateCache()
        this->QwtPlotRasterItem::invalidateCache();
        (void)x; // noop (for compiler warning)
    }
    void x_8(Smoke::Stack x) {
        // virtual void draw(QPainter*, const QwtScaleMap&, const QwtScaleMap&, const QRect&) const
        if (dynamic_cast<__internal_SmokeClass*>(static_cast<QwtPlotRasterItem*>(this))) {
            ((const x_QwtPlotRasterItem*)this)->QwtPlotRasterItem::draw((QPainter*)x[1].s_class,*(const QwtScaleMap*)x[2].s_class,*(const QwtScaleMap*)x[3].s_class,*(const QRect*)x[4].s_class);
            (void)x; // noop (for compiler warning)
        } else {
            ((const x_QwtPlotRasterItem*)this)->draw((QPainter*)x[1].s_class,*(const QwtScaleMap*)x[2].s_class,*(const QwtScaleMap*)x[3].s_class,*(const QRect*)x[4].s_class);
            (void)x; // noop (for compiler warning)
        }
    }
    void x_9(Smoke::Stack x) {
        // virtual QSize rasterHint(const QRectF&) const
        if (dynamic_cast<__internal_SmokeClass*>(static_cast<QwtPlotRasterItem*>(this))) {
            QSize xret = ((const x_QwtPlotRasterItem*)this)->QwtPlotRasterItem::rasterHint(*(const QRectF*)x[1].s_class);
            x[0].s_class = (void*)new QSize(xret);
        } else {
            QSize xret = ((const x_QwtPlotRasterItem*)this)->rasterHint(*(const QRectF*)x[1].s_class);
            x[0].s_class = (void*)new QSize(xret);
        }
    }
    void x_10(Smoke::Stack x) {
        // virtual QImage renderImage(const QwtScaleMap&, const QwtScaleMap&, const QRectF&) const = 0
        QImage xret = ((const x_QwtPlotRasterItem*)this)->renderImage(*(const QwtScaleMap*)x[1].s_class,*(const QwtScaleMap*)x[2].s_class,*(const QRectF*)x[3].s_class);
        x[0].s_class = (void*)new QImage(xret);
    }
    static void x_11(Smoke::Stack x) {
        // QwtPlotRasterItem* QwtPlotRasterItem()
        x_QwtPlotRasterItem* xret = new x_QwtPlotRasterItem((const QString&)QString::null);
        x[0].s_class = (void*)xret;
    }
    static void x_12(Smoke::Stack x) {
        x[0].s_enum = (long)QwtPlotRasterItem::NoCache;
    }
    static void x_13(Smoke::Stack x) {
        x[0].s_enum = (long)QwtPlotRasterItem::PaintCache;
    }
    static void x_14(Smoke::Stack x) {
        x[0].s_enum = (long)QwtPlotRasterItem::ScreenCache;
    }
    virtual void draw(QPainter* x1, const QwtScaleMap& x2, const QwtScaleMap& x3, const QRect& x4) const {
        Smoke::StackItem x[5];
        x[1].s_class = (void*)x1;
        x[2].s_class = (void*)&x2;
        x[3].s_class = (void*)&x3;
        x[4].s_class = (void*)&x4;
        if (this->_binding->callMethod(1535, (void*)this, x)) return;
        this->QwtPlotRasterItem::draw(x1, x2, x3, x4);
    }
    virtual QSize rasterHint(const QRectF& x1) const {
        Smoke::StackItem x[2];
        x[1].s_class = (void*)&x1;
        if (this->_binding->callMethod(1536, (void*)this, x)) {
            QSize* xptr = (QSize*)x[0].s_class;
            QSize xret(*xptr);
            delete xptr;
            return xret;
        }
        return this->QwtPlotRasterItem::rasterHint(x1);
    }
    virtual QImage renderImage(const QwtScaleMap& x1, const QwtScaleMap& x2, const QRectF& x3) const {
        Smoke::StackItem x[4];
        x[1].s_class = (void*)&x1;
        x[2].s_class = (void*)&x2;
        x[3].s_class = (void*)&x3;
        this->_binding->callMethod(1537, (void*)this, x, true /*pure virtual*/);
        QImage* xptr = (QImage*)x[0].s_class;
        QImage xret(*xptr);
        delete xptr;
        return xret;
    }
    virtual int rtti() const {
        Smoke::StackItem x[1];
        if (this->_binding->callMethod(1316, (void*)this, x)) return (int)x[0].s_int;
        return this->QwtPlotItem::rtti();
    }
    virtual void setVisible(bool x1) {
        Smoke::StackItem x[2];
        x[1].s_bool = x1;
        if (this->_binding->callMethod(1325, (void*)this, x)) return;
        this->QwtPlotItem::setVisible(x1);
    }
    virtual void itemChanged() {
        Smoke::StackItem x[1];
        if (this->_binding->callMethod(1332, (void*)this, x)) return;
        this->QwtPlotItem::itemChanged();
    }
    virtual QRectF boundingRect() const {
        Smoke::StackItem x[1];
        if (this->_binding->callMethod(1334, (void*)this, x)) {
            QRectF* xptr = (QRectF*)x[0].s_class;
            QRectF xret(*xptr);
            delete xptr;
            return xret;
        }
        return this->QwtPlotItem::boundingRect();
    }
    virtual void updateLegend(QwtLegend* x1) const {
        Smoke::StackItem x[2];
        x[1].s_class = (void*)x1;
        if (this->_binding->callMethod(1335, (void*)this, x)) return;
        this->QwtPlotItem::updateLegend(x1);
    }
    virtual void updateScaleDiv(const QwtScaleDiv& x1, const QwtScaleDiv& x2) {
        Smoke::StackItem x[3];
        x[1].s_class = (void*)&x1;
        x[2].s_class = (void*)&x2;
        if (this->_binding->callMethod(1336, (void*)this, x)) return;
        this->QwtPlotItem::updateScaleDiv(x1, x2);
    }
    virtual QWidget* legendItem() const {
        Smoke::StackItem x[1];
        if (this->_binding->callMethod(1337, (void*)this, x)) return (QWidget*)x[0].s_class;
        return this->QwtPlotItem::legendItem();
    }
    static void xenum_operation(Smoke::EnumOperation xop, Smoke::Index xtype, void *&xdata, long &xvalue) {
        switch(xtype) {
        case 262: //QwtPlotRasterItem::CachePolicy
            switch(xop) {
                case Smoke::EnumNew:
                    xdata = (void*)new QwtPlotRasterItem::CachePolicy;
                    break;
                case Smoke::EnumDelete:
                    delete (QwtPlotRasterItem::CachePolicy*)xdata;
                    break;
                case Smoke::EnumFromLong:
                    *(QwtPlotRasterItem::CachePolicy*)xdata = (QwtPlotRasterItem::CachePolicy)xvalue;
                    break;
                case Smoke::EnumToLong:
                    xvalue = (long)*(QwtPlotRasterItem::CachePolicy*)xdata;
                    break;
            }
            break;
        }
    }
    ~x_QwtPlotRasterItem() { this->_binding->deleted(118, (void*)this); }
};
void xenum_QwtPlotRasterItem(Smoke::EnumOperation xop, Smoke::Index xtype, void *&xdata, long &xvalue) {
    x_QwtPlotRasterItem::xenum_operation(xop, xtype, xdata, xvalue);
}
void xcall_QwtPlotRasterItem(Smoke::Index xi, void *obj, Smoke::Stack args) {
    x_QwtPlotRasterItem *xself = (x_QwtPlotRasterItem*)obj;
    switch(xi) {
        case 0: xself->x_0(args);	break;
        case 1: x_QwtPlotRasterItem::x_1(args);	break;
        case 2: x_QwtPlotRasterItem::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: x_QwtPlotRasterItem::x_11(args);	break;
        case 12: x_QwtPlotRasterItem::x_12(args);	break;
        case 13: x_QwtPlotRasterItem::x_13(args);	break;
        case 14: x_QwtPlotRasterItem::x_14(args);	break;
        case 15: delete (QwtPlotRasterItem*)xself;	break;
    }
}
class x_QwtPlotScaleItem : public QwtPlotScaleItem, 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) {
        // QwtPlotScaleItem* QwtPlotScaleItem(QwtScaleDraw::Alignment, const double)
        x_QwtPlotScaleItem* xret = new x_QwtPlotScaleItem((QwtScaleDraw::Alignment)x[1].s_enum,(const double)x[2].s_double);
        x[0].s_class = (void*)xret;
    }
    explicit x_QwtPlotScaleItem(QwtScaleDraw::Alignment x1, const double x2) : QwtPlotScaleItem(x1, x2) {}
    void x_2(Smoke::Stack x) {
        // virtual int rtti() const
        if (dynamic_cast<__internal_SmokeClass*>(static_cast<QwtPlotScaleItem*>(this))) {
            int xret = ((const x_QwtPlotScaleItem*)this)->QwtPlotScaleItem::rtti();
            x[0].s_int = xret;
        } else {
            int xret = ((const x_QwtPlotScaleItem*)this)->rtti();
            x[0].s_int = xret;
        }
    }
    void x_3(Smoke::Stack x) {
        // void setScaleDiv(const QwtScaleDiv&)
        this->QwtPlotScaleItem::setScaleDiv(*(const QwtScaleDiv*)x[1].s_class);
        (void)x; // noop (for compiler warning)
    }
    void x_4(Smoke::Stack x) {
        // const QwtScaleDiv& scaleDiv() const
        const QwtScaleDiv& xret = ((const x_QwtPlotScaleItem*)this)->QwtPlotScaleItem::scaleDiv();
        x[0].s_class = (void*)&xret;
    }
    void x_5(Smoke::Stack x) {
        // void setScaleDivFromAxis(bool)
        this->QwtPlotScaleItem::setScaleDivFromAxis((bool)x[1].s_bool);
        (void)x; // noop (for compiler warning)
    }
    void x_6(Smoke::Stack x) {
        // bool isScaleDivFromAxis() const
        bool xret = ((const x_QwtPlotScaleItem*)this)->QwtPlotScaleItem::isScaleDivFromAxis();
        x[0].s_bool = xret;
    }
    void x_7(Smoke::Stack x) {
        // void setPalette(const QPalette&)
        this->QwtPlotScaleItem::setPalette(*(const QPalette*)x[1].s_class);
        (void)x; // noop (for compiler warning)
    }
    void x_8(Smoke::Stack x) {
        // QPalette palette() const
        QPalette xret = ((const x_QwtPlotScaleItem*)this)->QwtPlotScaleItem::palette();
        x[0].s_class = (void*)new QPalette(xret);
    }
    void x_9(Smoke::Stack x) {
        // void setFont(const QFont&)
        this->QwtPlotScaleItem::setFont(*(const QFont*)x[1].s_class);
        (void)x; // noop (for compiler warning)
    }
    void x_10(Smoke::Stack x) {
        // QFont font() const
        QFont xret = ((const x_QwtPlotScaleItem*)this)->QwtPlotScaleItem::font();
        x[0].s_class = (void*)new QFont(xret);
    }
    void x_11(Smoke::Stack x) {
        // void setScaleDraw(QwtScaleDraw*)
        this->QwtPlotScaleItem::setScaleDraw((QwtScaleDraw*)x[1].s_class);
        (void)x; // noop (for compiler warning)
    }
    void x_12(Smoke::Stack x) {
        // const QwtScaleDraw* scaleDraw() const
        const QwtScaleDraw* xret = ((const x_QwtPlotScaleItem*)this)->QwtPlotScaleItem::scaleDraw();
        x[0].s_class = (void*)xret;
    }
    void x_13(Smoke::Stack x) {
        // QwtScaleDraw* scaleDraw()
        QwtScaleDraw* xret = this->QwtPlotScaleItem::scaleDraw();
        x[0].s_class = (void*)xret;
    }
    void x_14(Smoke::Stack x) {
        // void setPosition(double)
        this->QwtPlotScaleItem::setPosition((double)x[1].s_double);
        (void)x; // noop (for compiler warning)
    }
    void x_15(Smoke::Stack x) {
        // double position() const
        double xret = ((const x_QwtPlotScaleItem*)this)->QwtPlotScaleItem::position();
        x[0].s_double = xret;
    }
    void x_16(Smoke::Stack x) {
        // void setBorderDistance(int)
        this->QwtPlotScaleItem::setBorderDistance((int)x[1].s_int);
        (void)x; // noop (for compiler warning)
    }
    void x_17(Smoke::Stack x) {
        // int borderDistance() const
        int xret = ((const x_QwtPlotScaleItem*)this)->QwtPlotScaleItem::borderDistance();
        x[0].s_int = xret;
    }
    void x_18(Smoke::Stack x) {
        // void setAlignment(QwtScaleDraw::Alignment)
        this->QwtPlotScaleItem::setAlignment((QwtScaleDraw::Alignment)x[1].s_enum);
        (void)x; // noop (for compiler warning)
    }
    void x_19(Smoke::Stack x) {
        // virtual void draw(QPainter*, const QwtScaleMap&, const QwtScaleMap&, const QRect&) const
        if (dynamic_cast<__internal_SmokeClass*>(static_cast<QwtPlotScaleItem*>(this))) {
            ((const x_QwtPlotScaleItem*)this)->QwtPlotScaleItem::draw((QPainter*)x[1].s_class,*(const QwtScaleMap*)x[2].s_class,*(const QwtScaleMap*)x[3].s_class,*(const QRect*)x[4].s_class);
            (void)x; // noop (for compiler warning)
        } else {
            ((const x_QwtPlotScaleItem*)this)->draw((QPainter*)x[1].s_class,*(const QwtScaleMap*)x[2].s_class,*(const QwtScaleMap*)x[3].s_class,*(const QRect*)x[4].s_class);
            (void)x; // noop (for compiler warning)
        }
    }
    void x_20(Smoke::Stack x) {
        // virtual void updateScaleDiv(const QwtScaleDiv&, const QwtScaleDiv&)
        if (dynamic_cast<__internal_SmokeClass*>(static_cast<QwtPlotScaleItem*>(this))) {
            this->QwtPlotScaleItem::updateScaleDiv(*(const QwtScaleDiv*)x[1].s_class,*(const QwtScaleDiv*)x[2].s_class);
            (void)x; // noop (for compiler warning)
        } else {
            this->updateScaleDiv(*(const QwtScaleDiv*)x[1].s_class,*(const QwtScaleDiv*)x[2].s_class);
            (void)x; // noop (for compiler warning)
        }
    }
    static void x_21(Smoke::Stack x) {
        // QwtPlotScaleItem* QwtPlotScaleItem()
        x_QwtPlotScaleItem* xret = new x_QwtPlotScaleItem((QwtScaleDraw::Alignment)QwtScaleDraw::BottomScale,(const double)0.0);
        x[0].s_class = (void*)xret;
    }
    static void x_22(Smoke::Stack x) {
        // QwtPlotScaleItem* QwtPlotScaleItem(QwtScaleDraw::Alignment)
        x_QwtPlotScaleItem* xret = new x_QwtPlotScaleItem((QwtScaleDraw::Alignment)x[1].s_enum,(const double)0.0);
        x[0].s_class = (void*)xret;
    }
    virtual int rtti() const {
        Smoke::StackItem x[1];
        if (this->_binding->callMethod(1544, (void*)this, x)) return (int)x[0].s_int;
        return this->QwtPlotScaleItem::rtti();
    }
    virtual void draw(QPainter* x1, const QwtScaleMap& x2, const QwtScaleMap& x3, const QRect& x4) const {
        Smoke::StackItem x[5];
        x[1].s_class = (void*)x1;
        x[2].s_class = (void*)&x2;
        x[3].s_class = (void*)&x3;
        x[4].s_class = (void*)&x4;
        if (this->_binding->callMethod(1561, (void*)this, x)) return;
        this->QwtPlotScaleItem::draw(x1, x2, x3, x4);
    }
    virtual void updateScaleDiv(const QwtScaleDiv& x1, const QwtScaleDiv& x2) {
        Smoke::StackItem x[3];
        x[1].s_class = (void*)&x1;
        x[2].s_class = (void*)&x2;
        if (this->_binding->callMethod(1562, (void*)this, x)) return;
        this->QwtPlotScaleItem::updateScaleDiv(x1, x2);
    }
    virtual void setVisible(bool x1) {
        Smoke::StackItem x[2];
        x[1].s_bool = x1;
        if (this->_binding->callMethod(1325, (void*)this, x)) return;
        this->QwtPlotItem::setVisible(x1);
    }
    virtual void itemChanged() {
        Smoke::StackItem x[1];
        if (this->_binding->callMethod(1332, (void*)this, x)) return;
        this->QwtPlotItem::itemChanged();
    }
    virtual QRectF boundingRect() const {
        Smoke::StackItem x[1];
        if (this->_binding->callMethod(1334, (void*)this, x)) {
            QRectF* xptr = (QRectF*)x[0].s_class;
            QRectF xret(*xptr);
            delete xptr;
            return xret;
        }
        return this->QwtPlotItem::boundingRect();
    }
    virtual void updateLegend(QwtLegend* x1) const {
        Smoke::StackItem x[2];
        x[1].s_class = (void*)x1;
        if (this->_binding->callMethod(1335, (void*)this, x)) return;
        this->QwtPlotItem::updateLegend(x1);
    }
    virtual QWidget* legendItem() const {
        Smoke::StackItem x[1];
        if (this->_binding->callMethod(1337, (void*)this, x)) return (QWidget*)x[0].s_class;
        return this->QwtPlotItem::legendItem();
    }
    ~x_QwtPlotScaleItem() { this->_binding->deleted(119, (void*)this); }
};
void xcall_QwtPlotScaleItem(Smoke::Index xi, void *obj, Smoke::Stack args) {
    x_QwtPlotScaleItem *xself = (x_QwtPlotScaleItem*)obj;
    switch(xi) {
        case 0: xself->x_0(args);	break;
        case 1: x_QwtPlotScaleItem::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: x_QwtPlotScaleItem::x_21(args);	break;
        case 22: x_QwtPlotScaleItem::x_22(args);	break;
        case 23: delete (QwtPlotScaleItem*)xself;	break;
    }
}
class x_QwtPlotSpectrogram : public QwtPlotSpectrogram, 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) {
        // QwtPlotSpectrogram* QwtPlotSpectrogram(const QString&)
        x_QwtPlotSpectrogram* xret = new x_QwtPlotSpectrogram(*(const QString*)x[1].s_class);
        x[0].s_class = (void*)xret;
    }
    explicit x_QwtPlotSpectrogram(const QString& x1) : QwtPlotSpectrogram(x1) {}
    void x_2(Smoke::Stack x) {
        // void setDisplayMode(QwtPlotSpectrogram::DisplayMode, bool)
        this->QwtPlotSpectrogram::setDisplayMode((QwtPlotSpectrogram::DisplayMode)x[1].s_enum,(bool)x[2].s_bool);
        (void)x; // noop (for compiler warning)
    }
    void x_3(Smoke::Stack x) {
        // bool testDisplayMode(QwtPlotSpectrogram::DisplayMode) const
        bool xret = ((const x_QwtPlotSpectrogram*)this)->QwtPlotSpectrogram::testDisplayMode((QwtPlotSpectrogram::DisplayMode)x[1].s_enum);
        x[0].s_bool = xret;
    }
    void x_4(Smoke::Stack x) {
        // void setData(const QwtRasterData&)
        this->QwtPlotSpectrogram::setData(*(const QwtRasterData*)x[1].s_class);
        (void)x; // noop (for compiler warning)
    }
    void x_5(Smoke::Stack x) {
        // const QwtRasterData& data() const
        const QwtRasterData& xret = ((const x_QwtPlotSpectrogram*)this)->QwtPlotSpectrogram::data();
        x[0].s_class = (void*)&xret;
    }
    void x_6(Smoke::Stack x) {
        // void setColorMap(const QwtColorMap&)
        this->QwtPlotSpectrogram::setColorMap(*(const QwtColorMap*)x[1].s_class);
        (void)x; // noop (for compiler warning)
    }
    void x_7(Smoke::Stack x) {
        // const QwtColorMap& colorMap() const
        const QwtColorMap& xret = ((const x_QwtPlotSpectrogram*)this)->QwtPlotSpectrogram::colorMap();
        x[0].s_class = (void*)&xret;
    }
    void x_8(Smoke::Stack x) {
        // virtual QRectF boundingRect() const
        if (dynamic_cast<__internal_SmokeClass*>(static_cast<QwtPlotSpectrogram*>(this))) {
            QRectF xret = ((const x_QwtPlotSpectrogram*)this)->QwtPlotSpectrogram::boundingRect();
            x[0].s_class = (void*)new QRectF(xret);
        } else {
            QRectF xret = ((const x_QwtPlotSpectrogram*)this)->boundingRect();
            x[0].s_class = (void*)new QRectF(xret);
        }
    }
    void x_9(Smoke::Stack x) {
        // virtual QSize rasterHint(const QRectF&) const
        if (dynamic_cast<__internal_SmokeClass*>(static_cast<QwtPlotSpectrogram*>(this))) {
            QSize xret = ((const x_QwtPlotSpectrogram*)this)->QwtPlotSpectrogram::rasterHint(*(const QRectF*)x[1].s_class);
            x[0].s_class = (void*)new QSize(xret);
        } else {
            QSize xret = ((const x_QwtPlotSpectrogram*)this)->rasterHint(*(const QRectF*)x[1].s_class);
            x[0].s_class = (void*)new QSize(xret);
        }
    }
    void x_10(Smoke::Stack x) {
        // void setDefaultContourPen(const QPen&)
        this->QwtPlotSpectrogram::setDefaultContourPen(*(const QPen*)x[1].s_class);
        (void)x; // noop (for compiler warning)
    }
    void x_11(Smoke::Stack x) {
        // QPen defaultContourPen() const
        QPen xret = ((const x_QwtPlotSpectrogram*)this)->QwtPlotSpectrogram::defaultContourPen();
        x[0].s_class = (void*)new QPen(xret);
    }
    void x_12(Smoke::Stack x) {
        // virtual QPen contourPen(double) const
        if (dynamic_cast<__internal_SmokeClass*>(static_cast<QwtPlotSpectrogram*>(this))) {
            QPen xret = ((const x_QwtPlotSpectrogram*)this)->QwtPlotSpectrogram::contourPen((double)x[1].s_double);
            x[0].s_class = (void*)new QPen(xret);
        } else {
            QPen xret = ((const x_QwtPlotSpectrogram*)this)->contourPen((double)x[1].s_double);
            x[0].s_class = (void*)new QPen(xret);
        }
    }
    void x_13(Smoke::Stack x) {
        // void setConrecAttribute(QwtRasterData::ConrecAttribute, bool)
        this->QwtPlotSpectrogram::setConrecAttribute((QwtRasterData::ConrecAttribute)x[1].s_enum,(bool)x[2].s_bool);
        (void)x; // noop (for compiler warning)
    }
    void x_14(Smoke::Stack x) {
        // bool testConrecAttribute(QwtRasterData::ConrecAttribute) const
        bool xret = ((const x_QwtPlotSpectrogram*)this)->QwtPlotSpectrogram::testConrecAttribute((QwtRasterData::ConrecAttribute)x[1].s_enum);
        x[0].s_bool = xret;
    }
    void x_15(Smoke::Stack x) {
        // void setContourLevels(const QList<double>&)
        this->QwtPlotSpectrogram::setContourLevels(*(const QList<double>*)x[1].s_class);
        (void)x; // noop (for compiler warning)
    }
    void x_16(Smoke::Stack x) {
        // QList<double> contourLevels() const
        QList<double> xret = ((const x_QwtPlotSpectrogram*)this)->QwtPlotSpectrogram::contourLevels();
        x[0].s_class = (void*)new QList<double>(xret);
    }
    void x_17(Smoke::Stack x) {
        // virtual int rtti() const
        if (dynamic_cast<__internal_SmokeClass*>(static_cast<QwtPlotSpectrogram*>(this))) {
            int xret = ((const x_QwtPlotSpectrogram*)this)->QwtPlotSpectrogram::rtti();
            x[0].s_int = xret;
        } else {
            int xret = ((const x_QwtPlotSpectrogram*)this)->rtti();
            x[0].s_int = xret;
        }
    }
    void x_18(Smoke::Stack x) {
        // virtual void draw(QPainter*, const QwtScaleMap&, const QwtScaleMap&, const QRect&) const
        if (dynamic_cast<__internal_SmokeClass*>(static_cast<QwtPlotSpectrogram*>(this))) {
            ((const x_QwtPlotSpectrogram*)this)->QwtPlotSpectrogram::draw((QPainter*)x[1].s_class,*(const QwtScaleMap*)x[2].s_class,*(const QwtScaleMap*)x[3].s_class,*(const QRect*)x[4].s_class);
            (void)x; // noop (for compiler warning)
        } else {
            ((const x_QwtPlotSpectrogram*)this)->draw((QPainter*)x[1].s_class,*(const QwtScaleMap*)x[2].s_class,*(const QwtScaleMap*)x[3].s_class,*(const QRect*)x[4].s_class);
            (void)x; // noop (for compiler warning)
        }
    }
    void x_19(Smoke::Stack x) {
        // virtual QImage renderImage(const QwtScaleMap&, const QwtScaleMap&, const QRectF&) const
        if (dynamic_cast<__internal_SmokeClass*>(static_cast<QwtPlotSpectrogram*>(this))) {
            QImage xret = ((const x_QwtPlotSpectrogram*)this)->QwtPlotSpectrogram::renderImage(*(const QwtScaleMap*)x[1].s_class,*(const QwtScaleMap*)x[2].s_class,*(const QRectF*)x[3].s_class);
            x[0].s_class = (void*)new QImage(xret);
        } else {
            QImage xret = ((const x_QwtPlotSpectrogram*)this)->renderImage(*(const QwtScaleMap*)x[1].s_class,*(const QwtScaleMap*)x[2].s_class,*(const QRectF*)x[3].s_class);
            x[0].s_class = (void*)new QImage(xret);
        }
    }
    void x_20(Smoke::Stack x) {
        // virtual QSize contourRasterSize(const QRectF&, const QRect&) const
        if (dynamic_cast<__internal_SmokeClass*>(static_cast<QwtPlotSpectrogram*>(this))) {
            QSize xret = ((const x_QwtPlotSpectrogram*)this)->QwtPlotSpectrogram::contourRasterSize(*(const QRectF*)x[1].s_class,*(const QRect*)x[2].s_class);
            x[0].s_class = (void*)new QSize(xret);
        } else {
            QSize xret = ((const x_QwtPlotSpectrogram*)this)->contourRasterSize(*(const QRectF*)x[1].s_class,*(const QRect*)x[2].s_class);
            x[0].s_class = (void*)new QSize(xret);
        }
    }
    void x_21(Smoke::Stack x) {
        // virtual QMap<double,QPolygonF> renderContourLines(const QRectF&, const QSize&) const
        if (dynamic_cast<__internal_SmokeClass*>(static_cast<QwtPlotSpectrogram*>(this))) {
            QMap<double,QPolygonF> xret = ((const x_QwtPlotSpectrogram*)this)->QwtPlotSpectrogram::renderContourLines(*(const QRectF*)x[1].s_class,*(const QSize*)x[2].s_class);
            x[0].s_class = (void*)new QMap<double,QPolygonF>(xret);
        } else {
            QMap<double,QPolygonF> xret = ((const x_QwtPlotSpectrogram*)this)->renderContourLines(*(const QRectF*)x[1].s_class,*(const QSize*)x[2].s_class);
            x[0].s_class = (void*)new QMap<double,QPolygonF>(xret);
        }
    }
    void x_22(Smoke::Stack x) {
        // virtual void drawContourLines(QPainter*, const QwtScaleMap&, const QwtScaleMap&, const QMap<double,QPolygonF>&) const
        if (dynamic_cast<__internal_SmokeClass*>(static_cast<QwtPlotSpectrogram*>(this))) {
            ((const x_QwtPlotSpectrogram*)this)->QwtPlotSpectrogram::drawContourLines((QPainter*)x[1].s_class,*(const QwtScaleMap*)x[2].s_class,*(const QwtScaleMap*)x[3].s_class,*(const QMap<double,QPolygonF>*)x[4].s_class);
            (void)x; // noop (for compiler warning)
        } else {
            ((const x_QwtPlotSpectrogram*)this)->drawContourLines((QPainter*)x[1].s_class,*(const QwtScaleMap*)x[2].s_class,*(const QwtScaleMap*)x[3].s_class,*(const QMap<double,QPolygonF>*)x[4].s_class);
            (void)x; // noop (for compiler warning)
        }
    }
    static void x_23(Smoke::Stack x) {
        // QwtPlotSpectrogram* QwtPlotSpectrogram()
        x_QwtPlotSpectrogram* xret = new x_QwtPlotSpectrogram((const QString&)QString::null);
        x[0].s_class = (void*)xret;
    }
    void x_24(Smoke::Stack x) {
        // void setDisplayMode(QwtPlotSpectrogram::DisplayMode)
        this->QwtPlotSpectrogram::setDisplayMode((QwtPlotSpectrogram::DisplayMode)x[1].s_enum,(bool)true);
        (void)x; // noop (for compiler warning)
    }
    static void x_25(Smoke::Stack x) {
        x[0].s_enum = (long)QwtPlotSpectrogram::ImageMode;
    }
    static void x_26(Smoke::Stack x) {
        x[0].s_enum = (long)QwtPlotSpectrogram::ContourMode;
    }
    virtual QRectF boundingRect() const {
        Smoke::StackItem x[1];
        if (this->_binding->callMethod(1573, (void*)this, x)) {
            QRectF* xptr = (QRectF*)x[0].s_class;
            QRectF xret(*xptr);
            delete xptr;
            return xret;
        }
        return this->QwtPlotSpectrogram::boundingRect();
    }
    virtual QSize rasterHint(const QRectF& x1) const {
        Smoke::StackItem x[2];
        x[1].s_class = (void*)&x1;
        if (this->_binding->callMethod(1574, (void*)this, x)) {
            QSize* xptr = (QSize*)x[0].s_class;
            QSize xret(*xptr);
            delete xptr;
            return xret;
        }
        return this->QwtPlotSpectrogram::rasterHint(x1);
    }
    virtual QPen contourPen(double x1) const {
        Smoke::StackItem x[2];
        x[1].s_double = x1;
        if (this->_binding->callMethod(1577, (void*)this, x)) {
            QPen* xptr = (QPen*)x[0].s_class;
            QPen xret(*xptr);
            delete xptr;
            return xret;
        }
        return this->QwtPlotSpectrogram::contourPen(x1);
    }
    virtual int rtti() const {
        Smoke::StackItem x[1];
        if (this->_binding->callMethod(1582, (void*)this, x)) return (int)x[0].s_int;
        return this->QwtPlotSpectrogram::rtti();
    }
    virtual void draw(QPainter* x1, const QwtScaleMap& x2, const QwtScaleMap& x3, const QRect& x4) const {
        Smoke::StackItem x[5];
        x[1].s_class = (void*)x1;
        x[2].s_class = (void*)&x2;
        x[3].s_class = (void*)&x3;
        x[4].s_class = (void*)&x4;
        if (this->_binding->callMethod(1583, (void*)this, x)) return;
        this->QwtPlotSpectrogram::draw(x1, x2, x3, x4);
    }
    virtual QImage renderImage(const QwtScaleMap& x1, const QwtScaleMap& x2, const QRectF& x3) const {
        Smoke::StackItem x[4];
        x[1].s_class = (void*)&x1;
        x[2].s_class = (void*)&x2;
        x[3].s_class = (void*)&x3;
        if (this->_binding->callMethod(1584, (void*)this, x)) {
            QImage* xptr = (QImage*)x[0].s_class;
            QImage xret(*xptr);
            delete xptr;
            return xret;
        }
        return this->QwtPlotSpectrogram::renderImage(x1, x2, x3);
    }
    virtual QSize contourRasterSize(const QRectF& x1, const QRect& x2) const {
        Smoke::StackItem x[3];
        x[1].s_class = (void*)&x1;
        x[2].s_class = (void*)&x2;
        if (this->_binding->callMethod(1585, (void*)this, x)) {
            QSize* xptr = (QSize*)x[0].s_class;
            QSize xret(*xptr);
            delete xptr;
            return xret;
        }
        return this->QwtPlotSpectrogram::contourRasterSize(x1, x2);
    }
    virtual QMap<double,QPolygonF> renderContourLines(const QRectF& x1, const QSize& x2) const {
        Smoke::StackItem x[3];
        x[1].s_class = (void*)&x1;
        x[2].s_class = (void*)&x2;
        if (this->_binding->callMethod(1586, (void*)this, x)) {
            QMap<double,QPolygonF>* xptr = (QMap<double,QPolygonF>*)x[0].s_class;
            QMap<double,QPolygonF> xret(*xptr);
            delete xptr;
            return xret;
        }
        return this->QwtPlotSpectrogram::renderContourLines(x1, x2);
    }
    virtual void drawContourLines(QPainter* x1, const QwtScaleMap& x2, const QwtScaleMap& x3, const QMap<double,QPolygonF>& x4) const {
        Smoke::StackItem x[5];
        x[1].s_class = (void*)x1;
        x[2].s_class = (void*)&x2;
        x[3].s_class = (void*)&x3;
        x[4].s_class = (void*)&x4;
        if (this->_binding->callMethod(1587, (void*)this, x)) return;
        this->QwtPlotSpectrogram::drawContourLines(x1, x2, x3, x4);
    }
    virtual void setVisible(bool x1) {
        Smoke::StackItem x[2];
        x[1].s_bool = x1;
        if (this->_binding->callMethod(1325, (void*)this, x)) return;
        this->QwtPlotItem::setVisible(x1);
    }
    virtual void itemChanged() {
        Smoke::StackItem x[1];
        if (this->_binding->callMethod(1332, (void*)this, x)) return;
        this->QwtPlotItem::itemChanged();
    }
    virtual void updateLegend(QwtLegend* x1) const {
        Smoke::StackItem x[2];
        x[1].s_class = (void*)x1;
        if (this->_binding->callMethod(1335, (void*)this, x)) return;
        this->QwtPlotItem::updateLegend(x1);
    }
    virtual void updateScaleDiv(const QwtScaleDiv& x1, const QwtScaleDiv& x2) {
        Smoke::StackItem x[3];
        x[1].s_class = (void*)&x1;
        x[2].s_class = (void*)&x2;
        if (this->_binding->callMethod(1336, (void*)this, x)) return;
        this->QwtPlotItem::updateScaleDiv(x1, x2);
    }
    virtual QWidget* legendItem() const {
        Smoke::StackItem x[1];
        if (this->_binding->callMethod(1337, (void*)this, x)) return (QWidget*)x[0].s_class;
        return this->QwtPlotItem::legendItem();
    }
    static void xenum_operation(Smoke::EnumOperation xop, Smoke::Index xtype, void *&xdata, long &xvalue) {
        switch(xtype) {
        case 265: //QwtPlotSpectrogram::DisplayMode
            switch(xop) {
                case Smoke::EnumNew:
                    xdata = (void*)new QwtPlotSpectrogram::DisplayMode;
                    break;
                case Smoke::EnumDelete:
                    delete (QwtPlotSpectrogram::DisplayMode*)xdata;
                    break;
                case Smoke::EnumFromLong:
                    *(QwtPlotSpectrogram::DisplayMode*)xdata = (QwtPlotSpectrogram::DisplayMode)xvalue;
                    break;
                case Smoke::EnumToLong:
                    xvalue = (long)*(QwtPlotSpectrogram::DisplayMode*)xdata;
                    break;
            }
            break;
        }
    }
    ~x_QwtPlotSpectrogram() { this->_binding->deleted(120, (void*)this); }
};
void xenum_QwtPlotSpectrogram(Smoke::EnumOperation xop, Smoke::Index xtype, void *&xdata, long &xvalue) {
    x_QwtPlotSpectrogram::xenum_operation(xop, xtype, xdata, xvalue);
}
void xcall_QwtPlotSpectrogram(Smoke::Index xi, void *obj, Smoke::Stack args) {
    x_QwtPlotSpectrogram *xself = (x_QwtPlotSpectrogram*)obj;
    switch(xi) {
        case 0: xself->x_0(args);	break;
        case 1: x_QwtPlotSpectrogram::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: x_QwtPlotSpectrogram::x_23(args);	break;
        case 24: xself->x_24(args);	break;
        case 25: x_QwtPlotSpectrogram::x_25(args);	break;
        case 26: x_QwtPlotSpectrogram::x_26(args);	break;
        case 27: delete (QwtPlotSpectrogram*)xself;	break;
    }
}
class x_QwtPlotZoomer : public QwtPlotZoomer, 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<QwtPlotZoomer*>(this))) {
            const QMetaObject* xret = ((const x_QwtPlotZoomer*)this)->QwtPlotZoomer::metaObject();
            x[0].s_class = (void*)xret;
        } else {
            const QMetaObject* xret = ((const x_QwtPlotZoomer*)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<QwtPlotZoomer*>(this))) {
            void* xret = this->QwtPlotZoomer::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 = QwtPlotZoomer::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 = QwtPlotZoomer::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 = QwtPlotZoomer::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 = QwtPlotZoomer::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<QwtPlotZoomer*>(this))) {
            int xret = this->QwtPlotZoomer::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) {
        // QwtPlotZoomer* QwtPlotZoomer(QwtPlotCanvas*, bool)
        x_QwtPlotZoomer* xret = new x_QwtPlotZoomer((QwtPlotCanvas*)x[1].s_class,(bool)x[2].s_bool);
        x[0].s_class = (void*)xret;
    }
    explicit x_QwtPlotZoomer(QwtPlotCanvas* x1, bool x2) : QwtPlotZoomer(x1, x2) {}
    static void x_9(Smoke::Stack x) {
        // QwtPlotZoomer* QwtPlotZoomer(int, int, QwtPlotCanvas*, bool)
        x_QwtPlotZoomer* xret = new x_QwtPlotZoomer((int)x[1].s_int,(int)x[2].s_int,(QwtPlotCanvas*)x[3].s_class,(bool)x[4].s_bool);
        x[0].s_class = (void*)xret;
    }
    explicit x_QwtPlotZoomer(int x1, int x2, QwtPlotCanvas* x3, bool x4) : QwtPlotZoomer(x1, x2, x3, x4) {}
    static void x_10(Smoke::Stack x) {
        // QwtPlotZoomer* QwtPlotZoomer(int, int, int, QwtPicker::DisplayMode, QwtPlotCanvas*, bool)
        x_QwtPlotZoomer* xret = new x_QwtPlotZoomer((int)x[1].s_int,(int)x[2].s_int,(int)x[3].s_int,(QwtPicker::DisplayMode)x[4].s_enum,(QwtPlotCanvas*)x[5].s_class,(bool)x[6].s_bool);
        x[0].s_class = (void*)xret;
    }
    explicit x_QwtPlotZoomer(int x1, int x2, int x3, QwtPicker::DisplayMode x4, QwtPlotCanvas* x5, bool x6) : QwtPlotZoomer(x1, x2, x3, x4, x5, x6) {}
    void x_11(Smoke::Stack x) {
        // virtual void setZoomBase(bool)
        if (dynamic_cast<__internal_SmokeClass*>(static_cast<QwtPlotZoomer*>(this))) {
            this->QwtPlotZoomer::setZoomBase((bool)x[1].s_bool);
            (void)x; // noop (for compiler warning)
        } else {
            this->setZoomBase((bool)x[1].s_bool);
            (void)x; // noop (for compiler warning)
        }
    }
    void x_12(Smoke::Stack x) {
        // virtual void setZoomBase(const QRectF&)
        if (dynamic_cast<__internal_SmokeClass*>(static_cast<QwtPlotZoomer*>(this))) {
            this->QwtPlotZoomer::setZoomBase(*(const QRectF*)x[1].s_class);
            (void)x; // noop (for compiler warning)
        } else {
            this->setZoomBase(*(const QRectF*)x[1].s_class);
            (void)x; // noop (for compiler warning)
        }
    }
    void x_13(Smoke::Stack x) {
        // QRectF zoomBase() const
        QRectF xret = ((const x_QwtPlotZoomer*)this)->QwtPlotZoomer::zoomBase();
        x[0].s_class = (void*)new QRectF(xret);
    }
    void x_14(Smoke::Stack x) {
        // QRectF zoomRect() const
        QRectF xret = ((const x_QwtPlotZoomer*)this)->QwtPlotZoomer::zoomRect();
        x[0].s_class = (void*)new QRectF(xret);
    }
    void x_15(Smoke::Stack x) {
        // virtual void setAxis(int, int)
        if (dynamic_cast<__internal_SmokeClass*>(static_cast<QwtPlotZoomer*>(this))) {
            this->QwtPlotZoomer::setAxis((int)x[1].s_int,(int)x[2].s_int);
            (void)x; // noop (for compiler warning)
        } else {
            this->setAxis((int)x[1].s_int,(int)x[2].s_int);
            (void)x; // noop (for compiler warning)
        }
    }
    void x_16(Smoke::Stack x) {
        // void setMaxStackDepth(int)
        this->QwtPlotZoomer::setMaxStackDepth((int)x[1].s_int);
        (void)x; // noop (for compiler warning)
    }
    void x_17(Smoke::Stack x) {
        // int maxStackDepth() const
        int xret = ((const x_QwtPlotZoomer*)this)->QwtPlotZoomer::maxStackDepth();
        x[0].s_int = xret;
    }
    void x_18(Smoke::Stack x) {
        // const QStack<QRectF>& zoomStack() const
        const QStack<QRectF>& xret = ((const x_QwtPlotZoomer*)this)->QwtPlotZoomer::zoomStack();
        x[0].s_class = (void*)&xret;
    }
    void x_19(Smoke::Stack x) {
        // void setZoomStack(const QStack<QRectF>&, int)
        this->QwtPlotZoomer::setZoomStack(*(const QStack<QRectF>*)x[1].s_class,(int)x[2].s_int);
        (void)x; // noop (for compiler warning)
    }
    void x_20(Smoke::Stack x) {
        // unsigned int zoomRectIndex() const
        unsigned int xret = ((const x_QwtPlotZoomer*)this)->QwtPlotZoomer::zoomRectIndex();
        x[0].s_uint = xret;
    }
    void x_21(Smoke::Stack x) {
        // virtual void setSelectionFlags(int)
        if (dynamic_cast<__internal_SmokeClass*>(static_cast<QwtPlotZoomer*>(this))) {
            this->QwtPlotZoomer::setSelectionFlags((int)x[1].s_int);
            (void)x; // noop (for compiler warning)
        } else {
            this->setSelectionFlags((int)x[1].s_int);
            (void)x; // noop (for compiler warning)
        }
    }
    void x_22(Smoke::Stack x) {
        // void moveBy(double, double)
        this->QwtPlotZoomer::moveBy((double)x[1].s_double,(double)x[2].s_double);
        (void)x; // noop (for compiler warning)
    }
    void x_23(Smoke::Stack x) {
        // virtual void move(double, double)
        if (dynamic_cast<__internal_SmokeClass*>(static_cast<QwtPlotZoomer*>(this))) {
            this->QwtPlotZoomer::move((double)x[1].s_double,(double)x[2].s_double);
            (void)x; // noop (for compiler warning)
        } else {
            this->move((double)x[1].s_double,(double)x[2].s_double);
            (void)x; // noop (for compiler warning)
        }
    }
    void x_24(Smoke::Stack x) {
        // virtual void zoom(const QwtDoubleRect&)
        if (dynamic_cast<__internal_SmokeClass*>(static_cast<QwtPlotZoomer*>(this))) {
            this->QwtPlotZoomer::zoom(*(const QwtDoubleRect*)x[1].s_class);
            (void)x; // noop (for compiler warning)
        } else {
            this->zoom(*(const QwtDoubleRect*)x[1].s_class);
            (void)x; // noop (for compiler warning)
        }
    }
    void x_25(Smoke::Stack x) {
        // virtual void zoom(int)
        if (dynamic_cast<__internal_SmokeClass*>(static_cast<QwtPlotZoomer*>(this))) {
            this->QwtPlotZoomer::zoom((int)x[1].s_int);
            (void)x; // noop (for compiler warning)
        } else {
            this->zoom((int)x[1].s_int);
            (void)x; // noop (for compiler warning)
        }
    }
    void x_26(Smoke::Stack x) {
        // void zoomed(const QwtDoubleRect&)
        this->QwtPlotZoomer::zoomed(*(const QwtDoubleRect*)x[1].s_class);
        (void)x; // noop (for compiler warning)
    }
    void x_27(Smoke::Stack x) {
        // virtual void rescale()
        if (dynamic_cast<__internal_SmokeClass*>(static_cast<QwtPlotZoomer*>(this))) {
            this->QwtPlotZoomer::rescale();
            (void)x; // noop (for compiler warning)
        } else {
            this->rescale();
            (void)x; // noop (for compiler warning)
        }
    }
    void x_28(Smoke::Stack x) {
        // virtual QSizeF minZoomSize() const
        if (dynamic_cast<__internal_SmokeClass*>(static_cast<QwtPlotZoomer*>(this))) {
            QSizeF xret = ((const x_QwtPlotZoomer*)this)->QwtPlotZoomer::minZoomSize();
            x[0].s_class = (void*)new QSizeF(xret);
        } else {
            QSizeF xret = ((const x_QwtPlotZoomer*)this)->minZoomSize();
            x[0].s_class = (void*)new QSizeF(xret);
        }
    }
    void x_29(Smoke::Stack x) {
        // virtual void widgetMouseReleaseEvent(QMouseEvent*)
        if (dynamic_cast<__internal_SmokeClass*>(static_cast<QwtPlotZoomer*>(this))) {
            this->QwtPlotZoomer::widgetMouseReleaseEvent((QMouseEvent*)x[1].s_class);
            (void)x; // noop (for compiler warning)
        } else {
            this->widgetMouseReleaseEvent((QMouseEvent*)x[1].s_class);
            (void)x; // noop (for compiler warning)
        }
    }
    void x_30(Smoke::Stack x) {
        // virtual void widgetKeyPressEvent(QKeyEvent*)
        if (dynamic_cast<__internal_SmokeClass*>(static_cast<QwtPlotZoomer*>(this))) {
            this->QwtPlotZoomer::widgetKeyPressEvent((QKeyEvent*)x[1].s_class);
            (void)x; // noop (for compiler warning)
        } else {
            this->widgetKeyPressEvent((QKeyEvent*)x[1].s_class);
            (void)x; // noop (for compiler warning)
        }
    }
    void x_31(Smoke::Stack x) {
        // virtual void begin()
        if (dynamic_cast<__internal_SmokeClass*>(static_cast<QwtPlotZoomer*>(this))) {
            this->QwtPlotZoomer::begin();
            (void)x; // noop (for compiler warning)
        } else {
            this->begin();
            (void)x; // noop (for compiler warning)
        }
    }
    void x_32(Smoke::Stack x) {
        // virtual bool end(bool)
        if (dynamic_cast<__internal_SmokeClass*>(static_cast<QwtPlotZoomer*>(this))) {
            bool xret = this->QwtPlotZoomer::end((bool)x[1].s_bool);
            x[0].s_bool = xret;
        } else {
            bool xret = this->end((bool)x[1].s_bool);
            x[0].s_bool = xret;
        }
    }
    void x_33(Smoke::Stack x) {
        // virtual bool accept(QPolygon&) const
        if (dynamic_cast<__internal_SmokeClass*>(static_cast<QwtPlotZoomer*>(this))) {
            bool xret = ((const x_QwtPlotZoomer*)this)->QwtPlotZoomer::accept(*(QPolygon*)x[1].s_class);
            x[0].s_bool = xret;
        } else {
            bool xret = ((const x_QwtPlotZoomer*)this)->accept(*(QPolygon*)x[1].s_class);
            x[0].s_bool = xret;
        }
    }
    static void x_34(Smoke::Stack x) {
        // static QString tr(const char*)
        QString xret = QwtPlotZoomer::tr((const char*)x[1].s_class,(const char*)0);
        x[0].s_class = (void*)new QString(xret);
    }
    static void x_35(Smoke::Stack x) {
        // static QString trUtf8(const char*)
        QString xret = QwtPlotZoomer::trUtf8((const char*)x[1].s_class,(const char*)0);
        x[0].s_class = (void*)new QString(xret);
    }
    static void x_36(Smoke::Stack x) {
        // QwtPlotZoomer* QwtPlotZoomer(QwtPlotCanvas*)
        x_QwtPlotZoomer* xret = new x_QwtPlotZoomer((QwtPlotCanvas*)x[1].s_class,(bool)true);
        x[0].s_class = (void*)xret;
    }
    static void x_37(Smoke::Stack x) {
        // QwtPlotZoomer* QwtPlotZoomer(int, int, QwtPlotCanvas*)
        x_QwtPlotZoomer* xret = new x_QwtPlotZoomer((int)x[1].s_int,(int)x[2].s_int,(QwtPlotCanvas*)x[3].s_class,(bool)true);
        x[0].s_class = (void*)xret;
    }
    static void x_38(Smoke::Stack x) {
        // QwtPlotZoomer* QwtPlotZoomer(int, int, int, QwtPicker::DisplayMode, QwtPlotCanvas*)
        x_QwtPlotZoomer* xret = new x_QwtPlotZoomer((int)x[1].s_int,(int)x[2].s_int,(int)x[3].s_int,(QwtPicker::DisplayMode)x[4].s_enum,(QwtPlotCanvas*)x[5].s_class,(bool)true);
        x[0].s_class = (void*)xret;
    }
    void x_39(Smoke::Stack x) {
        // void setZoomBase()
        this->QwtPlotZoomer::setZoomBase((bool)true);
        (void)x; // noop (for compiler warning)
    }
    void x_40(Smoke::Stack x) {
        // void setZoomStack(const QStack<QRectF>&)
        this->QwtPlotZoomer::setZoomStack(*(const QStack<QRectF>*)x[1].s_class,(int)-1);
        (void)x; // noop (for compiler warning)
    }
    void x_41(Smoke::Stack x) {
        // bool end()
        bool xret = this->QwtPlotZoomer::end((bool)true);
        x[0].s_bool = xret;
    }
    static void x_42(Smoke::Stack x) {
        // static const QMetaObject staticMetaObject
        x[0].s_class = (void*)&QwtPlotZoomer::staticMetaObject;
    }
    virtual const QMetaObject* metaObject() const {
        Smoke::StackItem x[1];
        if (this->_binding->callMethod(1593, (void*)this, x)) return (const QMetaObject*)x[0].s_class;
        return this->QwtPlotZoomer::metaObject();
    }
    virtual void* qt_metacast(const char* x1) {
        Smoke::StackItem x[2];
        x[1].s_class = (void*)x1;
        if (this->_binding->callMethod(1594, (void*)this, x)) return (void*)x[0].s_class;
        return this->QwtPlotZoomer::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(1599, (void*)this, x)) return (int)x[0].s_int;
        return this->QwtPlotZoomer::qt_metacall(x1, x2, x3);
    }
    virtual void setZoomBase(bool x1) {
        Smoke::StackItem x[2];
        x[1].s_bool = x1;
        if (this->_binding->callMethod(1603, (void*)this, x)) return;
        this->QwtPlotZoomer::setZoomBase(x1);
    }
    virtual void setZoomBase(const QRectF& x1) {
        Smoke::StackItem x[2];
        x[1].s_class = (void*)&x1;
        if (this->_binding->callMethod(1604, (void*)this, x)) return;
        this->QwtPlotZoomer::setZoomBase(x1);
    }
    virtual void setAxis(int x1, int x2) {
        Smoke::StackItem x[3];
        x[1].s_int = x1;
        x[2].s_int = x2;
        if (this->_binding->callMethod(1607, (void*)this, x)) return;
        this->QwtPlotZoomer::setAxis(x1, x2);
    }
    virtual void setSelectionFlags(int x1) {
        Smoke::StackItem x[2];
        x[1].s_int = x1;
        if (this->_binding->callMethod(1613, (void*)this, x)) return;
        this->QwtPlotZoomer::setSelectionFlags(x1);
    }
    virtual void move(double x1, double x2) {
        Smoke::StackItem x[3];
        x[1].s_double = x1;
        x[2].s_double = x2;
        if (this->_binding->callMethod(1615, (void*)this, x)) return;
        this->QwtPlotZoomer::move(x1, x2);
    }
    virtual void zoom(const QwtDoubleRect& x1) {
        Smoke::StackItem x[2];
        x[1].s_class = (void*)new QRectF(x1);
        if (this->_binding->callMethod(1616, (void*)this, x)) return;
        this->QwtPlotZoomer::zoom(x1);
    }
    virtual void zoom(int x1) {
        Smoke::StackItem x[2];
        x[1].s_int = x1;
        if (this->_binding->callMethod(1617, (void*)this, x)) return;
        this->QwtPlotZoomer::zoom(x1);
    }
    virtual void rescale() {
        Smoke::StackItem x[1];
        if (this->_binding->callMethod(1619, (void*)this, x)) return;
        this->QwtPlotZoomer::rescale();
    }
    virtual QSizeF minZoomSize() const {
        Smoke::StackItem x[1];
        if (this->_binding->callMethod(1620, (void*)this, x)) {
            QSizeF* xptr = (QSizeF*)x[0].s_class;
            QSizeF xret(*xptr);
            delete xptr;
            return xret;
        }
        return this->QwtPlotZoomer::minZoomSize();
    }
    virtual void widgetMouseReleaseEvent(QMouseEvent* x1) {
        Smoke::StackItem x[2];
        x[1].s_class = (void*)x1;
        if (this->_binding->callMethod(1621, (void*)this, x)) return;
        this->QwtPlotZoomer::widgetMouseReleaseEvent(x1);
    }
    virtual void widgetKeyPressEvent(QKeyEvent* x1) {
        Smoke::StackItem x[2];
        x[1].s_class = (void*)x1;
        if (this->_binding->callMethod(1622, (void*)this, x)) return;
        this->QwtPlotZoomer::widgetKeyPressEvent(x1);
    }
    virtual void begin() {
        Smoke::StackItem x[1];
        if (this->_binding->callMethod(1623, (void*)this, x)) return;
        this->QwtPlotZoomer::begin();
    }
    virtual bool end(bool x1) {
        Smoke::StackItem x[2];
        x[1].s_bool = x1;
        if (this->_binding->callMethod(1624, (void*)this, x)) return (bool)x[0].s_bool;
        return this->QwtPlotZoomer::end(x1);
    }
    virtual bool accept(QPolygon& x1) const {
        Smoke::StackItem x[2];
        x[1].s_class = (void*)&x1;
        if (this->_binding->callMethod(1625, (void*)this, x)) return (bool)x[0].s_bool;
        return this->QwtPlotZoomer::accept(x1);
    }
    virtual QwtText trackerText(const QPoint& x1) const {
        Smoke::StackItem x[2];
        x[1].s_class = (void*)&x1;
        if (this->_binding->callMethod(1488, (void*)this, x)) {
            QwtText* xptr = (QwtText*)x[0].s_class;
            QwtText xret(*xptr);
            delete xptr;
            return xret;
        }
        return this->QwtPlotPicker::trackerText(x1);
    }
    virtual QwtText trackerText(const QPointF& x1) const {
        Smoke::StackItem x[2];
        x[1].s_class = (void*)&x1;
        if (this->_binding->callMethod(1489, (void*)this, x)) {
            QwtText* xptr = (QwtText*)x[0].s_class;
            QwtText xret(*xptr);
            delete xptr;
            return xret;
        }
        return this->QwtPlotPicker::trackerText(x1);
    }
    virtual void move(const QPoint& x1) {
        Smoke::StackItem x[2];
        x[1].s_class = (void*)&x1;
        if (this->_binding->callMethod(1490, (void*)this, x)) return;
        this->QwtPlotPicker::move(x1);
    }
    virtual void append(const QPoint& x1) {
        Smoke::StackItem x[2];
        x[1].s_class = (void*)&x1;
        if (this->_binding->callMethod(1491, (void*)this, x)) return;
        this->QwtPlotPicker::append(x1);
    }
    virtual void setRubberBand(QwtPicker::RubberBand x1) {
        Smoke::StackItem x[2];
        x[1].s_enum = x1;
        if (this->_binding->callMethod(952, (void*)this, x)) return;
        this->QwtPicker::setRubberBand(x1);
    }
    virtual void setTrackerMode(QwtPicker::DisplayMode x1) {
        Smoke::StackItem x[2];
        x[1].s_enum = x1;
        if (this->_binding->callMethod(954, (void*)this, x)) return;
        this->QwtPicker::setTrackerMode(x1);
    }
    virtual void setResizeMode(QwtPicker::ResizeMode x1) {
        Smoke::StackItem x[2];
        x[1].s_enum = x1;
        if (this->_binding->callMethod(956, (void*)this, x)) return;
        this->QwtPicker::setResizeMode(x1);
    }
    virtual void setRubberBandPen(const QPen& x1) {
        Smoke::StackItem x[2];
        x[1].s_class = (void*)&x1;
        if (this->_binding->callMethod(958, (void*)this, x)) return;
        this->QwtPicker::setRubberBandPen(x1);
    }
    virtual void setTrackerPen(const QPen& x1) {
        Smoke::StackItem x[2];
        x[1].s_class = (void*)&x1;
        if (this->_binding->callMethod(960, (void*)this, x)) return;
        this->QwtPicker::setTrackerPen(x1);
    }
    virtual void setTrackerFont(const QFont& x1) {
        Smoke::StackItem x[2];
        x[1].s_class = (void*)&x1;
        if (this->_binding->callMethod(962, (void*)this, x)) return;
        this->QwtPicker::setTrackerFont(x1);
    }
    virtual void setEnabled(bool x1) {
        Smoke::StackItem x[2];
        x[1].s_bool = x1;
        if (this->_binding->callMethod(965, (void*)this, x)) return;
        this->QwtPicker::setEnabled(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(967, (void*)this, x)) return (bool)x[0].s_bool;
        return this->QwtPicker::eventFilter(x1, x2);
    }
    virtual QRect pickRect() const {
        Smoke::StackItem x[1];
        if (this->_binding->callMethod(970, (void*)this, x)) {
            QRect* xptr = (QRect*)x[0].s_class;
            QRect xret(*xptr);
            delete xptr;
            return xret;
        }
        return this->QwtPicker::pickRect();
    }
    virtual void drawRubberBand(QPainter* x1) const {
        Smoke::StackItem x[2];
        x[1].s_class = (void*)x1;
        if (this->_binding->callMethod(972, (void*)this, x)) return;
        this->QwtPicker::drawRubberBand(x1);
    }
    virtual void drawTracker(QPainter* x1) const {
        Smoke::StackItem x[2];
        x[1].s_class = (void*)x1;
        if (this->_binding->callMethod(973, (void*)this, x)) return;
        this->QwtPicker::drawTracker(x1);
    }
    virtual void transition(const QEvent* x1) {
        Smoke::StackItem x[2];
        x[1].s_class = (void*)x1;
        if (this->_binding->callMethod(982, (void*)this, x)) return;
        this->QwtPicker::transition(x1);
    }
    virtual void reset() {
        Smoke::StackItem x[1];
        if (this->_binding->callMethod(987, (void*)this, x)) return;
        this->QwtPicker::reset();
    }
    virtual void widgetMousePressEvent(QMouseEvent* x1) {
        Smoke::StackItem x[2];
        x[1].s_class = (void*)x1;
        if (this->_binding->callMethod(988, (void*)this, x)) return;
        this->QwtPicker::widgetMousePressEvent(x1);
    }
    virtual void widgetMouseDoubleClickEvent(QMouseEvent* x1) {
        Smoke::StackItem x[2];
        x[1].s_class = (void*)x1;
        if (this->_binding->callMethod(990, (void*)this, x)) return;
        this->QwtPicker::widgetMouseDoubleClickEvent(x1);
    }
    virtual void widgetMouseMoveEvent(QMouseEvent* x1) {
        Smoke::StackItem x[2];
        x[1].s_class = (void*)x1;
        if (this->_binding->callMethod(991, (void*)this, x)) return;
        this->QwtPicker::widgetMouseMoveEvent(x1);
    }
    virtual void widgetWheelEvent(QWheelEvent* x1) {
        Smoke::StackItem x[2];
        x[1].s_class = (void*)x1;
        if (this->_binding->callMethod(992, (void*)this, x)) return;
        this->QwtPicker::widgetWheelEvent(x1);
    }
    virtual void widgetKeyReleaseEvent(QKeyEvent* x1) {
        Smoke::StackItem x[2];
        x[1].s_class = (void*)x1;
        if (this->_binding->callMethod(994, (void*)this, x)) return;
        this->QwtPicker::widgetKeyReleaseEvent(x1);
    }
    virtual void widgetLeaveEvent(QEvent* x1) {
        Smoke::StackItem x[2];
        x[1].s_class = (void*)x1;
        if (this->_binding->callMethod(995, (void*)this, x)) return;
        this->QwtPicker::widgetLeaveEvent(x1);
    }
    virtual void stretchSelection(const QSize& x1, const QSize& x2) {
        Smoke::StackItem x[3];
        x[1].s_class = (void*)&x1;
        x[2].s_class = (void*)&x2;
        if (this->_binding->callMethod(996, (void*)this, x)) return;
        this->QwtPicker::stretchSelection(x1, x2);
    }
    virtual QwtPickerMachine* stateMachine(int x1) const {
        Smoke::StackItem x[2];
        x[1].s_int = x1;
        if (this->_binding->callMethod(997, (void*)this, x)) return (QwtPickerMachine*)x[0].s_class;
        return this->QwtPicker::stateMachine(x1);
    }
    virtual void updateDisplay() {
        Smoke::StackItem x[1];
        if (this->_binding->callMethod(998, (void*)this, x)) return;
        this->QwtPicker::updateDisplay();
    }
    virtual bool event(QEvent* x1) {
        Smoke::StackItem x[2];
        x[1].s_class = (void*)x1;
        if (this->_binding->callMethod(32, (void*)this, x)) return (bool)x[0].s_bool;
        return this->QObject::event(x1);
    }
    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 bool mouseMatch(const QwtEventPattern::MousePattern& x1, const QMouseEvent* x2) const {
        Smoke::StackItem x[3];
        x[1].s_class = (void*)&x1;
        x[2].s_class = (void*)x2;
        if (this->_binding->callMethod(605, (void*)this, x)) return (bool)x[0].s_bool;
        return this->QwtEventPattern::mouseMatch(x1, x2);
    }
    virtual bool keyMatch(const QwtEventPattern::KeyPattern& x1, const QKeyEvent* x2) const {
        Smoke::StackItem x[3];
        x[1].s_class = (void*)&x1;
        x[2].s_class = (void*)x2;
        if (this->_binding->callMethod(606, (void*)this, x)) return (bool)x[0].s_bool;
        return this->QwtEventPattern::keyMatch(x1, x2);
    }
    ~x_QwtPlotZoomer() { this->_binding->deleted(121, (void*)this); }
};
void xcall_QwtPlotZoomer(Smoke::Index xi, void *obj, Smoke::Stack args) {
    x_QwtPlotZoomer *xself = (x_QwtPlotZoomer*)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_QwtPlotZoomer::x_3(args);	break;
        case 4: x_QwtPlotZoomer::x_4(args);	break;
        case 5: x_QwtPlotZoomer::x_5(args);	break;
        case 6: x_QwtPlotZoomer::x_6(args);	break;
        case 7: xself->x_7(args);	break;
        case 8: x_QwtPlotZoomer::x_8(args);	break;
        case 9: x_QwtPlotZoomer::x_9(args);	break;
        case 10: x_QwtPlotZoomer::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: x_QwtPlotZoomer::x_34(args);	break;
        case 35: x_QwtPlotZoomer::x_35(args);	break;
        case 36: x_QwtPlotZoomer::x_36(args);	break;
        case 37: x_QwtPlotZoomer::x_37(args);	break;
        case 38: x_QwtPlotZoomer::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: x_QwtPlotZoomer::x_42(args);	break;
        case 43: delete (QwtPlotZoomer*)xself;	break;
    }
}
class x_QwtPolygonFData : public QwtPolygonFData, 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) {
        // QwtPolygonFData* QwtPolygonFData(const QPolygonF&)
        x_QwtPolygonFData* xret = new x_QwtPolygonFData(*(const QPolygonF*)x[1].s_class);
        x[0].s_class = (void*)xret;
    }
    explicit x_QwtPolygonFData(const QPolygonF& x1) : QwtPolygonFData(x1) {}
    void x_2(Smoke::Stack x) {
        // QwtPolygonFData& operator=(const QwtPolygonFData&)
        QwtPolygonFData& xret = this->QwtPolygonFData::operator=(*(const QwtPolygonFData*)x[1].s_class);
        x[0].s_class = (void*)&xret;
    }
    void x_3(Smoke::Stack x) {
        // virtual QwtData* copy() const
        if (dynamic_cast<__internal_SmokeClass*>(static_cast<QwtPolygonFData*>(this))) {
            QwtData* xret = ((const x_QwtPolygonFData*)this)->QwtPolygonFData::copy();
            x[0].s_class = (void*)xret;
        } else {
            QwtData* xret = ((const x_QwtPolygonFData*)this)->copy();
            x[0].s_class = (void*)xret;
        }
    }
    void x_4(Smoke::Stack x) {
        // virtual size_t size() const
        if (dynamic_cast<__internal_SmokeClass*>(static_cast<QwtPolygonFData*>(this))) {
            size_t xret = ((const x_QwtPolygonFData*)this)->QwtPolygonFData::size();
            x[0].s_ulong = xret;
        } else {
            size_t xret = ((const x_QwtPolygonFData*)this)->size();
            x[0].s_ulong = xret;
        }
    }
    void x_5(Smoke::Stack x) {
        // virtual double x(size_t) const
        if (dynamic_cast<__internal_SmokeClass*>(static_cast<QwtPolygonFData*>(this))) {
            double xret = ((const x_QwtPolygonFData*)this)->QwtPolygonFData::x((size_t)x[1].s_ulong);
            x[0].s_double = xret;
        } else {
            double xret = ((const x_QwtPolygonFData*)this)->x((size_t)x[1].s_ulong);
            x[0].s_double = xret;
        }
    }
    void x_6(Smoke::Stack x) {
        // virtual double y(size_t) const
        if (dynamic_cast<__internal_SmokeClass*>(static_cast<QwtPolygonFData*>(this))) {
            double xret = ((const x_QwtPolygonFData*)this)->QwtPolygonFData::y((size_t)x[1].s_ulong);
            x[0].s_double = xret;
        } else {
            double xret = ((const x_QwtPolygonFData*)this)->y((size_t)x[1].s_ulong);
            x[0].s_double = xret;
        }
    }
    void x_7(Smoke::Stack x) {
        // const QPolygonF& data() const
        const QPolygonF& xret = ((const x_QwtPolygonFData*)this)->QwtPolygonFData::data();
        x[0].s_class = (void*)&xret;
    }
    static void x_8(Smoke::Stack x) {
        // QwtPolygonFData* QwtPolygonFData(const QwtPolygonFData&)
        x_QwtPolygonFData* xret = new x_QwtPolygonFData(*(const QwtPolygonFData*)x[1].s_class);
        x[0].s_class = (void*)xret;
    }
    explicit x_QwtPolygonFData(const QwtPolygonFData& x1) : QwtPolygonFData(x1) {}
    virtual QwtData* copy() const {
        Smoke::StackItem x[1];
        if (this->_binding->callMethod(1638, (void*)this, x)) return (QwtData*)x[0].s_class;
        return this->QwtPolygonFData::copy();
    }
    virtual size_t size() const {
        Smoke::StackItem x[1];
        if (this->_binding->callMethod(1639, (void*)this, x)) return (size_t)x[0].s_ulong;
        return this->QwtPolygonFData::size();
    }
    virtual double x(size_t x1) const {
        Smoke::StackItem x[2];
        x[1].s_ulong = x1;
        if (this->_binding->callMethod(1640, (void*)this, x)) return (double)x[0].s_double;
        return this->QwtPolygonFData::x(x1);
    }
    virtual double y(size_t x1) const {
        Smoke::StackItem x[2];
        x[1].s_ulong = x1;
        if (this->_binding->callMethod(1641, (void*)this, x)) return (double)x[0].s_double;
        return this->QwtPolygonFData::y(x1);
    }
    virtual QRectF boundingRect() const {
        Smoke::StackItem x[1];
        if (this->_binding->callMethod(387, (void*)this, x)) {
            QRectF* xptr = (QRectF*)x[0].s_class;
            QRectF xret(*xptr);
            delete xptr;
            return xret;
        }
        return this->QwtData::boundingRect();
    }
    ~x_QwtPolygonFData() { this->_binding->deleted(122, (void*)this); }
};
void xcall_QwtPolygonFData(Smoke::Index xi, void *obj, Smoke::Stack args) {
    x_QwtPolygonFData *xself = (x_QwtPolygonFData*)obj;
    switch(xi) {
        case 0: xself->x_0(args);	break;
        case 1: x_QwtPolygonFData::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_QwtPolygonFData::x_8(args);	break;
        case 9: delete (QwtPolygonFData*)xself;	break;
    }
}
class x_QwtRasterData : public QwtRasterData, 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) {
        // QwtRasterData* QwtRasterData()
        x_QwtRasterData* xret = new x_QwtRasterData();
        x[0].s_class = (void*)xret;
    }
    explicit x_QwtRasterData() : QwtRasterData() {}
    static void x_2(Smoke::Stack x) {
        // QwtRasterData* QwtRasterData(const QRectF&)
        x_QwtRasterData* xret = new x_QwtRasterData(*(const QRectF*)x[1].s_class);
        x[0].s_class = (void*)xret;
    }
    explicit x_QwtRasterData(const QRectF& x1) : QwtRasterData(x1) {}
    void x_3(Smoke::Stack x) {
        // virtual QwtRasterData* copy() const = 0
        QwtRasterData* xret = ((const x_QwtRasterData*)this)->copy();
        x[0].s_class = (void*)xret;
    }
    void x_4(Smoke::Stack x) {
        // virtual void setBoundingRect(const QRectF&)
        if (dynamic_cast<__internal_SmokeClass*>(static_cast<QwtRasterData*>(this))) {
            this->QwtRasterData::setBoundingRect(*(const QRectF*)x[1].s_class);
            (void)x; // noop (for compiler warning)
        } else {
            this->setBoundingRect(*(const QRectF*)x[1].s_class);
            (void)x; // noop (for compiler warning)
        }
    }
    void x_5(Smoke::Stack x) {
        // QRectF boundingRect() const
        QRectF xret = ((const x_QwtRasterData*)this)->QwtRasterData::boundingRect();
        x[0].s_class = (void*)new QRectF(xret);
    }
    void x_6(Smoke::Stack x) {
        // virtual QSize rasterHint(const QRectF&) const
        if (dynamic_cast<__internal_SmokeClass*>(static_cast<QwtRasterData*>(this))) {
            QSize xret = ((const x_QwtRasterData*)this)->QwtRasterData::rasterHint(*(const QRectF*)x[1].s_class);
            x[0].s_class = (void*)new QSize(xret);
        } else {
            QSize xret = ((const x_QwtRasterData*)this)->rasterHint(*(const QRectF*)x[1].s_class);
            x[0].s_class = (void*)new QSize(xret);
        }
    }
    void x_7(Smoke::Stack x) {
        // virtual void initRaster(const QRectF&, const QSize&)
        if (dynamic_cast<__internal_SmokeClass*>(static_cast<QwtRasterData*>(this))) {
            this->QwtRasterData::initRaster(*(const QRectF*)x[1].s_class,*(const QSize*)x[2].s_class);
            (void)x; // noop (for compiler warning)
        } else {
            this->initRaster(*(const QRectF*)x[1].s_class,*(const QSize*)x[2].s_class);
            (void)x; // noop (for compiler warning)
        }
    }
    void x_8(Smoke::Stack x) {
        // virtual void discardRaster()
        if (dynamic_cast<__internal_SmokeClass*>(static_cast<QwtRasterData*>(this))) {
            this->QwtRasterData::discardRaster();
            (void)x; // noop (for compiler warning)
        } else {
            this->discardRaster();
            (void)x; // noop (for compiler warning)
        }
    }
    void x_9(Smoke::Stack x) {
        // virtual double value(double, double) const = 0
        double xret = ((const x_QwtRasterData*)this)->value((double)x[1].s_double,(double)x[2].s_double);
        x[0].s_double = xret;
    }
    void x_10(Smoke::Stack x) {
        // virtual QwtDoubleInterval range() const = 0
        QwtDoubleInterval xret = ((const x_QwtRasterData*)this)->range();
        x[0].s_class = (void*)new QwtDoubleInterval(xret);
    }
    void x_11(Smoke::Stack x) {
        // virtual QMap<double,QPolygonF> contourLines(const QRectF&, const QSize&, const QList<double>&, int) const
        if (dynamic_cast<__internal_SmokeClass*>(static_cast<QwtRasterData*>(this))) {
            QMap<double,QPolygonF> xret = ((const x_QwtRasterData*)this)->QwtRasterData::contourLines(*(const QRectF*)x[1].s_class,*(const QSize*)x[2].s_class,*(const QList<double>*)x[3].s_class,(int)x[4].s_int);
            x[0].s_class = (void*)new QMap<double,QPolygonF>(xret);
        } else {
            QMap<double,QPolygonF> xret = ((const x_QwtRasterData*)this)->contourLines(*(const QRectF*)x[1].s_class,*(const QSize*)x[2].s_class,*(const QList<double>*)x[3].s_class,(int)x[4].s_int);
            x[0].s_class = (void*)new QMap<double,QPolygonF>(xret);
        }
    }
    static void x_12(Smoke::Stack x) {
        // QwtRasterData* QwtRasterData(const QwtRasterData&)
        x_QwtRasterData* xret = new x_QwtRasterData(*(const QwtRasterData*)x[1].s_class);
        x[0].s_class = (void*)xret;
    }
    explicit x_QwtRasterData(const QwtRasterData& x1) : QwtRasterData(x1) {}
    static void x_13(Smoke::Stack x) {
        x[0].s_enum = (long)QwtRasterData::IgnoreAllVerticesOnLevel;
    }
    static void x_14(Smoke::Stack x) {
        x[0].s_enum = (long)QwtRasterData::IgnoreOutOfRange;
    }
    virtual QwtRasterData* copy() const {
        Smoke::StackItem x[1];
        this->_binding->callMethod(1647, (void*)this, x, true /*pure virtual*/);
        return (QwtRasterData*)x[0].s_class;
    }
    virtual void setBoundingRect(const QRectF& x1) {
        Smoke::StackItem x[2];
        x[1].s_class = (void*)&x1;
        if (this->_binding->callMethod(1648, (void*)this, x)) return;
        this->QwtRasterData::setBoundingRect(x1);
    }
    virtual QSize rasterHint(const QRectF& x1) const {
        Smoke::StackItem x[2];
        x[1].s_class = (void*)&x1;
        if (this->_binding->callMethod(1650, (void*)this, x)) {
            QSize* xptr = (QSize*)x[0].s_class;
            QSize xret(*xptr);
            delete xptr;
            return xret;
        }
        return this->QwtRasterData::rasterHint(x1);
    }
    virtual void initRaster(const QRectF& x1, const QSize& x2) {
        Smoke::StackItem x[3];
        x[1].s_class = (void*)&x1;
        x[2].s_class = (void*)&x2;
        if (this->_binding->callMethod(1651, (void*)this, x)) return;
        this->QwtRasterData::initRaster(x1, x2);
    }
    virtual void discardRaster() {
        Smoke::StackItem x[1];
        if (this->_binding->callMethod(1652, (void*)this, x)) return;
        this->QwtRasterData::discardRaster();
    }
    virtual double value(double x1, double x2) const {
        Smoke::StackItem x[3];
        x[1].s_double = x1;
        x[2].s_double = x2;
        this->_binding->callMethod(1653, (void*)this, x, true /*pure virtual*/);
        return (double)x[0].s_double;
    }
    virtual QwtDoubleInterval range() const {
        Smoke::StackItem x[1];
        this->_binding->callMethod(1654, (void*)this, x, true /*pure virtual*/);
        QwtDoubleInterval* xptr = (QwtDoubleInterval*)x[0].s_class;
        QwtDoubleInterval xret(*xptr);
        delete xptr;
        return xret;
    }
    virtual QMap<double,QPolygonF> contourLines(const QRectF& x1, const QSize& x2, const QList<double>& x3, int x4) const {
        Smoke::StackItem x[5];
        x[1].s_class = (void*)&x1;
        x[2].s_class = (void*)&x2;
        x[3].s_class = (void*)&x3;
        x[4].s_int = x4;
        if (this->_binding->callMethod(1655, (void*)this, x)) {
            QMap<double,QPolygonF>* xptr = (QMap<double,QPolygonF>*)x[0].s_class;
            QMap<double,QPolygonF> xret(*xptr);
            delete xptr;
            return xret;
        }
        return this->QwtRasterData::contourLines(x1, x2, x3, x4);
    }
    static void xenum_operation(Smoke::EnumOperation xop, Smoke::Index xtype, void *&xdata, long &xvalue) {
        switch(xtype) {
        case 271: //QwtRasterData::ConrecAttribute
            switch(xop) {
                case Smoke::EnumNew:
                    xdata = (void*)new QwtRasterData::ConrecAttribute;
                    break;
                case Smoke::EnumDelete:
                    delete (QwtRasterData::ConrecAttribute*)xdata;
                    break;
                case Smoke::EnumFromLong:
                    *(QwtRasterData::ConrecAttribute*)xdata = (QwtRasterData::ConrecAttribute)xvalue;
                    break;
                case Smoke::EnumToLong:
                    xvalue = (long)*(QwtRasterData::ConrecAttribute*)xdata;
                    break;
            }
            break;
        }
    }
    ~x_QwtRasterData() { this->_binding->deleted(123, (void*)this); }
};
void xenum_QwtRasterData(Smoke::EnumOperation xop, Smoke::Index xtype, void *&xdata, long &xvalue) {
    x_QwtRasterData::xenum_operation(xop, xtype, xdata, xvalue);
}
void xcall_QwtRasterData(Smoke::Index xi, void *obj, Smoke::Stack args) {
    x_QwtRasterData *xself = (x_QwtRasterData*)obj;
    switch(xi) {
        case 0: xself->x_0(args);	break;
        case 1: x_QwtRasterData::x_1(args);	break;
        case 2: x_QwtRasterData::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: x_QwtRasterData::x_12(args);	break;
        case 13: x_QwtRasterData::x_13(args);	break;
        case 14: x_QwtRasterData::x_14(args);	break;
        case 15: delete (QwtRasterData*)xself;	break;
    }
}
class x_QwtRichTextEngine : public QwtRichTextEngine, 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) {
        // QwtRichTextEngine* QwtRichTextEngine()
        x_QwtRichTextEngine* xret = new x_QwtRichTextEngine();
        x[0].s_class = (void*)xret;
    }
    explicit x_QwtRichTextEngine() : QwtRichTextEngine() {}
    void x_2(Smoke::Stack x) {
        // virtual int heightForWidth(const QFont&, int, const QString&, int) const
        if (dynamic_cast<__internal_SmokeClass*>(static_cast<QwtRichTextEngine*>(this))) {
            int xret = ((const x_QwtRichTextEngine*)this)->QwtRichTextEngine::heightForWidth(*(const QFont*)x[1].s_class,(int)x[2].s_int,*(const QString*)x[3].s_class,(int)x[4].s_int);
            x[0].s_int = xret;
        } else {
            int xret = ((const x_QwtRichTextEngine*)this)->heightForWidth(*(const QFont*)x[1].s_class,(int)x[2].s_int,*(const QString*)x[3].s_class,(int)x[4].s_int);
            x[0].s_int = xret;
        }
    }
    void x_3(Smoke::Stack x) {
        // virtual QSize textSize(const QFont&, int, const QString&) const
        if (dynamic_cast<__internal_SmokeClass*>(static_cast<QwtRichTextEngine*>(this))) {
            QSize xret = ((const x_QwtRichTextEngine*)this)->QwtRichTextEngine::textSize(*(const QFont*)x[1].s_class,(int)x[2].s_int,*(const QString*)x[3].s_class);
            x[0].s_class = (void*)new QSize(xret);
        } else {
            QSize xret = ((const x_QwtRichTextEngine*)this)->textSize(*(const QFont*)x[1].s_class,(int)x[2].s_int,*(const QString*)x[3].s_class);
            x[0].s_class = (void*)new QSize(xret);
        }
    }
    void x_4(Smoke::Stack x) {
        // virtual void draw(QPainter*, const QRect&, int, const QString&) const
        if (dynamic_cast<__internal_SmokeClass*>(static_cast<QwtRichTextEngine*>(this))) {
            ((const x_QwtRichTextEngine*)this)->QwtRichTextEngine::draw((QPainter*)x[1].s_class,*(const QRect*)x[2].s_class,(int)x[3].s_int,*(const QString*)x[4].s_class);
            (void)x; // noop (for compiler warning)
        } else {
            ((const x_QwtRichTextEngine*)this)->draw((QPainter*)x[1].s_class,*(const QRect*)x[2].s_class,(int)x[3].s_int,*(const QString*)x[4].s_class);
            (void)x; // noop (for compiler warning)
        }
    }
    void x_5(Smoke::Stack x) {
        // virtual bool mightRender(const QString&) const
        if (dynamic_cast<__internal_SmokeClass*>(static_cast<QwtRichTextEngine*>(this))) {
            bool xret = ((const x_QwtRichTextEngine*)this)->QwtRichTextEngine::mightRender(*(const QString*)x[1].s_class);
            x[0].s_bool = xret;
        } else {
            bool xret = ((const x_QwtRichTextEngine*)this)->mightRender(*(const QString*)x[1].s_class);
            x[0].s_bool = xret;
        }
    }
    void x_6(Smoke::Stack x) {
        // virtual void textMargins(const QFont&, const QString&, int&, int&, int&, int&) const
        if (dynamic_cast<__internal_SmokeClass*>(static_cast<QwtRichTextEngine*>(this))) {
            ((const x_QwtRichTextEngine*)this)->QwtRichTextEngine::textMargins(*(const QFont*)x[1].s_class,*(const QString*)x[2].s_class,*(int*)x[3].s_class,*(int*)x[4].s_class,*(int*)x[5].s_class,*(int*)x[6].s_class);
            (void)x; // noop (for compiler warning)
        } else {
            ((const x_QwtRichTextEngine*)this)->textMargins(*(const QFont*)x[1].s_class,*(const QString*)x[2].s_class,*(int*)x[3].s_class,*(int*)x[4].s_class,*(int*)x[5].s_class,*(int*)x[6].s_class);
            (void)x; // noop (for compiler warning)
        }
    }
    static void x_7(Smoke::Stack x) {
        // QwtRichTextEngine* QwtRichTextEngine(const QwtRichTextEngine&)
        x_QwtRichTextEngine* xret = new x_QwtRichTextEngine(*(const QwtRichTextEngine*)x[1].s_class);
        x[0].s_class = (void*)xret;
    }
    explicit x_QwtRichTextEngine(const QwtRichTextEngine& x1) : QwtRichTextEngine(x1) {}
    virtual int heightForWidth(const QFont& x1, int x2, const QString& x3, int x4) const {
        Smoke::StackItem x[5];
        x[1].s_class = (void*)&x1;
        x[2].s_int = x2;
        x[3].s_class = (void*)&x3;
        x[4].s_int = x4;
        if (this->_binding->callMethod(1661, (void*)this, x)) return (int)x[0].s_int;
        return this->QwtRichTextEngine::heightForWidth(x1, x2, x3, x4);
    }
    virtual QSize textSize(const QFont& x1, int x2, const QString& x3) const {
        Smoke::StackItem x[4];
        x[1].s_class = (void*)&x1;
        x[2].s_int = x2;
        x[3].s_class = (void*)&x3;
        if (this->_binding->callMethod(1662, (void*)this, x)) {
            QSize* xptr = (QSize*)x[0].s_class;
            QSize xret(*xptr);
            delete xptr;
            return xret;
        }
        return this->QwtRichTextEngine::textSize(x1, x2, x3);
    }
    virtual void draw(QPainter* x1, const QRect& x2, int x3, const QString& x4) const {
        Smoke::StackItem x[5];
        x[1].s_class = (void*)x1;
        x[2].s_class = (void*)&x2;
        x[3].s_int = x3;
        x[4].s_class = (void*)&x4;
        if (this->_binding->callMethod(1663, (void*)this, x)) return;
        this->QwtRichTextEngine::draw(x1, x2, x3, x4);
    }
    virtual bool mightRender(const QString& x1) const {
        Smoke::StackItem x[2];
        x[1].s_class = (void*)&x1;
        if (this->_binding->callMethod(1664, (void*)this, x)) return (bool)x[0].s_bool;
        return this->QwtRichTextEngine::mightRender(x1);
    }
    virtual void textMargins(const QFont& x1, const QString& x2, int& x3, int& x4, int& x5, int& x6) const {
        Smoke::StackItem x[7];
        x[1].s_class = (void*)&x1;
        x[2].s_class = (void*)&x2;
        x[3].s_class = (void*)&x3;
        x[4].s_class = (void*)&x4;
        x[5].s_class = (void*)&x5;
        x[6].s_class = (void*)&x6;
        if (this->_binding->callMethod(1665, (void*)this, x)) return;
        this->QwtRichTextEngine::textMargins(x1, x2, x3, x4, x5, x6);
    }
    ~x_QwtRichTextEngine() { this->_binding->deleted(124, (void*)this); }
};
void xcall_QwtRichTextEngine(Smoke::Index xi, void *obj, Smoke::Stack args) {
    x_QwtRichTextEngine *xself = (x_QwtRichTextEngine*)obj;
    switch(xi) {
        case 0: xself->x_0(args);	break;
        case 1: x_QwtRichTextEngine::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: x_QwtRichTextEngine::x_7(args);	break;
        case 8: delete (QwtRichTextEngine*)xself;	break;
    }
}

}
