Mercurial > minori
diff include/gui/ui_utils.h @ 9:5c0397762b53
INCOMPLETE: megacommit :)
author | Paper <mrpapersonic@gmail.com> |
---|---|
date | Sun, 10 Sep 2023 03:59:16 -0400 |
parents | |
children | cde8f67a7c7d |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/include/gui/ui_utils.h Sun Sep 10 03:59:16 2023 -0400 @@ -0,0 +1,78 @@ +#ifndef __gui__ui_utils_h +#define __gui__ui_utils_h +#include <QFrame> +#include <QLabel> +#include <QPlainTextEdit> +#include <QSize> +#include <QString> +#include <QWidget> +namespace UiUtils { +bool IsInDarkMode(); +void SetPlainTextEditData(QPlainTextEdit* text_edit, QString data); + +class Header : public QWidget { + Q_OBJECT + + public: + Header(QString title, QWidget* parent = nullptr); + void SetTitle(QString title); + + private: + QLabel* static_text_title; + QFrame* static_text_line; +}; + +class Paragraph : public QPlainTextEdit { + Q_OBJECT + + public: + Paragraph(QString text, QWidget* parent = nullptr); + QSize minimumSizeHint() const override; + QSize sizeHint() const override; +}; + +/* technically a paragraph and a heading is actually a + "section", but that name is equally as confusing as + "text paragraph". */ +class TextParagraph : public QWidget { + Q_OBJECT + + public: + TextParagraph(QString title, QString data, QWidget* parent = nullptr); + Header* GetHeader(); + Paragraph* GetParagraph(); + + private: + Header* header; + Paragraph* paragraph; +}; + +class LabelledTextParagraph : public QWidget { + Q_OBJECT + + public: + LabelledTextParagraph(QString title, QString label, QString data, QWidget* parent = nullptr); + Header* GetHeader(); + Paragraph* GetLabels(); + Paragraph* GetParagraph(); + + private: + Header* header; + Paragraph* labels; + Paragraph* paragraph; +}; + +class SelectableTextParagraph : public QWidget { + Q_OBJECT + + public: + SelectableTextParagraph(QString title, QString data, QWidget* parent = nullptr); + Header* GetHeader(); + Paragraph* GetParagraph(); + + private: + Header* header; + Paragraph* paragraph; +}; +}; // namespace UiUtils +#endif // __gui__ui_utils_h \ No newline at end of file