//Auto-generated by kalyptus. DO NOT EDIT.
namespace Qyoto {
    using System;
    using System.Collections.Generic;
    [SmokeClass("QAbstractProxyModel")]
    public abstract class QAbstractProxyModel : QAbstractItemModel {
        protected QAbstractProxyModel(Type dummy) : base((Type) null) {}
        protected new void CreateProxy() {
            interceptor = new SmokeInvocation(typeof(QAbstractProxyModel), this);
        }
        private static SmokeInvocation staticInterceptor = null;
        static QAbstractProxyModel() {
            staticInterceptor = new SmokeInvocation(typeof(QAbstractProxyModel), null);
        }
        // QAbstractProxyModel* QAbstractProxyModel(QAbstractProxyModelPrivate& arg1,QObject* arg2); >>>> NOT CONVERTED
        public QAbstractProxyModel(QObject parent) : this((Type) null) {
            CreateProxy();
            interceptor.Invoke("QAbstractProxyModel#", "QAbstractProxyModel(QObject*)", typeof(void), typeof(QObject), parent);
        }
        public QAbstractProxyModel() : this((Type) null) {
            CreateProxy();
            interceptor.Invoke("QAbstractProxyModel", "QAbstractProxyModel()", typeof(void));
        }
        [SmokeMethod("setSourceModel(QAbstractItemModel*)")]
        public virtual void SetSourceModel(QAbstractItemModel sourceModel) {
            interceptor.Invoke("setSourceModel#", "setSourceModel(QAbstractItemModel*)", typeof(void), typeof(QAbstractItemModel), sourceModel);
        }
        public QAbstractItemModel SourceModel() {
            return (QAbstractItemModel) interceptor.Invoke("sourceModel", "sourceModel() const", typeof(QAbstractItemModel));
        }
        [SmokeMethod("mapToSource(const QModelIndex&) const")]
        public abstract QModelIndex MapToSource(QModelIndex proxyIndex);
        [SmokeMethod("mapFromSource(const QModelIndex&) const")]
        public abstract QModelIndex MapFromSource(QModelIndex sourceIndex);
        [SmokeMethod("mapSelectionToSource(const QItemSelection&) const")]
        public virtual QItemSelection MapSelectionToSource(QItemSelection selection) {
            return (QItemSelection) interceptor.Invoke("mapSelectionToSource#", "mapSelectionToSource(const QItemSelection&) const", typeof(QItemSelection), typeof(QItemSelection), selection);
        }
        [SmokeMethod("mapSelectionFromSource(const QItemSelection&) const")]
        public virtual QItemSelection MapSelectionFromSource(QItemSelection selection) {
            return (QItemSelection) interceptor.Invoke("mapSelectionFromSource#", "mapSelectionFromSource(const QItemSelection&) const", typeof(QItemSelection), typeof(QItemSelection), selection);
        }
        [SmokeMethod("submit()")]
        public override bool Submit() {
            return (bool) interceptor.Invoke("submit", "submit()", typeof(bool));
        }
        [SmokeMethod("revert()")]
        public override void Revert() {
            interceptor.Invoke("revert", "revert()", typeof(void));
        }
        [SmokeMethod("data(const QModelIndex&, int) const")]
        public override QVariant Data(QModelIndex proxyIndex, int role) {
            return (QVariant) interceptor.Invoke("data#$", "data(const QModelIndex&, int) const", typeof(QVariant), typeof(QModelIndex), proxyIndex, typeof(int), role);
        }
        [SmokeMethod("data(const QModelIndex&) const")]
        public virtual QVariant Data(QModelIndex proxyIndex) {
            return (QVariant) interceptor.Invoke("data#", "data(const QModelIndex&) const", typeof(QVariant), typeof(QModelIndex), proxyIndex);
        }
        [SmokeMethod("headerData(int, Qt::Orientation, int) const")]
        public override QVariant HeaderData(int section, Qt.Orientation orientation, int role) {
            return (QVariant) interceptor.Invoke("headerData$$$", "headerData(int, Qt::Orientation, int) const", typeof(QVariant), typeof(int), section, typeof(Qt.Orientation), orientation, typeof(int), role);
        }
        [SmokeMethod("itemData(const QModelIndex&) const")]
        public override Dictionary<int, QVariant> ItemData(QModelIndex index) {
            return (Dictionary<int, QVariant>) interceptor.Invoke("itemData#", "itemData(const QModelIndex&) const", typeof(Dictionary<int, QVariant>), typeof(QModelIndex), index);
        }
        [SmokeMethod("flags(const QModelIndex&) const")]
        public override uint Flags(QModelIndex index) {
            return (uint) interceptor.Invoke("flags#", "flags(const QModelIndex&) const", typeof(uint), typeof(QModelIndex), index);
        }
        [SmokeMethod("setData(const QModelIndex&, const QVariant&, int)")]
        public override bool SetData(QModelIndex index, QVariant value, int role) {
            return (bool) interceptor.Invoke("setData##$", "setData(const QModelIndex&, const QVariant&, int)", typeof(bool), typeof(QModelIndex), index, typeof(QVariant), value, typeof(int), role);
        }
        [SmokeMethod("setData(const QModelIndex&, const QVariant&)")]
        public override bool SetData(QModelIndex index, QVariant value) {
            return (bool) interceptor.Invoke("setData##", "setData(const QModelIndex&, const QVariant&)", typeof(bool), typeof(QModelIndex), index, typeof(QVariant), value);
        }
        [SmokeMethod("setHeaderData(int, Qt::Orientation, const QVariant&, int)")]
        public override bool SetHeaderData(int section, Qt.Orientation orientation, QVariant value, int role) {
            return (bool) interceptor.Invoke("setHeaderData$$#$", "setHeaderData(int, Qt::Orientation, const QVariant&, int)", typeof(bool), typeof(int), section, typeof(Qt.Orientation), orientation, typeof(QVariant), value, typeof(int), role);
        }
        [SmokeMethod("setHeaderData(int, Qt::Orientation, const QVariant&)")]
        public override bool SetHeaderData(int section, Qt.Orientation orientation, QVariant value) {
            return (bool) interceptor.Invoke("setHeaderData$$#", "setHeaderData(int, Qt::Orientation, const QVariant&)", typeof(bool), typeof(int), section, typeof(Qt.Orientation), orientation, typeof(QVariant), value);
        }
        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 IQAbstractProxyModelSignals Emit {
            get { return (IQAbstractProxyModelSignals) Q_EMIT; }
        }
    }

    public interface IQAbstractProxyModelSignals : IQAbstractItemModelSignals {
    }
}
