//Auto-generated by kalyptus. DO NOT EDIT.
namespace KCModuleLoader {
    using Kimono;
    using System;
    using Qyoto;
    using System.Collections.Generic;
    /// <remarks>
    ///  Determines the way errors are reported
    ///      </remarks>        <short>    Determines the way errors are reported      </short>
    public enum ErrorReporting {
        None = 0,
        Inline = 1,
        Dialog = 2,
        Both = 3,
    }
    /// <remarks>
    ///  KCModuleLoader tries in several ways 
    ///  to locate and load a KCModule. If loading fails a 
    ///  zero pointer is returned. \n
    ///  It is very unlikely KCModuleLoader is what you want 
    ///  and <see cref="KCModuleProxy"></see> suits your needs.
    /// </remarks>        <author> Frans Englich <frans.englich@telia.com>
    /// </author>
    ///         <short> Loads a KControl Module. </short>
    [SmokeClass("KCModuleLoader")]
    public class Global {
        private static SmokeInvocation staticInterceptor = null;
        static Global() {
            staticInterceptor = new SmokeInvocation(typeof(Global), null);
        }
        /// <remarks>
        ///  Loads a <see cref="KCModule"></see>. If loading fails a zero pointer is returned.
        /// <param> name="module" what module to load
        /// </param><param> name="report" see ErrorReporting
        /// </param></remarks>        <return> a pointer to the loaded @ref KCModule
        ///      </return>
        ///         <short>    Loads a @ref KCModule.</short>
        public static KCModule LoadModule(KCModuleInfo module, KCModuleLoader.ErrorReporting report, QWidget parent, List<string> args) {
            return (KCModule) staticInterceptor.Invoke("loadModule#$#?", "loadModule(const KCModuleInfo&, KCModuleLoader::ErrorReporting, QWidget*, const QStringList&)", typeof(KCModule), typeof(KCModuleInfo), module, typeof(KCModuleLoader.ErrorReporting), report, typeof(QWidget), parent, typeof(List<string>), args);
        }
        public static KCModule LoadModule(KCModuleInfo module, KCModuleLoader.ErrorReporting report, QWidget parent) {
            return (KCModule) staticInterceptor.Invoke("loadModule#$#", "loadModule(const KCModuleInfo&, KCModuleLoader::ErrorReporting, QWidget*)", typeof(KCModule), typeof(KCModuleInfo), module, typeof(KCModuleLoader.ErrorReporting), report, typeof(QWidget), parent);
        }
        public static KCModule LoadModule(KCModuleInfo module, KCModuleLoader.ErrorReporting report) {
            return (KCModule) staticInterceptor.Invoke("loadModule#$", "loadModule(const KCModuleInfo&, KCModuleLoader::ErrorReporting)", typeof(KCModule), typeof(KCModuleInfo), module, typeof(KCModuleLoader.ErrorReporting), report);
        }
        /// <remarks>
        ///  Loads a <see cref="KCModule"></see>. If loading fails a zero pointer is returned.
        /// <param> name="module" what module to load
        /// </param><param> name="report" see ErrorReporting
        /// </param></remarks>        <return> a pointer to the loaded @ref KCModule
        ///      </return>
        ///         <short>    Loads a @ref KCModule.</short>
        public static KCModule LoadModule(string module, KCModuleLoader.ErrorReporting report, QWidget parent, List<string> args) {
            return (KCModule) staticInterceptor.Invoke("loadModule$$#?", "loadModule(const QString&, KCModuleLoader::ErrorReporting, QWidget*, const QStringList&)", typeof(KCModule), typeof(string), module, typeof(KCModuleLoader.ErrorReporting), report, typeof(QWidget), parent, typeof(List<string>), args);
        }
        public static KCModule LoadModule(string module, KCModuleLoader.ErrorReporting report, QWidget parent) {
            return (KCModule) staticInterceptor.Invoke("loadModule$$#", "loadModule(const QString&, KCModuleLoader::ErrorReporting, QWidget*)", typeof(KCModule), typeof(string), module, typeof(KCModuleLoader.ErrorReporting), report, typeof(QWidget), parent);
        }
        public static KCModule LoadModule(string module, KCModuleLoader.ErrorReporting report) {
            return (KCModule) staticInterceptor.Invoke("loadModule$$", "loadModule(const QString&, KCModuleLoader::ErrorReporting)", typeof(KCModule), typeof(string), module, typeof(KCModuleLoader.ErrorReporting), report);
        }
        /// <remarks>
        ///  Unloads the module's library
        /// <param> name="mod" What module to unload for
        ///      </param></remarks>        <short>    Unloads the module's library </short>
        public static void UnloadModule(KCModuleInfo mod) {
            staticInterceptor.Invoke("unloadModule#", "unloadModule(const KCModuleInfo&)", typeof(void), typeof(KCModuleInfo), mod);
        }
        /// <remarks>
        ///  Returns a KCModule containing the messages <code>report</code> and <code>text.</code>
        /// <param> name="report" the type of error reporting, see ErrorReporting
        /// </param><param> name="text" the main message
        /// </param><param> name="details" any additional details
        /// </param>     </remarks>        <short>    Returns a KCModule containing the messages <code>report</code> and <code>text.</code></short>
        public static KCModule ReportError(KCModuleLoader.ErrorReporting report, string text, string details, QWidget parent) {
            return (KCModule) staticInterceptor.Invoke("reportError$$$#", "reportError(KCModuleLoader::ErrorReporting, const QString&, const QString&, QWidget*)", typeof(KCModule), typeof(KCModuleLoader.ErrorReporting), report, typeof(string), text, typeof(string), details, typeof(QWidget), parent);
        }
    }
}
