46
|
1 #ifndef __gui__ui_utils_h
|
|
2 #define __gui__ui_utils_h
|
64
|
3
|
46
|
4 #include <QFrame>
|
|
5 #include <QLabel>
|
|
6 #include <QPlainTextEdit>
|
|
7 #include <QSize>
|
|
8 #include <QString>
|
|
9 #include <QWidget>
|
64
|
10
|
46
|
11 namespace TextWidgets {
|
|
12
|
|
13 class Header : public QWidget {
|
|
14 Q_OBJECT
|
|
15
|
|
16 public:
|
|
17 Header(QString title, QWidget* parent = nullptr);
|
64
|
18 void SetText(QString title);
|
46
|
19
|
|
20 private:
|
|
21 QLabel* static_text_title;
|
|
22 QFrame* static_text_line;
|
|
23 };
|
|
24
|
|
25 class Paragraph : public QPlainTextEdit {
|
|
26 Q_OBJECT
|
|
27
|
|
28 public:
|
|
29 Paragraph(QString text, QWidget* parent = nullptr);
|
64
|
30 void SetText(QString text);
|
46
|
31 QSize minimumSizeHint() const override;
|
|
32 QSize sizeHint() const override;
|
|
33 };
|
|
34
|
|
35 /* technically a paragraph and a heading is actually a
|
|
36 "section", but that name is equally as confusing as
|
|
37 "text paragraph". */
|
|
38 class TextParagraph : public QWidget {
|
|
39 Q_OBJECT
|
|
40
|
|
41 public:
|
|
42 TextParagraph(QString title, QString data, QWidget* parent = nullptr);
|
|
43 Header* GetHeader();
|
|
44 Paragraph* GetParagraph();
|
|
45
|
|
46 private:
|
|
47 Header* header;
|
|
48 Paragraph* paragraph;
|
|
49 };
|
|
50
|
|
51 class LabelledTextParagraph : public QWidget {
|
|
52 Q_OBJECT
|
|
53
|
|
54 public:
|
|
55 LabelledTextParagraph(QString title, QString label, QString data, QWidget* parent = nullptr);
|
|
56 Header* GetHeader();
|
|
57 Paragraph* GetLabels();
|
|
58 Paragraph* GetParagraph();
|
|
59
|
|
60 private:
|
|
61 Header* header;
|
|
62 Paragraph* labels;
|
|
63 Paragraph* paragraph;
|
|
64 };
|
|
65
|
|
66 class SelectableTextParagraph : public QWidget {
|
|
67 Q_OBJECT
|
|
68
|
|
69 public:
|
|
70 SelectableTextParagraph(QString title, QString data, QWidget* parent = nullptr);
|
|
71 Header* GetHeader();
|
|
72 Paragraph* GetParagraph();
|
|
73
|
|
74 private:
|
|
75 Header* header;
|
|
76 Paragraph* paragraph;
|
|
77 };
|
64
|
78
|
|
79 class Title : public Paragraph {
|
|
80 Q_OBJECT
|
|
81
|
|
82 public:
|
|
83 Title(QString title, QWidget* parent = nullptr);
|
|
84 };
|
|
85
|
|
86 } // namespace TextWidgets
|
|
87
|
46
|
88 #endif // __gui__ui_utils_h
|