//Auto-generated by kalyptus. DO NOT EDIT.
namespace Qyoto {
    using System;
    [SmokeClass("QStyleOptionComplex")]
    public class QStyleOptionComplex : QStyleOption, IDisposable {
        protected QStyleOptionComplex(Type dummy) : base((Type) null) {}
        protected new void CreateProxy() {
            interceptor = new SmokeInvocation(typeof(QStyleOptionComplex), this);
        }
        public enum StyleOptionType {
            Type = QStyleOption.OptionType.SO_Complex,
        }
        public enum StyleOptionVersion {
            Version = 1,
        }
        public uint SubControls {
            get { return (uint) interceptor.Invoke("subControls", "subControls()", typeof(uint)); }
            set { interceptor.Invoke("setSubControls$", "setSubControls(QStyle::SubControls)", typeof(void), typeof(uint), value); }
        }
        public uint ActiveSubControls {
            get { return (uint) interceptor.Invoke("activeSubControls", "activeSubControls()", typeof(uint)); }
            set { interceptor.Invoke("setActiveSubControls$", "setActiveSubControls(QStyle::SubControls)", typeof(void), typeof(uint), value); }
        }
        public QStyleOptionComplex(int version, int type) : this((Type) null) {
            CreateProxy();
            interceptor.Invoke("QStyleOptionComplex$$", "QStyleOptionComplex(int, int)", typeof(void), typeof(int), version, typeof(int), type);
        }
        public QStyleOptionComplex(int version) : this((Type) null) {
            CreateProxy();
            interceptor.Invoke("QStyleOptionComplex$", "QStyleOptionComplex(int)", typeof(void), typeof(int), version);
        }
        public QStyleOptionComplex() : this((Type) null) {
            CreateProxy();
            interceptor.Invoke("QStyleOptionComplex", "QStyleOptionComplex()", typeof(void));
        }
        public QStyleOptionComplex(QStyleOptionComplex other) : this((Type) null) {
            CreateProxy();
            interceptor.Invoke("QStyleOptionComplex#", "QStyleOptionComplex(const QStyleOptionComplex&)", typeof(void), typeof(QStyleOptionComplex), other);
        }
        ~QStyleOptionComplex() {
            interceptor.Invoke("~QStyleOptionComplex", "~QStyleOptionComplex()", typeof(void));
        }
        public new void Dispose() {
            interceptor.Invoke("~QStyleOptionComplex", "~QStyleOptionComplex()", typeof(void));
        }
    }
}
