//Auto-generated by kalyptus. DO NOT EDIT.
namespace Qyoto {
    using System;
    using System.Runtime.InteropServices;
    [SmokeClass("QFormLayout")]
    public class QFormLayout : QLayout, IDisposable {
        protected QFormLayout(Type dummy) : base((Type) null) {}
        protected new void CreateProxy() {
            interceptor = new SmokeInvocation(typeof(QFormLayout), this);
        }
        private static SmokeInvocation staticInterceptor = null;
        static QFormLayout() {
            staticInterceptor = new SmokeInvocation(typeof(QFormLayout), null);
        }
        public enum FieldGrowthPolicy {
            FieldsStayAtSizeHint = 0,
            ExpandingFieldsGrow = 1,
            AllNonFixedFieldsGrow = 2,
        }
        public enum RowWrapPolicy {
            DontWrapRows = 0,
            WrapLongRows = 1,
            WrapAllRows = 2,
        }
        public enum ItemRole {
            LabelRole = 0,
            FieldRole = 1,
            SpanningRole = 2,
        }
        [Q_PROPERTY("QFormLayout::FieldGrowthPolicy", "fieldGrowthPolicy")]
        public QFormLayout.FieldGrowthPolicy fieldGrowthPolicy {
            get { return (QFormLayout.FieldGrowthPolicy) interceptor.Invoke("fieldGrowthPolicy", "fieldGrowthPolicy()", typeof(QFormLayout.FieldGrowthPolicy)); }
            set { interceptor.Invoke("setFieldGrowthPolicy$", "setFieldGrowthPolicy(QFormLayout::FieldGrowthPolicy)", typeof(void), typeof(QFormLayout.FieldGrowthPolicy), value); }
        }
        [Q_PROPERTY("QFormLayout::RowWrapPolicy", "rowWrapPolicy")]
        public QFormLayout.RowWrapPolicy rowWrapPolicy {
            get { return (QFormLayout.RowWrapPolicy) interceptor.Invoke("rowWrapPolicy", "rowWrapPolicy()", typeof(QFormLayout.RowWrapPolicy)); }
            set { interceptor.Invoke("setRowWrapPolicy$", "setRowWrapPolicy(QFormLayout::RowWrapPolicy)", typeof(void), typeof(QFormLayout.RowWrapPolicy), value); }
        }
        [Q_PROPERTY("Qt::Alignment", "labelAlignment")]
        public uint LabelAlignment {
            get { return (uint) interceptor.Invoke("labelAlignment", "labelAlignment()", typeof(uint)); }
            set { interceptor.Invoke("setLabelAlignment$", "setLabelAlignment(Qt::Alignment)", typeof(void), typeof(uint), value); }
        }
        [Q_PROPERTY("Qt::Alignment", "formAlignment")]
        public uint FormAlignment {
            get { return (uint) interceptor.Invoke("formAlignment", "formAlignment()", typeof(uint)); }
            set { interceptor.Invoke("setFormAlignment$", "setFormAlignment(Qt::Alignment)", typeof(void), typeof(uint), value); }
        }
        [Q_PROPERTY("int", "horizontalSpacing")]
        public int HorizontalSpacing {
            get { return (int) interceptor.Invoke("horizontalSpacing", "horizontalSpacing()", typeof(int)); }
            set { interceptor.Invoke("setHorizontalSpacing$", "setHorizontalSpacing(int)", typeof(void), typeof(int), value); }
        }
        [Q_PROPERTY("int", "verticalSpacing")]
        public int VerticalSpacing {
            get { return (int) interceptor.Invoke("verticalSpacing", "verticalSpacing()", typeof(int)); }
            set { interceptor.Invoke("setVerticalSpacing$", "setVerticalSpacing(int)", typeof(void), typeof(int), value); }
        }
        public QFormLayout(QWidget parent) : this((Type) null) {
            CreateProxy();
            interceptor.Invoke("QFormLayout#", "QFormLayout(QWidget*)", typeof(void), typeof(QWidget), parent);
        }
        public QFormLayout() : this((Type) null) {
            CreateProxy();
            interceptor.Invoke("QFormLayout", "QFormLayout()", typeof(void));
        }
        public new int Spacing() {
            return (int) interceptor.Invoke("spacing", "spacing() const", typeof(int));
        }
        public void SetSpacing(int arg1) {
            interceptor.Invoke("setSpacing$", "setSpacing(int)", typeof(void), typeof(int), arg1);
        }
        public void AddRow(QWidget label, QWidget field) {
            interceptor.Invoke("addRow##", "addRow(QWidget*, QWidget*)", typeof(void), typeof(QWidget), label, typeof(QWidget), field);
        }
        public void AddRow(QWidget label, QLayout field) {
            interceptor.Invoke("addRow##", "addRow(QWidget*, QLayout*)", typeof(void), typeof(QWidget), label, typeof(QLayout), field);
        }
        public void AddRow(string labelText, QWidget field) {
            interceptor.Invoke("addRow$#", "addRow(const QString&, QWidget*)", typeof(void), typeof(string), labelText, typeof(QWidget), field);
        }
        public void AddRow(string labelText, QLayout field) {
            interceptor.Invoke("addRow$#", "addRow(const QString&, QLayout*)", typeof(void), typeof(string), labelText, typeof(QLayout), field);
        }
        public void AddRow(QWidget widget) {
            interceptor.Invoke("addRow#", "addRow(QWidget*)", typeof(void), typeof(QWidget), widget);
        }
        public void AddRow(QLayout layout) {
            interceptor.Invoke("addRow#", "addRow(QLayout*)", typeof(void), typeof(QLayout), layout);
        }
        public void InsertRow(int row, QWidget label, QWidget field) {
            interceptor.Invoke("insertRow$##", "insertRow(int, QWidget*, QWidget*)", typeof(void), typeof(int), row, typeof(QWidget), label, typeof(QWidget), field);
        }
        public void InsertRow(int row, QWidget label, QLayout field) {
            interceptor.Invoke("insertRow$##", "insertRow(int, QWidget*, QLayout*)", typeof(void), typeof(int), row, typeof(QWidget), label, typeof(QLayout), field);
        }
        public void InsertRow(int row, string labelText, QWidget field) {
            interceptor.Invoke("insertRow$$#", "insertRow(int, const QString&, QWidget*)", typeof(void), typeof(int), row, typeof(string), labelText, typeof(QWidget), field);
        }
        public void InsertRow(int row, string labelText, QLayout field) {
            interceptor.Invoke("insertRow$$#", "insertRow(int, const QString&, QLayout*)", typeof(void), typeof(int), row, typeof(string), labelText, typeof(QLayout), field);
        }
        public void InsertRow(int row, QWidget widget) {
            interceptor.Invoke("insertRow$#", "insertRow(int, QWidget*)", typeof(void), typeof(int), row, typeof(QWidget), widget);
        }
        public void InsertRow(int row, QLayout layout) {
            interceptor.Invoke("insertRow$#", "insertRow(int, QLayout*)", typeof(void), typeof(int), row, typeof(QLayout), layout);
        }
        public void SetItem(int row, QFormLayout.ItemRole role, IQLayoutItem item) {
            interceptor.Invoke("setItem$$#", "setItem(int, QFormLayout::ItemRole, QLayoutItem*)", typeof(void), typeof(int), row, typeof(QFormLayout.ItemRole), role, typeof(IQLayoutItem), item);
        }
        public void SetWidget(int row, QFormLayout.ItemRole role, QWidget widget) {
            interceptor.Invoke("setWidget$$#", "setWidget(int, QFormLayout::ItemRole, QWidget*)", typeof(void), typeof(int), row, typeof(QFormLayout.ItemRole), role, typeof(QWidget), widget);
        }
        public void SetLayout(int row, QFormLayout.ItemRole role, QLayout layout) {
            interceptor.Invoke("setLayout$$#", "setLayout(int, QFormLayout::ItemRole, QLayout*)", typeof(void), typeof(int), row, typeof(QFormLayout.ItemRole), role, typeof(QLayout), layout);
        }
        public IQLayoutItem ItemAt(int row, QFormLayout.ItemRole role) {
            return (IQLayoutItem) interceptor.Invoke("itemAt$$", "itemAt(int, QFormLayout::ItemRole) const", typeof(IQLayoutItem), typeof(int), row, typeof(QFormLayout.ItemRole), role);
        }
        public void GetItemPosition(int index, ref int rowPtr, QFormLayout.ItemRole rolePtr) {
            StackItem[] stack = new StackItem[4];
            stack[1].s_int = index;
            stack[2].s_int = rowPtr;
            stack[3].s_int = (int) rolePtr;
            interceptor.Invoke("getItemPosition$$$", "getItemPosition(int, int*, QFormLayout::ItemRole*) const", stack);
            rowPtr = stack[2].s_int;
            return;
        }
        public void GetWidgetPosition(QWidget widget, ref int rowPtr, QFormLayout.ItemRole rolePtr) {
            StackItem[] stack = new StackItem[4];
#if DEBUG
            stack[1].s_class = (IntPtr) DebugGCHandle.Alloc(widget);
#else
            stack[1].s_class = (IntPtr) GCHandle.Alloc(widget);
#endif
            stack[2].s_int = rowPtr;
            stack[3].s_int = (int) rolePtr;
            interceptor.Invoke("getWidgetPosition#$$", "getWidgetPosition(QWidget*, int*, QFormLayout::ItemRole*) const", stack);
#if DEBUG
            DebugGCHandle.Free((GCHandle) stack[1].s_class);
#else
            ((GCHandle) stack[1].s_class).SynchronizedFree();
#endif
            rowPtr = stack[2].s_int;
            return;
        }
        public void GetLayoutPosition(QLayout layout, ref int rowPtr, QFormLayout.ItemRole rolePtr) {
            StackItem[] stack = new StackItem[4];
#if DEBUG
            stack[1].s_class = (IntPtr) DebugGCHandle.Alloc(layout);
#else
            stack[1].s_class = (IntPtr) GCHandle.Alloc(layout);
#endif
            stack[2].s_int = rowPtr;
            stack[3].s_int = (int) rolePtr;
            interceptor.Invoke("getLayoutPosition#$$", "getLayoutPosition(QLayout*, int*, QFormLayout::ItemRole*) const", stack);
#if DEBUG
            DebugGCHandle.Free((GCHandle) stack[1].s_class);
#else
            ((GCHandle) stack[1].s_class).SynchronizedFree();
#endif
            rowPtr = stack[2].s_int;
            return;
        }
        public QWidget LabelForField(QWidget field) {
            return (QWidget) interceptor.Invoke("labelForField#", "labelForField(QWidget*) const", typeof(QWidget), typeof(QWidget), field);
        }
        public QWidget LabelForField(QLayout field) {
            return (QWidget) interceptor.Invoke("labelForField#", "labelForField(QLayout*) const", typeof(QWidget), typeof(QLayout), field);
        }
        [SmokeMethod("addItem(QLayoutItem*)")]
        public override void AddItem(IQLayoutItem item) {
            interceptor.Invoke("addItem#", "addItem(QLayoutItem*)", typeof(void), typeof(IQLayoutItem), item);
        }
        [SmokeMethod("itemAt(int) const")]
        public override IQLayoutItem ItemAt(int index) {
            return (IQLayoutItem) interceptor.Invoke("itemAt$", "itemAt(int) const", typeof(IQLayoutItem), typeof(int), index);
        }
        [SmokeMethod("takeAt(int)")]
        public override IQLayoutItem TakeAt(int index) {
            return (IQLayoutItem) interceptor.Invoke("takeAt$", "takeAt(int)", typeof(IQLayoutItem), typeof(int), index);
        }
        [SmokeMethod("setGeometry(const QRect&)")]
        public override void SetGeometry(QRect rect) {
            interceptor.Invoke("setGeometry#", "setGeometry(const QRect&)", typeof(void), typeof(QRect), rect);
        }
        [SmokeMethod("minimumSize() const")]
        public override QSize MinimumSize() {
            return (QSize) interceptor.Invoke("minimumSize", "minimumSize() const", typeof(QSize));
        }
        [SmokeMethod("sizeHint() const")]
        public override QSize SizeHint() {
            return (QSize) interceptor.Invoke("sizeHint", "sizeHint() const", typeof(QSize));
        }
        [SmokeMethod("invalidate()")]
        public override void Invalidate() {
            interceptor.Invoke("invalidate", "invalidate()", typeof(void));
        }
        [SmokeMethod("hasHeightForWidth() const")]
        public override bool HasHeightForWidth() {
            return (bool) interceptor.Invoke("hasHeightForWidth", "hasHeightForWidth() const", typeof(bool));
        }
        [SmokeMethod("heightForWidth(int) const")]
        public override int HeightForWidth(int width) {
            return (int) interceptor.Invoke("heightForWidth$", "heightForWidth(int) const", typeof(int), typeof(int), width);
        }
        [SmokeMethod("expandingDirections() const")]
        public override uint ExpandingDirections() {
            return (uint) interceptor.Invoke("expandingDirections", "expandingDirections() const", typeof(uint));
        }
        [SmokeMethod("count() const")]
        public override int Count() {
            return (int) interceptor.Invoke("count", "count() const", typeof(int));
        }
        public int RowCount() {
            return (int) interceptor.Invoke("rowCount", "rowCount() const", typeof(int));
        }
        ~QFormLayout() {
            interceptor.Invoke("~QFormLayout", "~QFormLayout()", typeof(void));
        }
        public new void Dispose() {
            interceptor.Invoke("~QFormLayout", "~QFormLayout()", typeof(void));
        }
        public static new string Tr(string s, string c) {
            return (string) staticInterceptor.Invoke("tr$$", "tr(const char*, const char*)", typeof(string), typeof(string), s, typeof(string), c);
        }
        public static new string Tr(string s) {
            return (string) staticInterceptor.Invoke("tr$", "tr(const char*)", typeof(string), typeof(string), s);
        }
        protected new IQFormLayoutSignals Emit {
            get { return (IQFormLayoutSignals) Q_EMIT; }
        }
    }

    public interface IQFormLayoutSignals : IQLayoutSignals {
    }
}
