Plasma
pushbutton.h
Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020 #ifndef PLASMA_PUSHBUTTON_H
00021 #define PLASMA_PUSHBUTTON_H
00022
00023 #include <QtGui/QGraphicsProxyWidget>
00024
00025 class KPushButton;
00026
00027 #include <plasma/plasma_export.h>
00028
00029 namespace Plasma
00030 {
00031
00032 class PushButtonPrivate;
00033
00039 class PLASMA_EXPORT PushButton : public QGraphicsProxyWidget
00040 {
00041 Q_OBJECT
00042
00043 Q_PROPERTY(QGraphicsWidget *parentWidget READ parentWidget)
00044 Q_PROPERTY(QString text READ text WRITE setText)
00045 Q_PROPERTY(QString image READ image WRITE setImage)
00046 Q_PROPERTY(QString stylesheet READ styleSheet WRITE setStyleSheet)
00047 Q_PROPERTY(KPushButton *nativeWidget READ nativeWidget)
00048 Q_PROPERTY(QAction *action READ action WRITE setAction)
00049
00050 public:
00051 explicit PushButton(QGraphicsWidget *parent = 0);
00052 ~PushButton();
00053
00059 void setText(const QString &text);
00060
00064 QString text() const;
00065
00071 void setImage(const QString &path);
00072
00076 QString image() const;
00077
00083 void setStyleSheet(const QString &stylesheet);
00084
00088 QString styleSheet();
00089
00097 void setAction(QAction *action);
00098
00104 QAction *action() const;
00105
00113 void setIcon(const QIcon &icon);
00114
00120 QIcon icon() const;
00121
00127 void setCheckable(bool checkable);
00128
00134 void setChecked(bool checked);
00135
00142 bool isChecked() const;
00143
00147 KPushButton *nativeWidget() const;
00148
00149 Q_SIGNALS:
00150 void clicked();
00151 void toggled(bool);
00152
00153 protected:
00154 void paint(QPainter *painter,
00155 const QStyleOptionGraphicsItem *option,
00156 QWidget *widget = 0);
00157 void resizeEvent(QGraphicsSceneResizeEvent *event);
00158 void hoverEnterEvent(QGraphicsSceneHoverEvent *event);
00159 void hoverLeaveEvent(QGraphicsSceneHoverEvent *event);
00160
00161 private:
00162 Q_PRIVATE_SLOT(d, void syncBorders())
00163 Q_PRIVATE_SLOT(d, void animationUpdate(qreal progress))
00164 Q_PRIVATE_SLOT(d, void setPixmap())
00165
00166 friend class PushButtonPrivate;
00167 PushButtonPrivate *const d;
00168 };
00169
00170 }
00171
00172 #endif // multiple inclusion guard