diff options
Diffstat (limited to 'src/ui')
-rw-r--r-- | src/ui/CMakeLists.txt | 1 | ||||
-rw-r--r-- | src/ui/document/DocumentElementType.cpp | 14 | ||||
-rw-r--r-- | src/ui/document/TextDocumentElement.cpp | 17 |
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 |