//Auto-generated by kalyptus. DO NOT EDIT.
namespace Kimono {
    using System;
    using Qyoto;
    /// <remarks>
    ///  This class is used to store information about a person or developer.
    ///  It can store the person's name, a task, an email address and a
    ///  link to a home page. This class is intended for use in the
    ///  KAboutData class, but it can be used elsewhere as well.
    ///  Normally you should at least define the person's name.
    ///  Creating a KAboutPerson object by yourself is relatively useless,
    ///  but the KAboutData methods KAboutData.Authors() and KAboutData.Credits()
    ///  return lists of KAboutPerson data objects which you can examine.
    ///  Example usage within a main(), retrieving the list of people involved
    ///  with a program and re-using data from one of them:
    ///  @code
    ///  KAboutData about("khello", "khello", ki18n("KHello"), "0.1",
    ///                    ki18n("A KDE version of Hello, world!"),
    ///                    KAboutData.License_LGPL,
    ///                    ki18n("Copyright (c) 2003 Developer"));
    ///  about.addAuthor(ki18n("Joe Developer"), ki18n("developer"), "joe@host.com", 0);
    ///  QList<KAboutPerson> people = about.authors();
    ///  about.addCredit(people[0].name(), people[0].task());
    ///  @endcode
    ///  @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.
    ///  @bc KDE4
    ///  </remarks>        <short>    This class is used to store information about a person or developer.</short>
    [SmokeClass("KAboutPerson")]
    public class KAboutPerson : Object, IDisposable {
        protected SmokeInvocation interceptor = null;
        private IntPtr smokeObject;
        protected KAboutPerson(Type dummy) {}
        protected void CreateProxy() {
            interceptor = new SmokeInvocation(typeof(KAboutPerson), this);
        }
        /// <remarks>
        ///  Convenience constructor
        /// <param> name="name" The name of the person.
        /// </param><param> name="task" The task of this person.
        /// </param><param> name="emailAddress" The email address of the person.
        /// </param><param> name="webAddress" Home page of the person.
        ///      </param></remarks>        <short>    Convenience constructor </short>
        public KAboutPerson(KLocalizedString name, KLocalizedString task, QByteArray emailAddress, QByteArray webAddress) : this((Type) null) {
            CreateProxy();
            interceptor.Invoke("KAboutPerson####", "KAboutPerson(const KLocalizedString&, const KLocalizedString&, const QByteArray&, const QByteArray&)", typeof(void), typeof(KLocalizedString), name, typeof(KLocalizedString), task, typeof(QByteArray), emailAddress, typeof(QByteArray), webAddress);
        }
        public KAboutPerson(KLocalizedString name, KLocalizedString task, QByteArray emailAddress) : this((Type) null) {
            CreateProxy();
            interceptor.Invoke("KAboutPerson###", "KAboutPerson(const KLocalizedString&, const KLocalizedString&, const QByteArray&)", typeof(void), typeof(KLocalizedString), name, typeof(KLocalizedString), task, typeof(QByteArray), emailAddress);
        }
        public KAboutPerson(KLocalizedString name, KLocalizedString task) : this((Type) null) {
            CreateProxy();
            interceptor.Invoke("KAboutPerson##", "KAboutPerson(const KLocalizedString&, const KLocalizedString&)", typeof(void), typeof(KLocalizedString), name, typeof(KLocalizedString), task);
        }
        public KAboutPerson(KLocalizedString name) : this((Type) null) {
            CreateProxy();
            interceptor.Invoke("KAboutPerson#", "KAboutPerson(const KLocalizedString&)", typeof(void), typeof(KLocalizedString), name);
        }
        /// <remarks>
        ///  Copy constructor.  Performs a deep copy.
        /// <param> name="other" object to copy
        ///      </param></remarks>        <short>    Copy constructor.</short>
        public KAboutPerson(KAboutPerson other) : this((Type) null) {
            CreateProxy();
            interceptor.Invoke("KAboutPerson#", "KAboutPerson(const KAboutPerson&)", typeof(void), typeof(KAboutPerson), other);
        }
        /// <remarks>
        ///  The person's name
        /// </remarks>        <return> the person's name (can be string(), if it has been
        ///            constructed with an empty name)
        ///      </return>
        ///         <short>    The person's name </short>
        public string Name() {
            return (string) interceptor.Invoke("name", "name() const", typeof(string));
        }
        /// <remarks>
        ///  The person's task
        /// </remarks>        <return> the person's task (can be string(), if it has been
        ///            constructed with an empty task)
        ///      </return>
        ///         <short>    The person's task </short>
        public string Task() {
            return (string) interceptor.Invoke("task", "task() const", typeof(string));
        }
        /// <remarks>
        ///  The person's email address
        /// </remarks>        <return> the person's email address (can be string(), if it has been
        ///            constructed with an empty email)
        ///      </return>
        ///         <short>    The person's email address </short>
        public string EmailAddress() {
            return (string) interceptor.Invoke("emailAddress", "emailAddress() const", typeof(string));
        }
        /// <remarks>
        ///  The home page or a relevant link
        /// </remarks>        <return> the persons home page (can be string(), if it has been
        ///            constructed with an empty home page)
        ///      </return>
        ///         <short>    The home page or a relevant link </short>
        public string WebAddress() {
            return (string) interceptor.Invoke("webAddress", "webAddress() const", typeof(string));
        }
        ~KAboutPerson() {
            interceptor.Invoke("~KAboutPerson", "~KAboutPerson()", typeof(void));
        }
        public void Dispose() {
            interceptor.Invoke("~KAboutPerson", "~KAboutPerson()", typeof(void));
        }
    }
}
