File indexing completed on 2024-04-21 04:03:42

0001 /*
0002     SPDX-FileCopyrightText: 2007 Paolo Capriotti <p.capriotti@gmail.com>
0003 
0004     SPDX-License-Identifier: GPL-2.0-or-later
0005 */
0006 
0007 #include "message.h"
0008 #include <QTextOption>
0009 #include <QTextDocument>
0010 
0011 Message::Message(const QString& text, const QFont& font, int maxwidth)
0012 : QGraphicsTextItem(text)
0013 , m_velocity(0.0, 0.0)
0014 {
0015     setFont(font);
0016     setDefaultTextColor(Qt::black);
0017     setAcceptHoverEvents(false);
0018     document()->setTextWidth(maxwidth);
0019     QTextOption opts = document()->defaultTextOption();
0020     opts.setAlignment(Qt::AlignHCenter);
0021     document()->setDefaultTextOption(opts);
0022     
0023     // translate so that the origin is the center
0024     setTransform(QTransform::fromTranslate(-document()->size().width() / 2, -document()->size().height() / 2), true);
0025 }
0026 
0027 void Message::setOpacityF(qreal opacity)
0028 {
0029     QGraphicsItem::setOpacity(opacity);
0030 }
0031 
0032 qreal Message::opacityF() const
0033 {
0034     return QGraphicsItem::opacity();
0035 }
0036 
0037 void Message::setVelocity(const QPointF& vel)
0038 {
0039     m_velocity = vel;
0040 }
0041 
0042 QPointF Message::velocity() const
0043 {
0044     return m_velocity;
0045 }
0046 
0047 void Message::setPosition(const QPointF& pos)
0048 {
0049     QGraphicsTextItem::setPos(pos);
0050 }
0051 
0052 QPointF Message::position() const
0053 {
0054     return QGraphicsTextItem::pos();
0055 }
0056 
0057 int Message::height() const
0058 {
0059     return document()->size().height();
0060 }