//Auto-generated by kalyptus. DO NOT EDIT.
namespace Qyoto {
    using System;
    using System.Collections.Generic;
    /// <remarks> See <see cref="IQStandardItemModelSignals"></see> for signals emitted by QStandardItemModel
    /// </remarks>
    [SmokeClass("QStandardItemModel")]
    public class QStandardItemModel : QAbstractItemModel, IDisposable {
        protected QStandardItemModel(Type dummy) : base((Type) null) {}
        protected new void CreateProxy() {
            interceptor = new SmokeInvocation(typeof(QStandardItemModel), this);
        }
        private static SmokeInvocation staticInterceptor = null;
        static QStandardItemModel() {
            staticInterceptor = new SmokeInvocation(typeof(QStandardItemModel), null);
        }
        [Q_PROPERTY("int", "sortRole")]
        public int SortRole {
            get { return (int) interceptor.Invoke("sortRole", "sortRole()", typeof(int)); }
            set { interceptor.Invoke("setSortRole$", "setSortRole(int)", typeof(void), typeof(int), value); }
        }
        // QStandardItemModel* QStandardItemModel(QStandardItemModelPrivate& arg1,QObject* arg2); >>>> NOT CONVERTED
        // QStandardItemModel* QStandardItemModel(QStandardItemModelPrivate& arg1); >>>> NOT CONVERTED
        public QStandardItemModel(QObject parent) : this((Type) null) {
            CreateProxy();
            interceptor.Invoke("QStandardItemModel#", "QStandardItemModel(QObject*)", typeof(void), typeof(QObject), parent);
        }
        public QStandardItemModel() : this((Type) null) {
            CreateProxy();
            interceptor.Invoke("QStandardItemModel", "QStandardItemModel()", typeof(void));
        }
        public QStandardItemModel(int rows, int columns, QObject parent) : this((Type) null) {
            CreateProxy();
            interceptor.Invoke("QStandardItemModel$$#", "QStandardItemModel(int, int, QObject*)", typeof(void), typeof(int), rows, typeof(int), columns, typeof(QObject), parent);
        }
        public QStandardItemModel(int rows, int columns) : this((Type) null) {
            CreateProxy();
            interceptor.Invoke("QStandardItemModel$$", "QStandardItemModel(int, int)", typeof(void), typeof(int), rows, typeof(int), columns);
        }
        [SmokeMethod("index(int, int, const QModelIndex&) const")]
        public override QModelIndex Index(int row, int column, QModelIndex parent) {
            return (QModelIndex) interceptor.Invoke("index$$#", "index(int, int, const QModelIndex&) const", typeof(QModelIndex), typeof(int), row, typeof(int), column, typeof(QModelIndex), parent);
        }
        [SmokeMethod("index(int, int) const")]
        public virtual QModelIndex Index(int row, int column) {
            return (QModelIndex) interceptor.Invoke("index$$", "index(int, int) const", typeof(QModelIndex), typeof(int), row, typeof(int), column);
        }
        [SmokeMethod("parent(const QModelIndex&) const")]
        public override QModelIndex Parent(QModelIndex child) {
            return (QModelIndex) interceptor.Invoke("parent#", "parent(const QModelIndex&) const", typeof(QModelIndex), typeof(QModelIndex), child);
        }
        [SmokeMethod("rowCount(const QModelIndex&) const")]
        public override int RowCount(QModelIndex parent) {
            return (int) interceptor.Invoke("rowCount#", "rowCount(const QModelIndex&) const", typeof(int), typeof(QModelIndex), parent);
        }
        [SmokeMethod("rowCount() const")]
        public virtual int RowCount() {
            return (int) interceptor.Invoke("rowCount", "rowCount() const", typeof(int));
        }
        [SmokeMethod("columnCount(const QModelIndex&) const")]
        public override int ColumnCount(QModelIndex parent) {
            return (int) interceptor.Invoke("columnCount#", "columnCount(const QModelIndex&) const", typeof(int), typeof(QModelIndex), parent);
        }
        [SmokeMethod("columnCount() const")]
        public virtual int ColumnCount() {
            return (int) interceptor.Invoke("columnCount", "columnCount() const", typeof(int));
        }
        [SmokeMethod("hasChildren(const QModelIndex&) const")]
        public override bool HasChildren(QModelIndex parent) {
            return (bool) interceptor.Invoke("hasChildren#", "hasChildren(const QModelIndex&) const", typeof(bool), typeof(QModelIndex), parent);
        }
        [SmokeMethod("hasChildren() const")]
        public override bool HasChildren() {
            return (bool) interceptor.Invoke("hasChildren", "hasChildren() const", typeof(bool));
        }
        [SmokeMethod("data(const QModelIndex&, int) const")]
        public override QVariant Data(QModelIndex index, int role) {
            return (QVariant) interceptor.Invoke("data#$", "data(const QModelIndex&, int) const", typeof(QVariant), typeof(QModelIndex), index, typeof(int), role);
        }
        [SmokeMethod("data(const QModelIndex&) const")]
        public virtual QVariant Data(QModelIndex index) {
            return (QVariant) interceptor.Invoke("data#", "data(const QModelIndex&) const", typeof(QVariant), 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("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("headerData(int, Qt::Orientation) const")]
        public override QVariant HeaderData(int section, Qt.Orientation orientation) {
            return (QVariant) interceptor.Invoke("headerData$$", "headerData(int, Qt::Orientation) const", typeof(QVariant), typeof(int), section, typeof(Qt.Orientation), orientation);
        }
        [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);
        }
        [SmokeMethod("insertRows(int, int, const QModelIndex&)")]
        public override bool InsertRows(int row, int count, QModelIndex parent) {
            return (bool) interceptor.Invoke("insertRows$$#", "insertRows(int, int, const QModelIndex&)", typeof(bool), typeof(int), row, typeof(int), count, typeof(QModelIndex), parent);
        }
        [SmokeMethod("insertRows(int, int)")]
        public override bool InsertRows(int row, int count) {
            return (bool) interceptor.Invoke("insertRows$$", "insertRows(int, int)", typeof(bool), typeof(int), row, typeof(int), count);
        }
        [SmokeMethod("insertColumns(int, int, const QModelIndex&)")]
        public override bool InsertColumns(int column, int count, QModelIndex parent) {
            return (bool) interceptor.Invoke("insertColumns$$#", "insertColumns(int, int, const QModelIndex&)", typeof(bool), typeof(int), column, typeof(int), count, typeof(QModelIndex), parent);
        }
        [SmokeMethod("insertColumns(int, int)")]
        public override bool InsertColumns(int column, int count) {
            return (bool) interceptor.Invoke("insertColumns$$", "insertColumns(int, int)", typeof(bool), typeof(int), column, typeof(int), count);
        }
        [SmokeMethod("removeRows(int, int, const QModelIndex&)")]
        public override bool RemoveRows(int row, int count, QModelIndex parent) {
            return (bool) interceptor.Invoke("removeRows$$#", "removeRows(int, int, const QModelIndex&)", typeof(bool), typeof(int), row, typeof(int), count, typeof(QModelIndex), parent);
        }
        [SmokeMethod("removeRows(int, int)")]
        public override bool RemoveRows(int row, int count) {
            return (bool) interceptor.Invoke("removeRows$$", "removeRows(int, int)", typeof(bool), typeof(int), row, typeof(int), count);
        }
        [SmokeMethod("removeColumns(int, int, const QModelIndex&)")]
        public override bool RemoveColumns(int column, int count, QModelIndex parent) {
            return (bool) interceptor.Invoke("removeColumns$$#", "removeColumns(int, int, const QModelIndex&)", typeof(bool), typeof(int), column, typeof(int), count, typeof(QModelIndex), parent);
        }
        [SmokeMethod("removeColumns(int, int)")]
        public override bool RemoveColumns(int column, int count) {
            return (bool) interceptor.Invoke("removeColumns$$", "removeColumns(int, int)", typeof(bool), typeof(int), column, typeof(int), count);
        }
        [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("supportedDropActions() const")]
        public override uint SupportedDropActions() {
            return (uint) interceptor.Invoke("supportedDropActions", "supportedDropActions() const", typeof(uint));
        }
        [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("setItemData(const QModelIndex&, const QMap<int, QVariant>&)")]
        public override bool SetItemData(QModelIndex index, Dictionary<int, QVariant> roles) {
            return (bool) interceptor.Invoke("setItemData#?", "setItemData(const QModelIndex&, const QMap<int,QVariant>&)", typeof(bool), typeof(QModelIndex), index, typeof(Dictionary<int, QVariant>), roles);
        }
        public void Clear() {
            interceptor.Invoke("clear", "clear()", typeof(void));
        }
        public new QObject Parent() {
            return (QObject) interceptor.Invoke("parent", "parent() const", typeof(QObject));
        }
        [SmokeMethod("sort(int, Qt::SortOrder)")]
        public override void Sort(int column, Qt.SortOrder order) {
            interceptor.Invoke("sort$$", "sort(int, Qt::SortOrder)", typeof(void), typeof(int), column, typeof(Qt.SortOrder), order);
        }
        [SmokeMethod("sort(int)")]
        public override void Sort(int column) {
            interceptor.Invoke("sort$", "sort(int)", typeof(void), typeof(int), column);
        }
        public QStandardItem ItemFromIndex(QModelIndex index) {
            return (QStandardItem) interceptor.Invoke("itemFromIndex#", "itemFromIndex(const QModelIndex&) const", typeof(QStandardItem), typeof(QModelIndex), index);
        }
        public QModelIndex IndexFromItem(QStandardItem item) {
            return (QModelIndex) interceptor.Invoke("indexFromItem#", "indexFromItem(const QStandardItem*) const", typeof(QModelIndex), typeof(QStandardItem), item);
        }
        public QStandardItem Item(int row, int column) {
            return (QStandardItem) interceptor.Invoke("item$$", "item(int, int) const", typeof(QStandardItem), typeof(int), row, typeof(int), column);
        }
        public QStandardItem Item(int row) {
            return (QStandardItem) interceptor.Invoke("item$", "item(int) const", typeof(QStandardItem), typeof(int), row);
        }
        public void SetItem(int row, int column, QStandardItem item) {
            interceptor.Invoke("setItem$$#", "setItem(int, int, QStandardItem*)", typeof(void), typeof(int), row, typeof(int), column, typeof(QStandardItem), item);
        }
        public void SetItem(int row, QStandardItem item) {
            interceptor.Invoke("setItem$#", "setItem(int, QStandardItem*)", typeof(void), typeof(int), row, typeof(QStandardItem), item);
        }
        public QStandardItem InvisibleRootItem() {
            return (QStandardItem) interceptor.Invoke("invisibleRootItem", "invisibleRootItem() const", typeof(QStandardItem));
        }
        public QStandardItem HorizontalHeaderItem(int column) {
            return (QStandardItem) interceptor.Invoke("horizontalHeaderItem$", "horizontalHeaderItem(int) const", typeof(QStandardItem), typeof(int), column);
        }
        public void SetHorizontalHeaderItem(int column, QStandardItem item) {
            interceptor.Invoke("setHorizontalHeaderItem$#", "setHorizontalHeaderItem(int, QStandardItem*)", typeof(void), typeof(int), column, typeof(QStandardItem), item);
        }
        public QStandardItem VerticalHeaderItem(int row) {
            return (QStandardItem) interceptor.Invoke("verticalHeaderItem$", "verticalHeaderItem(int) const", typeof(QStandardItem), typeof(int), row);
        }
        public void SetVerticalHeaderItem(int row, QStandardItem item) {
            interceptor.Invoke("setVerticalHeaderItem$#", "setVerticalHeaderItem(int, QStandardItem*)", typeof(void), typeof(int), row, typeof(QStandardItem), item);
        }
        public void SetHorizontalHeaderLabels(List<string> labels) {
            interceptor.Invoke("setHorizontalHeaderLabels?", "setHorizontalHeaderLabels(const QStringList&)", typeof(void), typeof(List<string>), labels);
        }
        public void SetVerticalHeaderLabels(List<string> labels) {
            interceptor.Invoke("setVerticalHeaderLabels?", "setVerticalHeaderLabels(const QStringList&)", typeof(void), typeof(List<string>), labels);
        }
        public void SetRowCount(int rows) {
            interceptor.Invoke("setRowCount$", "setRowCount(int)", typeof(void), typeof(int), rows);
        }
        public void SetColumnCount(int columns) {
            interceptor.Invoke("setColumnCount$", "setColumnCount(int)", typeof(void), typeof(int), columns);
        }
        public void AppendRow(List<QStandardItem> items) {
            interceptor.Invoke("appendRow?", "appendRow(const QList<QStandardItem*>&)", typeof(void), typeof(List<QStandardItem>), items);
        }
        public void AppendColumn(List<QStandardItem> items) {
            interceptor.Invoke("appendColumn?", "appendColumn(const QList<QStandardItem*>&)", typeof(void), typeof(List<QStandardItem>), items);
        }
        public void AppendRow(QStandardItem item) {
            interceptor.Invoke("appendRow#", "appendRow(QStandardItem*)", typeof(void), typeof(QStandardItem), item);
        }
        public void InsertRow(int row, List<QStandardItem> items) {
            interceptor.Invoke("insertRow$?", "insertRow(int, const QList<QStandardItem*>&)", typeof(void), typeof(int), row, typeof(List<QStandardItem>), items);
        }
        public void InsertColumn(int column, List<QStandardItem> items) {
            interceptor.Invoke("insertColumn$?", "insertColumn(int, const QList<QStandardItem*>&)", typeof(void), typeof(int), column, typeof(List<QStandardItem>), items);
        }
        public void InsertRow(int row, QStandardItem item) {
            interceptor.Invoke("insertRow$#", "insertRow(int, QStandardItem*)", typeof(void), typeof(int), row, typeof(QStandardItem), item);
        }
        public new bool InsertRow(int row, QModelIndex parent) {
            return (bool) interceptor.Invoke("insertRow$#", "insertRow(int, const QModelIndex&)", typeof(bool), typeof(int), row, typeof(QModelIndex), parent);
        }
        public new bool InsertRow(int row) {
            return (bool) interceptor.Invoke("insertRow$", "insertRow(int)", typeof(bool), typeof(int), row);
        }
        public new bool InsertColumn(int column, QModelIndex parent) {
            return (bool) interceptor.Invoke("insertColumn$#", "insertColumn(int, const QModelIndex&)", typeof(bool), typeof(int), column, typeof(QModelIndex), parent);
        }
        public new bool InsertColumn(int column) {
            return (bool) interceptor.Invoke("insertColumn$", "insertColumn(int)", typeof(bool), typeof(int), column);
        }
        public QStandardItem TakeItem(int row, int column) {
            return (QStandardItem) interceptor.Invoke("takeItem$$", "takeItem(int, int)", typeof(QStandardItem), typeof(int), row, typeof(int), column);
        }
        public QStandardItem TakeItem(int row) {
            return (QStandardItem) interceptor.Invoke("takeItem$", "takeItem(int)", typeof(QStandardItem), typeof(int), row);
        }
        public List<QStandardItem> TakeRow(int row) {
            return (List<QStandardItem>) interceptor.Invoke("takeRow$", "takeRow(int)", typeof(List<QStandardItem>), typeof(int), row);
        }
        public List<QStandardItem> TakeColumn(int column) {
            return (List<QStandardItem>) interceptor.Invoke("takeColumn$", "takeColumn(int)", typeof(List<QStandardItem>), typeof(int), column);
        }
        public QStandardItem TakeHorizontalHeaderItem(int column) {
            return (QStandardItem) interceptor.Invoke("takeHorizontalHeaderItem$", "takeHorizontalHeaderItem(int)", typeof(QStandardItem), typeof(int), column);
        }
        public QStandardItem TakeVerticalHeaderItem(int row) {
            return (QStandardItem) interceptor.Invoke("takeVerticalHeaderItem$", "takeVerticalHeaderItem(int)", typeof(QStandardItem), typeof(int), row);
        }
        public QStandardItem ItemPrototype() {
            return (QStandardItem) interceptor.Invoke("itemPrototype", "itemPrototype() const", typeof(QStandardItem));
        }
        public void SetItemPrototype(QStandardItem item) {
            interceptor.Invoke("setItemPrototype#", "setItemPrototype(const QStandardItem*)", typeof(void), typeof(QStandardItem), item);
        }
        public List<QStandardItem> FindItems(string text, uint flags, int column) {
            return (List<QStandardItem>) interceptor.Invoke("findItems$$$", "findItems(const QString&, Qt::MatchFlags, int) const", typeof(List<QStandardItem>), typeof(string), text, typeof(uint), flags, typeof(int), column);
        }
        public List<QStandardItem> FindItems(string text, uint flags) {
            return (List<QStandardItem>) interceptor.Invoke("findItems$$", "findItems(const QString&, Qt::MatchFlags) const", typeof(List<QStandardItem>), typeof(string), text, typeof(uint), flags);
        }
        public List<QStandardItem> FindItems(string text) {
            return (List<QStandardItem>) interceptor.Invoke("findItems$", "findItems(const QString&) const", typeof(List<QStandardItem>), typeof(string), text);
        }
        ~QStandardItemModel() {
            interceptor.Invoke("~QStandardItemModel", "~QStandardItemModel()", typeof(void));
        }
        public new void Dispose() {
            interceptor.Invoke("~QStandardItemModel", "~QStandardItemModel()", 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 IQStandardItemModelSignals Emit {
            get { return (IQStandardItemModelSignals) Q_EMIT; }
        }
    }

    public interface IQStandardItemModelSignals : IQAbstractItemModelSignals {
        [Q_SIGNAL("void itemChanged(QStandardItem*)")]
        void ItemChanged(QStandardItem item);
    }
}
