diff options
Diffstat (limited to 'src/ui/controls/TextBlock.cpp')
-rw-r--r-- | src/ui/controls/TextBlock.cpp | 44 |
1 files changed, 44 insertions, 0 deletions
diff --git a/src/ui/controls/TextBlock.cpp b/src/ui/controls/TextBlock.cpp new file mode 100644 index 00000000..f77e279b --- /dev/null +++ b/src/ui/controls/TextBlock.cpp @@ -0,0 +1,44 @@ +#include "cru/ui/controls/TextBlock.hpp" + +#include "cru/ui/render/CanvasRenderObject.hpp" +#include "cru/ui/render/StackLayoutRenderObject.hpp" +#include "cru/ui/render/TextRenderObject.hpp" +#include "cru/ui/UiManager.hpp" +#include "TextControlService.hpp" + +namespace cru::ui::controls { +using render::CanvasRenderObject; +using render::StackLayoutRenderObject; +using render::TextRenderObject; + +TextBlock::TextBlock() { + const auto theme_resources = UiManager::GetInstance()->GetThemeResources(); + + text_render_object_ = std::make_unique<TextRenderObject>( + theme_resources->text_brush, theme_resources->default_font, + theme_resources->text_selection_brush, theme_resources->caret_brush); + + text_render_object_->SetAttachedControl(this); + + service_ = std::make_unique<TextControlService<TextBlock>>(this); + service_->SetEnabled(true); +} + +TextBlock::~TextBlock() = default; + +render::RenderObject* TextBlock::GetRenderObject() const { + return text_render_object_.get(); +} + +std::string TextBlock::GetText() const { + return text_render_object_->GetText(); +} + +void TextBlock::SetText(std::string text) { + text_render_object_->SetText(std::move(text)); +} + +render::TextRenderObject* TextBlock::GetTextRenderObject() { + return text_render_object_.get(); +} +} // namespace cru::ui::controls |