//Auto-generated by kalyptus. DO NOT EDIT.
namespace Qyoto {
    using System;
    using System.Collections.Generic;
    [SmokeClass("QDirModel")]
    public class QDirModel : QAbstractItemModel, IDisposable {
        protected QDirModel(Type dummy) : base((Type) null) {}
        protected new void CreateProxy() {
            interceptor = new SmokeInvocation(typeof(QDirModel), this);
        }
        private static SmokeInvocation staticInterceptor = null;
        static QDirModel() {
            staticInterceptor = new SmokeInvocation(typeof(QDirModel), null);
        }
        public enum Roles {
            FileIconRole = Qt.ItemDataRole.DecorationRole,
            FilePathRole = Qt.ItemDataRole.UserRole+1,
            FileNameRole = 0,
        }
        [Q_PROPERTY("bool", "resolveSymlinks")]
        public bool ResolveSymlinks {
            get { return (bool) interceptor.Invoke("resolveSymlinks", "resolveSymlinks()", typeof(bool)); }
            set { interceptor.Invoke("setResolveSymlinks$", "setResolveSymlinks(bool)", typeof(void), typeof(bool), value); }
        }
        [Q_PROPERTY("bool", "readOnly")]
        public bool ReadOnly {
            get { return (bool) interceptor.Invoke("isReadOnly", "isReadOnly()", typeof(bool)); }
            set { interceptor.Invoke("setReadOnly$", "setReadOnly(bool)", typeof(void), typeof(bool), value); }
        }
        [Q_PROPERTY("bool", "lazyChildCount")]
        public bool LazyChildCount {
            get { return (bool) interceptor.Invoke("lazyChildCount", "lazyChildCount()", typeof(bool)); }
            set { interceptor.Invoke("setLazyChildCount$", "setLazyChildCount(bool)", typeof(void), typeof(bool), value); }
        }
        // QDirModel* QDirModel(QDirModelPrivate& arg1,QObject* arg2); >>>> NOT CONVERTED
        // QDirModel* QDirModel(QDirModelPrivate& arg1); >>>> NOT CONVERTED
        public QDirModel(List<string> nameFilters, uint filters, uint sort, QObject parent) : this((Type) null) {
            CreateProxy();
            interceptor.Invoke("QDirModel?$$#", "QDirModel(const QStringList&, QDir::Filters, QDir::SortFlags, QObject*)", typeof(void), typeof(List<string>), nameFilters, typeof(uint), filters, typeof(uint), sort, typeof(QObject), parent);
        }
        public QDirModel(List<string> nameFilters, uint filters, uint sort) : this((Type) null) {
            CreateProxy();
            interceptor.Invoke("QDirModel?$$", "QDirModel(const QStringList&, QDir::Filters, QDir::SortFlags)", typeof(void), typeof(List<string>), nameFilters, typeof(uint), filters, typeof(uint), sort);
        }
        public QDirModel(QObject parent) : this((Type) null) {
            CreateProxy();
            interceptor.Invoke("QDirModel#", "QDirModel(QObject*)", typeof(void), typeof(QObject), parent);
        }
        public QDirModel() : this((Type) null) {
            CreateProxy();
            interceptor.Invoke("QDirModel", "QDirModel()", typeof(void));
        }
        [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("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("hasChildren(const QModelIndex&) const")]
        public override bool HasChildren(QModelIndex index) {
            return (bool) interceptor.Invoke("hasChildren#", "hasChildren(const QModelIndex&) const", typeof(bool), typeof(QModelIndex), index);
        }
        [SmokeMethod("hasChildren() const")]
        public override bool HasChildren() {
            return (bool) interceptor.Invoke("hasChildren", "hasChildren() const", typeof(bool));
        }
        [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("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);
        }
        [SmokeMethod("mimeTypes() const")]
        public override List<string> MimeTypes() {
            return (List<string>) interceptor.Invoke("mimeTypes", "mimeTypes() const", typeof(List<string>));
        }
        [SmokeMethod("mimeData(const QList<QModelIndex>&) const")]
        public override QMimeData MimeData(List<QModelIndex> indexes) {
            return (QMimeData) interceptor.Invoke("mimeData?", "mimeData(const QList<QModelIndex>&) const", typeof(QMimeData), typeof(List<QModelIndex>), indexes);
        }
        [SmokeMethod("dropMimeData(const QMimeData*, Qt::DropAction, int, int, const QModelIndex&)")]
        public override bool DropMimeData(QMimeData data, Qt.DropAction action, int row, int column, QModelIndex parent) {
            return (bool) interceptor.Invoke("dropMimeData#$$$#", "dropMimeData(const QMimeData*, Qt::DropAction, int, int, const QModelIndex&)", typeof(bool), typeof(QMimeData), data, typeof(Qt.DropAction), action, typeof(int), row, typeof(int), column, typeof(QModelIndex), parent);
        }
        [SmokeMethod("supportedDropActions() const")]
        public override uint SupportedDropActions() {
            return (uint) interceptor.Invoke("supportedDropActions", "supportedDropActions() const", typeof(uint));
        }
        public void SetIconProvider(QFileIconProvider provider) {
            interceptor.Invoke("setIconProvider#", "setIconProvider(QFileIconProvider*)", typeof(void), typeof(QFileIconProvider), provider);
        }
        public QFileIconProvider IconProvider() {
            return (QFileIconProvider) interceptor.Invoke("iconProvider", "iconProvider() const", typeof(QFileIconProvider));
        }
        public void SetNameFilters(List<string> filters) {
            interceptor.Invoke("setNameFilters?", "setNameFilters(const QStringList&)", typeof(void), typeof(List<string>), filters);
        }
        public List<string> NameFilters() {
            return (List<string>) interceptor.Invoke("nameFilters", "nameFilters() const", typeof(List<string>));
        }
        public void SetFilter(uint filters) {
            interceptor.Invoke("setFilter$", "setFilter(QDir::Filters)", typeof(void), typeof(uint), filters);
        }
        public uint Filter() {
            return (uint) interceptor.Invoke("filter", "filter() const", typeof(uint));
        }
        public void SetSorting(uint sort) {
            interceptor.Invoke("setSorting$", "setSorting(QDir::SortFlags)", typeof(void), typeof(uint), sort);
        }
        public uint Sorting() {
            return (uint) interceptor.Invoke("sorting", "sorting() const", typeof(uint));
        }
        public QModelIndex Index(string path, int column) {
            return (QModelIndex) interceptor.Invoke("index$$", "index(const QString&, int) const", typeof(QModelIndex), typeof(string), path, typeof(int), column);
        }
        public QModelIndex Index(string path) {
            return (QModelIndex) interceptor.Invoke("index$", "index(const QString&) const", typeof(QModelIndex), typeof(string), path);
        }
        public bool IsDir(QModelIndex index) {
            return (bool) interceptor.Invoke("isDir#", "isDir(const QModelIndex&) const", typeof(bool), typeof(QModelIndex), index);
        }
        public QModelIndex Mkdir(QModelIndex parent, string name) {
            return (QModelIndex) interceptor.Invoke("mkdir#$", "mkdir(const QModelIndex&, const QString&)", typeof(QModelIndex), typeof(QModelIndex), parent, typeof(string), name);
        }
        public bool Rmdir(QModelIndex index) {
            return (bool) interceptor.Invoke("rmdir#", "rmdir(const QModelIndex&)", typeof(bool), typeof(QModelIndex), index);
        }
        public bool Remove(QModelIndex index) {
            return (bool) interceptor.Invoke("remove#", "remove(const QModelIndex&)", typeof(bool), typeof(QModelIndex), index);
        }
        public string FilePath(QModelIndex index) {
            return (string) interceptor.Invoke("filePath#", "filePath(const QModelIndex&) const", typeof(string), typeof(QModelIndex), index);
        }
        public string FileName(QModelIndex index) {
            return (string) interceptor.Invoke("fileName#", "fileName(const QModelIndex&) const", typeof(string), typeof(QModelIndex), index);
        }
        public QIcon FileIcon(QModelIndex index) {
            return (QIcon) interceptor.Invoke("fileIcon#", "fileIcon(const QModelIndex&) const", typeof(QIcon), typeof(QModelIndex), index);
        }
        public QFileInfo FileInfo(QModelIndex index) {
            return (QFileInfo) interceptor.Invoke("fileInfo#", "fileInfo(const QModelIndex&) const", typeof(QFileInfo), typeof(QModelIndex), index);
        }
        public new QObject Parent() {
            return (QObject) interceptor.Invoke("parent", "parent() const", typeof(QObject));
        }
        [Q_SLOT("void refresh(QModelIndex)")]
        public void Refresh(QModelIndex parent) {
            interceptor.Invoke("refresh#", "refresh(const QModelIndex&)", typeof(void), typeof(QModelIndex), parent);
        }
        [Q_SLOT("void refresh()")]
        public void Refresh() {
            interceptor.Invoke("refresh", "refresh()", typeof(void));
        }
        ~QDirModel() {
            interceptor.Invoke("~QDirModel", "~QDirModel()", typeof(void));
        }
        public new void Dispose() {
            interceptor.Invoke("~QDirModel", "~QDirModel()", 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 IQDirModelSignals Emit {
            get { return (IQDirModelSignals) Q_EMIT; }
        }
    }

    public interface IQDirModelSignals : IQAbstractItemModelSignals {
    }
}
