//Auto-generated by kalyptus. DO NOT EDIT.
namespace Akonadi {
    using Kimono;
    using System;
    using Qyoto;
    /// <remarks>
    ///  This dialog allows you to show or modify the properties of a collection.
    ///  @code
    ///  Akonadi.Collection collection = ...
    ///  CollectionPropertiesDialog dlg( collection, this );
    ///  dlg.exec();
    ///  @endcode
    ///  It can be extended by custom pages, which contains gui elements for custom
    ///  properties.
    /// </remarks>        <author> Volker Krause <vkrause@kde.org>
    ///  </author>
    ///         <short> A generic and extensible dialog for collection properties. </short>
    ///         <see> Akonadi.CollectionPropertiesPage</see>
    [SmokeClass("Akonadi::CollectionPropertiesDialog")]
    public class CollectionPropertiesDialog : KDialog, IDisposable {
        protected CollectionPropertiesDialog(Type dummy) : base((Type) null) {}
        protected new void CreateProxy() {
            interceptor = new SmokeInvocation(typeof(CollectionPropertiesDialog), this);
        }
        private static SmokeInvocation staticInterceptor = null;
        static CollectionPropertiesDialog() {
            staticInterceptor = new SmokeInvocation(typeof(CollectionPropertiesDialog), null);
        }
        /// <remarks>
        ///  Creates a new collection properties dialog.
        /// <param> name="collection" The collection which properties should be shown.
        /// </param><param> name="parent" The parent widget.
        ///      </param></remarks>        <short>    Creates a new collection properties dialog.</short>
        public CollectionPropertiesDialog(Akonadi.Collection collection, QWidget parent) : this((Type) null) {
            CreateProxy();
            interceptor.Invoke("CollectionPropertiesDialog##", "CollectionPropertiesDialog(const Akonadi::Collection&, QWidget*)", typeof(void), typeof(Akonadi.Collection), collection, typeof(QWidget), parent);
        }
        public CollectionPropertiesDialog(Akonadi.Collection collection) : this((Type) null) {
            CreateProxy();
            interceptor.Invoke("CollectionPropertiesDialog#", "CollectionPropertiesDialog(const Akonadi::Collection&)", typeof(void), typeof(Akonadi.Collection), collection);
        }
        ~CollectionPropertiesDialog() {
            interceptor.Invoke("~CollectionPropertiesDialog", "~CollectionPropertiesDialog()", typeof(void));
        }
        public new void Dispose() {
            interceptor.Invoke("~CollectionPropertiesDialog", "~CollectionPropertiesDialog()", typeof(void));
        }
        /// <remarks>
        ///  Register custom pages for the collection properties dialog.
        /// <param> name="factory" The properties page factory that provides the custom page.
        /// </param></remarks>        <short>    Register custom pages for the collection properties dialog.</short>
        ///         <see> Akonadi.CollectionPropertiesPageFactory</see>
        public static void RegisterPage(Akonadi.CollectionPropertiesPageFactory factory) {
            staticInterceptor.Invoke("registerPage#", "registerPage(Akonadi::CollectionPropertiesPageFactory*)", typeof(void), typeof(Akonadi.CollectionPropertiesPageFactory), factory);
        }
        protected new ICollectionPropertiesDialogSignals Emit {
            get { return (ICollectionPropertiesDialogSignals) Q_EMIT; }
        }
    }

    public interface ICollectionPropertiesDialogSignals : IKDialogSignals {
    }
}
