From 63b39863b9d567068480f9c1d59177c92a8c6169 Mon Sep 17 00:00:00 2001 From: crupest Date: Tue, 21 Dec 2021 15:36:00 +0800 Subject: ... --- src/ui/events/MouseEventArgs.cpp | 14 ++++++++++++++ 1 file changed, 14 insertions(+) (limited to 'src/ui/events/MouseEventArgs.cpp') diff --git a/src/ui/events/MouseEventArgs.cpp b/src/ui/events/MouseEventArgs.cpp index b27bb9d4..39424c65 100644 --- a/src/ui/events/MouseEventArgs.cpp +++ b/src/ui/events/MouseEventArgs.cpp @@ -1,5 +1,7 @@ #include "cru/ui/events/MouseEventArgs.hpp" +#include "cru/ui/controls/Control.hpp" +#include "cru/ui/host/WindowHost.hpp" #include "cru/ui/render/RenderObject.hpp" namespace cru::ui::events { @@ -11,4 +13,16 @@ Point MouseEventArgs::GetPointToContent( render::RenderObject* render_object) const { return render_object->FromRootToContent(GetPoint()); } + +Point MouseEventArgs::GetPointOfScreen() const { + auto sender = GetSender(); + if (auto control = dynamic_cast(sender)) { + if (auto host = control->GetWindowHost()) + return GetPoint() + control->GetWindowHost() + ->GetNativeWindow() + ->GetClientRect() + .GetLeftTop(); + } + return GetPoint(); +} } // namespace cru::ui::events -- cgit v1.2.3