//Auto-generated by kalyptus. DO NOT EDIT.
namespace Plasma {
    using Plasma;
    using System;
    using Kimono;
    using Qyoto;
    using System.Collections.Generic;
    /// <remarks>
    ///  @class RunnerSyntax
    ///  Represents a query prototype that the runner accepts. These can be
    ///  created and registered with AbstractRunner.AddSyntax(Syntax &) to
    ///  allow applications to show to the user what the runner is currently
    ///  capable of doing
    ///  </remarks>        <short>    @class RunnerSyntax </short>
    [SmokeClass("Plasma::RunnerSyntax")]
    public class RunnerSyntax : Object, IDisposable {
        protected SmokeInvocation interceptor = null;
        private IntPtr smokeObject;
        protected RunnerSyntax(Type dummy) {}
        protected void CreateProxy() {
            interceptor = new SmokeInvocation(typeof(RunnerSyntax), this);
        }
        /// <remarks>
        ///  Constructs a simple syntax object
        ///  @arg exampleQuery an example of the query, with :q: placed wherever
        ///                    search term text might appear. e.g. if the runner
        ///                    accepts "keyword some random text" then the value
        ///                    of this parameter should be "keyword :q:"
        ///  @arg descrition A description of what the described syntax does from
        ///                  the user's point of view.
        ///          </remarks>        <short>    Constructs a simple syntax object </short>
        public RunnerSyntax(string exampleQuery, string description) : this((Type) null) {
            CreateProxy();
            interceptor.Invoke("RunnerSyntax$$", "RunnerSyntax(const QString&, const QString&)", typeof(void), typeof(string), exampleQuery, typeof(string), description);
        }
        /// <remarks>
        ///  Copy constructor
        ///          </remarks>        <short>    Copy constructor          </short>
        public RunnerSyntax(Plasma.RunnerSyntax other) : this((Type) null) {
            CreateProxy();
            interceptor.Invoke("RunnerSyntax#", "RunnerSyntax(const Plasma::RunnerSyntax&)", typeof(void), typeof(Plasma.RunnerSyntax), other);
        }
        /// <remarks>
        ///  Adds a synonymous example query to this Syntax. Some runners may
        ///  accept multiple formulations of keywords to trigger the same behaviour.
        ///  This allows the runner to show these relationships by grouping the
        ///  example queries into one Syntax object
        ///  @arg exampleQuery an example of the query, with :q: placed wherever
        ///                    search term text might appear. e.g. if the runner
        ///                    accepts "keyword some random text" then the value
        ///                    of this parameter should be "keyword :q:"
        ///          </remarks>        <short>    Adds a synonymous example query to this Syntax.</short>
        public void AddExampleQuery(string exampleQuery) {
            interceptor.Invoke("addExampleQuery$", "addExampleQuery(const QString&)", typeof(void), typeof(string), exampleQuery);
        }
        /// <remarks>
        /// </remarks>        <return> the example queries associated with this Syntax object
        ///          </return>
        ///         <short>   </short>
        public List<string> ExampleQueries() {
            return (List<string>) interceptor.Invoke("exampleQueries", "exampleQueries() const", typeof(List<string>));
        }
        /// <remarks>
        /// </remarks>        <return> the example queries associated with this Syntax object, with
        ///  the searchTermDescription replacing instances of :q:. Used for showing
        ///  the queries in the user interface.
        ///          </return>
        ///         <short>   </short>
        public List<string> ExampleQueriesWithTermDescription() {
            return (List<string>) interceptor.Invoke("exampleQueriesWithTermDescription", "exampleQueriesWithTermDescription() const", typeof(List<string>));
        }
        /// <remarks>
        ///  Sets the description for the syntax, describing what it does from
        ///  the user's point of view.
        ///          </remarks>        <short>    Sets the description for the syntax, describing what it does from  the user's point of view.</short>
        public void SetDescription(string description) {
            interceptor.Invoke("setDescription$", "setDescription(const QString&)", typeof(void), typeof(string), description);
        }
        /// <remarks>
        /// </remarks>        <return> the description of what the syntax does from the user's
        ///          point of view
        ///          </return>
        ///         <short>   </short>
        public string Description() {
            return (string) interceptor.Invoke("description", "description() const", typeof(string));
        }
        /// <remarks>
        ///  Sets the text that should be used to replace instances of :q:
        ///  in the text. By default this is the generic phrase "search term".
        ///  If the syntax expects a specific kind of input, it may be defined
        ///  here. A syntax used by a runner that changes the brightness of the display 
        ///  may set this to "brightness" for instance.
        ///          </remarks>        <short>    Sets the text that should be used to replace instances of :q:  in the text.</short>
        public void SetSearchTermDescription(string description) {
            interceptor.Invoke("setSearchTermDescription$", "setSearchTermDescription(const QString&)", typeof(void), typeof(string), description);
        }
        /// <remarks>
        /// </remarks>        <return> a description of the search term for this syntax
        ///          </return>
        ///         <short>   </short>
        public string SearchTermDescription() {
            return (string) interceptor.Invoke("searchTermDescription", "searchTermDescription() const", typeof(string));
        }
        ~RunnerSyntax() {
            interceptor.Invoke("~RunnerSyntax", "~RunnerSyntax()", typeof(void));
        }
        public void Dispose() {
            interceptor.Invoke("~RunnerSyntax", "~RunnerSyntax()", typeof(void));
        }
    }
}
