Plasma
toolbutton.h
Go to the documentation of this file.
00001 /* 00002 * Copyright 2008 Marco Martin <notmart@gmail.com> 00003 * 00004 * This program is free software; you can redistribute it and/or modify 00005 * it under the terms of the GNU Library General Public License as 00006 * published by the Free Software Foundation; either version 2, or 00007 * (at your option) any later version. 00008 * 00009 * This program is distributed in the hope that it will be useful, 00010 * but WITHOUT ANY WARRANTY; without even the implied warranty of 00011 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 00012 * GNU General Public License for more details 00013 * 00014 * You should have received a copy of the GNU Library General Public 00015 * License along with this program; if not, write to the 00016 * Free Software Foundation, Inc., 00017 * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. 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 Q_PROPERTY(bool down READ isDown WRITE setDown) 00051 00052 Q_PROPERTY(qreal animationUpdate READ animationUpdate WRITE setAnimationUpdate) 00053 00054 public: 00055 explicit ToolButton(QGraphicsWidget *parent = 0); 00056 ~ToolButton(); 00057 00063 void setAutoRaise(bool raise); 00064 00068 bool autoRaise() const; 00069 00075 void setText(const QString &text); 00076 00080 QString text() const; 00081 00087 void setImage(const QString &path); 00088 00097 void setImage(const QString &path, const QString &elementid); 00098 00102 QString image() const; 00103 00110 void setDown(bool down); 00111 00116 bool isDown() const; 00117 00123 void setStyleSheet(const QString &stylesheet); 00124 00128 QString styleSheet(); 00129 00137 void setAction(QAction *action); 00138 00144 QAction *action() const; 00145 00153 void setIcon(const QIcon &icon); 00154 00160 QIcon icon() const; 00161 00165 QToolButton *nativeWidget() const; 00166 00167 Q_SIGNALS: 00168 void clicked(); 00172 void pressed(); 00176 void released(); 00177 00178 protected: 00179 void paint(QPainter *painter, 00180 const QStyleOptionGraphicsItem *option, 00181 QWidget *widget = 0); 00182 void resizeEvent(QGraphicsSceneResizeEvent *event); 00183 void hoverEnterEvent(QGraphicsSceneHoverEvent *event); 00184 void hoverLeaveEvent(QGraphicsSceneHoverEvent *event); 00185 void changeEvent(QEvent *event); 00186 QVariant itemChange(GraphicsItemChange change, const QVariant &value); 00187 QSizeF sizeHint(Qt::SizeHint which, const QSizeF & constraint) const; 00188 00189 private slots: 00190 void setAnimationUpdate(qreal progress); 00191 qreal animationUpdate() const; 00192 00193 private: 00194 Q_PRIVATE_SLOT(d, void syncBorders()) 00195 Q_PRIVATE_SLOT(d, void syncToAction()) 00196 Q_PRIVATE_SLOT(d, void clearAction()) 00197 Q_PRIVATE_SLOT(d, void setPixmap()) 00198 Q_PRIVATE_SLOT(d, void setPalette()) 00199 00200 friend class ToolButtonPrivate; 00201 ToolButtonPrivate *const d; 00202 }; 00203 00204 } // namespace Plasma 00205 00206 #endif // multiple inclusion guard
KDE 4.6 API Reference