aboutsummaryrefslogtreecommitdiff
path: root/src/ui
diff options
context:
space:
mode:
Diffstat (limited to 'src/ui')
-rw-r--r--src/ui/CMakeLists.txt1
-rw-r--r--src/ui/document/DocumentElementType.cpp14
-rw-r--r--src/ui/document/TextDocumentElement.cpp17
3 files changed, 29 insertions, 3 deletions
diff --git a/src/ui/CMakeLists.txt b/src/ui/CMakeLists.txt
index 1e227fd7..93077388 100644
--- a/src/ui/CMakeLists.txt
+++ b/src/ui/CMakeLists.txt
@@ -26,6 +26,7 @@ add_library(CruUi
controls/Window.cpp
document/DocumentElement.cpp
document/DocumentElementType.cpp
+ document/TextDocumentElement.cpp
events/MouseEventArgs.cpp
helper/ClickDetector.cpp
helper/ShortcutHub.cpp
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