Data commit

This commit is contained in:
Ingy döt Net 2023-07-01 11:58:00 -04:00
parent 7387c8f97b
commit cb5bb5e222
199093 changed files with 3378972 additions and 0 deletions

View file

@ -0,0 +1,7 @@
---
category:
- Testing
- Hardware
- Pointing devices
from: http://rosettacode.org/wiki/Mouse_position
note: GUI

View 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>

View file

@ -0,0 +1,2 @@
mov ax,3
int 33h

View 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;
}
}
}

View 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;

View file

@ -0,0 +1,6 @@
MOUSE ON
WHILE 1
m=MOUSE(0)
PRINT MOUSE(1),MOUSE(2)
WEND

View 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

View 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

View 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]

View 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]

View file

@ -0,0 +1,2 @@
MOUSE xmouse%, ymouse%, buttons%
PRINT xmouse%, ymouse%

View 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);
}
}

View 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;
}

View file

@ -0,0 +1 @@
(let [point (.. java.awt.MouseInfo getPointerInfo getLocation)] [(.getX point) (.getY point)])

View 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))

View 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;

View 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.

View 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

View file

@ -0,0 +1,4 @@
on mouse_move
clear
text mouse_x & " " & mouse_y
.

View 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

View file

@ -0,0 +1,7 @@
import Graphics.Element exposing (Element, show)
import Mouse
main : Signal Element
main =
Signal.map show Mouse.position

View file

@ -0,0 +1,2 @@
(mouse-pixel-position)
;; => (FRAME . (X . Y))

View 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

View 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. ;

View 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

View 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

View file

@ -0,0 +1,4 @@
PUBLIC SUB Form1_MouseMove()
PRINT mouse.X
PRINT Mouse.Y
END

View 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)
}
}

View 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}"
}

View 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

View 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
}

View file

@ -0,0 +1 @@
Point mouseLocation = MouseInfo.getPointerInfo().getLocation();

View file

@ -0,0 +1,3 @@
document.addEventListener('mousemove', function(e){
var position = { x: e.clientX, y: e.clientY }
}

View 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)

View 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)}")
}
}

View 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

View file

@ -0,0 +1,2 @@
put _mouse.mouseLoc
-- point(310, 199)

View file

@ -0,0 +1 @@
show mousepos ; [-250 250]

View 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

View file

@ -0,0 +1 @@
get(0,'PointerLocation')

View 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

View file

@ -0,0 +1 @@
MousePosition["WindowAbsolute"]

View file

@ -0,0 +1 @@
print mouse.x, mouse.y

View 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()

View 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()

View 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;
;;

View file

@ -0,0 +1 @@
[X, Y, BUTTONS] = ginput(N);

View 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()
}

View 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

View 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

View 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;

View 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()

View 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

View file

@ -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))

View 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);
}

View file

@ -0,0 +1,2 @@
x = WindowMouseX(#MyWindow)
y = WindowMouseY(#MyWindow)

View 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

View 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()

View 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()

View file

@ -0,0 +1,4 @@
#lang racket/gui
(define-values [point _] (get-current-mouse-state))
(send point get-x)
(send point get-y)

View file

@ -0,0 +1,5 @@
use java::awt::MouseInfo:from<java>;
given MouseInfo.getPointerInfo.getLocation {
say .getX, 'x', .getY;
}

View 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 '';

View 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

View 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

View 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);
}
}
}

View file

@ -0,0 +1,5 @@
import java.awt.MouseInfo
object MousePosition extends App {
val mouseLocation = MouseInfo.getPointerInfo.getLocation
println (mouseLocation)
}

View file

@ -0,0 +1,2 @@
xPos := pointerXPos(curr_win);
yPos := pointerYPos(curr_win);

View file

@ -0,0 +1 @@
World activeHand position. " (394@649.0)"

View 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;

View 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"

View file

@ -0,0 +1,2 @@
package require Tk
puts "monitor/display coordinate x = [winfo pointerx .]"

View 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);
}
}

View 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

View 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

View 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) {}
}

View 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);
]

View 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