Data commit
This commit is contained in:
parent
7387c8f97b
commit
cb5bb5e222
199093 changed files with 3378972 additions and 0 deletions
7
Task/Mouse-position/00-META.yaml
Normal file
7
Task/Mouse-position/00-META.yaml
Normal file
|
|
@ -0,0 +1,7 @@
|
|||
---
|
||||
category:
|
||||
- Testing
|
||||
- Hardware
|
||||
- Pointing devices
|
||||
from: http://rosettacode.org/wiki/Mouse_position
|
||||
note: GUI
|
||||
6
Task/Mouse-position/00-TASK.txt
Normal file
6
Task/Mouse-position/00-TASK.txt
Normal file
|
|
@ -0,0 +1,6 @@
|
|||
;Task:
|
||||
Get the current location of the mouse cursor relative to the active window.
|
||||
|
||||
Please specify if the window may be externally created.
|
||||
<br><br>
|
||||
|
||||
2
Task/Mouse-position/8086-Assembly/mouse-position.8086
Normal file
2
Task/Mouse-position/8086-Assembly/mouse-position.8086
Normal file
|
|
@ -0,0 +1,2 @@
|
|||
mov ax,3
|
||||
int 33h
|
||||
37
Task/Mouse-position/ActionScript/mouse-position.as
Normal file
37
Task/Mouse-position/ActionScript/mouse-position.as
Normal file
|
|
@ -0,0 +1,37 @@
|
|||
package {
|
||||
|
||||
import flash.display.Sprite;
|
||||
import flash.events.Event;
|
||||
import flash.text.TextField;
|
||||
import flash.text.TextFieldAutoSize;
|
||||
import flash.text.TextFormat;
|
||||
|
||||
public class MousePosition extends Sprite {
|
||||
|
||||
private var _textField:TextField = new TextField();
|
||||
|
||||
public function MousePosition() {
|
||||
if ( stage ) init();
|
||||
else addEventListener(Event.ADDED_TO_STAGE, init);
|
||||
}
|
||||
|
||||
private function init(e:Event = null):void {
|
||||
removeEventListener(Event.ADDED_TO_STAGE, init);
|
||||
|
||||
_textField.autoSize = TextFieldAutoSize.RIGHT;
|
||||
_textField.x = stage.stageWidth - 10;
|
||||
_textField.defaultTextFormat = new TextFormat(null, 15);
|
||||
_textField.text = "Mouse position: X = 0, Y = 0";
|
||||
_textField.y = stage.stageHeight - _textField.textHeight - 14;
|
||||
addChild(_textField);
|
||||
|
||||
addEventListener(Event.ENTER_FRAME, _onEnterFrame);
|
||||
}
|
||||
|
||||
private function _onEnterFrame(e:Event):void {
|
||||
_textField.text = "Mouse position: X = " + stage.mouseX + ", Y = " + stage.mouseY;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
67
Task/Mouse-position/Ada/mouse-position.ada
Normal file
67
Task/Mouse-position/Ada/mouse-position.ada
Normal file
|
|
@ -0,0 +1,67 @@
|
|||
with GLib; use GLib;
|
||||
with Gtk.Button; use Gtk.Button;
|
||||
with Gtk.Label; use Gtk.Label;
|
||||
with Gtk.Window; use Gtk.Window;
|
||||
with Gtk.Widget; use Gtk.Widget;
|
||||
with Gtk.Table; use Gtk.Table;
|
||||
|
||||
with Gtk.Handlers;
|
||||
with Gtk.Main;
|
||||
|
||||
procedure Tell_Mouse is
|
||||
Window : Gtk_Window;
|
||||
Grid : Gtk_Table;
|
||||
Button : Gtk_Button;
|
||||
Label : Gtk_Label;
|
||||
|
||||
package Handlers is new Gtk.Handlers.Callback (Gtk_Widget_Record);
|
||||
package Return_Handlers is
|
||||
new Gtk.Handlers.Return_Callback (Gtk_Widget_Record, Boolean);
|
||||
|
||||
function Delete_Event (Widget : access Gtk_Widget_Record'Class)
|
||||
return Boolean is
|
||||
begin
|
||||
return False;
|
||||
end Delete_Event;
|
||||
|
||||
procedure Destroy (Widget : access Gtk_Widget_Record'Class) is
|
||||
begin
|
||||
Gtk.Main.Main_Quit;
|
||||
end Destroy;
|
||||
|
||||
procedure Clicked (Widget : access Gtk_Widget_Record'Class) is
|
||||
X, Y : GInt;
|
||||
begin
|
||||
Get_Pointer (Window, X, Y);
|
||||
Set_Text (Label, "At" & GInt'Image (X) & GInt'Image (Y));
|
||||
end Clicked;
|
||||
|
||||
begin
|
||||
Gtk.Main.Init;
|
||||
Gtk.Window.Gtk_New (Window);
|
||||
Gtk_New (Grid, 1, 2, False);
|
||||
Add (Window, Grid);
|
||||
Gtk_New (Label);
|
||||
Attach (Grid, Label, 0, 1, 0, 1);
|
||||
Gtk_New (Button, "Click me");
|
||||
Attach (Grid, Button, 0, 1, 1, 2);
|
||||
Return_Handlers.Connect
|
||||
( Window,
|
||||
"delete_event",
|
||||
Return_Handlers.To_Marshaller (Delete_Event'Access)
|
||||
);
|
||||
Handlers.Connect
|
||||
( Window,
|
||||
"destroy",
|
||||
Handlers.To_Marshaller (Destroy'Access)
|
||||
);
|
||||
Handlers.Connect
|
||||
( Button,
|
||||
"clicked",
|
||||
Handlers.To_Marshaller (Clicked'Access)
|
||||
);
|
||||
Show_All (Grid);
|
||||
Show (Window);
|
||||
|
||||
Gtk.Main.Main;
|
||||
end Tell_Mouse;
|
||||
6
Task/Mouse-position/AmigaBASIC/mouse-position.basic
Normal file
6
Task/Mouse-position/AmigaBASIC/mouse-position.basic
Normal file
|
|
@ -0,0 +1,6 @@
|
|||
MOUSE ON
|
||||
|
||||
WHILE 1
|
||||
m=MOUSE(0)
|
||||
PRINT MOUSE(1),MOUSE(2)
|
||||
WEND
|
||||
16
Task/Mouse-position/AppleScript/mouse-position.applescript
Normal file
16
Task/Mouse-position/AppleScript/mouse-position.applescript
Normal file
|
|
@ -0,0 +1,16 @@
|
|||
use framework "AppKit"
|
||||
|
||||
tell application id "com.apple.SystemEvents" to tell ¬
|
||||
(the first process where it is frontmost) to ¬
|
||||
set {x, y} to the front window's position
|
||||
|
||||
tell the current application
|
||||
set H to NSHeight(its NSScreen's mainScreen's frame)
|
||||
tell [] & its NSEvent's mouseLocation
|
||||
set item 1 to (item 1) - x
|
||||
set item 2 to H - (item 2) - y
|
||||
set coords to it as point
|
||||
end tell
|
||||
end tell
|
||||
|
||||
log coords
|
||||
5
Task/Mouse-position/AutoHotkey/mouse-position-1.ahk
Normal file
5
Task/Mouse-position/AutoHotkey/mouse-position-1.ahk
Normal file
|
|
@ -0,0 +1,5 @@
|
|||
#i:: ; (Optional) Assigns a hotkey to display window info, Windows+i
|
||||
MouseGetPos, x, y ; Gets x/y pos relative to active window
|
||||
WinGetActiveTitle, WinTitle ; Gets active window title
|
||||
Traytip, Mouse position, x: %x%`ny: %y%`rWindow: %WinTitle%, 4 ; Displays the info as a Traytip for 4 seconds
|
||||
return
|
||||
14
Task/Mouse-position/AutoHotkey/mouse-position-2.ahk
Normal file
14
Task/Mouse-position/AutoHotkey/mouse-position-2.ahk
Normal file
|
|
@ -0,0 +1,14 @@
|
|||
GetCursorPos()
|
||||
{
|
||||
static POINT, init := VarSetCapacity(POINT, 8, 0) && NumPut(8, POINT, "Int")
|
||||
if (DllCall("User32.dll\GetCursorPos", "Ptr", &POINT))
|
||||
{
|
||||
return, { 0 : NumGet(POINT, 0, "Int"), 1 : NumGet(POINT, 4, "Int") }
|
||||
}
|
||||
}
|
||||
GetCursorPos := GetCursorPos()
|
||||
|
||||
MsgBox, % "GetCursorPos function`n"
|
||||
. "POINT structure`n`n"
|
||||
. "x-coordinate:`t`t" GetCursorPos[0] "`n"
|
||||
. "y-coordinate:`t`t" GetCursorPos[1]
|
||||
14
Task/Mouse-position/AutoHotkey/mouse-position-3.ahk
Normal file
14
Task/Mouse-position/AutoHotkey/mouse-position-3.ahk
Normal file
|
|
@ -0,0 +1,14 @@
|
|||
GetPhysicalCursorPos()
|
||||
{
|
||||
static POINT, init := VarSetCapacity(POINT, 8, 0) && NumPut(8, POINT, "Int")
|
||||
if (DllCall("User32.dll\GetPhysicalCursorPos", "Ptr", &POINT))
|
||||
{
|
||||
return, { 0 : NumGet(POINT, 0, "Int"), 1 : NumGet(POINT, 4, "Int") }
|
||||
}
|
||||
}
|
||||
GetPhysicalCursorPos := GetPhysicalCursorPos()
|
||||
|
||||
MsgBox, % "GetPhysicalCursorPos function`n"
|
||||
. "POINT structure`n`n"
|
||||
. "x-coordinate:`t`t" GetPhysicalCursorPos[0] "`n"
|
||||
. "y-coordinate:`t`t" GetPhysicalCursorPos[1]
|
||||
2
Task/Mouse-position/BBC-BASIC/mouse-position.basic
Normal file
2
Task/Mouse-position/BBC-BASIC/mouse-position.basic
Normal file
|
|
@ -0,0 +1,2 @@
|
|||
MOUSE xmouse%, ymouse%, buttons%
|
||||
PRINT xmouse%, ymouse%
|
||||
11
Task/Mouse-position/C-sharp/mouse-position.cs
Normal file
11
Task/Mouse-position/C-sharp/mouse-position.cs
Normal file
|
|
@ -0,0 +1,11 @@
|
|||
using System;
|
||||
using System.Windows.Forms;
|
||||
static class Program
|
||||
{
|
||||
[STAThread]
|
||||
static void Main()
|
||||
{
|
||||
Console.WriteLine(Control.MousePosition.X);
|
||||
Console.WriteLine(Control.MousePosition.Y);
|
||||
}
|
||||
}
|
||||
37
Task/Mouse-position/C/mouse-position.c
Normal file
37
Task/Mouse-position/C/mouse-position.c
Normal file
|
|
@ -0,0 +1,37 @@
|
|||
#include <stdio.h>
|
||||
#include <X11/Xlib.h>
|
||||
|
||||
int main()
|
||||
{
|
||||
Display *d;
|
||||
Window inwin; /* root window the pointer is in */
|
||||
Window inchildwin; /* child win the pointer is in */
|
||||
int rootx, rooty; /* relative to the "root" window; we are not interested in these,
|
||||
but we can't pass NULL */
|
||||
int childx, childy; /* the values we are interested in */
|
||||
Atom atom_type_prop; /* not interested */
|
||||
int actual_format; /* should be 32 after the call */
|
||||
unsigned int mask; /* status of the buttons */
|
||||
unsigned long n_items, bytes_after_ret;
|
||||
Window *props; /* since we are interested just in the first value, which is
|
||||
a Window id */
|
||||
|
||||
/* default DISPLAY */
|
||||
d = XOpenDisplay(NULL);
|
||||
|
||||
/* ask for active window (no error check); the client must be freedesktop
|
||||
compliant */
|
||||
(void)XGetWindowProperty(d, DefaultRootWindow(d),
|
||||
XInternAtom(d, "_NET_ACTIVE_WINDOW", True),
|
||||
0, 1, False, AnyPropertyType,
|
||||
&atom_type_prop, &actual_format,
|
||||
&n_items, &bytes_after_ret, (unsigned char**)&props);
|
||||
|
||||
XQueryPointer(d, props[0], &inwin, &inchildwin,
|
||||
&rootx, &rooty, &childx, &childy, &mask);
|
||||
printf("relative to active window: %d,%d\n", childx, childy);
|
||||
|
||||
XFree(props); /* free mem */
|
||||
(void)XCloseDisplay(d); /* and close the display */
|
||||
return 0;
|
||||
}
|
||||
1
Task/Mouse-position/Clojure/mouse-position.clj
Normal file
1
Task/Mouse-position/Clojure/mouse-position.clj
Normal file
|
|
@ -0,0 +1 @@
|
|||
(let [point (.. java.awt.MouseInfo getPointerInfo getLocation)] [(.getX point) (.getY point)])
|
||||
8
Task/Mouse-position/Common-Lisp/mouse-position.lisp
Normal file
8
Task/Mouse-position/Common-Lisp/mouse-position.lisp
Normal file
|
|
@ -0,0 +1,8 @@
|
|||
(ql:quickload "ltk")
|
||||
(in-package :ltk-user)
|
||||
(defun motion (event)
|
||||
(format t "~a x position is ~a~&" event (event-x event)))
|
||||
|
||||
(with-ltk ()
|
||||
;; create a small window. Enter the mouse to see lots of events.
|
||||
(bind *tk* "<Motion>" #'motion))
|
||||
5
Task/Mouse-position/Delphi/mouse-position-1.delphi
Normal file
5
Task/Mouse-position/Delphi/mouse-position-1.delphi
Normal file
|
|
@ -0,0 +1,5 @@
|
|||
procedure TForm1.FormMouseMove(Sender: TObject; Shift: TShiftState; X,
|
||||
Y: Integer);
|
||||
begin
|
||||
lblMousePosition.Caption := ('X:' + IntToStr(X) + ', Y:' + IntToStr(Y));
|
||||
end;
|
||||
15
Task/Mouse-position/Delphi/mouse-position-2.delphi
Normal file
15
Task/Mouse-position/Delphi/mouse-position-2.delphi
Normal file
|
|
@ -0,0 +1,15 @@
|
|||
program Project1;
|
||||
{$APPTYPE CONSOLE}
|
||||
uses
|
||||
SysUtils, Controls, Windows;
|
||||
|
||||
var
|
||||
MyMouse : TMouse;
|
||||
begin
|
||||
MyMouse := TMouse.Create;
|
||||
While True do
|
||||
begin
|
||||
WriteLn('(X, y) = (' + inttostr(TPoint(MyMouse.CursorPos).x) + ',' + inttostr(TPoint(MyMouse.CursorPos).y) + ')');
|
||||
sleep(300);
|
||||
end
|
||||
end.
|
||||
79
Task/Mouse-position/ERRE/mouse-position.erre
Normal file
79
Task/Mouse-position/ERRE/mouse-position.erre
Normal file
|
|
@ -0,0 +1,79 @@
|
|||
!
|
||||
! MOUSE WITH 'MOUSE.LIB' LIBRARY
|
||||
!
|
||||
|
||||
PROGRAM MOUSE
|
||||
|
||||
!$KEY
|
||||
|
||||
!$INCLUDE="PC.LIB"
|
||||
|
||||
!$INCLUDE="MOUSE.LIB"
|
||||
|
||||
PROCEDURE GETMONITORTYPE(->MONITOR$)
|
||||
!$RCODE="DEF SEG=0"
|
||||
STATUS=PEEK($463)
|
||||
!$RCODE="DEF SEG"
|
||||
MONITOR$=""
|
||||
IF STATUS=$B4 THEN
|
||||
!$RCODE="STATUS=(INP(&H3BA) AND &H80)"
|
||||
FOR DELAYLOOP=1 TO 30000 DO
|
||||
!$RCODE="XX=((INP(&H3BA) AND &H80)<>STATUS)"
|
||||
IF XX THEN MONITOR$="HERC" END IF
|
||||
END FOR
|
||||
IF MONITOR$="" THEN MONITOR$="MONO" END IF
|
||||
ELSE
|
||||
REGAX%=$1A00
|
||||
EXECUTEASM($10)
|
||||
IF (REGAX% AND $FF)=$1A THEN
|
||||
MONITOR$="VGA"
|
||||
ELSE
|
||||
REGAX%=$1200 REGBX%=$10
|
||||
EXECUTEASM($10)
|
||||
IF (REGBX% AND $FF)=$10 THEN
|
||||
MONITOR$="CGA"
|
||||
ELSE
|
||||
MONITOR$="EGA"
|
||||
END IF
|
||||
END IF
|
||||
END IF
|
||||
END PROCEDURE
|
||||
|
||||
BEGIN
|
||||
INITASM
|
||||
GETMONITORTYPE(->MONITOR$)
|
||||
COLOR(7,0)
|
||||
CLS
|
||||
LOCATE(1,50) PRINT("MONITOR TYPE ";MONITOR$)
|
||||
MOUSE_RESETANDSTATUS(->STATUS,BUTTONS)
|
||||
IF STATUS<>-1 THEN
|
||||
BEEP
|
||||
CLS
|
||||
PRINT("MOUSE DRIVER NOT INSTALLED OR MOUSE NOT FOUND")
|
||||
REPEAT
|
||||
GET(IN$)
|
||||
UNTIL IN$<>""
|
||||
ELSE
|
||||
MOUSE_SETEXTCURSOR
|
||||
MOUSE_SETCURSORLIMITS(8,199,0,639)
|
||||
MOUSE_SETSENSITIVITY(30,30,50)
|
||||
MOUSE_SHOWCURSOR
|
||||
REPEAT
|
||||
OLDX=X OLDY=Y
|
||||
MOUSE_GETCURSORPOSITION(->X,Y,LEFT%,RIGHT%,BOTH%,MIDDLE%)
|
||||
GET(IN$)
|
||||
COLOR(15,0)
|
||||
LOCATE(1,2)
|
||||
PRINT("X =";INT(X/8)+1;" Y =";INT(Y/8)+1;" ";)
|
||||
IF LEFT% THEN LOCATE(1,37) COLOR(10,0) PRINT("LEFT";) END IF
|
||||
IF RIGHT% THEN LOCATE(1,37) COLOR(12,0) PRINT("RIGHT";) END IF
|
||||
IF MIDDLE% THEN LOCATE(1,37) COLOR(14,0) PRINT("MIDDLE";) END IF
|
||||
IF NOT RIGHT% AND NOT LEFT% AND NOT MIDDLE% THEN
|
||||
LOCATE(1,37) PRINT(" ";)
|
||||
END IF
|
||||
IF NOT (X=OLDX AND Y=OLDY) THEN MOUSE_SHOWCURSOR END IF
|
||||
UNTIL IN$=CHR$(27)
|
||||
END IF
|
||||
MOUSE_HIDECURSOR
|
||||
CLS
|
||||
END PROGRAM
|
||||
4
Task/Mouse-position/EasyLang/mouse-position.easy
Normal file
4
Task/Mouse-position/EasyLang/mouse-position.easy
Normal file
|
|
@ -0,0 +1,4 @@
|
|||
on mouse_move
|
||||
clear
|
||||
text mouse_x & " " & mouse_y
|
||||
.
|
||||
7
Task/Mouse-position/EchoLisp/mouse-position.l
Normal file
7
Task/Mouse-position/EchoLisp/mouse-position.l
Normal file
|
|
@ -0,0 +1,7 @@
|
|||
(lib 'plot)
|
||||
(plot-x-minmax 10) ; set logical dimensions of plotting area
|
||||
(plot-y-minmax 100)
|
||||
→ (("x" 0 10) ("y" 0 100))
|
||||
;; press ESC to see the canvas
|
||||
;; the mouse position is displayed as , for example, [ x: 5.6 y : 88.7]
|
||||
;; 0 <= x <= 10, 0 <= y <= 100
|
||||
7
Task/Mouse-position/Elm/mouse-position.elm
Normal file
7
Task/Mouse-position/Elm/mouse-position.elm
Normal file
|
|
@ -0,0 +1,7 @@
|
|||
import Graphics.Element exposing (Element, show)
|
||||
import Mouse
|
||||
|
||||
|
||||
main : Signal Element
|
||||
main =
|
||||
Signal.map show Mouse.position
|
||||
2
Task/Mouse-position/Emacs-Lisp/mouse-position.l
Normal file
2
Task/Mouse-position/Emacs-Lisp/mouse-position.l
Normal file
|
|
@ -0,0 +1,2 @@
|
|||
(mouse-pixel-position)
|
||||
;; => (FRAME . (X . Y))
|
||||
21
Task/Mouse-position/F-Sharp/mouse-position.fs
Normal file
21
Task/Mouse-position/F-Sharp/mouse-position.fs
Normal file
|
|
@ -0,0 +1,21 @@
|
|||
open System.Windows.Forms
|
||||
open System.Runtime.InteropServices
|
||||
|
||||
#nowarn "9"
|
||||
[<Struct; StructLayout(LayoutKind.Sequential)>]
|
||||
type POINT =
|
||||
new (x, y) = { X = x; Y = y }
|
||||
val X : int
|
||||
val Y : int
|
||||
|
||||
[<DllImport("user32.dll")>]
|
||||
extern nativeint GetForegroundWindow();
|
||||
[<DllImport("user32.dll", CharSet=CharSet.Auto, SetLastError=true, ExactSpelling=true)>]
|
||||
extern int ScreenToClient(nativeint hWnd, POINT &pt);
|
||||
|
||||
let GetMousePosition() =
|
||||
let hwnd = GetForegroundWindow()
|
||||
let pt = Cursor.Position
|
||||
let mutable ptFs = new POINT(pt.X, pt.Y)
|
||||
ScreenToClient(hwnd, &ptFs) |> ignore
|
||||
ptFs
|
||||
13
Task/Mouse-position/Factor/mouse-position.factor
Normal file
13
Task/Mouse-position/Factor/mouse-position.factor
Normal file
|
|
@ -0,0 +1,13 @@
|
|||
: replace-text ( button text -- )
|
||||
[ drop children>> pop drop ] [ >label add-gadget drop ] 2bi ;
|
||||
: present-locations ( loc1 loc2 -- string )
|
||||
[
|
||||
first2 [ number>string ] bi@ "," glue
|
||||
] bi@ ";" glue ;
|
||||
: example ( -- ) "click me"
|
||||
[
|
||||
dup hand-rel ! location relative to the button
|
||||
hand-loc get ! location relative to the window
|
||||
present-locations replace-text
|
||||
]
|
||||
<border-button> gadget. ;
|
||||
28
Task/Mouse-position/FreeBASIC/mouse-position.basic
Normal file
28
Task/Mouse-position/FreeBASIC/mouse-position.basic
Normal file
|
|
@ -0,0 +1,28 @@
|
|||
type MOUSE
|
||||
'mouse position, button state, wheel state
|
||||
x as integer
|
||||
y as integer
|
||||
buttons as integer
|
||||
wheel as integer
|
||||
end type
|
||||
|
||||
screen 12
|
||||
|
||||
dim as MOUSE mouse
|
||||
|
||||
while inkey=""
|
||||
locate 1,1
|
||||
getmouse(mouse.x, mouse.y, mouse.wheel, mouse.buttons)
|
||||
if mouse.x < 0 then
|
||||
print "Mouse out of window. "
|
||||
print " "
|
||||
print " "
|
||||
else
|
||||
print "Mouse position : ", mouse.x, mouse.y, " "
|
||||
print "Buttons clicked: ";
|
||||
print Iif( mouse.buttons and 1, "Left ", " " );
|
||||
print Iif( mouse.buttons and 2, "Right ", " " );
|
||||
print Iif( mouse.buttons and 4, "Middle ", " " )
|
||||
print "Wheel scrolls: ", mouse.wheel," "
|
||||
end if
|
||||
wend
|
||||
13
Task/Mouse-position/FutureBasic/mouse-position.basic
Normal file
13
Task/Mouse-position/FutureBasic/mouse-position.basic
Normal file
|
|
@ -0,0 +1,13 @@
|
|||
subclass window 1, @"Click somewhere in the window"
|
||||
|
||||
void local fn DoDialog( ev as long )
|
||||
select ( ev )
|
||||
case _windowMouseDown
|
||||
CGPoint pt = fn EventLocationInWindow
|
||||
cls : printf @"%.0fx, %.0fy",pt.x,pt.y
|
||||
end select
|
||||
end fn
|
||||
|
||||
on dialog fn DoDialog
|
||||
|
||||
HandleEvents
|
||||
4
Task/Mouse-position/Gambas/mouse-position.gambas
Normal file
4
Task/Mouse-position/Gambas/mouse-position.gambas
Normal file
|
|
@ -0,0 +1,4 @@
|
|||
PUBLIC SUB Form1_MouseMove()
|
||||
PRINT mouse.X
|
||||
PRINT Mouse.Y
|
||||
END
|
||||
35
Task/Mouse-position/Go/mouse-position.go
Normal file
35
Task/Mouse-position/Go/mouse-position.go
Normal file
|
|
@ -0,0 +1,35 @@
|
|||
package main
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"github.com/go-vgo/robotgo"
|
||||
)
|
||||
|
||||
func isInside(x, y, w, h, mx, my int) bool {
|
||||
rx := x + w - 1
|
||||
ry := y + h - 1
|
||||
return mx >= x && mx <= rx && my >= y && my <= ry
|
||||
}
|
||||
|
||||
func main() {
|
||||
name := "gedit" // say
|
||||
fpid, err := robotgo.FindIds(name)
|
||||
if err == nil && len(fpid) > 0 {
|
||||
pid := fpid[0]
|
||||
robotgo.ActivePID(pid) // make gedit active window
|
||||
x, y, w, h := robotgo.GetBounds(pid)
|
||||
fmt.Printf("The active window's top left corner is at (%d, %d)\n", x, y)
|
||||
fmt.Printf("Its width is %d and its height is %d\n", w, h)
|
||||
mx, my := robotgo.GetMousePos()
|
||||
fmt.Printf("The screen location of the mouse cursor is (%d, %d)\n", mx, my)
|
||||
if !isInside(x, y, w, h, mx, my) {
|
||||
fmt.Println("The mouse cursor is outside the active window")
|
||||
} else {
|
||||
wx := mx - x
|
||||
wy := my - y
|
||||
fmt.Printf("The window location of the mouse cursor is (%d, %d)\n", wx, wy)
|
||||
}
|
||||
} else {
|
||||
fmt.Println("Problem when finding PID(s) of", name)
|
||||
}
|
||||
}
|
||||
5
Task/Mouse-position/Groovy/mouse-position.groovy
Normal file
5
Task/Mouse-position/Groovy/mouse-position.groovy
Normal file
|
|
@ -0,0 +1,5 @@
|
|||
1.upto(5) {
|
||||
Thread.sleep(1000)
|
||||
def p = java.awt.MouseInfo.pointerInfo.location
|
||||
println "${it}: x=${p.@x} y=${p.@y}"
|
||||
}
|
||||
7
Task/Mouse-position/HicEst/mouse-position.hicest
Normal file
7
Task/Mouse-position/HicEst/mouse-position.hicest
Normal file
|
|
@ -0,0 +1,7 @@
|
|||
WINDOW(WINdowhandle=handle)
|
||||
AXIS(WINdowhandle=handle, MouSeCall=Mouse_Callback, MouSeX=X, MouSeY=Y)
|
||||
END
|
||||
|
||||
SUBROUTINE Mouse_Callback()
|
||||
WRITE(Messagebox, Name) X, Y
|
||||
END
|
||||
6
Task/Mouse-position/Icon/mouse-position.icon
Normal file
6
Task/Mouse-position/Icon/mouse-position.icon
Normal file
|
|
@ -0,0 +1,6 @@
|
|||
until *Pending() > 0 & Event() == "q" do { # loop until there is something to do
|
||||
px := WAttrib("pointerx")
|
||||
py := WAttrib("pointery")
|
||||
# do whatever is needed
|
||||
WDelay(5) # wait and share processor
|
||||
}
|
||||
1
Task/Mouse-position/Java/mouse-position.java
Normal file
1
Task/Mouse-position/Java/mouse-position.java
Normal file
|
|
@ -0,0 +1 @@
|
|||
Point mouseLocation = MouseInfo.getPointerInfo().getLocation();
|
||||
3
Task/Mouse-position/JavaScript/mouse-position.js
Normal file
3
Task/Mouse-position/JavaScript/mouse-position.js
Normal file
|
|
@ -0,0 +1,3 @@
|
|||
document.addEventListener('mousemove', function(e){
|
||||
var position = { x: e.clientX, y: e.clientY }
|
||||
}
|
||||
15
Task/Mouse-position/Julia/mouse-position.julia
Normal file
15
Task/Mouse-position/Julia/mouse-position.julia
Normal file
|
|
@ -0,0 +1,15 @@
|
|||
using Gtk
|
||||
|
||||
const win = GtkWindow("Get Mouse Position", 600, 800)
|
||||
const butn = GtkButton("Click Me Somewhere")
|
||||
push!(win, butn)
|
||||
|
||||
callback(b, evt) = set_gtk_property!(win, :title, "Mouse Position: X is $(evt.x), Y is $(evt.y)")
|
||||
signal_connect(callback, butn, "button-press-event")
|
||||
|
||||
showall(win)
|
||||
|
||||
c = Condition()
|
||||
endit(w) = notify(c)
|
||||
signal_connect(endit, win, :destroy)
|
||||
wait(c)
|
||||
11
Task/Mouse-position/Kotlin/mouse-position.kotlin
Normal file
11
Task/Mouse-position/Kotlin/mouse-position.kotlin
Normal file
|
|
@ -0,0 +1,11 @@
|
|||
// version 1.1.2
|
||||
|
||||
import java.awt.MouseInfo
|
||||
|
||||
fun main(args: Array<String>) {
|
||||
(1..5).forEach {
|
||||
Thread.sleep(1000)
|
||||
val p = MouseInfo.getPointerInfo().location // gets screen coordinates
|
||||
println("${it}: x = ${"%-4d".format(p.x)} y = ${"%-4d".format(p.y)}")
|
||||
}
|
||||
}
|
||||
38
Task/Mouse-position/Liberty-BASIC/mouse-position.basic
Normal file
38
Task/Mouse-position/Liberty-BASIC/mouse-position.basic
Normal file
|
|
@ -0,0 +1,38 @@
|
|||
nomainwin
|
||||
|
||||
UpperLeftX = DisplayWidth-WindowWidth
|
||||
UpperLeftY = DisplayHeight-WindowHeight
|
||||
|
||||
struct point, x as long, y as long
|
||||
|
||||
stylebits #main.st ,0,0,_WS_EX_STATICEDGE,0
|
||||
statictext #main.st "",16,16,100,26
|
||||
|
||||
stylebits #main ,0,0,_WS_EX_TOPMOST,0
|
||||
open "move your mouse" for window_nf as #main
|
||||
|
||||
#main "trapclose [quit]"
|
||||
timer 100, [mm]
|
||||
wait
|
||||
|
||||
[mm]
|
||||
CallDll #user32, "GetForegroundWindow", WndHandle as uLong
|
||||
#main.st CursorPos$(WndHandle)
|
||||
wait
|
||||
|
||||
[quit]
|
||||
close #main
|
||||
end
|
||||
|
||||
function CursorPos$(handle)
|
||||
Calldll #user32, "GetCursorPos",_
|
||||
point as struct,_
|
||||
result as long
|
||||
Calldll #user32, "ScreenToClient",_
|
||||
handle As Ulong,_
|
||||
point As struct,_
|
||||
result as long
|
||||
x = point.x.struct
|
||||
y = point.y.struct
|
||||
CursorPos$=x; ",";y
|
||||
end function
|
||||
2
Task/Mouse-position/Lingo/mouse-position.lingo
Normal file
2
Task/Mouse-position/Lingo/mouse-position.lingo
Normal file
|
|
@ -0,0 +1,2 @@
|
|||
put _mouse.mouseLoc
|
||||
-- point(310, 199)
|
||||
1
Task/Mouse-position/Logo/mouse-position.logo
Normal file
1
Task/Mouse-position/Logo/mouse-position.logo
Normal file
|
|
@ -0,0 +1 @@
|
|||
show mousepos ; [-250 250]
|
||||
32
Task/Mouse-position/M2000-Interpreter/mouse-position.m2000
Normal file
32
Task/Mouse-position/M2000-Interpreter/mouse-position.m2000
Normal file
|
|
@ -0,0 +1,32 @@
|
|||
Module Checkit {
|
||||
\\ works when console is the active window
|
||||
\\ pressing right mouse button exit the loop
|
||||
While mouse<>2
|
||||
Print mouse.x, mouse.y
|
||||
End While
|
||||
\\ end of part one, now we make a form with title Form1 (same name as the variable name)
|
||||
Declare Form1 Form
|
||||
Layer Form1 {
|
||||
window 16, 10000,8000 ' 16pt font at maximum 10000 twips x 8000 twips
|
||||
cls #335522, 1 \\ from 2nd line start the split screen (for form's layer)
|
||||
pen 15 ' white
|
||||
}
|
||||
Function Form1.MouseMove {
|
||||
Read new button, shift, x, y ' we use new because call is local, same scope as Checkit.
|
||||
Layer Form1 {
|
||||
print x, y, button
|
||||
refresh
|
||||
}
|
||||
}
|
||||
Function Form1.MouseDown {
|
||||
Read new button, shift, x, y
|
||||
\\ when we press mouse button we print in console
|
||||
\\ but only the first time
|
||||
print x, y, button
|
||||
refresh
|
||||
}
|
||||
\\ open Form1 as modal window above console
|
||||
Method Form1, "Show", 1
|
||||
Declare Form1 Nothing
|
||||
}
|
||||
CheckIt
|
||||
1
Task/Mouse-position/MATLAB/mouse-position.m
Normal file
1
Task/Mouse-position/MATLAB/mouse-position.m
Normal file
|
|
@ -0,0 +1 @@
|
|||
get(0,'PointerLocation')
|
||||
20
Task/Mouse-position/MAXScript/mouse-position.max
Normal file
20
Task/Mouse-position/MAXScript/mouse-position.max
Normal file
|
|
@ -0,0 +1,20 @@
|
|||
try destroydialog mousePos catch ()
|
||||
|
||||
rollout mousePos "Mouse position" width:200
|
||||
(
|
||||
label mousePosText "Current mouse position:" pos:[0,0]
|
||||
label mousePosX "" pos:[130,0]
|
||||
label mousePosSep "x" pos:[143,0]
|
||||
label mousePosY "" pos:[160,0]
|
||||
|
||||
timer updateTimer interval:50 active:true
|
||||
|
||||
on updateTimer tick do
|
||||
(
|
||||
mousePosX.text = (mouse.screenpos.x as integer) as string
|
||||
mousePosY.text = (mouse.screenpos.y as integer) as string
|
||||
)
|
||||
|
||||
)
|
||||
|
||||
createdialog mousepos
|
||||
1
Task/Mouse-position/Mathematica/mouse-position.math
Normal file
1
Task/Mouse-position/Mathematica/mouse-position.math
Normal file
|
|
@ -0,0 +1 @@
|
|||
MousePosition["WindowAbsolute"]
|
||||
1
Task/Mouse-position/MiniScript/mouse-position.mini
Normal file
1
Task/Mouse-position/MiniScript/mouse-position.mini
Normal file
|
|
@ -0,0 +1 @@
|
|||
print mouse.x, mouse.y
|
||||
12
Task/Mouse-position/Nanoquery/mouse-position.nanoquery
Normal file
12
Task/Mouse-position/Nanoquery/mouse-position.nanoquery
Normal file
|
|
@ -0,0 +1,12 @@
|
|||
import Nanoquery.Util.Windows
|
||||
|
||||
// a function to handle the mouse moved event
|
||||
def mouse_moved($caller, $e)
|
||||
println "(" + $e.getX() + ", " + $e.getY() + ")"
|
||||
end
|
||||
|
||||
// create a window, set the handler for mouse moved, and show it
|
||||
w = new("Window")
|
||||
w.setSize(500, 500)
|
||||
w.setHandler(w.mouseMoved, mouse_moved)
|
||||
w.show()
|
||||
27
Task/Mouse-position/Nim/mouse-position.nim
Normal file
27
Task/Mouse-position/Nim/mouse-position.nim
Normal file
|
|
@ -0,0 +1,27 @@
|
|||
import gintro/[glib, gobject, gtk, gio]
|
||||
import gintro/gdk except Window
|
||||
|
||||
#---------------------------------------------------------------------------------------------------
|
||||
|
||||
proc onButtonPress(window: ApplicationWindow; event: Event; data: pointer): bool =
|
||||
echo event.getCoords()
|
||||
result = true
|
||||
|
||||
#---------------------------------------------------------------------------------------------------
|
||||
|
||||
proc activate(app: Application) =
|
||||
## Activate the application.
|
||||
|
||||
let window = app.newApplicationWindow()
|
||||
window.setTitle("Mouse position")
|
||||
window.setSizeRequest(640, 480)
|
||||
|
||||
discard window.connect("button-press-event", onButtonPress, pointer(nil))
|
||||
|
||||
window.showAll()
|
||||
|
||||
#———————————————————————————————————————————————————————————————————————————————————————————————————
|
||||
|
||||
let app = newApplication(Application, "Rosetta.MousePosition")
|
||||
discard app.connect("activate", activate)
|
||||
discard app.run()
|
||||
24
Task/Mouse-position/OCaml/mouse-position.ocaml
Normal file
24
Task/Mouse-position/OCaml/mouse-position.ocaml
Normal file
|
|
@ -0,0 +1,24 @@
|
|||
open Xlib
|
||||
|
||||
let () =
|
||||
let d = xOpenDisplay "" in
|
||||
|
||||
(* ask for active window (no error check);
|
||||
the client must be freedesktop compliant *)
|
||||
let _, _, _, _, props =
|
||||
xGetWindowProperty_window d
|
||||
(xDefaultRootWindow d)
|
||||
(xInternAtom d "_NET_ACTIVE_WINDOW" true)
|
||||
0 1 false AnyPropertyType
|
||||
in
|
||||
|
||||
let _, _, _, child, _ = xQueryPointer d props in
|
||||
begin match child with
|
||||
| Some(_, childx, childy) ->
|
||||
Printf.printf "relative to active window: %d,%d\n%!" childx childy;
|
||||
| None ->
|
||||
print_endline "the pointer is not on the same screen as the specified window"
|
||||
end;
|
||||
|
||||
xCloseDisplay d;
|
||||
;;
|
||||
1
Task/Mouse-position/Octave/mouse-position.octave
Normal file
1
Task/Mouse-position/Octave/mouse-position.octave
Normal file
|
|
@ -0,0 +1 @@
|
|||
[X, Y, BUTTONS] = ginput(N);
|
||||
35
Task/Mouse-position/Odin/mouse-position.odin
Normal file
35
Task/Mouse-position/Odin/mouse-position.odin
Normal file
|
|
@ -0,0 +1,35 @@
|
|||
package main
|
||||
|
||||
import "core:fmt"
|
||||
import "vendor:sdl2"
|
||||
|
||||
main :: proc() {
|
||||
using sdl2
|
||||
|
||||
window: ^Window = ---
|
||||
renderer: ^Renderer = ---
|
||||
event: Event = ---
|
||||
|
||||
Init(INIT_VIDEO)
|
||||
CreateWindowAndRenderer(
|
||||
640, 480,
|
||||
WINDOW_SHOWN,
|
||||
&window, &renderer
|
||||
)
|
||||
|
||||
SetWindowTitle(window, "Empty window")
|
||||
RenderPresent(renderer)
|
||||
|
||||
for event.type != .QUIT {
|
||||
if event.type == .MOUSEMOTION {
|
||||
using event.motion
|
||||
fmt.printf("x=%d y=%d\n", x, y)
|
||||
}
|
||||
Delay(10)
|
||||
PollEvent(&event)
|
||||
}
|
||||
|
||||
DestroyRenderer(renderer)
|
||||
DestroyWindow(window)
|
||||
Quit()
|
||||
}
|
||||
21
Task/Mouse-position/Oz/mouse-position.oz
Normal file
21
Task/Mouse-position/Oz/mouse-position.oz
Normal file
|
|
@ -0,0 +1,21 @@
|
|||
declare
|
||||
[QTk] = {Module.link ['x-oz://system/wp/QTk.ozf']}
|
||||
WindowClosed = {NewCell false}
|
||||
Label
|
||||
Window = {QTk.build
|
||||
td(action:proc {$} WindowClosed := true {Window close} end
|
||||
label(text:"" handle:Label))}
|
||||
in
|
||||
{Window show}
|
||||
|
||||
for while:{Not @WindowClosed} do
|
||||
TopmostWindow = {List.last {String.tokens {Tk.return wm(stackorder '.')} & }}
|
||||
Winfo = {Record.mapInd winfo(rootx:_ rooty:_ pointerx:_ pointery:_)
|
||||
fun {$ I _}
|
||||
{Tk.returnInt winfo(I TopmostWindow)}
|
||||
end}
|
||||
in
|
||||
{Label set(text:"x: "#(Winfo.pointerx - Winfo.rootx)
|
||||
#", y: "#(Winfo.pointery - Winfo.rooty))}
|
||||
{Delay 250}
|
||||
end
|
||||
71
Task/Mouse-position/Pebble/mouse-position.pebble
Normal file
71
Task/Mouse-position/Pebble/mouse-position.pebble
Normal file
|
|
@ -0,0 +1,71 @@
|
|||
;mouse demonstration
|
||||
;compile with Pebble
|
||||
;for textmode x86 DOS
|
||||
;requires mouse driver
|
||||
|
||||
program examples\mouse
|
||||
|
||||
use mouse.inc
|
||||
|
||||
data
|
||||
|
||||
int mousex[0]
|
||||
int mousey[0]
|
||||
int mouseb[0]
|
||||
int speed[0]
|
||||
int i[0]
|
||||
|
||||
begin
|
||||
|
||||
echo "Enter 1-200 for slow/DOS/emulated machines."
|
||||
echo "Enter 500-20000 for faster/Windows machines."
|
||||
input [speed]
|
||||
|
||||
cls
|
||||
|
||||
call showmouse
|
||||
|
||||
label mainloop
|
||||
|
||||
;clear mouse coordinates
|
||||
|
||||
cursor 0, 0
|
||||
echo " "
|
||||
echo " "
|
||||
|
||||
;get and display mouse coordinates
|
||||
|
||||
call readmouse
|
||||
|
||||
cursor 0, 0
|
||||
echo [mousey]
|
||||
crlf
|
||||
echo [mousex]
|
||||
|
||||
;display exit button
|
||||
|
||||
cursor 76, 0
|
||||
echo "[X]"
|
||||
|
||||
;check if exit button has been clicked
|
||||
|
||||
if [mouseb] = 1 & [mousex] >= 76 & [mousex] <= 79 & [mousey] = 0 then
|
||||
|
||||
kill
|
||||
|
||||
endif
|
||||
|
||||
;loop 100 times since some machines do not support the WAIT command
|
||||
|
||||
[i] = 0
|
||||
|
||||
label delay
|
||||
|
||||
+1 [i]
|
||||
wait 1
|
||||
|
||||
if [i] < [speed] then delay
|
||||
|
||||
goto mainloop
|
||||
|
||||
end
|
||||
13
Task/Mouse-position/Perl/mouse-position.pl
Normal file
13
Task/Mouse-position/Perl/mouse-position.pl
Normal file
|
|
@ -0,0 +1,13 @@
|
|||
use SDL;
|
||||
use SDL::Events;
|
||||
use SDLx::App;
|
||||
|
||||
my $app = SDLx::App->new;
|
||||
$app->add_event_handler( sub {
|
||||
my $event = shift;
|
||||
if( $event->type == SDL_MOUSEMOTION ) {
|
||||
printf( "x=%d y=%d\n", $event->motion_x, $event->motion_y );
|
||||
$app->stop
|
||||
}
|
||||
} );
|
||||
$app->run;
|
||||
59
Task/Mouse-position/Phix/mouse-position.phix
Normal file
59
Task/Mouse-position/Phix/mouse-position.phix
Normal file
|
|
@ -0,0 +1,59 @@
|
|||
-- demo\rosetta\Mouse_position.exw
|
||||
include pGUI.e
|
||||
|
||||
Ihandle global_lbl, canvas_lbl, timer_lbl
|
||||
|
||||
function globalmotion_cb(integer x, integer y, atom /*pStatus*/)
|
||||
IupSetStrAttribute(global_lbl,"TITLE","globalmotion_cb %d, %d",{x,y})
|
||||
return IUP_DEFAULT
|
||||
end function
|
||||
|
||||
function canvas_motion_cb(Ihandle /*canvas*/, integer x, integer y, atom pStatus)
|
||||
IupSetStrAttribute(canvas_lbl,"TITLE","canvasmotion_cb %d, %d",{x,y})
|
||||
return IUP_DEFAULT;
|
||||
end function
|
||||
|
||||
function OnTimer(Ihandle /*ih*/)
|
||||
integer {x,y} = IupGetIntInt(NULL,"CURSORPOS")
|
||||
IupSetStrAttribute(timer_lbl,"TITLE","timer %d, %d",{x,y})
|
||||
return IUP_IGNORE
|
||||
end function
|
||||
|
||||
procedure main()
|
||||
Ihandle separator1, separator2,
|
||||
canvas, frame_1, frame_2,
|
||||
dialog
|
||||
|
||||
IupOpen()
|
||||
|
||||
global_lbl = IupLabel("Move the mouse anywhere on the window","EXPAND=HORIZONTAL")
|
||||
separator1 = IupLabel(NULL,"SEPARATOR=HORIZONTAL")
|
||||
canvas_lbl = IupLabel("Move the mouse anywhere on the canvas","EXPAND=HORIZONTAL")
|
||||
separator2 = IupLabel(NULL,"SEPARATOR=HORIZONTAL")
|
||||
timer_lbl = IupLabel("This one runs on a three second timer","EXPAND=HORIZONTAL")
|
||||
|
||||
frame_1 = IupFrame(IupVbox({global_lbl,
|
||||
separator1,
|
||||
canvas_lbl,
|
||||
separator2,
|
||||
timer_lbl}),
|
||||
"TITLE=IupLabel, SIZE=200x")
|
||||
|
||||
canvas = IupCanvas("MOTION_CB", Icallback("canvas_motion_cb"),
|
||||
"EXPAND=HORIZONTAL, RASTERSIZE=200x200")
|
||||
frame_2 = IupFrame(canvas, "TITLE=IupCanvas")
|
||||
|
||||
dialog = IupDialog(IupHbox({frame_1,frame_2}, "MARGIN=5x5, GAP=5"))
|
||||
IupSetAttribute(dialog,"TITLE","Mouse motion");
|
||||
|
||||
IupSetGlobal("INPUTCALLBACKS", "Yes");
|
||||
IupSetGlobalFunction("GLOBALMOTION_CB", Icallback("globalmotion_cb"));
|
||||
|
||||
Ihandle hTimer = IupTimer(Icallback("OnTimer"), 3000)
|
||||
|
||||
IupShow(dialog)
|
||||
|
||||
IupMainLoop()
|
||||
IupClose()
|
||||
end procedure
|
||||
main()
|
||||
12
Task/Mouse-position/PicoLisp/mouse-position.l
Normal file
12
Task/Mouse-position/PicoLisp/mouse-position.l
Normal file
|
|
@ -0,0 +1,12 @@
|
|||
(de mousePosition ()
|
||||
(prog2
|
||||
(prin "^[[?9h") # Mouse reporting on
|
||||
(and
|
||||
(= "^[" (key))
|
||||
(key 200)
|
||||
(key 200)
|
||||
(key)
|
||||
(cons
|
||||
(- (char (key)) 32)
|
||||
(- (char (key)) 32) ) )
|
||||
(prin "^[[?9l") ) ) # Mouse reporting off
|
||||
|
|
@ -0,0 +1,7 @@
|
|||
def setup():
|
||||
size(640, 480)
|
||||
|
||||
def draw():
|
||||
# mouseX and mouseY provide the current mouse position
|
||||
ellipse(mouseX, mouseY, 5, 5) # graphic output example
|
||||
println("x:{} y:{}".format(mouseX, mouseY))
|
||||
9
Task/Mouse-position/Processing/mouse-position.processing
Normal file
9
Task/Mouse-position/Processing/mouse-position.processing
Normal file
|
|
@ -0,0 +1,9 @@
|
|||
void setup(){
|
||||
size(640, 480);
|
||||
}
|
||||
|
||||
void draw(){
|
||||
// mouseX and mouseY provide the current mouse position
|
||||
ellipse(mouseX, mouseY, 5, 5); // graphic output example
|
||||
println("x:" + mouseX + " y:" + mouseY);
|
||||
}
|
||||
2
Task/Mouse-position/PureBasic/mouse-position-1.basic
Normal file
2
Task/Mouse-position/PureBasic/mouse-position-1.basic
Normal file
|
|
@ -0,0 +1,2 @@
|
|||
x = WindowMouseX(#MyWindow)
|
||||
y = WindowMouseY(#MyWindow)
|
||||
20
Task/Mouse-position/PureBasic/mouse-position-2.basic
Normal file
20
Task/Mouse-position/PureBasic/mouse-position-2.basic
Normal file
|
|
@ -0,0 +1,20 @@
|
|||
#MyWindow = 0
|
||||
#Label_txt = 0
|
||||
#MousePos_txt = 1
|
||||
If OpenWindow(#MyWindow,0,0,200,200,"Test",#PB_Window_SystemMenu)
|
||||
TextGadget(#Label_txt,0,0,100,20,"Mouse Position (x,y):",#PB_Text_Right)
|
||||
TextGadget(#MousePos_txt,120,0,60,20,"()")
|
||||
|
||||
Repeat
|
||||
Repeat
|
||||
event = WaitWindowEvent(10)
|
||||
If event = #PB_Event_CloseWindow
|
||||
Break 2 ;exit program
|
||||
EndIf
|
||||
Until event = 0
|
||||
|
||||
x = WindowMouseX(#MyWindow)
|
||||
y = WindowMouseY(#MyWindow)
|
||||
SetGadgetText(#MousePos_txt,"(" + Str(x) + "," + Str(y) + ")")
|
||||
ForEver
|
||||
EndIf
|
||||
19
Task/Mouse-position/Python/mouse-position-1.py
Normal file
19
Task/Mouse-position/Python/mouse-position-1.py
Normal file
|
|
@ -0,0 +1,19 @@
|
|||
import Tkinter as tk
|
||||
|
||||
def showxy(event):
|
||||
xm, ym = event.x, event.y
|
||||
str1 = "mouse at x=%d y=%d" % (xm, ym)
|
||||
# show cordinates in title
|
||||
root.title(str1)
|
||||
# switch color to red if mouse enters a set location range
|
||||
x,y, delta = 100, 100, 10
|
||||
frame.config(bg='red'
|
||||
if abs(xm - x) < delta and abs(ym - y) < delta
|
||||
else 'yellow')
|
||||
|
||||
root = tk.Tk()
|
||||
frame = tk.Frame(root, bg= 'yellow', width=300, height=200)
|
||||
frame.bind("<Motion>", showxy)
|
||||
frame.pack()
|
||||
|
||||
root.mainloop()
|
||||
13
Task/Mouse-position/Python/mouse-position-2.py
Normal file
13
Task/Mouse-position/Python/mouse-position-2.py
Normal file
|
|
@ -0,0 +1,13 @@
|
|||
#simple way of ,get cursor xy data
|
||||
|
||||
from Tkinter import *
|
||||
win=Tk()
|
||||
win.geometry("200x300")
|
||||
def xy(event):
|
||||
xm, ym = event.x, event.y
|
||||
xy_data = "x=%d y=%d" % (xm, ym)
|
||||
lab=Label(win,text=xy_data)
|
||||
lab.grid(row=0,column=0)
|
||||
|
||||
win.bind("<Motion>",xy)
|
||||
mainloop()
|
||||
4
Task/Mouse-position/Racket/mouse-position.rkt
Normal file
4
Task/Mouse-position/Racket/mouse-position.rkt
Normal file
|
|
@ -0,0 +1,4 @@
|
|||
#lang racket/gui
|
||||
(define-values [point _] (get-current-mouse-state))
|
||||
(send point get-x)
|
||||
(send point get-y)
|
||||
5
Task/Mouse-position/Raku/mouse-position-1.raku
Normal file
5
Task/Mouse-position/Raku/mouse-position-1.raku
Normal file
|
|
@ -0,0 +1,5 @@
|
|||
use java::awt::MouseInfo:from<java>;
|
||||
|
||||
given MouseInfo.getPointerInfo.getLocation {
|
||||
say .getX, 'x', .getY;
|
||||
}
|
||||
22
Task/Mouse-position/Raku/mouse-position-2.raku
Normal file
22
Task/Mouse-position/Raku/mouse-position-2.raku
Normal file
|
|
@ -0,0 +1,22 @@
|
|||
use X11::libxdo;
|
||||
my $xdo = Xdo.new;
|
||||
|
||||
my ($dw, $dh) = $xdo.get-desktop-dimensions( 0 );
|
||||
|
||||
sleep .25;
|
||||
|
||||
for ^$dw -> $mx {
|
||||
my $my = (($mx / $dh * τ).sin * 500).abs.Int + 200;
|
||||
$xdo.move-mouse( $mx, $my, 0 );
|
||||
my ($x, $y, $window-id, $screen) = $xdo.get-mouse-info;
|
||||
my $name = (try $xdo.get-window-name($window-id) if $window-id)
|
||||
// 'No name set';
|
||||
|
||||
my $line = "Mouse location: x=$x : y=$y\nWindow under mouse:\nWindow ID: " ~
|
||||
$window-id ~ "\nWindow name: " ~ $name ~ "\nScreen #: $screen";
|
||||
|
||||
print "\e[H\e[J", $line;
|
||||
sleep .001;
|
||||
}
|
||||
|
||||
say '';
|
||||
62
Task/Mouse-position/Ring/mouse-position.ring
Normal file
62
Task/Mouse-position/Ring/mouse-position.ring
Normal file
|
|
@ -0,0 +1,62 @@
|
|||
Load "guilib.ring"
|
||||
|
||||
lPress = false
|
||||
nX = 0
|
||||
nY = 0
|
||||
|
||||
new qApp {
|
||||
|
||||
win1 = new qWidget()
|
||||
{
|
||||
|
||||
setWindowTitle("Move this label!")
|
||||
setGeometry(100,100,400,400)
|
||||
setstylesheet("background-color:white;")
|
||||
|
||||
Label1 = new qLabel(Win1){
|
||||
setGeometry(100,100,200,50)
|
||||
setText("Welcome")
|
||||
setstylesheet("font-size: 30pt")
|
||||
myfilter = new qallevents(label1)
|
||||
myfilter.setEnterevent("pEnter()")
|
||||
myfilter.setLeaveevent("pLeave()")
|
||||
myfilter.setMouseButtonPressEvent("pPress()")
|
||||
myfilter.setMouseButtonReleaseEvent("pRelease()") myfilter.setMouseMoveEvent("pMove()")
|
||||
installeventfilter(myfilter)
|
||||
}
|
||||
|
||||
show()
|
||||
}
|
||||
|
||||
exec()
|
||||
}
|
||||
|
||||
Func pEnter
|
||||
Label1.setStyleSheet("background-color: purple; color:white;font-size: 30pt;")
|
||||
|
||||
Func pLeave
|
||||
Label1.setStyleSheet("background-color: white; color:black;font-size: 30pt;")
|
||||
|
||||
Func pPress
|
||||
lPress = True
|
||||
nX = myfilter.getglobalx()
|
||||
ny = myfilter.getglobaly()
|
||||
|
||||
Func pRelease
|
||||
lPress = False
|
||||
pEnter()
|
||||
|
||||
Func pMove
|
||||
nX2 = myfilter.getglobalx()
|
||||
ny2 = myfilter.getglobaly()
|
||||
ndiffx = nX2 - nX
|
||||
ndiffy = nY2 - nY
|
||||
if lPress
|
||||
Label1 {
|
||||
move(x()+ndiffx,y()+ndiffy)
|
||||
setStyleSheet("background-color: Green;
|
||||
color:white;font-size: 30pt;")
|
||||
nX = nX2
|
||||
ny = nY2
|
||||
}
|
||||
ok
|
||||
7
Task/Mouse-position/Ruby/mouse-position.rb
Normal file
7
Task/Mouse-position/Ruby/mouse-position.rb
Normal file
|
|
@ -0,0 +1,7 @@
|
|||
Shoes.app(:title => "Mouse Position", :width => 400, :height => 400) do
|
||||
@position = para "Position : ?, ?", :size => 12, :margin => 10
|
||||
|
||||
motion do |x, y|
|
||||
@position.text = "Position : #{x}, #{y}"
|
||||
end
|
||||
end
|
||||
37
Task/Mouse-position/Rust/mouse-position.rust
Normal file
37
Task/Mouse-position/Rust/mouse-position.rust
Normal file
|
|
@ -0,0 +1,37 @@
|
|||
// rustc 0.9 (7613b15 2014-01-08 18:04:43 -0800)
|
||||
|
||||
use std::libc::{BOOL, HANDLE, LONG};
|
||||
use std::ptr::mut_null;
|
||||
|
||||
type HWND = HANDLE;
|
||||
|
||||
#[deriving(Eq)]
|
||||
struct POINT {
|
||||
x: LONG,
|
||||
y: LONG
|
||||
}
|
||||
|
||||
#[link_name = "user32"]
|
||||
extern "system" {
|
||||
fn GetCursorPos(lpPoint:&mut POINT) -> BOOL;
|
||||
fn GetForegroundWindow() -> HWND;
|
||||
fn ScreenToClient(hWnd:HWND, lpPoint:&mut POINT);
|
||||
}
|
||||
|
||||
fn main() {
|
||||
let mut pt = POINT{x:0, y:0};
|
||||
loop {
|
||||
std::io::timer::sleep(100); // sleep duration in milliseconds
|
||||
|
||||
let pt_prev = pt;
|
||||
unsafe { GetCursorPos(&mut pt) };
|
||||
if pt != pt_prev {
|
||||
let h = unsafe { GetForegroundWindow() };
|
||||
if h == mut_null() { continue }
|
||||
|
||||
let mut pt_client = pt;
|
||||
unsafe { ScreenToClient(h, &mut pt_client) };
|
||||
println!("x: {}, y: {}", pt_client.x, pt_client.y);
|
||||
}
|
||||
}
|
||||
}
|
||||
5
Task/Mouse-position/Scala/mouse-position.scala
Normal file
5
Task/Mouse-position/Scala/mouse-position.scala
Normal file
|
|
@ -0,0 +1,5 @@
|
|||
import java.awt.MouseInfo
|
||||
object MousePosition extends App {
|
||||
val mouseLocation = MouseInfo.getPointerInfo.getLocation
|
||||
println (mouseLocation)
|
||||
}
|
||||
2
Task/Mouse-position/Seed7/mouse-position.seed7
Normal file
2
Task/Mouse-position/Seed7/mouse-position.seed7
Normal file
|
|
@ -0,0 +1,2 @@
|
|||
xPos := pointerXPos(curr_win);
|
||||
yPos := pointerYPos(curr_win);
|
||||
1
Task/Mouse-position/Smalltalk/mouse-position.st
Normal file
1
Task/Mouse-position/Smalltalk/mouse-position.st
Normal file
|
|
@ -0,0 +1 @@
|
|||
World activeHand position. " (394@649.0)"
|
||||
9
Task/Mouse-position/Standard-ML/mouse-position.ml
Normal file
9
Task/Mouse-position/Standard-ML/mouse-position.ml
Normal file
|
|
@ -0,0 +1,9 @@
|
|||
open XWindows ;
|
||||
val dp = XOpenDisplay "" ;
|
||||
val w = XCreateSimpleWindow (RootWindow dp) origin (Area {x=0,y=0,w=400,h=300}) 3 0 0xffffff ;
|
||||
XMapWindow w;
|
||||
val (focus,_)=( Posix.Process.sleep (Time.fromReal 2.0); (* time to move from interpreter + activate arbitrary window *)
|
||||
XGetInputFocus dp
|
||||
) ;
|
||||
XQueryPointer focus ;
|
||||
XQueryPointer w;
|
||||
6
Task/Mouse-position/Tcl/mouse-position-1.tcl
Normal file
6
Task/Mouse-position/Tcl/mouse-position-1.tcl
Normal file
|
|
@ -0,0 +1,6 @@
|
|||
package require Tk 8.5
|
||||
set curWindow [lindex [wm stackorder .] end]
|
||||
# Everything below will work with anything from Tk 8.0 onwards
|
||||
set x [expr {[winfo pointerx .] - [winfo rootx $curWindow]}]
|
||||
set y [expr {[winfo pointery .] - [winfo rooty $curWindow]}]
|
||||
tk_messageBox -message "the mouse is at ($x,$y) in window $curWindow"
|
||||
2
Task/Mouse-position/Tcl/mouse-position-2.tcl
Normal file
2
Task/Mouse-position/Tcl/mouse-position-2.tcl
Normal file
|
|
@ -0,0 +1,2 @@
|
|||
package require Tk
|
||||
puts "monitor/display coordinate x = [winfo pointerx .]"
|
||||
25
Task/Mouse-position/Vala/mouse-position.vala
Normal file
25
Task/Mouse-position/Vala/mouse-position.vala
Normal file
|
|
@ -0,0 +1,25 @@
|
|||
// GTK 4
|
||||
public class Example : Gtk.Application {
|
||||
public Example() {
|
||||
Object(application_id: "my.application",
|
||||
flags: ApplicationFlags.FLAGS_NONE);
|
||||
activate.connect(() => {
|
||||
var window = new Gtk.ApplicationWindow(this);
|
||||
var box = new Gtk.Box(Gtk.Orientation.VERTICAL, 20);
|
||||
var button = new Gtk.Button.with_label("Get Cursor Position");
|
||||
button.clicked.connect((a) => {
|
||||
double x, y;
|
||||
var device_pointer= window.get_display().get_default_seat().get_pointer();
|
||||
window.get_surface().get_device_position(device_pointer, out x, out y, null);
|
||||
label.set_text(x.to_string() + "," + y.to_string());
|
||||
});
|
||||
box.append(label);
|
||||
box.append(button);
|
||||
window.set_child(box);
|
||||
window.present();
|
||||
});
|
||||
}
|
||||
public static int main(string[] argv) {
|
||||
return new Example().run(argv);
|
||||
}
|
||||
}
|
||||
5
Task/Mouse-position/Visual-Basic/mouse-position-1.vb
Normal file
5
Task/Mouse-position/Visual-Basic/mouse-position-1.vb
Normal file
|
|
@ -0,0 +1,5 @@
|
|||
Private Sub Form_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
|
||||
'X and Y are in "twips" -- 15 twips per pixel
|
||||
Me.Print "X:" & X
|
||||
Me.Print "Y:" & Y
|
||||
End Sub
|
||||
16
Task/Mouse-position/Visual-Basic/mouse-position-2.vb
Normal file
16
Task/Mouse-position/Visual-Basic/mouse-position-2.vb
Normal file
|
|
@ -0,0 +1,16 @@
|
|||
Private Declare Function GetCursorPos Lib "user32" (lpPoint As POINTAPI) As Long
|
||||
|
||||
Private Type POINTAPI
|
||||
'X and Y are in pixels, with (0,0) being the top left corner of the primary display
|
||||
X As Long
|
||||
Y As Long
|
||||
End Type
|
||||
|
||||
Private Pt As POINTAPI
|
||||
|
||||
Private Sub Timer1_Timer()
|
||||
GetCursorPos Pt
|
||||
Me.Cls
|
||||
Me.Print "X:" & Pt.X
|
||||
Me.Print "Y:" & Pt.Y
|
||||
End Sub
|
||||
33
Task/Mouse-position/Wren/mouse-position.wren
Normal file
33
Task/Mouse-position/Wren/mouse-position.wren
Normal file
|
|
@ -0,0 +1,33 @@
|
|||
import "dome" for Window
|
||||
import "graphics" for Canvas
|
||||
import "input" for Mouse
|
||||
|
||||
class Game {
|
||||
static init() {
|
||||
Window.title = "Mouse position"
|
||||
Canvas.resize(400, 400)
|
||||
Window.resize(400, 400)
|
||||
// get initial mouse coordinates
|
||||
__px = Mouse.x
|
||||
__py = Mouse.y
|
||||
__ticks = 0
|
||||
System.print("The coordinates of the mouse relative to the canvas are:")
|
||||
}
|
||||
|
||||
static update() {
|
||||
__ticks = __ticks + 1
|
||||
if (__ticks%60 == 0) {
|
||||
// get current mouse coordinates
|
||||
var cx = Mouse.x
|
||||
var cy = Mouse.y
|
||||
// if it's moved in the last second, report new position
|
||||
if (cx != __px || cy != __py) {
|
||||
System.print([cx, cy])
|
||||
__px = cx
|
||||
__py = cy
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
static draw(alpha) {}
|
||||
}
|
||||
6
Task/Mouse-position/XPL0/mouse-position.xpl0
Normal file
6
Task/Mouse-position/XPL0/mouse-position.xpl0
Normal file
|
|
@ -0,0 +1,6 @@
|
|||
include c:\cxpl\stdlib;
|
||||
if not OpenMouse then Text(0, "A mouse is required")
|
||||
else [ShowMouse(true);
|
||||
IntOut(0, GetMousePosition(0)); ChOut(0, ^,);
|
||||
IntOut(0, GetMousePosition(1)); CrLf(0);
|
||||
]
|
||||
24
Task/Mouse-position/XTalk/mouse-position.xtalk
Normal file
24
Task/Mouse-position/XTalk/mouse-position.xtalk
Normal file
|
|
@ -0,0 +1,24 @@
|
|||
-- Method 1:
|
||||
-- this script in either the stack script or the card script to get position relative to the current stack window
|
||||
on mouseMove pMouseH,pMouseV
|
||||
put pMouseH,pMouse
|
||||
end mouseMove
|
||||
|
||||
-- Method 2:
|
||||
-- this script can go anywhere to get current position relative to the current stack window
|
||||
put mouseLoc()
|
||||
|
||||
-- Method 3:
|
||||
-- this script can go anywhere to get current position relative to the current stack window
|
||||
put the mouseLoc
|
||||
|
||||
-- Method 4:
|
||||
-- this script can go anywhere to get current position relative to the current window
|
||||
put the mouseH &","& the mouseV
|
||||
|
||||
To get the mousePosition relative to the current screen instead of relative to the current stack window use the screenMouseLoc keyword
|
||||
example results:
|
||||
117,394 -- relative to current window
|
||||
117,394 -- relative to current window
|
||||
117,394 -- relative to current window
|
||||
148,521 -- relative to current screen
|
||||
Loading…
Add table
Add a link
Reference in a new issue