//Auto-generated by kalyptus. DO NOT EDIT.
namespace Qyoto {
    using System;
    [SmokeClass("QIconEngineV2")]
    public class QIconEngineV2 : QIconEngine, IDisposable {
        protected QIconEngineV2(Type dummy) : base((Type) null) {}
        protected new void CreateProxy() {
            interceptor = new SmokeInvocation(typeof(QIconEngineV2), this);
        }
        [SmokeMethod("key() const")]
        public virtual string Key() {
            return (string) interceptor.Invoke("key", "key() const", typeof(string));
        }
        [SmokeMethod("clone() const")]
        public virtual QIconEngineV2 Clone() {
            return (QIconEngineV2) interceptor.Invoke("clone", "clone() const", typeof(QIconEngineV2));
        }
        [SmokeMethod("read(QDataStream&)")]
        public virtual bool Read(QDataStream arg1) {
            return (bool) interceptor.Invoke("read#", "read(QDataStream&)", typeof(bool), typeof(QDataStream), arg1);
        }
        [SmokeMethod("write(QDataStream&) const")]
        public virtual bool Write(QDataStream arg1) {
            return (bool) interceptor.Invoke("write#", "write(QDataStream&) const", typeof(bool), typeof(QDataStream), arg1);
        }
        public QIconEngineV2() : this((Type) null) {
            CreateProxy();
            interceptor.Invoke("QIconEngineV2", "QIconEngineV2()", typeof(void));
        }
        // WARNING: Unimplemented C++ pure virtual - DO NOT CALL
        [SmokeMethod("paint(QPainter*, const QRect&, QIcon::Mode, QIcon::State)")]
        public override void Paint(QPainter painter, QRect rect, QIcon.Mode mode, QIcon.State state) {
            interceptor.Invoke("paint##$$", "paint(QPainter*, const QRect&, QIcon::Mode, QIcon::State)", typeof(void), typeof(QPainter), painter, typeof(QRect), rect, typeof(QIcon.Mode), mode, typeof(QIcon.State), state);
        }
        ~QIconEngineV2() {
            interceptor.Invoke("~QIconEngineV2", "~QIconEngineV2()", typeof(void));
        }
        public void Dispose() {
            interceptor.Invoke("~QIconEngineV2", "~QIconEngineV2()", typeof(void));
        }
    }
}
