aboutsummaryrefslogtreecommitdiff
path: root/src/ui/document
diff options
context:
space:
mode:
Diffstat (limited to 'src/ui/document')
-rw-r--r--src/ui/document/DocumentElementType.cpp14
-rw-r--r--src/ui/document/TextDocumentElement.cpp17
2 files changed, 28 insertions, 3 deletions
diff --git a/src/ui/document/DocumentElementType.cpp b/src/ui/document/DocumentElementType.cpp
index 8a057b69..d548b494 100644
--- a/src/ui/document/DocumentElementType.cpp
+++ b/src/ui/document/DocumentElementType.cpp
@@ -1,13 +1,21 @@
#include "cru/ui/document/DocumentElementType.h"
#include <utility>
+#include <vector>
namespace cru::ui::document {
-DocumentElementType::DocumentElementType(String name)
- : name_(std::move(name)) {}
+DocumentElementType::DocumentElementType(
+ String name, std::vector<DocumentElementType*> parents)
+ : name_(std::move(name)), parents_(std::move(parents)) {}
DocumentElementType::~DocumentElementType() {}
+DocumentElementType* const DocumentElementTypes::kBaseElementType =
+ new DocumentElementType(u"Base", {});
+
DocumentElementType* const DocumentElementTypes::kRootElementType =
- new DocumentElementType(u"Root");
+ new DocumentElementType(u"Root", {kBaseElementType});
+
+DocumentElementType* const DocumentElementTypes::kTextElementType =
+ new DocumentElementType(u"Text", {kBaseElementType});
} // namespace cru::ui::document
diff --git a/src/ui/document/TextDocumentElement.cpp b/src/ui/document/TextDocumentElement.cpp
new file mode 100644
index 00000000..ab79823d
--- /dev/null
+++ b/src/ui/document/TextDocumentElement.cpp
@@ -0,0 +1,17 @@
+#include "cru/ui/document/TextDocumentElement.h"
+#include "cru/common/String.h"
+#include "cru/ui/document/DocumentElement.h"
+#include "cru/ui/document/DocumentElementType.h"
+
+namespace cru::ui::document {
+TextDocumentElement::TextDocumentElement(String text, TextStyle style,
+ IDocumentLink* link)
+ : DocumentElement(DocumentElementTypes::kTextElementType),
+ text_(std::move(text)),
+ style_(style),
+ link_(link) {}
+
+TextDocumentElement::~TextDocumentElement() {}
+
+void TextDocumentElement::SetText(String text) { text_ = std::move(text); }
+} // namespace cru::ui::document