//Auto-generated by kalyptus. DO NOT EDIT.
namespace Qyoto {
    using System;
    [SmokeClass("QStyleOptionButton")]
    public class QStyleOptionButton : QStyleOption, IDisposable {
        protected QStyleOptionButton(Type dummy) : base((Type) null) {}
        protected new void CreateProxy() {
            interceptor = new SmokeInvocation(typeof(QStyleOptionButton), this);
        }
        public enum StyleOptionType {
            Type = QStyleOption.OptionType.SO_Button,
        }
        public enum StyleOptionVersion {
            Version = 1,
        }
        public enum ButtonFeature {
            None = 0x00,
            Flat = 0x01,
            HasMenu = 0x02,
            DefaultButton = 0x04,
            AutoDefaultButton = 0x08,
            CommandLinkButton = 0x10,
        }
        public uint Features {
            get { return (uint) interceptor.Invoke("features", "features()", typeof(uint)); }
            set { interceptor.Invoke("setFeatures$", "setFeatures(QStyleOptionButton::ButtonFeatures)", typeof(void), typeof(uint), value); }
        }
        public string Text {
            get { return (string) interceptor.Invoke("text", "text()", typeof(string)); }
            set { interceptor.Invoke("setText$", "setText(QString)", typeof(void), typeof(string), value); }
        }
        public QIcon Icon {
            get { return (QIcon) interceptor.Invoke("icon", "icon()", typeof(QIcon)); }
            set { interceptor.Invoke("setIcon#", "setIcon(QIcon)", typeof(void), typeof(QIcon), value); }
        }
        public QSize IconSize {
            get { return (QSize) interceptor.Invoke("iconSize", "iconSize()", typeof(QSize)); }
            set { interceptor.Invoke("setIconSize#", "setIconSize(QSize)", typeof(void), typeof(QSize), value); }
        }
        public QStyleOptionButton() : this((Type) null) {
            CreateProxy();
            interceptor.Invoke("QStyleOptionButton", "QStyleOptionButton()", typeof(void));
        }
        public QStyleOptionButton(QStyleOptionButton other) : this((Type) null) {
            CreateProxy();
            interceptor.Invoke("QStyleOptionButton#", "QStyleOptionButton(const QStyleOptionButton&)", typeof(void), typeof(QStyleOptionButton), other);
        }
        public QStyleOptionButton(int version) : this((Type) null) {
            CreateProxy();
            interceptor.Invoke("QStyleOptionButton$", "QStyleOptionButton(int)", typeof(void), typeof(int), version);
        }
        ~QStyleOptionButton() {
            interceptor.Invoke("~QStyleOptionButton", "~QStyleOptionButton()", typeof(void));
        }
        public new void Dispose() {
            interceptor.Invoke("~QStyleOptionButton", "~QStyleOptionButton()", typeof(void));
        }
    }
}
