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

#include <smoke.h>
#include <khtml_smoke.h>

class __internal_SmokeClass {};

namespace __smokekhtml {

class x_DOM__AbstractView : public DOM::AbstractView, 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) {
        // DOM::AbstractView* AbstractView()
        x_DOM__AbstractView* xret = new x_DOM__AbstractView();
        x[0].s_class = (void*)xret;
    }
    explicit x_DOM__AbstractView() : AbstractView() {}
    static void x_2(Smoke::Stack x) {
        // DOM::AbstractView* AbstractView(const DOM::AbstractView&)
        x_DOM__AbstractView* xret = new x_DOM__AbstractView(*(const DOM::AbstractView*)x[1].s_class);
        x[0].s_class = (void*)xret;
    }
    explicit x_DOM__AbstractView(const DOM::AbstractView& x1) : AbstractView(x1) {}
    void x_3(Smoke::Stack x) {
        // DOM::AbstractView& operator=(const DOM::AbstractView&)
        DOM::AbstractView& xret = this->DOM::AbstractView::operator=(*(const DOM::AbstractView*)x[1].s_class);
        x[0].s_class = (void*)&xret;
    }
    void x_4(Smoke::Stack x) {
        // DOM::Document document() const
        DOM::Document xret = ((const x_DOM__AbstractView*)this)->DOM::AbstractView::document();
        x[0].s_class = (void*)new DOM::Document(xret);
    }
    void x_5(Smoke::Stack x) {
        // DOM::CSSStyleDeclaration getComputedStyle(const DOM::Element&, const DOM::DOMString&)
        DOM::CSSStyleDeclaration xret = this->DOM::AbstractView::getComputedStyle(*(const DOM::Element*)x[1].s_class,*(const DOM::DOMString*)x[2].s_class);
        x[0].s_class = (void*)new DOM::CSSStyleDeclaration(xret);
    }
    void x_6(Smoke::Stack x) {
        // bool isNull() const
        bool xret = ((const x_DOM__AbstractView*)this)->DOM::AbstractView::isNull();
        x[0].s_bool = xret;
    }
    ~x_DOM__AbstractView() { this->_binding->deleted(2, (void*)this); }
};
void xcall_DOM__AbstractView(Smoke::Index xi, void *obj, Smoke::Stack args) {
    x_DOM__AbstractView *xself = (x_DOM__AbstractView*)obj;
    switch(xi) {
        case 0: xself->x_0(args);	break;
        case 1: x_DOM__AbstractView::x_1(args);	break;
        case 2: x_DOM__AbstractView::x_2(args);	break;
        case 3: xself->x_3(args);	break;
        case 4: xself->x_4(args);	break;
        case 5: xself->x_5(args);	break;
        case 6: xself->x_6(args);	break;
        case 7: delete (DOM::AbstractView*)xself;	break;
    }
}
class x_DOM__Attr : public DOM::Attr, 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) {
        // DOM::Attr* Attr()
        x_DOM__Attr* xret = new x_DOM__Attr();
        x[0].s_class = (void*)xret;
    }
    explicit x_DOM__Attr() : Attr() {}
    static void x_2(Smoke::Stack x) {
        // DOM::Attr* Attr(const DOM::Node&)
        x_DOM__Attr* xret = new x_DOM__Attr(*(const DOM::Node*)x[1].s_class);
        x[0].s_class = (void*)xret;
    }
    explicit x_DOM__Attr(const DOM::Node& x1) : Attr(x1) {}
    static void x_3(Smoke::Stack x) {
        // DOM::Attr* Attr(const DOM::Attr&)
        x_DOM__Attr* xret = new x_DOM__Attr(*(const DOM::Attr*)x[1].s_class);
        x[0].s_class = (void*)xret;
    }
    explicit x_DOM__Attr(const DOM::Attr& x1) : Attr(x1) {}
    void x_4(Smoke::Stack x) {
        // DOM::Attr& operator=(const DOM::Node&)
        DOM::Attr& xret = this->DOM::Attr::operator=(*(const DOM::Node*)x[1].s_class);
        x[0].s_class = (void*)&xret;
    }
    void x_5(Smoke::Stack x) {
        // DOM::Attr& operator=(const DOM::Attr&)
        DOM::Attr& xret = this->DOM::Attr::operator=(*(const DOM::Attr*)x[1].s_class);
        x[0].s_class = (void*)&xret;
    }
    void x_6(Smoke::Stack x) {
        // DOM::DOMString name() const
        DOM::DOMString xret = ((const x_DOM__Attr*)this)->DOM::Attr::name();
        x[0].s_class = (void*)new DOM::DOMString(xret);
    }
    void x_7(Smoke::Stack x) {
        // bool specified() const
        bool xret = ((const x_DOM__Attr*)this)->DOM::Attr::specified();
        x[0].s_bool = xret;
    }
    void x_8(Smoke::Stack x) {
        // DOM::DOMString value() const
        DOM::DOMString xret = ((const x_DOM__Attr*)this)->DOM::Attr::value();
        x[0].s_class = (void*)new DOM::DOMString(xret);
    }
    void x_9(Smoke::Stack x) {
        // void setValue(const DOM::DOMString&)
        this->DOM::Attr::setValue(*(const DOM::DOMString*)x[1].s_class);
        (void)x; // noop (for compiler warning)
    }
    void x_10(Smoke::Stack x) {
        // DOM::Element ownerElement() const
        DOM::Element xret = ((const x_DOM__Attr*)this)->DOM::Attr::ownerElement();
        x[0].s_class = (void*)new DOM::Element(xret);
    }
    ~x_DOM__Attr() { this->_binding->deleted(3, (void*)this); }
};
void xcall_DOM__Attr(Smoke::Index xi, void *obj, Smoke::Stack args) {
    x_DOM__Attr *xself = (x_DOM__Attr*)obj;
    switch(xi) {
        case 0: xself->x_0(args);	break;
        case 1: x_DOM__Attr::x_1(args);	break;
        case 2: x_DOM__Attr::x_2(args);	break;
        case 3: x_DOM__Attr::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: delete (DOM::Attr*)xself;	break;
    }
}
class x_DOM__CDATASection : public DOM::CDATASection, 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) {
        // DOM::CDATASection* CDATASection()
        x_DOM__CDATASection* xret = new x_DOM__CDATASection();
        x[0].s_class = (void*)xret;
    }
    explicit x_DOM__CDATASection() : CDATASection() {}
    static void x_2(Smoke::Stack x) {
        // DOM::CDATASection* CDATASection(const DOM::CDATASection&)
        x_DOM__CDATASection* xret = new x_DOM__CDATASection(*(const DOM::CDATASection*)x[1].s_class);
        x[0].s_class = (void*)xret;
    }
    explicit x_DOM__CDATASection(const DOM::CDATASection& x1) : CDATASection(x1) {}
    static void x_3(Smoke::Stack x) {
        // DOM::CDATASection* CDATASection(const DOM::Node&)
        x_DOM__CDATASection* xret = new x_DOM__CDATASection(*(const DOM::Node*)x[1].s_class);
        x[0].s_class = (void*)xret;
    }
    explicit x_DOM__CDATASection(const DOM::Node& x1) : CDATASection(x1) {}
    void x_4(Smoke::Stack x) {
        // DOM::CDATASection& operator=(const DOM::Node&)
        DOM::CDATASection& xret = this->DOM::CDATASection::operator=(*(const DOM::Node*)x[1].s_class);
        x[0].s_class = (void*)&xret;
    }
    void x_5(Smoke::Stack x) {
        // DOM::CDATASection& operator=(const DOM::CDATASection&)
        DOM::CDATASection& xret = this->DOM::CDATASection::operator=(*(const DOM::CDATASection*)x[1].s_class);
        x[0].s_class = (void*)&xret;
    }
    ~x_DOM__CDATASection() { this->_binding->deleted(4, (void*)this); }
};
void xcall_DOM__CDATASection(Smoke::Index xi, void *obj, Smoke::Stack args) {
    x_DOM__CDATASection *xself = (x_DOM__CDATASection*)obj;
    switch(xi) {
        case 0: xself->x_0(args);	break;
        case 1: x_DOM__CDATASection::x_1(args);	break;
        case 2: x_DOM__CDATASection::x_2(args);	break;
        case 3: x_DOM__CDATASection::x_3(args);	break;
        case 4: xself->x_4(args);	break;
        case 5: xself->x_5(args);	break;
        case 6: delete (DOM::CDATASection*)xself;	break;
    }
}
class x_DOM__CSSCharsetRule : public DOM::CSSCharsetRule {
    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) {
        // DOM::CSSCharsetRule* CSSCharsetRule()
        x_DOM__CSSCharsetRule* xret = new x_DOM__CSSCharsetRule();
        x[0].s_class = (void*)xret;
    }
    explicit x_DOM__CSSCharsetRule() : CSSCharsetRule() {}
    static void x_2(Smoke::Stack x) {
        // DOM::CSSCharsetRule* CSSCharsetRule(const DOM::CSSCharsetRule&)
        x_DOM__CSSCharsetRule* xret = new x_DOM__CSSCharsetRule(*(const DOM::CSSCharsetRule*)x[1].s_class);
        x[0].s_class = (void*)xret;
    }
    explicit x_DOM__CSSCharsetRule(const DOM::CSSCharsetRule& x1) : CSSCharsetRule(x1) {}
    static void x_3(Smoke::Stack x) {
        // DOM::CSSCharsetRule* CSSCharsetRule(const DOM::CSSRule&)
        x_DOM__CSSCharsetRule* xret = new x_DOM__CSSCharsetRule(*(const DOM::CSSRule*)x[1].s_class);
        x[0].s_class = (void*)xret;
    }
    explicit x_DOM__CSSCharsetRule(const DOM::CSSRule& x1) : CSSCharsetRule(x1) {}
    void x_4(Smoke::Stack x) {
        // DOM::CSSCharsetRule& operator=(const DOM::CSSCharsetRule&)
        DOM::CSSCharsetRule& xret = this->DOM::CSSCharsetRule::operator=(*(const DOM::CSSCharsetRule*)x[1].s_class);
        x[0].s_class = (void*)&xret;
    }
    void x_5(Smoke::Stack x) {
        // DOM::CSSCharsetRule& operator=(const DOM::CSSRule&)
        DOM::CSSCharsetRule& xret = this->DOM::CSSCharsetRule::operator=(*(const DOM::CSSRule*)x[1].s_class);
        x[0].s_class = (void*)&xret;
    }
    void x_6(Smoke::Stack x) {
        // DOM::DOMString encoding() const
        DOM::DOMString xret = ((const x_DOM__CSSCharsetRule*)this)->DOM::CSSCharsetRule::encoding();
        x[0].s_class = (void*)new DOM::DOMString(xret);
    }
    void x_7(Smoke::Stack x) {
        // void setEncoding(const DOM::DOMString&)
        this->DOM::CSSCharsetRule::setEncoding(*(const DOM::DOMString*)x[1].s_class);
        (void)x; // noop (for compiler warning)
    }
    ~x_DOM__CSSCharsetRule() { this->_binding->deleted(5, (void*)this); }
};
void xcall_DOM__CSSCharsetRule(Smoke::Index xi, void *obj, Smoke::Stack args) {
    x_DOM__CSSCharsetRule *xself = (x_DOM__CSSCharsetRule*)obj;
    switch(xi) {
        case 0: xself->x_0(args);	break;
        case 1: x_DOM__CSSCharsetRule::x_1(args);	break;
        case 2: x_DOM__CSSCharsetRule::x_2(args);	break;
        case 3: x_DOM__CSSCharsetRule::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: delete (DOM::CSSCharsetRule*)xself;	break;
    }
}
class x_DOM__CSSException : public DOM::CSSException, 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) {
        // DOM::CSSException* CSSException(unsigned short)
        x_DOM__CSSException* xret = new x_DOM__CSSException((unsigned short)x[1].s_ushort);
        x[0].s_class = (void*)xret;
    }
    explicit x_DOM__CSSException(unsigned short x1) : CSSException(x1) {}
    static void x_2(Smoke::Stack x) {
        // DOM::CSSException* CSSException(const DOM::CSSException&)
        x_DOM__CSSException* xret = new x_DOM__CSSException(*(const DOM::CSSException*)x[1].s_class);
        x[0].s_class = (void*)xret;
    }
    explicit x_DOM__CSSException(const DOM::CSSException& x1) : CSSException(x1) {}
    void x_3(Smoke::Stack x) {
        // DOM::CSSException& operator=(const DOM::CSSException&)
        DOM::CSSException& xret = this->DOM::CSSException::operator=(*(const DOM::CSSException*)x[1].s_class);
        x[0].s_class = (void*)&xret;
    }
    void x_4(Smoke::Stack x) {
        // DOM::DOMString codeAsString() const
        DOM::DOMString xret = ((const x_DOM__CSSException*)this)->DOM::CSSException::codeAsString();
        x[0].s_class = (void*)new DOM::DOMString(xret);
    }
    static void x_5(Smoke::Stack x) {
        // static DOM::DOMString codeAsString(int)
        DOM::DOMString xret = DOM::CSSException::codeAsString((int)x[1].s_int);
        x[0].s_class = (void*)new DOM::DOMString(xret);
    }
    static void x_6(Smoke::Stack x) {
        // static bool isCSSExceptionCode(int)
        bool xret = DOM::CSSException::isCSSExceptionCode((int)x[1].s_int);
        x[0].s_bool = xret;
    }
    void x_7(Smoke::Stack x) {
        // unsigned short code
        x[0].s_ushort = this->DOM::CSSException::code;
    }
    void x_8(Smoke::Stack x) {
        // unsigned short code=
        this->DOM::CSSException::code = (unsigned short)x[1].s_ushort;
    }
    static void x_9(Smoke::Stack x) {
        x[0].s_enum = (long)DOM::CSSException::SYNTAX_ERR;
    }
    static void x_10(Smoke::Stack x) {
        x[0].s_enum = (long)DOM::CSSException::INVALID_MODIFICATION_ERR;
    }
    static void x_11(Smoke::Stack x) {
        x[0].s_enum = (long)DOM::CSSException::_EXCEPTION_OFFSET;
    }
    static void x_12(Smoke::Stack x) {
        x[0].s_enum = (long)DOM::CSSException::_EXCEPTION_MAX;
    }
    static void xenum_operation(Smoke::EnumOperation xop, Smoke::Index xtype, void *&xdata, long &xvalue) {
        switch(xtype) {
        case 14: //DOM::CSSException::ExceptionCode
            switch(xop) {
                case Smoke::EnumNew:
                    xdata = (void*)new DOM::CSSException::ExceptionCode;
                    break;
                case Smoke::EnumDelete:
                    delete (DOM::CSSException::ExceptionCode*)xdata;
                    break;
                case Smoke::EnumFromLong:
                    *(DOM::CSSException::ExceptionCode*)xdata = (DOM::CSSException::ExceptionCode)xvalue;
                    break;
                case Smoke::EnumToLong:
                    xvalue = (long)*(DOM::CSSException::ExceptionCode*)xdata;
                    break;
            }
            break;
        }
    }
    ~x_DOM__CSSException() { this->_binding->deleted(6, (void*)this); }
};
void xenum_DOM__CSSException(Smoke::EnumOperation xop, Smoke::Index xtype, void *&xdata, long &xvalue) {
    x_DOM__CSSException::xenum_operation(xop, xtype, xdata, xvalue);
}
void xcall_DOM__CSSException(Smoke::Index xi, void *obj, Smoke::Stack args) {
    x_DOM__CSSException *xself = (x_DOM__CSSException*)obj;
    switch(xi) {
        case 0: xself->x_0(args);	break;
        case 1: x_DOM__CSSException::x_1(args);	break;
        case 2: x_DOM__CSSException::x_2(args);	break;
        case 3: xself->x_3(args);	break;
        case 4: xself->x_4(args);	break;
        case 5: x_DOM__CSSException::x_5(args);	break;
        case 6: x_DOM__CSSException::x_6(args);	break;
        case 7: xself->x_7(args);	break;
        case 8: xself->x_8(args);	break;
        case 9: x_DOM__CSSException::x_9(args);	break;
        case 10: x_DOM__CSSException::x_10(args);	break;
        case 11: x_DOM__CSSException::x_11(args);	break;
        case 12: x_DOM__CSSException::x_12(args);	break;
        case 13: delete (DOM::CSSException*)xself;	break;
    }
}
class x_DOM__CSSFontFaceRule : public DOM::CSSFontFaceRule {
    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) {
        // DOM::CSSFontFaceRule* CSSFontFaceRule()
        x_DOM__CSSFontFaceRule* xret = new x_DOM__CSSFontFaceRule();
        x[0].s_class = (void*)xret;
    }
    explicit x_DOM__CSSFontFaceRule() : CSSFontFaceRule() {}
    static void x_2(Smoke::Stack x) {
        // DOM::CSSFontFaceRule* CSSFontFaceRule(const DOM::CSSFontFaceRule&)
        x_DOM__CSSFontFaceRule* xret = new x_DOM__CSSFontFaceRule(*(const DOM::CSSFontFaceRule*)x[1].s_class);
        x[0].s_class = (void*)xret;
    }
    explicit x_DOM__CSSFontFaceRule(const DOM::CSSFontFaceRule& x1) : CSSFontFaceRule(x1) {}
    static void x_3(Smoke::Stack x) {
        // DOM::CSSFontFaceRule* CSSFontFaceRule(const DOM::CSSRule&)
        x_DOM__CSSFontFaceRule* xret = new x_DOM__CSSFontFaceRule(*(const DOM::CSSRule*)x[1].s_class);
        x[0].s_class = (void*)xret;
    }
    explicit x_DOM__CSSFontFaceRule(const DOM::CSSRule& x1) : CSSFontFaceRule(x1) {}
    void x_4(Smoke::Stack x) {
        // DOM::CSSFontFaceRule& operator=(const DOM::CSSFontFaceRule&)
        DOM::CSSFontFaceRule& xret = this->DOM::CSSFontFaceRule::operator=(*(const DOM::CSSFontFaceRule*)x[1].s_class);
        x[0].s_class = (void*)&xret;
    }
    void x_5(Smoke::Stack x) {
        // DOM::CSSFontFaceRule& operator=(const DOM::CSSRule&)
        DOM::CSSFontFaceRule& xret = this->DOM::CSSFontFaceRule::operator=(*(const DOM::CSSRule*)x[1].s_class);
        x[0].s_class = (void*)&xret;
    }
    void x_6(Smoke::Stack x) {
        // DOM::CSSStyleDeclaration style() const
        DOM::CSSStyleDeclaration xret = ((const x_DOM__CSSFontFaceRule*)this)->DOM::CSSFontFaceRule::style();
        x[0].s_class = (void*)new DOM::CSSStyleDeclaration(xret);
    }
    ~x_DOM__CSSFontFaceRule() { this->_binding->deleted(7, (void*)this); }
};
void xcall_DOM__CSSFontFaceRule(Smoke::Index xi, void *obj, Smoke::Stack args) {
    x_DOM__CSSFontFaceRule *xself = (x_DOM__CSSFontFaceRule*)obj;
    switch(xi) {
        case 0: xself->x_0(args);	break;
        case 1: x_DOM__CSSFontFaceRule::x_1(args);	break;
        case 2: x_DOM__CSSFontFaceRule::x_2(args);	break;
        case 3: x_DOM__CSSFontFaceRule::x_3(args);	break;
        case 4: xself->x_4(args);	break;
        case 5: xself->x_5(args);	break;
        case 6: xself->x_6(args);	break;
        case 7: delete (DOM::CSSFontFaceRule*)xself;	break;
    }
}

}
