Mercurial > minori
view include/gui/widgets/text.h @ 345:d085c05247bd
build: fix windows build
author | Paper <paper@paper.us.eu.org> |
---|---|
date | Thu, 20 Jun 2024 07:39:01 -0400 |
parents | b82841e76e79 |
children | 6b0768158dcd |
line wrap: on
line source
#ifndef MINORI_GUI_WIDGETS_TEXT_H_ #define MINORI_GUI_WIDGETS_TEXT_H_ #include <QLineEdit> #include <QPlainTextEdit> #include <QSize> #include <QString> #include <QWidget> class QFrame; #include <QLabel> namespace TextWidgets { class Header : public QWidget { Q_OBJECT public: Header(const QString& title, QWidget* parent = nullptr); void SetText(const QString& title); private: QLabel static_text_title; QFrame static_text_line; }; class Paragraph : public QWidget { Q_OBJECT public: Paragraph(const QString& text, QWidget* parent = nullptr); void SetText(const QString& text); QPlainTextEdit* GetLabel(); protected: bool hasHeightForWidth() const override; int heightForWidth(int w) const override; private: QPlainTextEdit text_edit; }; class LabelledParagraph final : public QWidget { Q_OBJECT public: LabelledParagraph(const QString& label, const QString& data, QWidget* parent = nullptr); QLabel* GetLabels(); QLabel* GetData(); /* synonymous with GetData(), kept for compatibility. don't use in new code!!! */ QLabel* GetParagraph(); private: QLabel labels_; QLabel data_; }; class Line : public QWidget { Q_OBJECT public: Line(QWidget* parent = nullptr); Line(const QString& text, QWidget* parent = nullptr); void SetText(const QString& text); protected: QLineEdit line_edit_; }; class Title final : public Line { Q_OBJECT public: Title(const QString& title, QWidget* parent = nullptr); }; class Section final : public QWidget { Q_OBJECT public: Section(const QString& title, const QString& data, QWidget* parent = nullptr); Header* GetHeader(); Paragraph* GetParagraph(); private: Header* header; Paragraph* paragraph; }; class LabelledSection final : public QWidget { Q_OBJECT public: LabelledSection(const QString& title, const QString& label, const QString& data, QWidget* parent = nullptr); Header* GetHeader(); QLabel* GetLabels(); QLabel* GetData(); QLabel* GetParagraph(); private: Header* header; LabelledParagraph* content; }; class SelectableSection final : public QWidget { Q_OBJECT public: SelectableSection(const QString& title, const QString& data, QWidget* parent = nullptr); Header* GetHeader(); Paragraph* GetParagraph(); private: Header* header; Paragraph* paragraph; }; class OneLineSection final : public QWidget { Q_OBJECT public: OneLineSection(const QString& title, const QString& data, QWidget* parent = nullptr); Header* GetHeader(); Line* GetLine(); private: Header* header; Line* line; }; } // namespace TextWidgets #endif // MINORI_GUI_WIDGETS_TEXT_H_