//Auto-generated by kalyptus. DO NOT EDIT.
namespace Plasma {
    using Plasma;
    using System;
    using Kimono;
    using Qyoto;
    /// <remarks>
    ///  @class PushButton plasma/widgets/pushbutton.h <Plasma/Widgets/PushButton>
    ///  See <see cref="IPushButtonSignals"></see> for signals emitted by PushButton
    /// </remarks>        <short> Provides a plasma-themed KPushButton.  </short>
    [SmokeClass("Plasma::PushButton")]
    public class PushButton : QGraphicsProxyWidget, IDisposable {
        protected PushButton(Type dummy) : base((Type) null) {}
        protected new void CreateProxy() {
            interceptor = new SmokeInvocation(typeof(PushButton), this);
        }
        [Q_PROPERTY("QGraphicsWidget*", "parentWidget")]
        public QGraphicsWidget ParentWidget {
            get { return (QGraphicsWidget) interceptor.Invoke("parentWidget", "parentWidget()", typeof(QGraphicsWidget)); }
        }
        [Q_PROPERTY("QString", "text")]
        public string Text {
            get { return (string) interceptor.Invoke("text", "text()", typeof(string)); }
            set { interceptor.Invoke("setText$", "setText(QString)", typeof(void), typeof(string), value); }
        }
        [Q_PROPERTY("QString", "image")]
        public string Image {
            get { return (string) interceptor.Invoke("image", "image()", typeof(string)); }
            set { interceptor.Invoke("setImage$", "setImage(QString)", typeof(void), typeof(string), value); }
        }
        [Q_PROPERTY("QString", "stylesheet")]
        public string Stylesheet {
            get { return (string) interceptor.Invoke("styleSheet", "styleSheet()", typeof(string)); }
            set { interceptor.Invoke("setStyleSheet$", "setStyleSheet(QString)", typeof(void), typeof(string), value); }
        }
        [Q_PROPERTY("KPushButton*", "nativeWidget")]
        public KPushButton NativeWidget {
            get { return (KPushButton) interceptor.Invoke("nativeWidget", "nativeWidget()", typeof(KPushButton)); }
        }
        [Q_PROPERTY("QAction*", "action")]
        public QAction Action {
            get { return (QAction) interceptor.Invoke("action", "action()", typeof(QAction)); }
            set { interceptor.Invoke("setAction#", "setAction(QAction*)", typeof(void), typeof(QAction), value); }
        }
        public PushButton(QGraphicsWidget parent) : this((Type) null) {
            CreateProxy();
            interceptor.Invoke("PushButton#", "PushButton(QGraphicsWidget*)", typeof(void), typeof(QGraphicsWidget), parent);
        }
        public PushButton() : this((Type) null) {
            CreateProxy();
            interceptor.Invoke("PushButton", "PushButton()", typeof(void));
        }
        /// <remarks>
        ///  sets the icon for this toolbutton
        ///  @arg icon the icon we want to use
        /// </remarks>        <short>    sets the icon for this toolbutton </short>
        public void SetIcon(QIcon icon) {
            interceptor.Invoke("setIcon#", "setIcon(const QIcon&)", typeof(void), typeof(QIcon), icon);
        }
        /// <remarks>
        /// </remarks>        <return> the icon of this button
        /// </return>
        ///         <short>   </short>
        public QIcon Icon() {
            return (QIcon) interceptor.Invoke("icon", "icon() const", typeof(QIcon));
        }
        /// <remarks>
        ///  Sets whether or not this button can be toggled on/off
        /// </remarks>        <short>    Sets whether or not this button can be toggled on/off </short>
        public void SetCheckable(bool checkable) {
            interceptor.Invoke("setCheckable$", "setCheckable(bool)", typeof(void), typeof(bool), checkable);
        }
        /// <remarks>
        ///  Sets whether or not this button is checked. Implies setIsCheckable(true).
        /// </remarks>        <short>    Sets whether or not this button is checked.</short>
        public void SetChecked(bool arg1) {
            interceptor.Invoke("setChecked$", "setChecked(bool)", typeof(void), typeof(bool), arg1);
        }
        /// <remarks>
        /// </remarks>        <return> true if the button is checked; requires setIsCheckable(true) to
        ///  be called
        /// </return>
        ///         <short>   </short>
        public bool IsChecked() {
            return (bool) interceptor.Invoke("isChecked", "isChecked() const", typeof(bool));
        }
        [SmokeMethod("paint(QPainter*, const QStyleOptionGraphicsItem*, QWidget*)")]
        protected new virtual void Paint(QPainter painter, QStyleOptionGraphicsItem option, QWidget widget) {
            interceptor.Invoke("paint###", "paint(QPainter*, const QStyleOptionGraphicsItem*, QWidget*)", typeof(void), typeof(QPainter), painter, typeof(QStyleOptionGraphicsItem), option, typeof(QWidget), widget);
        }
        [SmokeMethod("paint(QPainter*, const QStyleOptionGraphicsItem*)")]
        protected new virtual void Paint(QPainter painter, QStyleOptionGraphicsItem option) {
            interceptor.Invoke("paint##", "paint(QPainter*, const QStyleOptionGraphicsItem*)", typeof(void), typeof(QPainter), painter, typeof(QStyleOptionGraphicsItem), option);
        }
        [SmokeMethod("resizeEvent(QGraphicsSceneResizeEvent*)")]
        protected override void ResizeEvent(QGraphicsSceneResizeEvent arg1) {
            interceptor.Invoke("resizeEvent#", "resizeEvent(QGraphicsSceneResizeEvent*)", typeof(void), typeof(QGraphicsSceneResizeEvent), arg1);
        }
        [SmokeMethod("hoverEnterEvent(QGraphicsSceneHoverEvent*)")]
        protected override void HoverEnterEvent(QGraphicsSceneHoverEvent arg1) {
            interceptor.Invoke("hoverEnterEvent#", "hoverEnterEvent(QGraphicsSceneHoverEvent*)", typeof(void), typeof(QGraphicsSceneHoverEvent), arg1);
        }
        [SmokeMethod("hoverLeaveEvent(QGraphicsSceneHoverEvent*)")]
        protected override void HoverLeaveEvent(QGraphicsSceneHoverEvent arg1) {
            interceptor.Invoke("hoverLeaveEvent#", "hoverLeaveEvent(QGraphicsSceneHoverEvent*)", typeof(void), typeof(QGraphicsSceneHoverEvent), arg1);
        }
        ~PushButton() {
            interceptor.Invoke("~PushButton", "~PushButton()", typeof(void));
        }
        public new void Dispose() {
            interceptor.Invoke("~PushButton", "~PushButton()", typeof(void));
        }
        protected new IPushButtonSignals Emit {
            get { return (IPushButtonSignals) Q_EMIT; }
        }
    }

    public interface IPushButtonSignals : IQGraphicsProxyWidgetSignals {
        [Q_SIGNAL("void clicked()")]
        void Clicked();
        [Q_SIGNAL("void toggled(bool)")]
        void Toggled(bool arg1);
    }
}
