//Auto-generated by kalyptus. DO NOT EDIT.
namespace Kimono {
    using System;
    using Qyoto;
    /// <remarks>
    ///  This widget can be used to display or allow user selection of a color.
    ///  \image html kcolorbutton.png "KDE Color Button"
    ///  See <see cref="IKColorButtonSignals"></see> for signals emitted by KColorButton
    /// </remarks>        <short> A pushbutton to display or allow user selection of a color. </short>
    ///         <see> KColorDialog</see>
    [SmokeClass("KColorButton")]
    public class KColorButton : QPushButton, IDisposable {
        protected KColorButton(Type dummy) : base((Type) null) {}
        protected new void CreateProxy() {
            interceptor = new SmokeInvocation(typeof(KColorButton), this);
        }
        [Q_PROPERTY("QColor", "color")]
        public QColor Color {
            get { return (QColor) interceptor.Invoke("color", "color()", typeof(QColor)); }
            set { interceptor.Invoke("setColor#", "setColor(QColor)", typeof(void), typeof(QColor), value); }
        }
        [Q_PROPERTY("QColor", "defaultColor")]
        public QColor DefaultColor {
            get { return (QColor) interceptor.Invoke("defaultColor", "defaultColor()", typeof(QColor)); }
            set { interceptor.Invoke("setDefaultColor#", "setDefaultColor(QColor)", typeof(void), typeof(QColor), value); }
        }
        /// <remarks>
        ///  Creates a color button.
        ///      </remarks>        <short>    Creates a color button.</short>
        public KColorButton(QWidget parent) : this((Type) null) {
            CreateProxy();
            interceptor.Invoke("KColorButton#", "KColorButton(QWidget*)", typeof(void), typeof(QWidget), parent);
        }
        public KColorButton() : this((Type) null) {
            CreateProxy();
            interceptor.Invoke("KColorButton", "KColorButton()", typeof(void));
        }
        /// <remarks>
        ///  Creates a color button with an initial color <code>c.</code>
        ///      </remarks>        <short>    Creates a color button with an initial color <code>c.</code></short>
        public KColorButton(QColor c, QWidget parent) : this((Type) null) {
            CreateProxy();
            interceptor.Invoke("KColorButton##", "KColorButton(const QColor&, QWidget*)", typeof(void), typeof(QColor), c, typeof(QWidget), parent);
        }
        public KColorButton(QColor c) : this((Type) null) {
            CreateProxy();
            interceptor.Invoke("KColorButton#", "KColorButton(const QColor&)", typeof(void), typeof(QColor), c);
        }
        /// <remarks>
        ///  Creates a color button with an initial color <code>c</code> and default color <code>defaultColor.</code>
        ///      </remarks>        <short>    Creates a color button with an initial color <code>c</code> and default color <code>defaultColor.</code></short>
        public KColorButton(QColor c, QColor defaultColor, QWidget parent) : this((Type) null) {
            CreateProxy();
            interceptor.Invoke("KColorButton###", "KColorButton(const QColor&, const QColor&, QWidget*)", typeof(void), typeof(QColor), c, typeof(QColor), defaultColor, typeof(QWidget), parent);
        }
        public KColorButton(QColor c, QColor defaultColor) : this((Type) null) {
            CreateProxy();
            interceptor.Invoke("KColorButton##", "KColorButton(const QColor&, const QColor&)", typeof(void), typeof(QColor), c, typeof(QColor), defaultColor);
        }
        [SmokeMethod("sizeHint() const")]
        public override QSize SizeHint() {
            return (QSize) interceptor.Invoke("sizeHint", "sizeHint() const", typeof(QSize));
        }
        [SmokeMethod("minimumSizeHint() const")]
        public override QSize MinimumSizeHint() {
            return (QSize) interceptor.Invoke("minimumSizeHint", "minimumSizeHint() const", typeof(QSize));
        }
        [SmokeMethod("paintEvent(QPaintEvent*)")]
        protected override void PaintEvent(QPaintEvent pe) {
            interceptor.Invoke("paintEvent#", "paintEvent(QPaintEvent*)", typeof(void), typeof(QPaintEvent), pe);
        }
        [SmokeMethod("dragEnterEvent(QDragEnterEvent*)")]
        protected override void DragEnterEvent(QDragEnterEvent arg1) {
            interceptor.Invoke("dragEnterEvent#", "dragEnterEvent(QDragEnterEvent*)", typeof(void), typeof(QDragEnterEvent), arg1);
        }
        [SmokeMethod("dropEvent(QDropEvent*)")]
        protected override void DropEvent(QDropEvent arg1) {
            interceptor.Invoke("dropEvent#", "dropEvent(QDropEvent*)", typeof(void), typeof(QDropEvent), arg1);
        }
        [SmokeMethod("mousePressEvent(QMouseEvent*)")]
        protected override void MousePressEvent(QMouseEvent e) {
            interceptor.Invoke("mousePressEvent#", "mousePressEvent(QMouseEvent*)", typeof(void), typeof(QMouseEvent), e);
        }
        [SmokeMethod("mouseMoveEvent(QMouseEvent*)")]
        protected override void MouseMoveEvent(QMouseEvent e) {
            interceptor.Invoke("mouseMoveEvent#", "mouseMoveEvent(QMouseEvent*)", typeof(void), typeof(QMouseEvent), e);
        }
        [SmokeMethod("keyPressEvent(QKeyEvent*)")]
        protected override void KeyPressEvent(QKeyEvent e) {
            interceptor.Invoke("keyPressEvent#", "keyPressEvent(QKeyEvent*)", typeof(void), typeof(QKeyEvent), e);
        }
        ~KColorButton() {
            interceptor.Invoke("~KColorButton", "~KColorButton()", typeof(void));
        }
        public new void Dispose() {
            interceptor.Invoke("~KColorButton", "~KColorButton()", typeof(void));
        }
        protected new IKColorButtonSignals Emit {
            get { return (IKColorButtonSignals) Q_EMIT; }
        }
    }

    public interface IKColorButtonSignals : IQPushButtonSignals {
        /// <remarks>
        ///  Emitted when the color of the widget
        ///  is changed, either with setColor() or via user selection.
        ///      </remarks>        <short>    Emitted when the color of the widget  is changed, either with setColor() or via user selection.</short>
        [Q_SIGNAL("void changed(QColor)")]
        void Changed(QColor newColor);
    }
}
