//Auto-generated by kalyptus. DO NOT EDIT.
namespace Kimono {
    using System;
    using Qyoto;
    using System.Collections.Generic;
    /// <remarks> See <see cref="IKTagCloudWidgetSignals"></see> for signals emitted by KTagCloudWidget
    /// </remarks>
    [SmokeClass("KTagCloudWidget")]
    public class KTagCloudWidget : QWidget, IDisposable {
        protected KTagCloudWidget(Type dummy) : base((Type) null) {}
        protected new void CreateProxy() {
            interceptor = new SmokeInvocation(typeof(KTagCloudWidget), this);
        }
        public KTagCloudWidget(QWidget parent) : this((Type) null) {
            CreateProxy();
            interceptor.Invoke("KTagCloudWidget#", "KTagCloudWidget(QWidget*)", typeof(void), typeof(QWidget), parent);
        }
        public KTagCloudWidget() : this((Type) null) {
            CreateProxy();
            interceptor.Invoke("KTagCloudWidget", "KTagCloudWidget()", typeof(void));
        }
        /// <remarks>
        ///  Retrieve the weight for a certain tag
        ///      </remarks>        <short>    Retrieve the weight for a certain tag      </short>
        public int TagWeight(string tag) {
            return (int) interceptor.Invoke("tagWeight$", "tagWeight(const QString&) const", typeof(int), typeof(string), tag);
        }
        /// <remarks>
        ///  Add \a tag to the cloud using the weight factor \a weight. 
        ///  Existing tags with the same name will be overwritten.
        ///      </remarks>        <short>    Add \a tag to the cloud using the weight factor \a weight.</short>
        [Q_SLOT("void addTag(QString, int)")]
        public void AddTag(string tag, int weight) {
            interceptor.Invoke("addTag$$", "addTag(const QString&, int)", typeof(void), typeof(string), tag, typeof(int), weight);
        }
        /// <remarks>
        ///  Add a set of tags with weight factors
        ///      </remarks>        <short>    Add a set of tags with weight factors      </short>
        [Q_SLOT("void addTags(QMap<QString, int>)")]
        public void AddTags(Dictionary<string, int> tags) {
            interceptor.Invoke("addTags?", "addTags(const QMap<QString,int>&)", typeof(void), typeof(Dictionary<string, int>), tags);
        }
        /// <remarks>
        ///  Remove all tags from the cloud.
        ///      </remarks>        <short>    Remove all tags from the cloud.</short>
        [Q_SLOT("void clear()")]
        public void Clear() {
            interceptor.Invoke("clear", "clear()", typeof(void));
        }
        /// <remarks>
        ///  Set the maximum font size to be used for the most popular tags.
        ///  Default is 22.
        ///      </remarks>        <short>    Set the maximum font size to be used for the most popular tags.</short>
        [Q_SLOT("void setMaxFontSize(int)")]
        public void SetMaxFontSize(int pointSize) {
            interceptor.Invoke("setMaxFontSize$", "setMaxFontSize(int)", typeof(void), typeof(int), pointSize);
        }
        /// <remarks>
        ///  Set the minimum font size to be used for the most unpopular tags.
        ///  Default is 8.
        ///      </remarks>        <short>    Set the minimum font size to be used for the most unpopular tags.</short>
        [Q_SLOT("void setMinFontSize(int)")]
        public void SetMinFontSize(int pointSize) {
            interceptor.Invoke("setMinFontSize$", "setMinFontSize(int)", typeof(void), typeof(int), pointSize);
        }
        [SmokeMethod("resizeEvent(QResizeEvent*)")]
        protected override void ResizeEvent(QResizeEvent e) {
            interceptor.Invoke("resizeEvent#", "resizeEvent(QResizeEvent*)", typeof(void), typeof(QResizeEvent), e);
        }
        ~KTagCloudWidget() {
            interceptor.Invoke("~KTagCloudWidget", "~KTagCloudWidget()", typeof(void));
        }
        public new void Dispose() {
            interceptor.Invoke("~KTagCloudWidget", "~KTagCloudWidget()", typeof(void));
        }
        protected new IKTagCloudWidgetSignals Emit {
            get { return (IKTagCloudWidgetSignals) Q_EMIT; }
        }
    }

    public interface IKTagCloudWidgetSignals : IQWidgetSignals {
        [Q_SIGNAL("void tagClicked(QString)")]
        void TagClicked(string tag);
    }
}
