//Auto-generated by kalyptus. DO NOT EDIT.
namespace Qyoto {
    using System;
    /// <remarks> See <see cref="IQStackedLayoutSignals"></see> for signals emitted by QStackedLayout
    /// </remarks>
    [SmokeClass("QStackedLayout")]
    public class QStackedLayout : QLayout, IDisposable {
        protected QStackedLayout(Type dummy) : base((Type) null) {}
        protected new void CreateProxy() {
            interceptor = new SmokeInvocation(typeof(QStackedLayout), this);
        }
        private static SmokeInvocation staticInterceptor = null;
        static QStackedLayout() {
            staticInterceptor = new SmokeInvocation(typeof(QStackedLayout), null);
        }
        public enum StackingMode {
            StackOne = 0,
            StackAll = 1,
        }
        [Q_PROPERTY("int", "currentIndex")]
        public int CurrentIndex {
            get { return (int) interceptor.Invoke("currentIndex", "currentIndex()", typeof(int)); }
            set { interceptor.Invoke("setCurrentIndex$", "setCurrentIndex(int)", typeof(void), typeof(int), value); }
        }
        [Q_PROPERTY("QStackedLayout::StackingMode", "stackingMode")]
        public QStackedLayout.StackingMode stackingMode {
            get { return (QStackedLayout.StackingMode) interceptor.Invoke("stackingMode", "stackingMode()", typeof(QStackedLayout.StackingMode)); }
            set { interceptor.Invoke("setStackingMode$", "setStackingMode(QStackedLayout::StackingMode)", typeof(void), typeof(QStackedLayout.StackingMode), value); }
        }
        public QStackedLayout() : this((Type) null) {
            CreateProxy();
            interceptor.Invoke("QStackedLayout", "QStackedLayout()", typeof(void));
        }
        public QStackedLayout(QWidget parent) : this((Type) null) {
            CreateProxy();
            interceptor.Invoke("QStackedLayout#", "QStackedLayout(QWidget*)", typeof(void), typeof(QWidget), parent);
        }
        public QStackedLayout(QLayout parentLayout) : this((Type) null) {
            CreateProxy();
            interceptor.Invoke("QStackedLayout#", "QStackedLayout(QLayout*)", typeof(void), typeof(QLayout), parentLayout);
        }
        public new int AddWidget(QWidget w) {
            return (int) interceptor.Invoke("addWidget#", "addWidget(QWidget*)", typeof(int), typeof(QWidget), w);
        }
        public int InsertWidget(int index, QWidget w) {
            return (int) interceptor.Invoke("insertWidget$#", "insertWidget(int, QWidget*)", typeof(int), typeof(int), index, typeof(QWidget), w);
        }
        public QWidget CurrentWidget() {
            return (QWidget) interceptor.Invoke("currentWidget", "currentWidget() const", typeof(QWidget));
        }
        [SmokeMethod("widget()")]
        public override QWidget Widget() {
            return (QWidget) interceptor.Invoke("widget", "widget()", typeof(QWidget));
        }
        public QWidget Widget(int arg1) {
            return (QWidget) interceptor.Invoke("widget$", "widget(int) const", typeof(QWidget), typeof(int), arg1);
        }
        [SmokeMethod("count() const")]
        public override int Count() {
            return (int) interceptor.Invoke("count", "count() const", typeof(int));
        }
        [SmokeMethod("addItem(QLayoutItem*)")]
        public override void AddItem(IQLayoutItem item) {
            interceptor.Invoke("addItem#", "addItem(QLayoutItem*)", typeof(void), typeof(IQLayoutItem), item);
        }
        [SmokeMethod("sizeHint() const")]
        public override QSize SizeHint() {
            return (QSize) interceptor.Invoke("sizeHint", "sizeHint() const", typeof(QSize));
        }
        [SmokeMethod("minimumSize() const")]
        public override QSize MinimumSize() {
            return (QSize) interceptor.Invoke("minimumSize", "minimumSize() const", typeof(QSize));
        }
        [SmokeMethod("itemAt(int) const")]
        public override IQLayoutItem ItemAt(int arg1) {
            return (IQLayoutItem) interceptor.Invoke("itemAt$", "itemAt(int) const", typeof(IQLayoutItem), typeof(int), arg1);
        }
        [SmokeMethod("takeAt(int)")]
        public override IQLayoutItem TakeAt(int arg1) {
            return (IQLayoutItem) interceptor.Invoke("takeAt$", "takeAt(int)", typeof(IQLayoutItem), typeof(int), arg1);
        }
        [SmokeMethod("setGeometry(const QRect&)")]
        public override void SetGeometry(QRect rect) {
            interceptor.Invoke("setGeometry#", "setGeometry(const QRect&)", typeof(void), typeof(QRect), rect);
        }
        [Q_SLOT("void setCurrentIndex(int)")]
        public void SetCurrentIndex(int index) {
            interceptor.Invoke("setCurrentIndex$", "setCurrentIndex(int)", typeof(void), typeof(int), index);
        }
        [Q_SLOT("void setCurrentWidget(QWidget*)")]
        public void SetCurrentWidget(QWidget w) {
            interceptor.Invoke("setCurrentWidget#", "setCurrentWidget(QWidget*)", typeof(void), typeof(QWidget), w);
        }
        ~QStackedLayout() {
            interceptor.Invoke("~QStackedLayout", "~QStackedLayout()", typeof(void));
        }
        public new void Dispose() {
            interceptor.Invoke("~QStackedLayout", "~QStackedLayout()", 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 IQStackedLayoutSignals Emit {
            get { return (IQStackedLayoutSignals) Q_EMIT; }
        }
    }

    public interface IQStackedLayoutSignals : IQLayoutSignals {
        [Q_SIGNAL("void widgetRemoved(int)")]
        void WidgetRemoved(int index);
        [Q_SIGNAL("void currentChanged(int)")]
        void CurrentChanged(int index);
    }
}
