Loading...
Searching...
No Matches
TextItem.hpp
1#pragma once
2#include <score/model/ColorReference.hpp>
3
4#include <QGraphicsSceneMouseEvent>
5#include <QGraphicsTextItem>
6
7#include <score_lib_base_export.h>
8
9#include <verdigris>
10namespace score
11{
12class SCORE_LIB_BASE_EXPORT TextItem final : public QGraphicsTextItem
13{
14 W_OBJECT(TextItem)
15public:
16 TextItem(QString text, QGraphicsItem* parent);
17
18public:
19 void focusOut() E_SIGNAL(SCORE_LIB_BASE_EXPORT, focusOut)
20
21protected:
22 void focusOutEvent(QFocusEvent* event) override;
23};
24
25class SCORE_LIB_BASE_EXPORT SimpleTextItem
26 : public QObject
27 , public QGraphicsItem
28{
29 W_OBJECT(SimpleTextItem)
30public:
31 SimpleTextItem(const score::BrushSet& col, QGraphicsItem*);
32
33 QRectF boundingRect() const final override;
34 void paint(QPainter* painter, const QStyleOptionGraphicsItem* option, QWidget* widget)
35 final override;
36
39 void setFont(const QFont& f);
40 void setText(const QString& s);
41 void setText(std::string_view s);
42 void setColor(const score::BrushSet& c);
43 const QString& text() const noexcept;
44
45private:
46 SimpleTextItem() = delete;
47 SimpleTextItem(const SimpleTextItem&) = delete;
49 SimpleTextItem& operator=(const SimpleTextItem&) = delete;
50 SimpleTextItem& operator=(SimpleTextItem&&) = delete;
51 void updateImpl();
52
53 QRectF m_rect;
54 const score::BrushSet* m_color{};
56 const QFont* m_font{};
57
60 QFont m_paintFont;
61 QString m_string;
62 QImage m_line;
63};
64
65class SCORE_LIB_BASE_EXPORT ClickableTextItem final : public score::SimpleTextItem
66{
67 W_OBJECT(ClickableTextItem)
68public:
69 ClickableTextItem(const score::BrushSet& brush, QGraphicsItem* parent);
70
71 void clicked() E_SIGNAL(SCORE_LIB_BASE_EXPORT, clicked)
72protected:
73 void mousePressEvent(QGraphicsSceneMouseEvent* event) override;
74 void mouseReleaseEvent(QGraphicsSceneMouseEvent* event) override;
75};
76}
Definition TextItem.hpp:66
Definition TextItem.hpp:28
Definition TextItem.hpp:13
Base toolkit upon which the software is built.
Definition Application.cpp:83
Definition Skin.hpp:25