summaryrefslogtreecommitdiff
path: root/src/nigui/private/windows/platform_impl.nim
diff options
context:
space:
mode:
authortrustable-code <krauter.simon@arcor.de>2020-05-02 19:31:43 +0200
committertrustable-code <krauter.simon@arcor.de>2020-05-02 19:31:43 +0200
commit3cd60917d261942dff845b3fd7c6fe81ccb82c48 (patch)
tree6f10927d4169e5dcfd8ecbecafa898ac7b79c400 /src/nigui/private/windows/platform_impl.nim
parent4480cd6b13edd9fa6e8f270ebd2ffd6cab8296c7 (diff)
downloadNiGui-3cd60917d261942dff845b3fd7c6fe81ccb82c48.tar.gz
NiGui-3cd60917d261942dff845b3fd7c6fe81ccb82c48.zip
Add methods to get mouse position
Diffstat (limited to 'src/nigui/private/windows/platform_impl.nim')
-rwxr-xr-xsrc/nigui/private/windows/platform_impl.nim27
1 files changed, 27 insertions, 0 deletions
diff --git a/src/nigui/private/windows/platform_impl.nim b/src/nigui/private/windows/platform_impl.nim
index b0e23c4..c52d908 100755
--- a/src/nigui/private/windows/platform_impl.nim
+++ b/src/nigui/private/windows/platform_impl.nim
@@ -947,6 +947,20 @@ method `control=`(window: WindowImpl, control: Control) =
procCall window.Window.`control=`(control)
pSetParent(cast[ControlImpl](control).fHandle, window.fHandle)
+method mousePosition(window: Window): tuple[x, y: int] =
+ var p: Point
+ if not GetCursorPos(p):
+ result.x = -1
+ result.y = -1
+ return
+ if not ScreenToClient(cast[WindowImpl](window).fHandle, p):
+ result.x = -1
+ result.y = -1
+ return
+ result.x = p.x
+ result.y = p.y
+
+
method `iconPath=`(window: WindowImpl, iconPath: string) =
procCall window.Window.`iconPath=`(iconPath)
var bitmap: pointer
@@ -1298,6 +1312,19 @@ proc pCustomControlWndProc(hWnd: pointer, uMsg: int32, wParam, lParam: pointer):
return cast[pointer](true)
result = CallWindowProcW(pCommonWndProc, hWnd, uMsg, wParam, lParam)
+method mousePosition(control: Control): tuple[x, y: int] =
+ var p: Point
+ if not GetCursorPos(p):
+ result.x = -1
+ result.y = -1
+ return
+ if not ScreenToClient(cast[ControlImpl](control).fHandle, p):
+ result.x = -1
+ result.y = -1
+ return
+ result.x = p.x
+ result.y = p.y
+
# ----------------------------------------------------------------------------------------
# Container