//Auto-generated by kalyptus. DO NOT EDIT.
namespace Akonadi {
    using Kimono;
    using System;
    using Qyoto;
    /// <remarks>
    ///  The collection properties dialog can be extended by custom
    ///  collection properties pages, which provide gui elements for
    ///  viewing and changing collection attributes.
    ///  The following example shows how to create a simple collection
    ///  properties page for the secercy attribute from the Akonadi.Attribute
    ///  example.
    ///  @code
    ///  class SecrecyPage : public CollectionPropertiesPage
    ///  {
    ///     public       SecrecyPage( QWidget parent = 0 )
    ///       {
    ///         QVBoxLayout layout = new QVBoxLayout( this );
    ///         mSecrecy = new QComboBox( this );
    ///         mSecrecy.AddItem( "Public" );
    ///         mSecrecy.AddItem( "Private" );
    ///         mSecrecy.AddItem( "Confidential" );
    ///         layout.AddWidget( new QLabel( "Secrecy:" ) );
    ///         layout.AddWidget( mSecrecy );
    ///         setPageTitle( i18n( "Secrecy" ) );
    ///       }
    ///       void load( Collectioncollection )
    ///       {
    ///         SecrecyAttribute attr = collection.attribute( "secrecy" );
    ///         switch ( attr.Secrecy() ) {
    ///           case SecrecyAttribute.Public: mSecrecy.SetCurrentIndex( 0 ); break;
    ///           case SecrecyAttribute.Private: mSecrecy.SetCurrentIndex( 1 ); break;
    ///           case SecrecyAttribute.Confidential: mSecrecy.SetCurrentIndex( 2 ); break;
    ///         }
    ///       }
    ///       void save( Collection &collection )
    ///       {
    ///         SecrecyAttribute attr = collection.attribute( "secrecy" );
    ///         switch ( mSecrecy.CurrentIndex() ) {
    ///           case 0: attr.SetSecrecy( SecrecyAttribute.Public ); break;
    ///           case 1: attr.SetSecrecy( SecrecyAttribute.Private ); break;
    ///           case 2: attr.SetSecrecy( SecrecyAttribute.Confidential ); break;
    ///         }
    ///       }
    ///       bool canHandle( Collectioncollection ) const
    ///       {
    ///         return collection.hasAttribute( "secrecy" );
    ///       }
    ///  }
    ///  AKONADI_COLLECTION_PROPERTIES_PAGE_FACTORY( SecrecyPageFactory, SecrecyPage )
    ///  @endcode
    /// </remarks>        <author> Volker Krause <vkrause@kde.org>
    ///  </author>
    ///         <short> A single page in a collection properties dialog. </short>
    ///         <see> Akonadi.CollectionPropertiesDialog</see>
    ///         <see> Akonadi.CollectionPropertiesPageFactory</see>
    [SmokeClass("Akonadi::CollectionPropertiesPage")]
    public abstract class CollectionPropertiesPage : QWidget {
        protected CollectionPropertiesPage(Type dummy) : base((Type) null) {}
        protected new void CreateProxy() {
            interceptor = new SmokeInvocation(typeof(CollectionPropertiesPage), this);
        }
        /// <remarks>
        ///  Creates a new collection properties page.
        /// <param> name="parent" The parent widget.
        ///      </param></remarks>        <short>    Creates a new collection properties page.</short>
        public CollectionPropertiesPage(QWidget parent) : this((Type) null) {
            CreateProxy();
            interceptor.Invoke("CollectionPropertiesPage#", "CollectionPropertiesPage(QWidget*)", typeof(void), typeof(QWidget), parent);
        }
        public CollectionPropertiesPage() : this((Type) null) {
            CreateProxy();
            interceptor.Invoke("CollectionPropertiesPage", "CollectionPropertiesPage()", typeof(void));
        }
        /// <remarks>
        ///  Loads the page content from the given collection.
        /// <param> name="collection" The collection to load.
        ///      </param></remarks>        <short>    Loads the page content from the given collection.</short>
        [SmokeMethod("load(const Akonadi::Collection&)")]
        public abstract void Load(Akonadi.Collection collection);
        /// <remarks>
        ///  Saves page content to the given collection.
        /// <param> name="collection" Reference to the collection to save to.
        ///      </param></remarks>        <short>    Saves page content to the given collection.</short>
        [SmokeMethod("save(Akonadi::Collection&)")]
        public abstract void Save(Akonadi.Collection collection);
        /// <remarks>
        ///  Checks if this page can actually handle the given collection.
        ///  Returns <code>true</code> if the collection can be handled, <code>false</code> otherwise
        ///  The default implementation returns always <code>true.</code> When <code>false</code> is returned
        ///  this page is not shown in the properties dialog.
        ///      </remarks>        <short>    Checks if this page can actually handle the given collection.</short>
        [SmokeMethod("canHandle(const Akonadi::Collection&) const")]
        public virtual bool CanHandle(Akonadi.Collection collection) {
            return (bool) interceptor.Invoke("canHandle#", "canHandle(const Akonadi::Collection&) const", typeof(bool), typeof(Akonadi.Collection), collection);
        }
        /// <remarks>
        ///  Sets the page title.
        /// <param> name="title" Translated, preferrably short tab title.
        ///      </param></remarks>        <short>    Sets the page title.</short>
        public void SetPageTitle(string title) {
            interceptor.Invoke("setPageTitle$", "setPageTitle(const QString&)", typeof(void), typeof(string), title);
        }
        /// <remarks>
        ///  Returns the page title.
        ///      </remarks>        <short>    Returns the page title.</short>
        public string PageTitle() {
            return (string) interceptor.Invoke("pageTitle", "pageTitle() const", typeof(string));
        }
        protected new ICollectionPropertiesPageSignals Emit {
            get { return (ICollectionPropertiesPageSignals) Q_EMIT; }
        }
    }

    public interface ICollectionPropertiesPageSignals : IQWidgetSignals {
    }
}
