diff options
Diffstat (limited to 'weather/src/pixmapbutton.cpp')
-rw-r--r-- | weather/src/pixmapbutton.cpp | 30 |
1 files changed, 30 insertions, 0 deletions
diff --git a/weather/src/pixmapbutton.cpp b/weather/src/pixmapbutton.cpp new file mode 100644 index 0000000..6ec8be5 --- /dev/null +++ b/weather/src/pixmapbutton.cpp @@ -0,0 +1,30 @@ +#include "pixmapbutton.h" + +// PixmapButton + +PixmapButton::PixmapButton(qreal minSize, const QPixmap &pixmap, QGraphicsItem *parent) + : QGraphicsPixmapItem(pixmap, parent) + , m_minSize(minSize) +{ + setShapeMode(BoundingRectShape); +} + +void PixmapButton::mousePressEvent(QGraphicsSceneMouseEvent *event) +{ + Q_UNUSED(event); + emit clicked(); +} + +QPainterPath PixmapButton::shape() const +{ + return QGraphicsItem::shape(); +} + +QRectF PixmapButton::boundingRect() const +{ + QRectF result(QGraphicsPixmapItem::boundingRect()); + qreal hMargin = m_minSize < result.width() ? 0 : (m_minSize - result.width()) / 2; + qreal vMargin = m_minSize < result.height() ? 0 : (m_minSize - result.height()) / 2; + result.adjust(-hMargin, -vMargin, hMargin, vMargin); + return result; +} |