diff options
author | crupest <crupest@outlook.com> | 2020-07-05 18:13:10 +0800 |
---|---|---|
committer | crupest <crupest@outlook.com> | 2020-07-05 18:13:10 +0800 |
commit | ce56ab59a6d68c220fcc47c6977c618eaa43de7a (patch) | |
tree | d6775d0ffa6f4fde00e69ed82192bc6c5b25d45b /src/ui/controls/TextBox.cpp | |
parent | e10ef322e5f6268aec5d7717a82fceb42607a000 (diff) | |
download | cru-ce56ab59a6d68c220fcc47c6977c618eaa43de7a.tar.gz cru-ce56ab59a6d68c220fcc47c6977c618eaa43de7a.tar.bz2 cru-ce56ab59a6d68c220fcc47c6977c618eaa43de7a.zip |
...
Diffstat (limited to 'src/ui/controls/TextBox.cpp')
-rw-r--r-- | src/ui/controls/TextBox.cpp | 20 |
1 files changed, 15 insertions, 5 deletions
diff --git a/src/ui/controls/TextBox.cpp b/src/ui/controls/TextBox.cpp index 64fd4c60..b25e3bcb 100644 --- a/src/ui/controls/TextBox.cpp +++ b/src/ui/controls/TextBox.cpp @@ -1,19 +1,23 @@ #include "cru/ui/controls/TextBox.hpp" +#include "TextControlService.hpp" +#include "cru/ui/UiManager.hpp" #include "cru/ui/render/BorderRenderObject.hpp" #include "cru/ui/render/CanvasRenderObject.hpp" +#include "cru/ui/render/ScrollRenderObject.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::BorderRenderObject; using render::CanvasRenderObject; +using render::ScrollRenderObject; using render::StackLayoutRenderObject; using render::TextRenderObject; -TextBox::TextBox() : border_render_object_(new BorderRenderObject()) { +TextBox::TextBox() + : border_render_object_(new BorderRenderObject()), + scroll_render_object_(new ScrollRenderObject()) { const auto theme_resources = UiManager::GetInstance()->GetThemeResources(); border_style_ = theme_resources->text_box_border_style; @@ -22,9 +26,11 @@ TextBox::TextBox() : border_render_object_(new BorderRenderObject()) { theme_resources->text_brush, theme_resources->default_font, theme_resources->text_selection_brush, theme_resources->caret_brush); - border_render_object_->AddChild(text_render_object_.get(), 0); + border_render_object_->AddChild(scroll_render_object_.get(), 0); + scroll_render_object_->AddChild(text_render_object_.get(), 0); border_render_object_->SetAttachedControl(this); + scroll_render_object_->SetAttachedControl(this); text_render_object_->SetAttachedControl(this); service_ = std::make_unique<TextControlService<TextBox>>(this); @@ -48,10 +54,14 @@ render::RenderObject* TextBox::GetRenderObject() const { return border_render_object_.get(); } -render::TextRenderObject* TextBox::GetTextRenderObject() { +gsl::not_null<render::TextRenderObject*> TextBox::GetTextRenderObject() { return text_render_object_.get(); } +render::ScrollRenderObject* TextBox::GetScrollRenderObject() { + return scroll_render_object_.get(); +} + const TextBoxBorderStyle& TextBox::GetBorderStyle() { return border_style_; } void TextBox::SetBorderStyle(TextBoxBorderStyle border_style) { |