//Auto-generated by kalyptus. DO NOT EDIT.
namespace Qyoto {
    using System;
    [SmokeClass("QSqlRelationalTableModel")]
    public class QSqlRelationalTableModel : QSqlTableModel, IDisposable {
        protected QSqlRelationalTableModel(Type dummy) : base((Type) null) {}
        protected new void CreateProxy() {
            interceptor = new SmokeInvocation(typeof(QSqlRelationalTableModel), this);
        }
        private static SmokeInvocation staticInterceptor = null;
        static QSqlRelationalTableModel() {
            staticInterceptor = new SmokeInvocation(typeof(QSqlRelationalTableModel), null);
        }
        public QSqlRelationalTableModel(QObject parent, QSqlDatabase db) : this((Type) null) {
            CreateProxy();
            interceptor.Invoke("QSqlRelationalTableModel##", "QSqlRelationalTableModel(QObject*, QSqlDatabase)", typeof(void), typeof(QObject), parent, typeof(QSqlDatabase), db);
        }
        public QSqlRelationalTableModel(QObject parent) : this((Type) null) {
            CreateProxy();
            interceptor.Invoke("QSqlRelationalTableModel#", "QSqlRelationalTableModel(QObject*)", typeof(void), typeof(QObject), parent);
        }
        public QSqlRelationalTableModel() : this((Type) null) {
            CreateProxy();
            interceptor.Invoke("QSqlRelationalTableModel", "QSqlRelationalTableModel()", typeof(void));
        }
        [SmokeMethod("data(const QModelIndex&, int) const")]
        public override QVariant Data(QModelIndex item, int role) {
            return (QVariant) interceptor.Invoke("data#$", "data(const QModelIndex&, int) const", typeof(QVariant), typeof(QModelIndex), item, typeof(int), role);
        }
        [SmokeMethod("data(const QModelIndex&) const")]
        public override QVariant Data(QModelIndex item) {
            return (QVariant) interceptor.Invoke("data#", "data(const QModelIndex&) const", typeof(QVariant), typeof(QModelIndex), item);
        }
        [SmokeMethod("setData(const QModelIndex&, const QVariant&, int)")]
        public override bool SetData(QModelIndex item, QVariant value, int role) {
            return (bool) interceptor.Invoke("setData##$", "setData(const QModelIndex&, const QVariant&, int)", typeof(bool), typeof(QModelIndex), item, typeof(QVariant), value, typeof(int), role);
        }
        [SmokeMethod("setData(const QModelIndex&, const QVariant&)")]
        public override bool SetData(QModelIndex item, QVariant value) {
            return (bool) interceptor.Invoke("setData##", "setData(const QModelIndex&, const QVariant&)", typeof(bool), typeof(QModelIndex), item, typeof(QVariant), value);
        }
        [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("clear()")]
        public override void Clear() {
            interceptor.Invoke("clear", "clear()", typeof(void));
        }
        [SmokeMethod("select()")]
        public override bool Select() {
            return (bool) interceptor.Invoke("select", "select()", typeof(bool));
        }
        [SmokeMethod("setTable(const QString&)")]
        public override void SetTable(string tableName) {
            interceptor.Invoke("setTable$", "setTable(const QString&)", typeof(void), typeof(string), tableName);
        }
        [SmokeMethod("setRelation(int, const QSqlRelation&)")]
        public virtual void SetRelation(int column, QSqlRelation relation) {
            interceptor.Invoke("setRelation$#", "setRelation(int, const QSqlRelation&)", typeof(void), typeof(int), column, typeof(QSqlRelation), relation);
        }
        public QSqlRelation Relation(int column) {
            return (QSqlRelation) interceptor.Invoke("relation$", "relation(int) const", typeof(QSqlRelation), typeof(int), column);
        }
        [SmokeMethod("relationModel(int) const")]
        public virtual QSqlTableModel RelationModel(int column) {
            return (QSqlTableModel) interceptor.Invoke("relationModel$", "relationModel(int) const", typeof(QSqlTableModel), typeof(int), column);
        }
        [Q_SLOT("void revertRow(int)")]
        [SmokeMethod("revertRow(int)")]
        public override void RevertRow(int row) {
            interceptor.Invoke("revertRow$", "revertRow(int)", typeof(void), typeof(int), row);
        }
        [SmokeMethod("selectStatement() const")]
        protected override string SelectStatement() {
            return (string) interceptor.Invoke("selectStatement", "selectStatement() const", typeof(string));
        }
        [SmokeMethod("updateRowInTable(int, const QSqlRecord&)")]
        protected override bool UpdateRowInTable(int row, QSqlRecord values) {
            return (bool) interceptor.Invoke("updateRowInTable$#", "updateRowInTable(int, const QSqlRecord&)", typeof(bool), typeof(int), row, typeof(QSqlRecord), values);
        }
        [SmokeMethod("insertRowIntoTable(const QSqlRecord&)")]
        protected override bool InsertRowIntoTable(QSqlRecord values) {
            return (bool) interceptor.Invoke("insertRowIntoTable#", "insertRowIntoTable(const QSqlRecord&)", typeof(bool), typeof(QSqlRecord), values);
        }
        [SmokeMethod("orderByClause() const")]
        protected override string OrderByClause() {
            return (string) interceptor.Invoke("orderByClause", "orderByClause() const", typeof(string));
        }
        ~QSqlRelationalTableModel() {
            interceptor.Invoke("~QSqlRelationalTableModel", "~QSqlRelationalTableModel()", typeof(void));
        }
        public new void Dispose() {
            interceptor.Invoke("~QSqlRelationalTableModel", "~QSqlRelationalTableModel()", 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 IQSqlRelationalTableModelSignals Emit {
            get { return (IQSqlRelationalTableModelSignals) Q_EMIT; }
        }
    }

    public interface IQSqlRelationalTableModelSignals : IQSqlTableModelSignals {
    }
}
