document.body.innerHTML += ` `; cursor = document.getElementById("cursor"); cursor.style.width = "100px"; cursor.style.height = "100px"; ActiveButtonBackgroundColor = "rgba(252, 242, 44, 0.3)"; InactiveButtonBackgroundColor = "rgba(100, 94, 94, 0.4)"; const FakeMouseHolderDiv = document.getElementById("FakeMouseHolder"); const holderHolder = document.getElementById("holderHolder"); const mouseObject = { leftMouseDown: false, rightMouseDown: false, absoluteX: 100, absoluteY: 100, deltaY: 0, shiftKey: false, pickListMode: true, actualrealTouchlocation: { x: 0, y: 0, }, }; var lastTouchX = 0; var lastTouchY = 0; var speed = 0.6; const pointerTarget = document.getElementById("pointerTarget"); function sendNewEvent(eventType) { //pointerTarget.scrollIntoView(); let obj = JSON.parse(JSON.stringify(mouseObject)); obj.eventType = eventType; //console.log("sending this", obj); result = pointerTarget.contentWindow.postMessage(obj); mouseObject.actualrealTouchlocation.x = 0; mouseObject.actualrealTouchlocation.y = 0; return result } document.getElementById("touchpadArea").addEventListener("touchstart", function (event) { if (event.touches.length == 1) { lastTouchX = event.touches[0].clientX; lastTouchY = event.touches[0].clientY; } if (event.touches.length == 2) { lastScrollY = event.touches[0].clientY; zooming = true; event.preventDefault(); } }); document.getElementById("touchpadArea").addEventListener("touchend", function (event) { if (event.touches.length == 2) { zooming = false; mouseObject.deltaY = 0; lastScrollY = 0; event.preventDefault(); } }); document.getElementById("touchpadArea").addEventListener("click", async function (event) { let x = event.clientX; let y = event.clientY; mouseObject.actualrealTouchlocation.x = x; mouseObject.actualrealTouchlocation.y = y; document.getElementById("leftMouseButton").click(); event.preventDefault(); }); document.getElementById("touchpadArea").addEventListener("dblclick", function (event) { event.preventDefault(); //document.getElementById("leftMouseButton").click(); sendNewEvent("dblclick"); }); document.getElementById("touchpadArea").addEventListener("contextmenu", function (event) { event.preventDefault(); document.getElementById("leftMouseButton").dispatchEvent(new CustomEvent("contextmenu")); }); document.getElementById("touchpadArea").addEventListener("touchmove", function (event) { event.preventDefault(); if (event.touches.length == 1) { let x = event.touches[0].clientX; let y = event.touches[0].clientY; let difrenceX = x - lastTouchX; let difrenceY = y - lastTouchY; lastTouchX = x; lastTouchY = y; mouseObject.absoluteX = mouseObject.absoluteX + difrenceX * speed; mouseObject.absoluteY = mouseObject.absoluteY + difrenceY * speed; mouseObject.absoluteX = mouseObject.absoluteX > 0 ? mouseObject.absoluteX : 1; mouseObject.absoluteY = mouseObject.absoluteY > 0 ? mouseObject.absoluteY : 1; cursor.style.left = mouseObject.absoluteX + "px"; cursor.style.top = mouseObject.absoluteY + "px"; sendNewEvent("mousemove"); } if (event.touches.length == 2) { //zoom zoom zoom console.log("zoom zoom zoom"); let y = event.touches[0].clientY; let difrenceY = y - lastScrollY; lastScrollY = y; mouseObject.deltaY = difrenceY / 10000; sendNewEvent("zoom"); } }); document.getElementById("leftMouseButton").addEventListener("contextmenu", function (event) { event.preventDefault(); if (event.target.innerHTML == "🔒") { event.target.innerHTML = "🔓"; mouseObject.leftMouseDown = false; event.target.style.backgroundColor = InactiveButtonBackgroundColor; sendNewEvent("mousemove"); } else { event.target.innerHTML = "🔒"; mouseObject.leftMouseDown = true; event.target.style.backgroundColor = ActiveButtonBackgroundColor; sendNewEvent("mousemove"); } }); document.getElementById("rightMouseButton").addEventListener("contextmenu", function (event) { event.preventDefault(); if (event.target.innerHTML == "🔒") { event.target.innerHTML = "🔓"; mouseObject.rightMouseDown = false; event.target.style.backgroundColor = InactiveButtonBackgroundColor; sendNewEvent("mousemove"); } else { event.target.innerHTML = "🔒"; mouseObject.rightMouseDown = true; event.target.style.backgroundColor = ActiveButtonBackgroundColor; sendNewEvent("mousemove"); } }); document.getElementById("leftMouseButton").addEventListener("click", function (event) { event.preventDefault(); if (event.target.innerHTML == "🔒") { event.target.innerHTML = "🔓"; mouseObject.leftMouseDown = false; event.target.style.backgroundColor = InactiveButtonBackgroundColor; sendNewEvent("mousemove"); } doLeftClick(); }); document.getElementById("rightMouseButton").addEventListener("click", function (event) { event.preventDefault(); if (event.target.innerHTML == "🔒") { event.target.innerHTML = "🔓"; mouseObject.rightMouseDown = false; event.target.style.backgroundColor = InactiveButtonBackgroundColor; sendNewEvent("mousemove"); } else { doRightClick(); } }); document.getElementById("pickList").addEventListener("click", function (event) { sendNewEvent("pickList"); }); document.getElementById("ShiftButton").addEventListener("click", function (event) { event.preventDefault(); if (event.target.innerHTML == "shift") { event.target.innerHTML = "shift Down"; event.target.style.backgroundColor = ActiveButtonBackgroundColor; mouseObject.shiftKey = true; sendNewEvent("shiftDown"); } else { event.target.innerHTML = "shift"; event.target.style.backgroundColor = InactiveButtonBackgroundColor; mouseObject.shiftKey = false; sendNewEvent("shiftUp"); } }); document.getElementById("toolsShow").addEventListener("click", function (event) { event.preventDefault(); sendNewEvent("toolsShow"); toggleMousepad("hide"); }); document.getElementById("EscButton").addEventListener("click", function (event) { event.preventDefault(); sendNewEvent("EscButton"); }); function toggleMousepad(showHide) { if (showHide) { if (showHide == "show") holderHolder.style.display = "block"; if (showHide == "hide") holderHolder.style.display = "none"; return; } if (holderHolder.style.display == "none") { sendNewEvent("toolsHide"); holderHolder.style.display = "block"; } else { holderHolder.style.display = "none"; } } function doLeftClick() { sendNewEvent("click"); } function doRightClick() { sendNewEvent("rightclick"); } var lastScrollY = 0; var zooming = false; document.getElementById("ScrollWheel").addEventListener("touchstart", function (event) { lastScrollY = event.touches[0].clientY; zooming = true; event.preventDefault(); }); document.getElementById("ScrollWheel").addEventListener("touchend", function (event) { zooming = false; mouseObject.deltaY = 0; lastScrollY = 0; event.preventDefault(); }); document.getElementById("ScrollWheel").addEventListener("touchmove", async function (event) { let y = event.touches[0].clientY; let difrenceY = y - lastScrollY; lastScrollY = y; mouseObject.deltaY = difrenceY / 10000; sendNewEvent("zoom"); event.preventDefault(); }); window.addEventListener("message", function (event) { //console.log("Message received from the child: " + event.data); // Message received from child if (event.data == "showTouchpad") toggleMousepad("show"); }); pointerTarget.onload = function () { const elem = document.createElement(`script`); elem.src = "./mouse/virtualMousePointer.js"; elem.type = "module"; pointerTarget.contentDocument.body.appendChild(elem); console.log(window.location); }; document.body.onload = function () { try { document.getElementById("mouseSpeed").value = localStorage.mouseSpeed; } catch {} pointerTarget.src = "./" + window.location.search; //console.log("dats the window locations", window.location.search); }; document.getElementById("saveSettings").onclick = function (event) { localStorage.mouseSpeed = document.getElementById("mouseSpeed").value; speed = localStorage.mouseSpeed; document.getElementById("settings").style.display = "none"; //console.log("dats the window locations", window.location.search); }; document.getElementById("toggleUItabs").onclick = function (event) { sendNewEvent("toggleUItabs"); }; document.getElementById("toggleUIoverlay").onclick = function (event) { sendNewEvent("toggleUIoverlay"); }; document.getElementById("toggleUItoolbar").onclick = function (event) { sendNewEvent("toggleUItoolbar"); }; document.getElementById("settingsButton").onclick = function (event) { document.getElementById("settings").style.display = ""; //console.log("dats the window locations", window.location.search); }; document.getElementById("fullscreenToggle").onclick = (event) => { if (document.fullscreenElement) { document.exitFullscreen(); } else { document.documentElement.requestFullscreen(); } };