From e01800206050a0ed88cc4f4456fa3590021ab66f Mon Sep 17 00:00:00 2001 From: crupest Date: Sat, 22 Sep 2018 00:17:53 +0800 Subject: Add button. --- CruUI/ui/controls/button.cpp | 33 +++++++++++++++++++++++++++++++++ 1 file changed, 33 insertions(+) create mode 100644 CruUI/ui/controls/button.cpp (limited to 'CruUI/ui/controls/button.cpp') diff --git a/CruUI/ui/controls/button.cpp b/CruUI/ui/controls/button.cpp new file mode 100644 index 00000000..b7614f93 --- /dev/null +++ b/CruUI/ui/controls/button.cpp @@ -0,0 +1,33 @@ +#include "button.h" + +#include "graph/graph.h" + +namespace cru::ui::controls +{ + using graph::CreateSolidBrush; + + Button::Button() : Control(true) + { + normal_border_brush_ = CreateSolidBrush(D2D1::ColorF(D2D1::ColorF::RoyalBlue)); + pressed_border_brush_ = CreateSolidBrush(D2D1::ColorF(D2D1::ColorF::MediumBlue)); + current_border_brush_ = normal_border_brush_.Get(); + } + + void Button::OnDraw(ID2D1DeviceContext* device_context) + { + Control::OnDraw(device_context); + device_context->DrawRoundedRectangle(D2D1::RoundedRect(D2D1::RectF(0, 0, GetSize().width, GetSize().height), 6, 6), current_border_brush_, 2); + } + + void Button::OnMouseClickBegin(MouseButton button) + { + current_border_brush_ = pressed_border_brush_.Get(); + Repaint(); + } + + void Button::OnMouseClickEnd(MouseButton button) + { + current_border_brush_ = normal_border_brush_.Get(); + Repaint(); + } +} -- cgit v1.2.3