Mercurial > minori
annotate include/gui/widgets/text.h @ 95:8043152ef9d4
include: set classes as final where appropriate
author | Paper <mrpapersonic@gmail.com> |
---|---|
date | Wed, 01 Nov 2023 14:39:43 -0400 |
parents | d02fdf1d6708 |
children | b3549da699a6 |
rev | line source |
---|---|
46 | 1 #ifndef __gui__ui_utils_h |
2 #define __gui__ui_utils_h | |
64 | 3 |
76 | 4 #include <QLineEdit> |
5 #include <QPlainTextEdit> | |
69 | 6 #include <QSize> |
76 | 7 #include <QString> |
8 #include <QWidget> | |
69 | 9 |
10 class QFrame; | |
11 class QLabel; | |
64 | 12 |
46 | 13 namespace TextWidgets { |
14 | |
15 class Header : public QWidget { | |
16 Q_OBJECT | |
17 | |
18 public: | |
83 | 19 Header(const QString& title, QWidget* parent = nullptr); |
20 void SetText(const QString& title); | |
46 | 21 |
22 private: | |
23 QLabel* static_text_title; | |
24 QFrame* static_text_line; | |
25 }; | |
26 | |
27 class Paragraph : public QPlainTextEdit { | |
28 Q_OBJECT | |
29 | |
30 public: | |
83 | 31 Paragraph(const QString& text, QWidget* parent = nullptr); |
32 void SetText(const QString& text); | |
46 | 33 QSize minimumSizeHint() const override; |
34 QSize sizeHint() const override; | |
35 }; | |
36 | |
75 | 37 class Line : public QLineEdit { |
46 | 38 Q_OBJECT |
39 | |
40 public: | |
83 | 41 Line(QWidget* parent = nullptr); |
42 Line(const QString& text, QWidget* parent = nullptr); | |
43 void SetText(const QString& text); | |
75 | 44 }; |
45 | |
95
8043152ef9d4
include: set classes as final where appropriate
Paper <mrpapersonic@gmail.com>
parents:
83
diff
changeset
|
46 class Title final : public Line { |
75 | 47 Q_OBJECT |
48 | |
49 public: | |
83 | 50 Title(const QString& title, QWidget* parent = nullptr); |
75 | 51 }; |
52 | |
95
8043152ef9d4
include: set classes as final where appropriate
Paper <mrpapersonic@gmail.com>
parents:
83
diff
changeset
|
53 class Section final : public QWidget { |
75 | 54 Q_OBJECT |
55 | |
56 public: | |
83 | 57 Section(const QString& title, const QString& data, QWidget* parent = nullptr); |
46 | 58 Header* GetHeader(); |
59 Paragraph* GetParagraph(); | |
60 | |
61 private: | |
62 Header* header; | |
63 Paragraph* paragraph; | |
64 }; | |
65 | |
95
8043152ef9d4
include: set classes as final where appropriate
Paper <mrpapersonic@gmail.com>
parents:
83
diff
changeset
|
66 class LabelledSection final : public QWidget { |
46 | 67 Q_OBJECT |
68 | |
69 public: | |
83 | 70 LabelledSection(const QString& title, const QString& label, const QString& data, QWidget* parent = nullptr); |
46 | 71 Header* GetHeader(); |
72 Paragraph* GetLabels(); | |
73 Paragraph* GetParagraph(); | |
74 | |
75 private: | |
76 Header* header; | |
77 Paragraph* labels; | |
78 Paragraph* paragraph; | |
79 }; | |
80 | |
95
8043152ef9d4
include: set classes as final where appropriate
Paper <mrpapersonic@gmail.com>
parents:
83
diff
changeset
|
81 class SelectableSection final : public QWidget { |
46 | 82 Q_OBJECT |
83 | |
84 public: | |
83 | 85 SelectableSection(const QString& title, const QString& data, QWidget* parent = nullptr); |
46 | 86 Header* GetHeader(); |
87 Paragraph* GetParagraph(); | |
88 | |
89 private: | |
90 Header* header; | |
91 Paragraph* paragraph; | |
92 }; | |
64 | 93 |
95
8043152ef9d4
include: set classes as final where appropriate
Paper <mrpapersonic@gmail.com>
parents:
83
diff
changeset
|
94 class OneLineSection final : public QWidget { |
64 | 95 Q_OBJECT |
96 | |
97 public: | |
83 | 98 OneLineSection(const QString& title, const QString& data, QWidget* parent = nullptr); |
75 | 99 Header* GetHeader(); |
100 Line* GetLine(); | |
101 | |
102 private: | |
103 Header* header; | |
104 Line* line; | |
64 | 105 }; |
106 | |
107 } // namespace TextWidgets | |
108 | |
46 | 109 #endif // __gui__ui_utils_h |