Plasma
toolbutton.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_TOOLBUTTON_H
00021 #define PLASMA_TOOLBUTTON_H
00022
00023 #include <QtGui/QGraphicsProxyWidget>
00024
00025 class QToolButton;
00026
00027 #include <plasma/plasma_export.h>
00028
00029 namespace Plasma
00030 {
00031
00032 class ToolButtonPrivate;
00033
00039 class PLASMA_EXPORT ToolButton : 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(bool autoRaise READ autoRaise WRITE setAutoRaise)
00046 Q_PROPERTY(QString image READ image WRITE setImage)
00047 Q_PROPERTY(QString stylesheet READ styleSheet WRITE setStyleSheet)
00048 Q_PROPERTY(QToolButton *nativeWidget READ nativeWidget)
00049 Q_PROPERTY(QAction *action READ action WRITE setAction)
00050
00051 public:
00052 explicit ToolButton(QGraphicsWidget *parent = 0);
00053 ~ToolButton();
00054
00060 void setAutoRaise(bool raise);
00061
00065 bool autoRaise() const;
00066
00072 void setText(const QString &text);
00073
00077 QString text() const;
00078
00084 void setImage(const QString &path);
00085
00089 QString image() const;
00090
00096 void setStyleSheet(const QString &stylesheet);
00097
00101 QString styleSheet();
00102
00110 void setAction(QAction *action);
00111
00117 QAction *action() const;
00118
00126 void setIcon(const QIcon &icon);
00127
00133 QIcon icon() const;
00134
00138 QToolButton *nativeWidget() const;
00139
00140 Q_SIGNALS:
00141 void clicked();
00142
00143 protected:
00144 void paint(QPainter *painter,
00145 const QStyleOptionGraphicsItem *option,
00146 QWidget *widget = 0);
00147 void resizeEvent(QGraphicsSceneResizeEvent *event);
00148 void hoverEnterEvent(QGraphicsSceneHoverEvent *event);
00149 void hoverLeaveEvent(QGraphicsSceneHoverEvent *event);
00150
00151 private:
00152 Q_PRIVATE_SLOT(d, void syncBorders())
00153 Q_PRIVATE_SLOT(d, void animationUpdate(qreal progress))
00154 Q_PRIVATE_SLOT(d, void syncToAction())
00155 Q_PRIVATE_SLOT(d, void clearAction())
00156 Q_PRIVATE_SLOT(d, void setPixmap())
00157
00158 friend class ToolButtonPrivate;
00159 ToolButtonPrivate *const d;
00160 };
00161
00162 }
00163
00164 #endif // multiple inclusion guard