From 00048c19caf66b3524b81bc3e93e6a286c97b337 Mon Sep 17 00:00:00 2001 From: oblivion Date: Thu, 10 Sep 2020 20:38:54 +0000 Subject: [PATCH] Turtle: MouseIn() method implemented. (using onmouseover event) git-svn-id: svn://ultimatepp.org/upp/trunk@15013 f0d560ea-af0d-0410-9eb7-867de7ffcac7 --- uppsrc/Turtle/Event.cpp | 8 +++++++- uppsrc/Turtle/Init.cpp | 1 + uppsrc/Turtle/Turtle.h | 3 ++- uppsrc/Turtle/Turtle.html | 9 ++++++++- 4 files changed, 18 insertions(+), 3 deletions(-) diff --git a/uppsrc/Turtle/Event.cpp b/uppsrc/Turtle/Event.cpp index 885a7784e..e1ff4eb28 100644 --- a/uppsrc/Turtle/Event.cpp +++ b/uppsrc/Turtle/Event.cpp @@ -36,7 +36,7 @@ bool TurtleServer::ProcessEvent(bool *quit) try { - if(p.Id("I")) + if(p.Id("i")) { ResetImageCache(); } @@ -56,9 +56,15 @@ bool TurtleServer::ProcessEvent(bool *quit) MouseWheel(p); } else + if(p.Id("I")) + { + mousein = true; + } + else if(p.Id("O")) { mousebuttons = 0; + mousein = false; } else if(p.Id("D")) diff --git a/uppsrc/Turtle/Init.cpp b/uppsrc/Turtle/Init.cpp index f624e051a..b73e5bcb5 100644 --- a/uppsrc/Turtle/Init.cpp +++ b/uppsrc/Turtle/Init.cpp @@ -13,6 +13,7 @@ bool TurtleServer::debugmode; WebSocket TurtleServer::websocket; int TurtleServer::mainpid; bool TurtleServer::quit; +bool TurtleServer::mousein; dword TurtleServer::mousebuttons = 0; dword TurtleServer::modifierkeys = 0; Size TurtleServer::desktopsize = Size(1024, 1024); diff --git a/uppsrc/Turtle/Turtle.h b/uppsrc/Turtle/Turtle.h index f33b7800e..58f3d73ee 100644 --- a/uppsrc/Turtle/Turtle.h +++ b/uppsrc/Turtle/Turtle.h @@ -27,7 +27,7 @@ private: virtual Size GetSize() { return desktopsize; } virtual dword GetMouseButtons() { return mousebuttons; } virtual dword GetModKeys() { return modifierkeys; } - virtual bool IsMouseIn() { return true; } + virtual bool IsMouseIn() { return mousein; } virtual bool ProcessEvent(bool *quit); virtual void WaitEvent(int ms); virtual bool IsWaitingEvent(); @@ -145,6 +145,7 @@ private: static String ip; static int connection_limit; static bool debugmode; + static bool mousein; public: // Statistics. diff --git a/uppsrc/Turtle/Turtle.html b/uppsrc/Turtle/Turtle.html index 2e67e5a00..224a86fde 100644 --- a/uppsrc/Turtle/Turtle.html +++ b/uppsrc/Turtle/Turtle.html @@ -426,7 +426,7 @@ function SRect(p, sx, sy) window.img_cache = {}; -window.event_queue = "I\n"; +window.event_queue = "i\n"; window.cursor_cache = {}; window.update_serial_l = 0; window.update_serial_h = 0; @@ -464,6 +464,13 @@ canvas.onmouseout = function(event) event.preventDefault(); } +canvas.onmouseover = function(event) +{ + event_queue += "I\n"; + ScheduleSend(); + event.preventDefault(); +} + canvas.onmouseup = function(event) { event_queue += "U " + event.button + mouse_event(event);