diff options
Diffstat (limited to 'src/ui/controls/button.cpp')
-rw-r--r-- | src/ui/controls/button.cpp | 14 |
1 files changed, 12 insertions, 2 deletions
diff --git a/src/ui/controls/button.cpp b/src/ui/controls/button.cpp index 42a08e33..38ce75a8 100644 --- a/src/ui/controls/button.cpp +++ b/src/ui/controls/button.cpp @@ -3,12 +3,17 @@ #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_applicaition.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::SystemCursor; +using platform::native::UiApplication; + Button::Button() : click_detector_(this) { // const auto predefined_resource = // UiManager::GetInstance()->GetPredefineResources(); @@ -39,10 +44,15 @@ Button::Button() : click_detector_(this) { } else { SetState(ButtonState::Hover); } + SetCursor(UiApplication::GetInstance()->GetCursorManager()->GetSystemCursor( + SystemCursor::Hand)); }); - MouseLeaveEvent()->Direct()->AddHandler( - [this](event::MouseEventArgs& args) { SetState(ButtonState::Normal); }); + MouseLeaveEvent()->Direct()->AddHandler([this](event::MouseEventArgs& args) { + SetState(ButtonState::Normal); + SetCursor(UiApplication::GetInstance()->GetCursorManager()->GetSystemCursor( + SystemCursor::Arrow)); + }); click_detector_.ClickBeginEvent()->AddHandler([this](MouseButton button) { if (button & trigger_button_) { |