X-Git-Url: http://git.maemo.org/git/?p=impuzzle;a=blobdiff_plain;f=src%2Fintroitem.cpp;fp=src%2Fintroitem.cpp;h=87f0b562a8a0c735cb76b6a056edc730d415eaa1;hp=0000000000000000000000000000000000000000;hb=a27dea60eebff3d5bd0068f31e7d042e8c7d0048;hpb=e90ecb7db7b5d4d22fb08f8053db4423797b5afc diff --git a/src/introitem.cpp b/src/introitem.cpp new file mode 100644 index 0000000..87f0b56 --- /dev/null +++ b/src/introitem.cpp @@ -0,0 +1,54 @@ +#include "introitem.h" +#include "defines.h" + +#include +#include + +IntroItem::IntroItem(QGraphicsItem *parent) : + QGraphicsItem(parent) +{ + text_ = ""; +} + +QRectF IntroItem::boundingRect() const +{ + return QRectF(0, 0, IMAGE_WIDTH, IMAGE_HEIGHT); +} + +void IntroItem::paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget) +{ + Q_UNUSED(option) + Q_UNUSED(widget) + + painter->save(); + + painter->setBrush(Qt::NoBrush); + painter->setPen(Qt::white); + + // Get font metrics + QFontMetricsF fontMetricsF(painter->font()); + QRectF textRectF = fontMetricsF.boundingRect(text_); + int horizontalIntend = (IMAGE_WIDTH - textRectF.width()) / 2; + int verticalIntend = (IMAGE_HEIGHT - textRectF.height()) / 2; + + // Draw text aligned to the center of boundingRect + painter->drawText(boundingRect() + .adjusted(horizontalIntend, verticalIntend,-horizontalIntend, -verticalIntend), + text_); + + painter->restore(); +} + +QString IntroItem::text() const +{ + return text_; +} + +void IntroItem::setText(const QString &txt) +{ + text_ = txt; + + if(isVisible()) { + update(); + } +}