//Auto-generated by kalyptus. DO NOT EDIT.
namespace Kimono {
    using System;
    using Qyoto;
    /// <remarks>
    ///  A generic tool that processes data.
    ///  A data-tool is a "plugin" for an application, that acts (reads/modifies)
    ///  on a portion of the data present in the document (e.g. a text document,
    ///  a single word or paragraph, a KSpread cell, an image, etc.)
    ///  The application has some generic code for presenting the tools in a popupmenu
    /// </remarks>        <short>    A generic tool that processes data.</short>
    ///         <see> KDataToolAction</see>
    ///         <see> for</see>
    ///         <see> activating</see>
    ///         <see> a</see>
    ///         <see> tool</see>
    ///         <see> passing</see>
    ///         <see> it</see>
    ///         <see> the</see>
    ///         <see> data</see>
    ///         <see> (and</see>
    ///         <see> possibly</see>
    ///         <see> getting</see>
    ///         <see> modified</see>
    ///         <see> data</see>
    ///         <see> from</see>
    ///         <see> it).</see>
    [SmokeClass("KDataTool")]
    public abstract class KDataTool : QObject {
        protected KDataTool(Type dummy) : base((Type) null) {}
        protected new void CreateProxy() {
            interceptor = new SmokeInvocation(typeof(KDataTool), this);
        }
        // bool run(const QString& arg1,void* arg2,const QString& arg3,const QString& arg4); >>>> NOT CONVERTED
        /// <remarks>
        ///  Constructor
        ///  The data-tool is only created when a menu-item, that relates to it, is activated.
        /// <param> name="parent" the parent of the QObject (or 0 for parent-less KDataTools)
        ///      </param></remarks>        <short>    Constructor  The data-tool is only created when a menu-item, that relates to it, is activated.</short>
        public KDataTool(QObject parent) : this((Type) null) {
            CreateProxy();
            interceptor.Invoke("KDataTool#", "KDataTool(QObject*)", typeof(void), typeof(QObject), parent);
        }
        public KDataTool() : this((Type) null) {
            CreateProxy();
            interceptor.Invoke("KDataTool", "KDataTool()", typeof(void));
        }
        /// <remarks>
        ///      </remarks>        <short>   </short>
        public void SetComponentData(KComponentData componentData) {
            interceptor.Invoke("setComponentData#", "setComponentData(const KComponentData&)", typeof(void), typeof(KComponentData), componentData);
        }
        /// <remarks>
        ///  Returns the instance of the part that created this tool.
        ///  Usually used if the tool wants to read its configuration in the app's config file.
        /// </remarks>        <return> the instance of the part that created this tool.
        ///      </return>
        ///         <short>    Returns the instance of the part that created this tool.</short>
        public KComponentData ComponentData() {
            return (KComponentData) interceptor.Invoke("componentData", "componentData() const", typeof(KComponentData));
        }
        /// <remarks>
        ///  Interface for 'running' this tool.
        ///  This is the method that the data-tool must implement.
        /// <param> name="command" is the command that was selected (see KDataToolInfo.Commands())
        /// </param><param> name="data" the data provided by the application, on which to run the tool.
        ///              The application is responsible for setting that data before running the tool,
        ///              and for getting it back and updating itself with it, after the tool ran.
        /// </param><param> name="datatype" defines the type of <code>data.</code>
        /// </param><param> name="mimetype" defines the mimetype of the data (for instance datatype may be
        ///                  string, but the mimetype can be text/plain, text/html etc.)
        /// </param></remarks>        <return> true if successful, false otherwise
        ///      </return>
        ///         <short>    Interface for 'running' this tool.</short>
        protected new IKDataToolSignals Emit {
            get { return (IKDataToolSignals) Q_EMIT; }
        }
    }

    public interface IKDataToolSignals : IQObjectSignals {
    }
}
