//Auto-generated by kalyptus. DO NOT EDIT.
namespace Qyoto {
    using System;
    [SmokeClass("QItemEditorFactory")]
    public class QItemEditorFactory : Object, IDisposable {
        protected SmokeInvocation interceptor = null;
        private IntPtr smokeObject;
        protected QItemEditorFactory(Type dummy) {}
        protected void CreateProxy() {
            interceptor = new SmokeInvocation(typeof(QItemEditorFactory), this);
        }
        private static SmokeInvocation staticInterceptor = null;
        static QItemEditorFactory() {
            staticInterceptor = new SmokeInvocation(typeof(QItemEditorFactory), null);
        }
        public QItemEditorFactory() : this((Type) null) {
            CreateProxy();
            interceptor.Invoke("QItemEditorFactory", "QItemEditorFactory()", typeof(void));
        }
        [SmokeMethod("createEditor(QVariant::Type, QWidget*) const")]
        public virtual QWidget CreateEditor(QVariant.TypeOf type, QWidget parent) {
            return (QWidget) interceptor.Invoke("createEditor$#", "createEditor(QVariant::Type, QWidget*) const", typeof(QWidget), typeof(QVariant.TypeOf), type, typeof(QWidget), parent);
        }
        [SmokeMethod("valuePropertyName(QVariant::Type) const")]
        public virtual QByteArray ValuePropertyName(QVariant.TypeOf type) {
            return (QByteArray) interceptor.Invoke("valuePropertyName$", "valuePropertyName(QVariant::Type) const", typeof(QByteArray), typeof(QVariant.TypeOf), type);
        }
        public void RegisterEditor(QVariant.TypeOf type, QItemEditorCreatorBase creator) {
            interceptor.Invoke("registerEditor$#", "registerEditor(QVariant::Type, QItemEditorCreatorBase*)", typeof(void), typeof(QVariant.TypeOf), type, typeof(QItemEditorCreatorBase), creator);
        }
        ~QItemEditorFactory() {
            interceptor.Invoke("~QItemEditorFactory", "~QItemEditorFactory()", typeof(void));
        }
        public void Dispose() {
            interceptor.Invoke("~QItemEditorFactory", "~QItemEditorFactory()", typeof(void));
        }
        public static QItemEditorFactory DefaultFactory() {
            return (QItemEditorFactory) staticInterceptor.Invoke("defaultFactory", "defaultFactory()", typeof(QItemEditorFactory));
        }
        public static void SetDefaultFactory(QItemEditorFactory factory) {
            staticInterceptor.Invoke("setDefaultFactory#", "setDefaultFactory(QItemEditorFactory*)", typeof(void), typeof(QItemEditorFactory), factory);
        }
    }
}
