diff options
| author | trustable-code <krauter.simon@arcor.de> | 2020-05-02 19:31:43 +0200 |
|---|---|---|
| committer | trustable-code <krauter.simon@arcor.de> | 2020-05-02 19:31:43 +0200 |
| commit | 3cd60917d261942dff845b3fd7c6fe81ccb82c48 (patch) | |
| tree | 6f10927d4169e5dcfd8ecbecafa898ac7b79c400 /src/nigui/private/gtk3 | |
| parent | 4480cd6b13edd9fa6e8f270ebd2ffd6cab8296c7 (diff) | |
| download | NiGui-3cd60917d261942dff845b3fd7c6fe81ccb82c48.tar.gz NiGui-3cd60917d261942dff845b3fd7c6fe81ccb82c48.zip | |
Add methods to get mouse position
Diffstat (limited to 'src/nigui/private/gtk3')
| -rwxr-xr-x | src/nigui/private/gtk3/gtk3.nim | 1 | ||||
| -rwxr-xr-x | src/nigui/private/gtk3/platform_impl.nim | 12 |
2 files changed, 13 insertions, 0 deletions
diff --git a/src/nigui/private/gtk3/gtk3.nim b/src/nigui/private/gtk3/gtk3.nim index 67a0e23..5db784b 100755 --- a/src/nigui/private/gtk3/gtk3.nim +++ b/src/nigui/private/gtk3/gtk3.nim @@ -294,6 +294,7 @@ proc gtk_widget_is_focus*(widget: pointer): bool {.importc, libgtk3.} proc gtk_widget_realize*(widget: pointer) {.importc, libgtk3.} proc gtk_widget_draw*(widget, cr: pointer) {.importc, libgtk3.} proc gtk_widget_set_sensitive*(widget: pointer, sensitive: bool) {.importc, libgtk3.} +proc gtk_widget_get_pointer*(widget: pointer, x, y: var cint) {.importc, libgtk3.} proc gtk_container_add*(container, widget: pointer) {.importc, libgtk3.} proc gtk_container_remove*(container, widget: pointer) {.importc, libgtk3.} diff --git a/src/nigui/private/gtk3/platform_impl.nim b/src/nigui/private/gtk3/platform_impl.nim index e2e23d5..cb15f2f 100755 --- a/src/nigui/private/gtk3/platform_impl.nim +++ b/src/nigui/private/gtk3/platform_impl.nim @@ -889,6 +889,12 @@ method `control=`(window: WindowImpl, control: Control) = procCall window.Window.`control=`(control) gtk_container_add(window.fInnerHandle, cast[ControlImpl](control).fHandle) +method mousePosition(window: Window): tuple[x, y: int] = + var x, y: cint + gtk_widget_get_pointer(cast[WindowImpl](window).fHandle, x, y) + result.x = x + result.y = y + method `iconPath=`(window: WindowImpl, iconPath: string) = procCall window.Window.`iconPath=`(iconPath) if not gtk_window_set_icon_from_file(window.fHandle, iconPath, nil): @@ -1258,6 +1264,12 @@ method pUpdateScrollBar(container: ContainerImpl) = yPolicy = GTK_POLICY_AUTOMATIC gtk_scrolled_window_set_policy(container.fScrollWndHandle, xPolicy, yPolicy) +method mousePosition(control: Control): tuple[x, y: int] = + var x, y: cint + gtk_widget_get_pointer(cast[ControlImpl](control).fHandle, x, y) + result.x = x + result.y = y + # ---------------------------------------------------------------------------------------- # Frame |
