From 8f7505d7fd35058870a4a937ca9670e383778dca Mon Sep 17 00:00:00 2001 From: crupest Date: Thu, 19 Oct 2023 16:34:34 +0800 Subject: Develop document. --- src/ui/document/DocumentElementType.cpp | 14 +++++++++++--- src/ui/document/TextDocumentElement.cpp | 17 +++++++++++++++++ 2 files changed, 28 insertions(+), 3 deletions(-) create mode 100644 src/ui/document/TextDocumentElement.cpp (limited to 'src/ui/document') 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 +#include namespace cru::ui::document { -DocumentElementType::DocumentElementType(String name) - : name_(std::move(name)) {} +DocumentElementType::DocumentElementType( + String name, std::vector 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 -- cgit v1.2.3