//Auto-generated by kalyptus. DO NOT EDIT.
namespace Kimono {
    using System;
    using Qyoto;
    /// <remarks>
    ///  This class is used to store information about a license.
    ///  The license can be one of some predefined, one given as text or one
    ///  that can be loaded from a file. This class is used in the KAboutData class.
    ///  Explicitly creating a KAboutLicense object is not possible.
    ///  If the license is wanted for a KDE component having KAboutData object,
    ///  use KAboutData.Licenses() to get the licenses for that component.
    ///  If the license is for a non-code resource and given by a keyword
    ///  (e.g. in .desktop files), try using KAboutLicense.ByKeyword().
    ///  @note Instead of the more usual i18n calls, for translatable text the ki18n
    ///  calls are used to produce KLocalizedStrings, which can delay the translation
    ///  lookup. This is necessary because the translation catalogs are usually not
    ///  yet initialized at the point where KAboutData is constructed.
    ///  </remarks>        <short>    This class is used to store information about a license.</short>
    [SmokeClass("KAboutLicense")]
    public class KAboutLicense : Object, IDisposable {
        protected SmokeInvocation interceptor = null;
        private IntPtr smokeObject;
        protected KAboutLicense(Type dummy) {}
        protected void CreateProxy() {
            interceptor = new SmokeInvocation(typeof(KAboutLicense), this);
        }
        private static SmokeInvocation staticInterceptor = null;
        static KAboutLicense() {
            staticInterceptor = new SmokeInvocation(typeof(KAboutLicense), null);
        }
        /// <remarks>
        ///  Copy constructor.  Performs a deep copy.
        /// <param> name="other" object to copy
        ///      </param></remarks>        <short>    Copy constructor.</short>
        public KAboutLicense(KAboutLicense other) : this((Type) null) {
            CreateProxy();
            interceptor.Invoke("KAboutLicense#", "KAboutLicense(const KAboutLicense&)", typeof(void), typeof(KAboutLicense), other);
        }
        /// <remarks>
        ///  Returns the full license text. If the licenseType argument of the
        ///  constructor has been used, any text defined by setLicenseText is ignored,
        ///  and the standard text for the chosen license will be returned.
        /// </remarks>        <return> The license text.
        ///      </return>
        ///         <short>    Returns the full license text.</short>
        public string Text() {
            return (string) interceptor.Invoke("text", "text() const", typeof(string));
        }
        /// <remarks>
        ///  Returns the license name.
        /// </remarks>        <return> The license name as a string.
        ///      </return>
        ///         <short>    Returns the license name.</short>
        public string Name(KAboutData.NameFormat formatName) {
            return (string) interceptor.Invoke("name$", "name(KAboutData::NameFormat) const", typeof(string), typeof(KAboutData.NameFormat), formatName);
        }
        /// <remarks>
        ///  Returns the license key.
        /// </remarks>        <return> The license key as element of KAboutData.LicenseKey enum.
        /// </return>
        ///         <short>    Returns the license key.</short>
        public KAboutData.LicenseKey Key() {
            return (KAboutData.LicenseKey) interceptor.Invoke("key", "key() const", typeof(KAboutData.LicenseKey));
        }
        ~KAboutLicense() {
            interceptor.Invoke("~KAboutLicense", "~KAboutLicense()", typeof(void));
        }
        public void Dispose() {
            interceptor.Invoke("~KAboutLicense", "~KAboutLicense()", typeof(void));
        }
        /// <remarks>
        ///  Fetch a known license by a keyword.
        ///  Frequently the license data is provided by a terse keyword-like string,
        ///  e.g. by a field in a .desktop file. Using this method, an application
        ///  can get hold of a proper KAboutLicense object, providing that the
        ///  license is one of the several known to KDE, and use it to present
        ///  more human-readable information to the user.
        ///  Keywords are matched by stripping all whitespace and lowercasing.
        ///  The known keywords correspond to the KAboutData.LicenseKey enumeration,
        ///  e.g. any of "LGPLV3", "LGPLv3", "LGPL v3" would match License_LGPL_V3.
        ///  If there is no match for the keyword, a valid license object is still
        ///  returned, with its name and text informing about a custom license,
        ///  and its key equal to KAboutData.License_Custom.
        /// <param> name="keyword" The license keyword.
        /// </param></remarks>        <return> The license object.
        /// </return>
        ///         <short>    Fetch a known license by a keyword.</short>
        ///         <see> KAboutData.LicenseKey</see>
        public static KAboutLicense ByKeyword(string keyword) {
            return (KAboutLicense) staticInterceptor.Invoke("byKeyword$", "byKeyword(const QString&)", typeof(KAboutLicense), typeof(string), keyword);
        }
    }
}
