//Auto-generated by kalyptus. DO NOT EDIT.
namespace Qyoto {
    using System;
    using System.Collections.Generic;
    [SmokeClass("QWebPluginFactory")]
    public abstract class QWebPluginFactory : QObject {
        protected QWebPluginFactory(Type dummy) : base((Type) null) {}
        [SmokeClass("QWebPluginFactory::MimeType")]
        public class MimeType : Object, IDisposable {
            protected SmokeInvocation interceptor = null;
            private IntPtr smokeObject;
            protected MimeType(Type dummy) {}
            protected void CreateProxy() {
                interceptor = new SmokeInvocation(typeof(MimeType), this);
            }
            public string Name {
                get { return (string) interceptor.Invoke("name", "name()", typeof(string)); }
                set { interceptor.Invoke("setName$", "setName(QString)", typeof(void), typeof(string), value); }
            }
            public string Description {
                get { return (string) interceptor.Invoke("description", "description()", typeof(string)); }
                set { interceptor.Invoke("setDescription$", "setDescription(QString)", typeof(void), typeof(string), value); }
            }
            public List<string> FileExtensions {
                get { return (List<string>) interceptor.Invoke("fileExtensions", "fileExtensions()", typeof(List<string>)); }
                set { interceptor.Invoke("setFileExtensions?", "setFileExtensions(QStringList)", typeof(void), typeof(List<string>), value); }
            }
            public MimeType() : this((Type) null) {
                CreateProxy();
                interceptor.Invoke("MimeType", "MimeType()", typeof(void));
            }
            ~MimeType() {
                interceptor.Invoke("~MimeType", "~MimeType()", typeof(void));
            }
            public void Dispose() {
                interceptor.Invoke("~MimeType", "~MimeType()", typeof(void));
            }
        }
        [SmokeClass("QWebPluginFactory::Plugin")]
        public class Plugin : Object, IDisposable {
            protected SmokeInvocation interceptor = null;
            private IntPtr smokeObject;
            protected Plugin(Type dummy) {}
            protected void CreateProxy() {
                interceptor = new SmokeInvocation(typeof(Plugin), this);
            }
            public string Name {
                get { return (string) interceptor.Invoke("name", "name()", typeof(string)); }
                set { interceptor.Invoke("setName$", "setName(QString)", typeof(void), typeof(string), value); }
            }
            public string Description {
                get { return (string) interceptor.Invoke("description", "description()", typeof(string)); }
                set { interceptor.Invoke("setDescription$", "setDescription(QString)", typeof(void), typeof(string), value); }
            }
            public List<QWebPluginFactory.MimeType> MimeTypes {
                get { return (List<QWebPluginFactory.MimeType>) interceptor.Invoke("mimeTypes", "mimeTypes()", typeof(List<QWebPluginFactory.MimeType>)); }
                set { interceptor.Invoke("setMimeTypes?", "setMimeTypes(QList<QWebPluginFactory::MimeType>)", typeof(void), typeof(List<QWebPluginFactory.MimeType>), value); }
            }
            public Plugin() : this((Type) null) {
                CreateProxy();
                interceptor.Invoke("Plugin", "Plugin()", typeof(void));
            }
            ~Plugin() {
                interceptor.Invoke("~Plugin", "~Plugin()", typeof(void));
            }
            public void Dispose() {
                interceptor.Invoke("~Plugin", "~Plugin()", typeof(void));
            }
        }
        protected new void CreateProxy() {
            interceptor = new SmokeInvocation(typeof(QWebPluginFactory), this);
        }
        private static SmokeInvocation staticInterceptor = null;
        static QWebPluginFactory() {
            staticInterceptor = new SmokeInvocation(typeof(QWebPluginFactory), null);
        }
        public enum Extension {
        }
        // bool extension(QWebPluginFactory::Extension arg1,const QWebPluginFactory::ExtensionOption* arg2,QWebPluginFactory::ExtensionReturn* arg3); >>>> NOT CONVERTED
        // bool extension(QWebPluginFactory::Extension arg1,const QWebPluginFactory::ExtensionOption* arg2); >>>> NOT CONVERTED
        public QWebPluginFactory(QObject parent) : this((Type) null) {
            CreateProxy();
            interceptor.Invoke("QWebPluginFactory#", "QWebPluginFactory(QObject*)", typeof(void), typeof(QObject), parent);
        }
        public QWebPluginFactory() : this((Type) null) {
            CreateProxy();
            interceptor.Invoke("QWebPluginFactory", "QWebPluginFactory()", typeof(void));
        }
        [SmokeMethod("plugins() const")]
        public abstract List<QWebPluginFactory.Plugin> Plugins();
        [SmokeMethod("refreshPlugins()")]
        public virtual void RefreshPlugins() {
            interceptor.Invoke("refreshPlugins", "refreshPlugins()", typeof(void));
        }
        [SmokeMethod("create(const QString&, const QUrl&, const QStringList&, const QStringList&) const")]
        public abstract QObject Create(string mimeType, QUrl url, List<string> argumentNames, List<string> argumentValues);
        [SmokeMethod("extension(QWebPluginFactory::Extension)")]
        public virtual bool extension(QWebPluginFactory.Extension extension) {
            return (bool) interceptor.Invoke("extension$", "extension(QWebPluginFactory::Extension)", typeof(bool), typeof(QWebPluginFactory.Extension), extension);
        }
        [SmokeMethod("supportsExtension(QWebPluginFactory::Extension) const")]
        public virtual bool SupportsExtension(QWebPluginFactory.Extension extension) {
            return (bool) interceptor.Invoke("supportsExtension$", "supportsExtension(QWebPluginFactory::Extension) const", typeof(bool), typeof(QWebPluginFactory.Extension), extension);
        }
        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 IQWebPluginFactorySignals Emit {
            get { return (IQWebPluginFactorySignals) Q_EMIT; }
        }
    }

    public interface IQWebPluginFactorySignals : IQObjectSignals {
    }
}
