JS8Call-Improved master
Loading...
Searching...
No Matches
DirectedMessageHighlighter.h
1#ifndef DIRECTEDMESSAGEHIGHLIGHTER_H
2#define DIRECTEDMESSAGEHIGHLIGHTER_H
3
4#include <QColor>
5#include <QString>
6#include <QSyntaxHighlighter>
7#include <QTextCharFormat>
8#include <QTextFormat>
9
12 QColor recipientBg, recipientFg;
13 QColor commandBg, commandFg;
14 QColor groupBg, groupFg;
15 QColor senderBg, senderFg;
16};
17
18class DirectedMessageHighlighter : public QSyntaxHighlighter {
19 Q_OBJECT
20 public:
21 explicit DirectedMessageHighlighter(QTextDocument *parent = nullptr);
22
23 void setEnabled(bool enabled);
24 void setPillColors(const PillColorScheme &scheme);
25 void setSelectedCallsign(const QString &callsign);
26
27 // Custom QTextFormat properties for pill identification.
28 static constexpr int PillColorProperty = QTextFormat::UserProperty + 1;
29 static constexpr int PillGroupProperty = QTextFormat::UserProperty + 2;
30
31 protected:
32 void highlightBlock(const QString &text) override;
33
34 private:
35 QTextCharFormat makePillFormat(QColor pillColor, QColor fg, QColor bg,
36 int pillGroup, const QString &tooltip,
37 bool bold = false) const;
38
39 QColor m_addressColor; // blue — recipient + relay chains
40 QColor m_addressFontColor; // font color for recipient pills
41 QColor m_commandColor; // orange — commands + MSG TO: storage
42 QColor m_commandFontColor; // font color for command pills
43 QColor m_groupColor; // teal — @GROUP
44 QColor m_groupFontColor; // font color for group pills
45 QColor m_senderColor; // grey/slate — sender callsign prefix
46 QColor m_senderFontColor; // font color for sender pills
47
48 QString m_selectedCallsign;
49 bool m_enabled = true;
50};
51
52#endif // DIRECTEDMESSAGEHIGHLIGHTER_H
Background and foreground colors for each pill category.
Definition DirectedMessageHighlighter.h:11