aboutsummaryrefslogtreecommitdiff
path: root/src/ui/controls/button.cpp
diff options
context:
space:
mode:
authorcrupest <crupest@outlook.com>2019-03-24 19:44:31 +0800
committercrupest <crupest@outlook.com>2019-03-24 19:44:31 +0800
commitb76e435faca204f830644047077ab08930dc8f9c (patch)
tree8bca146bc7443a704d3cb4b71b36e632cb505c25 /src/ui/controls/button.cpp
parent79d1d76509dbf6cf9c79f8eb55968535982975aa (diff)
downloadcru-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.cpp17
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