//Auto-generated by kalyptus. DO NOT EDIT.
namespace Kimono {
    using System;
    using Qyoto;
    /// <remarks>
    ///  Represents an action in a .desktop file
    ///  Actions are defined with the config key Actions in the [Desktop Entry]
    ///  group, followed by one group per action, as per the desktop entry standard.
    /// </remarks>        <short>    Represents an action in a .</short>
    ///         <see> KService.Actions</see>
    [SmokeClass("KServiceAction")]
    public class KServiceAction : Object, IDisposable {
        protected SmokeInvocation interceptor = null;
        private IntPtr smokeObject;
        protected KServiceAction(Type dummy) {}
        protected void CreateProxy() {
            interceptor = new SmokeInvocation(typeof(KServiceAction), this);
        }
        /// <remarks>
        ///  Creates a KServiceAction.
        ///  Normally you don't have to do this, KService creates the actions
        ///  when parsing the .desktop file.
        ///      </remarks>        <short>    Creates a KServiceAction.</short>
        public KServiceAction(string name, string text, string icon, string exec, bool noDisplay) : this((Type) null) {
            CreateProxy();
            interceptor.Invoke("KServiceAction$$$$$", "KServiceAction(const QString&, const QString&, const QString&, const QString&, bool)", typeof(void), typeof(string), name, typeof(string), text, typeof(string), icon, typeof(string), exec, typeof(bool), noDisplay);
        }
        public KServiceAction(string name, string text, string icon, string exec) : this((Type) null) {
            CreateProxy();
            interceptor.Invoke("KServiceAction$$$$", "KServiceAction(const QString&, const QString&, const QString&, const QString&)", typeof(void), typeof(string), name, typeof(string), text, typeof(string), icon, typeof(string), exec);
        }
        /// <remarks>
        ///  Needed for operator>>
        ///      </remarks>        <short>   </short>
        public KServiceAction() : this((Type) null) {
            CreateProxy();
            interceptor.Invoke("KServiceAction", "KServiceAction()", typeof(void));
        }
        /// <remarks>
        ///  Copy constructor
        ///      </remarks>        <short>    Copy constructor      </short>
        public KServiceAction(KServiceAction other) : this((Type) null) {
            CreateProxy();
            interceptor.Invoke("KServiceAction#", "KServiceAction(const KServiceAction&)", typeof(void), typeof(KServiceAction), other);
        }
        /// <remarks>
        ///  Sets the action's internal data to the given <code>userData.</code>
        ///      </remarks>        <short>    Sets the action's internal data to the given <code>userData.</code></short>
        public void SetData(QVariant userData) {
            interceptor.Invoke("setData#", "setData(const QVariant&)", typeof(void), typeof(QVariant), userData);
        }
        /// <remarks>
        /// </remarks>        <return> the action's internal data.
        ///      </return>
        ///         <short>   </short>
        public QVariant Data() {
            return (QVariant) interceptor.Invoke("data", "data() const", typeof(QVariant));
        }
        /// <remarks>
        /// </remarks>        <return> the action's internal name
        ///  For instance Actions=Setup;... and the group [Desktop Action Setup]
        ///  define an action with the name "Setup".
        ///      </return>
        ///         <short>   </short>
        public string Name() {
            return (string) interceptor.Invoke("name", "name() const", typeof(string));
        }
        /// <remarks>
        /// </remarks>        <return> the action's text, as defined by the Name key in the desktop action group
        ///      </return>
        ///         <short>   </short>
        public string Text() {
            return (string) interceptor.Invoke("text", "text() const", typeof(string));
        }
        /// <remarks>
        /// </remarks>        <return> the action's icon, as defined by the Icon key in the desktop action group
        ///      </return>
        ///         <short>   </short>
        public string Icon() {
            return (string) interceptor.Invoke("icon", "icon() const", typeof(string));
        }
        /// <remarks>
        /// </remarks>        <return> the action's exec command, as defined by the Exec key in the desktop action group
        ///      </return>
        ///         <short>   </short>
        public string Exec() {
            return (string) interceptor.Invoke("exec", "exec() const", typeof(string));
        }
        /// <remarks>
        ///  Returns whether the action should be suppressed in menus.
        ///  This is useful for having actions with a known name that the code
        ///  looks for explicitly, like Setup and Root for kscreensaver actions,
        ///  and which should not appear in popup menus.
        /// </remarks>        <return> true to suppress this service
        ///      </return>
        ///         <short>    Returns whether the action should be suppressed in menus.</short>
        public bool NoDisplay() {
            return (bool) interceptor.Invoke("noDisplay", "noDisplay() const", typeof(bool));
        }
        /// <remarks>
        ///  Returns whether the action is a separator.
        ///  This is true when the Actions key contains "_SEPARATOR_".
        ///      </remarks>        <short>    Returns whether the action is a separator.</short>
        public bool IsSeparator() {
            return (bool) interceptor.Invoke("isSeparator", "isSeparator() const", typeof(bool));
        }
        ~KServiceAction() {
            interceptor.Invoke("~KServiceAction", "~KServiceAction()", typeof(void));
        }
        public void Dispose() {
            interceptor.Invoke("~KServiceAction", "~KServiceAction()", typeof(void));
        }
    }
}
