//Auto-generated by kalyptus. DO NOT EDIT.
namespace Qyoto {
    using System;
    /// <remarks> See <see cref="IQDataWidgetMapperSignals"></see> for signals emitted by QDataWidgetMapper
    /// </remarks>
    [SmokeClass("QDataWidgetMapper")]
    public class QDataWidgetMapper : QObject, IDisposable {
        protected QDataWidgetMapper(Type dummy) : base((Type) null) {}
        protected new void CreateProxy() {
            interceptor = new SmokeInvocation(typeof(QDataWidgetMapper), this);
        }
        private static SmokeInvocation staticInterceptor = null;
        static QDataWidgetMapper() {
            staticInterceptor = new SmokeInvocation(typeof(QDataWidgetMapper), null);
        }
        public enum SubmitPolicy {
            AutoSubmit = 0,
            ManualSubmit = 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("Qt::Orientation", "orientation")]
        public new Qt.Orientation Orientation {
            get { return (Qt.Orientation) interceptor.Invoke("orientation", "orientation()", typeof(Qt.Orientation)); }
            set { interceptor.Invoke("setOrientation$", "setOrientation(Qt::Orientation)", typeof(void), typeof(Qt.Orientation), value); }
        }
        [Q_PROPERTY("QDataWidgetMapper::SubmitPolicy", "submitPolicy")]
        public QDataWidgetMapper.SubmitPolicy submitPolicy {
            get { return (QDataWidgetMapper.SubmitPolicy) interceptor.Invoke("submitPolicy", "submitPolicy()", typeof(QDataWidgetMapper.SubmitPolicy)); }
            set { interceptor.Invoke("setSubmitPolicy$", "setSubmitPolicy(QDataWidgetMapper::SubmitPolicy)", typeof(void), typeof(QDataWidgetMapper.SubmitPolicy), value); }
        }
        public QDataWidgetMapper(QObject parent) : this((Type) null) {
            CreateProxy();
            interceptor.Invoke("QDataWidgetMapper#", "QDataWidgetMapper(QObject*)", typeof(void), typeof(QObject), parent);
        }
        public QDataWidgetMapper() : this((Type) null) {
            CreateProxy();
            interceptor.Invoke("QDataWidgetMapper", "QDataWidgetMapper()", typeof(void));
        }
        public void SetModel(QAbstractItemModel model) {
            interceptor.Invoke("setModel#", "setModel(QAbstractItemModel*)", typeof(void), typeof(QAbstractItemModel), model);
        }
        public QAbstractItemModel Model() {
            return (QAbstractItemModel) interceptor.Invoke("model", "model() const", typeof(QAbstractItemModel));
        }
        public void SetItemDelegate(QAbstractItemDelegate arg1) {
            interceptor.Invoke("setItemDelegate#", "setItemDelegate(QAbstractItemDelegate*)", typeof(void), typeof(QAbstractItemDelegate), arg1);
        }
        public QAbstractItemDelegate ItemDelegate() {
            return (QAbstractItemDelegate) interceptor.Invoke("itemDelegate", "itemDelegate() const", typeof(QAbstractItemDelegate));
        }
        public void SetRootIndex(QModelIndex index) {
            interceptor.Invoke("setRootIndex#", "setRootIndex(const QModelIndex&)", typeof(void), typeof(QModelIndex), index);
        }
        public QModelIndex RootIndex() {
            return (QModelIndex) interceptor.Invoke("rootIndex", "rootIndex() const", typeof(QModelIndex));
        }
        public void AddMapping(QWidget widget, int section) {
            interceptor.Invoke("addMapping#$", "addMapping(QWidget*, int)", typeof(void), typeof(QWidget), widget, typeof(int), section);
        }
        public void AddMapping(QWidget widget, int section, QByteArray propertyName) {
            interceptor.Invoke("addMapping#$#", "addMapping(QWidget*, int, const QByteArray&)", typeof(void), typeof(QWidget), widget, typeof(int), section, typeof(QByteArray), propertyName);
        }
        public void RemoveMapping(QWidget widget) {
            interceptor.Invoke("removeMapping#", "removeMapping(QWidget*)", typeof(void), typeof(QWidget), widget);
        }
        public int MappedSection(QWidget widget) {
            return (int) interceptor.Invoke("mappedSection#", "mappedSection(QWidget*) const", typeof(int), typeof(QWidget), widget);
        }
        public QByteArray MappedPropertyName(QWidget widget) {
            return (QByteArray) interceptor.Invoke("mappedPropertyName#", "mappedPropertyName(QWidget*) const", typeof(QByteArray), typeof(QWidget), widget);
        }
        public QWidget MappedWidgetAt(int section) {
            return (QWidget) interceptor.Invoke("mappedWidgetAt$", "mappedWidgetAt(int) const", typeof(QWidget), typeof(int), section);
        }
        public void ClearMapping() {
            interceptor.Invoke("clearMapping", "clearMapping()", typeof(void));
        }
        [Q_SLOT("void revert()")]
        public void Revert() {
            interceptor.Invoke("revert", "revert()", typeof(void));
        }
        [Q_SLOT("bool submit()")]
        public bool Submit() {
            return (bool) interceptor.Invoke("submit", "submit()", typeof(bool));
        }
        [Q_SLOT("void toFirst()")]
        public void ToFirst() {
            interceptor.Invoke("toFirst", "toFirst()", typeof(void));
        }
        [Q_SLOT("void toLast()")]
        public void ToLast() {
            interceptor.Invoke("toLast", "toLast()", typeof(void));
        }
        [Q_SLOT("void toNext()")]
        public void ToNext() {
            interceptor.Invoke("toNext", "toNext()", typeof(void));
        }
        [Q_SLOT("void toPrevious()")]
        public void ToPrevious() {
            interceptor.Invoke("toPrevious", "toPrevious()", typeof(void));
        }
        [Q_SLOT("void setCurrentIndex(int)")]
        [SmokeMethod("setCurrentIndex(int)")]
        public virtual void SetCurrentIndex(int index) {
            interceptor.Invoke("setCurrentIndex$", "setCurrentIndex(int)", typeof(void), typeof(int), index);
        }
        [Q_SLOT("void setCurrentModelIndex(QModelIndex)")]
        public void SetCurrentModelIndex(QModelIndex index) {
            interceptor.Invoke("setCurrentModelIndex#", "setCurrentModelIndex(const QModelIndex&)", typeof(void), typeof(QModelIndex), index);
        }
        ~QDataWidgetMapper() {
            interceptor.Invoke("~QDataWidgetMapper", "~QDataWidgetMapper()", typeof(void));
        }
        public new void Dispose() {
            interceptor.Invoke("~QDataWidgetMapper", "~QDataWidgetMapper()", 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 IQDataWidgetMapperSignals Emit {
            get { return (IQDataWidgetMapperSignals) Q_EMIT; }
        }
    }

    public interface IQDataWidgetMapperSignals : IQObjectSignals {
        [Q_SIGNAL("void currentIndexChanged(int)")]
        void CurrentIndexChanged(int index);
    }
}
