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