diff options
| author | crupest <crupest@outlook.com> | 2019-03-24 19:44:31 +0800 |
|---|---|---|
| committer | crupest <crupest@outlook.com> | 2019-03-24 19:44:31 +0800 |
| commit | b76e435faca204f830644047077ab08930dc8f9c (patch) | |
| tree | 8bca146bc7443a704d3cb4b71b36e632cb505c25 /src/ui/controls/button.cpp | |
| parent | 79d1d76509dbf6cf9c79f8eb55968535982975aa (diff) | |
| download | cru-b76e435faca204f830644047077ab08930dc8f9c.tar.gz cru-b76e435faca204f830644047077ab08930dc8f9c.tar.bz2 cru-b76e435faca204f830644047077ab08930dc8f9c.zip | |
...
Diffstat (limited to 'src/ui/controls/button.cpp')
| -rw-r--r-- | src/ui/controls/button.cpp | 17 |
1 files changed, 14 insertions, 3 deletions
diff --git a/src/ui/controls/button.cpp b/src/ui/controls/button.cpp index 5d4e15cc..a6578251 100644 --- a/src/ui/controls/button.cpp +++ b/src/ui/controls/button.cpp @@ -1,13 +1,24 @@ #include "button.hpp" -#include "ui/ui_manager.hpp" #include "ui/render/border_render_object.hpp" +#include "ui/ui_manager.hpp" namespace cru::ui::controls { Button::Button() { const auto predefined_resource = UiManager::GetInstance()->GetPredefineResources(); - render_object_ = new render::BorderRenderObject(); } + render_object_.reset(new render::BorderRenderObject( + predefined_resource->button_normal_border_brush)); + render_object_->SetEnabled(true); + render_object_->SetBorderWidth(Thickness{3}); + render_object_->SetCornerRadius(render::CornerRadius{Point{10, 5}}); +} + +render::RenderObject* Button::GetRenderObject() const { return render_object_.get(); } -void Button::OnChildChanged(Control* old_child, Control* new_child) {} +void Button::OnChildChanged(Control* old_child, Control* new_child) { + if (old_child != nullptr) render_object_->RemoveChild(0); + if (new_child != nullptr) + render_object_->AddChild(new_child->GetRenderObject(), 0); +} } // namespace cru::ui::controls |
