work in progress
This commit is contained in:
102
designer/test/click_test.ahk
Normal file
102
designer/test/click_test.ahk
Normal file
@@ -0,0 +1,102 @@
|
||||
; Click test for Mosis Designer
|
||||
#Requires AutoHotkey v2.0
|
||||
|
||||
; Configuration
|
||||
WINDOW_TITLE := "Mosis Designer"
|
||||
PHONE_WIDTH := 540
|
||||
PHONE_HEIGHT := 960
|
||||
|
||||
; Output file
|
||||
outFile := A_ScriptDir . "\click_test_result.txt"
|
||||
if (FileExist(outFile))
|
||||
FileDelete(outFile)
|
||||
|
||||
Log(msg) {
|
||||
global outFile
|
||||
FileAppend(msg . "`n", outFile, "UTF-8")
|
||||
}
|
||||
|
||||
Log("=== Click Test ===")
|
||||
Log("Time: " . FormatTime(, "yyyy-MM-dd HH:mm:ss"))
|
||||
|
||||
; Find window
|
||||
hwnd := WinExist(WINDOW_TITLE)
|
||||
if (!hwnd) {
|
||||
Log("ERROR: Window not found")
|
||||
ExitApp(1)
|
||||
}
|
||||
|
||||
Log("Window found: " . hwnd)
|
||||
|
||||
; Get window info
|
||||
WinGetPos(&winX, &winY, &winW, &winH, hwnd)
|
||||
Log("Window position: X=" . winX . " Y=" . winY)
|
||||
Log("Window size: W=" . winW . " H=" . winH)
|
||||
|
||||
; Calculate DPI scale factor
|
||||
; Expected phone size is 540x960
|
||||
; Window has some decorations, estimate ~16 pixels width, ~40 height for title+borders
|
||||
expectedW := 540 + 16
|
||||
expectedH := 960 + 40
|
||||
scaleX := winW / expectedW
|
||||
scaleY := winH / expectedH
|
||||
Log("Estimated scale X: " . scaleX . " Y: " . scaleY)
|
||||
|
||||
; Use average scale (should be similar for both)
|
||||
scale := (scaleX + scaleY) / 2
|
||||
Log("Using scale factor: " . scale)
|
||||
|
||||
; Calculate client area offset (estimate title bar and borders scaled)
|
||||
titleBarHeight := Round(31 * scale)
|
||||
borderWidth := Round(8 * scale)
|
||||
Log("Estimated title bar: " . titleBarHeight . "px, border: " . borderWidth . "px")
|
||||
|
||||
; Client area start
|
||||
clientX := winX + borderWidth
|
||||
clientY := winY + titleBarHeight
|
||||
Log("Client area start: X=" . clientX . " Y=" . clientY)
|
||||
|
||||
; Function to convert phone coords to screen coords
|
||||
PhoneToScreen(phoneX, phoneY) {
|
||||
global clientX, clientY, scale
|
||||
return {
|
||||
x: Round(clientX + phoneX * scale),
|
||||
y: Round(clientY + phoneY * scale)
|
||||
}
|
||||
}
|
||||
|
||||
; Activate window
|
||||
WinActivate(hwnd)
|
||||
Sleep(200)
|
||||
|
||||
Log("")
|
||||
Log("=== Performing Click Test ===")
|
||||
|
||||
; Click on Phone app icon (first app in grid)
|
||||
; Position from home.rml layout: approximately (67, 120) in phone coords
|
||||
phonePos := PhoneToScreen(67, 120)
|
||||
Log("Phone app: phone(67,120) -> screen(" . phonePos.x . "," . phonePos.y . ")")
|
||||
|
||||
; Perform click
|
||||
Click(phonePos.x, phonePos.y)
|
||||
Log("Click sent!")
|
||||
|
||||
Sleep(1000)
|
||||
Log("Test complete - check if screen changed to Dialer")
|
||||
|
||||
; Also try clicking messages in dock for comparison
|
||||
Log("")
|
||||
Log("=== Second Click Test (Messages Dock) ===")
|
||||
; Dock is at bottom, approximately y=920 in phone coords
|
||||
; Messages is second item, approximately x=202
|
||||
msgPos := PhoneToScreen(202, 920)
|
||||
Log("Messages dock: phone(202,920) -> screen(" . msgPos.x . "," . msgPos.y . ")")
|
||||
|
||||
Click(msgPos.x, msgPos.y)
|
||||
Log("Click sent!")
|
||||
|
||||
Sleep(500)
|
||||
Log("")
|
||||
Log("=== Test Complete ===")
|
||||
|
||||
ExitApp(0)
|
||||
Reference in New Issue
Block a user