From 9110574bb51e9e2959842a7641f598d34c3cd847 Mon Sep 17 00:00:00 2001 From: crupest Date: Fri, 13 Dec 2019 01:02:47 +0800 Subject: ... --- src/ui/controls/button.cpp | 22 ++++++++++++---------- 1 file changed, 12 insertions(+), 10 deletions(-) (limited to 'src/ui/controls/button.cpp') diff --git a/src/ui/controls/button.cpp b/src/ui/controls/button.cpp index 2822f6db..b7f972be 100644 --- a/src/ui/controls/button.cpp +++ b/src/ui/controls/button.cpp @@ -1,18 +1,16 @@ #include "cru/ui/controls/button.hpp" #include +#include "../helper.hpp" #include "cru/platform/graph/brush.hpp" -#include "cru/platform/graph/graph_factory.hpp" #include "cru/platform/native/cursor.hpp" -#include "cru/platform/native/native_window.hpp" #include "cru/platform/native/ui_application.hpp" #include "cru/ui/render/border_render_object.hpp" #include "cru/ui/ui_manager.hpp" #include "cru/ui/window.hpp" namespace cru::ui::controls { -using platform::native::GetSystemCursor; -using platform::native::SystemCursor; +using cru::platform::native::SystemCursorType; namespace { void Set(render::BorderRenderObject* o, const ButtonStateStyle& s) { @@ -22,12 +20,17 @@ void Set(render::BorderRenderObject* o, const ButtonStateStyle& s) { o->SetForegroundBrush(s.foreground_brush); o->SetBackgroundBrush(s.background_brush); } + +std::shared_ptr GetSystemCursor( + SystemCursorType type) { + return GetUiApplication()->GetCursorManager()->GetSystemCursor(type); +} } // namespace Button::Button() : click_detector_(this) { style_ = UiManager::GetInstance()->GetThemeResources()->button_style; - render_object_.reset(new render::BorderRenderObject); + render_object_ = std::make_unique(); render_object_->SetAttachedControl(this); Set(render_object_.get(), style_.normal); render_object_->SetBorderEnabled(true); @@ -75,21 +78,20 @@ void Button::OnStateChange(ButtonState oldState, ButtonState newState) { switch (newState) { case ButtonState::Normal: Set(render_object_.get(), style_.normal); - SetCursor(GetSystemCursor(SystemCursor::Arrow)); + SetCursor(GetSystemCursor(SystemCursorType::Arrow)); break; case ButtonState::Hover: Set(render_object_.get(), style_.hover); - SetCursor(GetSystemCursor(SystemCursor::Hand)); + SetCursor(GetSystemCursor(SystemCursorType::Hand)); break; case ButtonState::Press: Set(render_object_.get(), style_.press); - SetCursor(GetSystemCursor(SystemCursor::Hand)); + SetCursor(GetSystemCursor(SystemCursorType::Hand)); break; case ButtonState::PressCancel: Set(render_object_.get(), style_.press_cancel); - SetCursor(GetSystemCursor(SystemCursor::Arrow)); + SetCursor(GetSystemCursor(SystemCursorType::Arrow)); break; } - GetWindow()->GetNativeWindow()->Repaint(); } } // namespace cru::ui::controls -- cgit v1.2.3