//Auto-generated by kalyptus. DO NOT EDIT.
namespace Akonadi {
    using Kimono;
    using System;
    using Qyoto;
    /// <remarks>
    ///  The widget is listening on the dbus for changes, so the
    ///  widget is updated automatically as soon as new agent instances
    ///  are added to or removed from the system.
    ///  @code
    ///  MyWidget.MyWidget( QWidget parent )
    ///  {
    ///    QVBoxLayout layout = new QVBoxLayout( this );
    ///    mAgentInstanceWidget = new Akonadi.AgentInstanceWidget( this );
    ///    layout.AddWidget( mAgentInstanceWidget );
    ///    connect( mAgentInstanceWidget, SIGNAL("doubleClicked( Akonadi.AgentInstance& )"),
    ///             this, SLOT("slotInstanceSelected( Akonadi.AgentInstance& )") );
    ///  }
    ///  ...
    ///  MyWidget.SlotInstanceSelected( Akonadi.AgentInstance &instance )
    ///  {
    ///    qDebug() << "Selected instance" << instance.name();
    ///  }
    ///  @endcode
    ///  See <see cref="IAgentInstanceWidgetSignals"></see> for signals emitted by AgentInstanceWidget
    /// </remarks>        <author> Tobias Koenig <tokoe@kde.org>
    ///  </author>
    ///         <short> Provides a widget that lists all available agent instances. </short>
    [SmokeClass("Akonadi::AgentInstanceWidget")]
    public class AgentInstanceWidget : QWidget, IDisposable {
        protected AgentInstanceWidget(Type dummy) : base((Type) null) {}
        protected new void CreateProxy() {
            interceptor = new SmokeInvocation(typeof(AgentInstanceWidget), this);
        }
        /// <remarks>
        ///  Creates a new agent instance widget.
        /// <param> name="parent" The parent widget.
        ///      </param></remarks>        <short>    Creates a new agent instance widget.</short>
        public AgentInstanceWidget(QWidget parent) : this((Type) null) {
            CreateProxy();
            interceptor.Invoke("AgentInstanceWidget#", "AgentInstanceWidget(QWidget*)", typeof(void), typeof(QWidget), parent);
        }
        public AgentInstanceWidget() : this((Type) null) {
            CreateProxy();
            interceptor.Invoke("AgentInstanceWidget", "AgentInstanceWidget()", typeof(void));
        }
        /// <remarks>
        ///  Returns the current agent instance or an invalid agent instance
        ///  if no agent instance is selected.
        ///      </remarks>        <short>    Returns the current agent instance or an invalid agent instance  if no agent instance is selected.</short>
        public Akonadi.AgentInstance CurrentAgentInstance() {
            return (Akonadi.AgentInstance) interceptor.Invoke("currentAgentInstance", "currentAgentInstance() const", typeof(Akonadi.AgentInstance));
        }
        /// <remarks>
        ///       Returns the agent filter proxy model, use this to filter by
        ///       agent mimetype or capabilities.
        ///     </remarks>        <short>         Returns the agent filter proxy model, use this to filter by       agent mimetype or capabilities.</short>
        public Akonadi.AgentFilterProxyModel AgentFilterProxyModel() {
            return (Akonadi.AgentFilterProxyModel) interceptor.Invoke("agentFilterProxyModel", "agentFilterProxyModel() const", typeof(Akonadi.AgentFilterProxyModel));
        }
        ~AgentInstanceWidget() {
            interceptor.Invoke("~AgentInstanceWidget", "~AgentInstanceWidget()", typeof(void));
        }
        public new void Dispose() {
            interceptor.Invoke("~AgentInstanceWidget", "~AgentInstanceWidget()", typeof(void));
        }
        protected new IAgentInstanceWidgetSignals Emit {
            get { return (IAgentInstanceWidgetSignals) Q_EMIT; }
        }
    }

    public interface IAgentInstanceWidgetSignals : IQWidgetSignals {
        /// <remarks>
        ///  This signal is emitted whenever the current agent instance changes.
        /// <param> name="current" The current agent instance.
        /// </param><param> name="previous" The previous agent instance.
        ///      </param></remarks>        <short>    This signal is emitted whenever the current agent instance changes.</short>
        [Q_SIGNAL("void currentChanged(Akonadi::AgentInstance, Akonadi::AgentInstance)")]
        void CurrentChanged(Akonadi.AgentInstance current, Akonadi.AgentInstance previous);
        /// <remarks>
        ///  This signal is emitted whenever the there is a double click on an agent instance.
        /// <param> name="current" The current agent instance.
        ///      </param></remarks>        <short>    This signal is emitted whenever the there is a double click on an agent instance.</short>
        [Q_SIGNAL("void doubleClicked(Akonadi::AgentInstance)")]
        void DoubleClicked(Akonadi.AgentInstance current);
    }
}
