//Auto-generated by kalyptus. DO NOT EDIT.
namespace Qyoto {
    using System;
    [SmokeClass("QStyleOption")]
    public class QStyleOption : Object, IDisposable {
        protected SmokeInvocation interceptor = null;
        private IntPtr smokeObject;
        protected QStyleOption(Type dummy) {}
        protected void CreateProxy() {
            interceptor = new SmokeInvocation(typeof(QStyleOption), this);
        }
        public enum OptionType {
            SO_Default = 0,
            SO_FocusRect = 1,
            SO_Button = 2,
            SO_Tab = 3,
            SO_MenuItem = 4,
            SO_Frame = 5,
            SO_ProgressBar = 6,
            SO_ToolBox = 7,
            SO_Header = 8,
            SO_Q3DockWindow = 9,
            SO_DockWidget = 10,
            SO_Q3ListViewItem = 11,
            SO_ViewItem = 12,
            SO_TabWidgetFrame = 13,
            SO_TabBarBase = 14,
            SO_RubberBand = 15,
            SO_ToolBar = 16,
            SO_GraphicsItem = 17,
            SO_Complex = 0xf0000,
            SO_Slider = 18,
            SO_SpinBox = 19,
            SO_ToolButton = 20,
            SO_ComboBox = 21,
            SO_Q3ListView = 22,
            SO_TitleBar = 23,
            SO_GroupBox = 24,
            SO_SizeGrip = 25,
            SO_CustomBase = 0xf00,
            SO_ComplexCustomBase = 0xf000000,
        }
        public enum StyleOptionType {
            Type = QStyleOption.OptionType.SO_Default,
        }
        public enum StyleOptionVersion {
            Version = 1,
        }
        public int Version {
            get { return (int) interceptor.Invoke("version", "version()", typeof(int)); }
            set { interceptor.Invoke("setVersion$", "setVersion(int)", typeof(void), typeof(int), value); }
        }
        public int Type {
            get { return (int) interceptor.Invoke("type", "type()", typeof(int)); }
            set { interceptor.Invoke("setType$", "setType(int)", typeof(void), typeof(int), value); }
        }
        public uint State {
            get { return (uint) interceptor.Invoke("state", "state()", typeof(uint)); }
            set { interceptor.Invoke("setState$", "setState(QStyle::State)", typeof(void), typeof(uint), value); }
        }
        public Qt.LayoutDirection Direction {
            get { return (Qt.LayoutDirection) interceptor.Invoke("direction", "direction()", typeof(Qt.LayoutDirection)); }
            set { interceptor.Invoke("setDirection$", "setDirection(Qt::LayoutDirection)", typeof(void), typeof(Qt.LayoutDirection), value); }
        }
        public QRect Rect {
            get { return (QRect) interceptor.Invoke("rect", "rect()", typeof(QRect)); }
            set { interceptor.Invoke("setRect#", "setRect(QRect)", typeof(void), typeof(QRect), value); }
        }
        public QFontMetrics FontMetrics {
            get { return (QFontMetrics) interceptor.Invoke("fontMetrics", "fontMetrics()", typeof(QFontMetrics)); }
            set { interceptor.Invoke("setFontMetrics#", "setFontMetrics(QFontMetrics)", typeof(void), typeof(QFontMetrics), value); }
        }
        public QPalette Palette {
            get { return (QPalette) interceptor.Invoke("palette", "palette()", typeof(QPalette)); }
            set { interceptor.Invoke("setPalette#", "setPalette(QPalette)", typeof(void), typeof(QPalette), value); }
        }
        public QStyleOption(int version, int type) : this((Type) null) {
            CreateProxy();
            interceptor.Invoke("QStyleOption$$", "QStyleOption(int, int)", typeof(void), typeof(int), version, typeof(int), type);
        }
        public QStyleOption(int version) : this((Type) null) {
            CreateProxy();
            interceptor.Invoke("QStyleOption$", "QStyleOption(int)", typeof(void), typeof(int), version);
        }
        public QStyleOption() : this((Type) null) {
            CreateProxy();
            interceptor.Invoke("QStyleOption", "QStyleOption()", typeof(void));
        }
        public QStyleOption(QStyleOption other) : this((Type) null) {
            CreateProxy();
            interceptor.Invoke("QStyleOption#", "QStyleOption(const QStyleOption&)", typeof(void), typeof(QStyleOption), other);
        }
        public void Init(QWidget w) {
            interceptor.Invoke("init#", "init(const QWidget*)", typeof(void), typeof(QWidget), w);
        }
        public void InitFrom(QWidget w) {
            interceptor.Invoke("initFrom#", "initFrom(const QWidget*)", typeof(void), typeof(QWidget), w);
        }
        ~QStyleOption() {
            interceptor.Invoke("~QStyleOption", "~QStyleOption()", typeof(void));
        }
        public void Dispose() {
            interceptor.Invoke("~QStyleOption", "~QStyleOption()", typeof(void));
        }
    }
}
