//Auto-generated by kalyptus. DO NOT EDIT.
namespace Qyoto {
    using System;
    [SmokeClass("QMetaProperty")]
    public class QMetaProperty : Object, IDisposable {
        protected SmokeInvocation interceptor = null;
        private IntPtr smokeObject;
        protected QMetaProperty(Type dummy) {}
        protected void CreateProxy() {
            interceptor = new SmokeInvocation(typeof(QMetaProperty), this);
        }
        public QMetaProperty() : this((Type) null) {
            CreateProxy();
            interceptor.Invoke("QMetaProperty", "QMetaProperty()", typeof(void));
        }
        public string Name() {
            return (string) interceptor.Invoke("name", "name() const", typeof(string));
        }
        public string TypeName() {
            return (string) interceptor.Invoke("typeName", "typeName() const", typeof(string));
        }
        public QVariant.TypeOf type() {
            return (QVariant.TypeOf) interceptor.Invoke("type", "type() const", typeof(QVariant.TypeOf));
        }
        public int UserType() {
            return (int) interceptor.Invoke("userType", "userType() const", typeof(int));
        }
        public bool IsReadable() {
            return (bool) interceptor.Invoke("isReadable", "isReadable() const", typeof(bool));
        }
        public bool IsWritable() {
            return (bool) interceptor.Invoke("isWritable", "isWritable() const", typeof(bool));
        }
        public bool IsResettable() {
            return (bool) interceptor.Invoke("isResettable", "isResettable() const", typeof(bool));
        }
        public bool IsDesignable(QObject arg1) {
            return (bool) interceptor.Invoke("isDesignable#", "isDesignable(const QObject*) const", typeof(bool), typeof(QObject), arg1);
        }
        public bool IsDesignable() {
            return (bool) interceptor.Invoke("isDesignable", "isDesignable() const", typeof(bool));
        }
        public bool IsScriptable(QObject arg1) {
            return (bool) interceptor.Invoke("isScriptable#", "isScriptable(const QObject*) const", typeof(bool), typeof(QObject), arg1);
        }
        public bool IsScriptable() {
            return (bool) interceptor.Invoke("isScriptable", "isScriptable() const", typeof(bool));
        }
        public bool IsStored(QObject arg1) {
            return (bool) interceptor.Invoke("isStored#", "isStored(const QObject*) const", typeof(bool), typeof(QObject), arg1);
        }
        public bool IsStored() {
            return (bool) interceptor.Invoke("isStored", "isStored() const", typeof(bool));
        }
        public bool IsEditable(QObject arg1) {
            return (bool) interceptor.Invoke("isEditable#", "isEditable(const QObject*) const", typeof(bool), typeof(QObject), arg1);
        }
        public bool IsEditable() {
            return (bool) interceptor.Invoke("isEditable", "isEditable() const", typeof(bool));
        }
        public bool IsUser(QObject arg1) {
            return (bool) interceptor.Invoke("isUser#", "isUser(const QObject*) const", typeof(bool), typeof(QObject), arg1);
        }
        public bool IsUser() {
            return (bool) interceptor.Invoke("isUser", "isUser() const", typeof(bool));
        }
        public bool IsFlagType() {
            return (bool) interceptor.Invoke("isFlagType", "isFlagType() const", typeof(bool));
        }
        public bool IsEnumType() {
            return (bool) interceptor.Invoke("isEnumType", "isEnumType() const", typeof(bool));
        }
        public QMetaEnum Enumerator() {
            return (QMetaEnum) interceptor.Invoke("enumerator", "enumerator() const", typeof(QMetaEnum));
        }
        public QVariant Read(QObject arg1) {
            return (QVariant) interceptor.Invoke("read#", "read(const QObject*) const", typeof(QVariant), typeof(QObject), arg1);
        }
        public bool Write(QObject arg1, QVariant value) {
            return (bool) interceptor.Invoke("write##", "write(QObject*, const QVariant&) const", typeof(bool), typeof(QObject), arg1, typeof(QVariant), value);
        }
        public bool Reset(QObject arg1) {
            return (bool) interceptor.Invoke("reset#", "reset(QObject*) const", typeof(bool), typeof(QObject), arg1);
        }
        public bool HasStdCppSet() {
            return (bool) interceptor.Invoke("hasStdCppSet", "hasStdCppSet() const", typeof(bool));
        }
        public bool IsValid() {
            return (bool) interceptor.Invoke("isValid", "isValid() const", typeof(bool));
        }
        public QMetaObject EnclosingMetaObject() {
            return (QMetaObject) interceptor.Invoke("enclosingMetaObject", "enclosingMetaObject() const", typeof(QMetaObject));
        }
        ~QMetaProperty() {
            interceptor.Invoke("~QMetaProperty", "~QMetaProperty()", typeof(void));
        }
        public void Dispose() {
            interceptor.Invoke("~QMetaProperty", "~QMetaProperty()", typeof(void));
        }
    }
}
