From 96b9de5df19716f604414db3a31eb52869b28d93 Mon Sep 17 00:00:00 2001 From: Maxim Stewart Date: Wed, 1 Jul 2020 20:07:30 -0500 Subject: [PATCH] Fixes, mods, updates --- README.md | 2 +- images/pic1.png | Bin 28854 -> 29258 bytes src/core/static/css/base.css | 14 +++ src/core/static/css/iframe.css | 5 + src/core/static/css/main.css | 159 +++++++++++++++++++----------- src/core/static/css/overrides.css | 14 +++ src/core/static/js/events.js | 55 +++++------ src/core/templates/index.html | 26 +++-- 8 files changed, 175 insertions(+), 100 deletions(-) create mode 100644 src/core/static/css/base.css create mode 100644 src/core/static/css/iframe.css create mode 100644 src/core/static/css/overrides.css diff --git a/README.md b/README.md index 196052f..c33338c 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,4 @@ -# Dropper +# Remote-Mouse Remote Mouse is a flask + pyautogui app to control a PC from your phone or any other device. # Notes diff --git a/images/pic1.png b/images/pic1.png index de572c19a31e8af6b8a8e553096a1c013db710ed..7187f3493ac0f97a42202505ef6639ee59e8a798 100644 GIT binary patch literal 29258 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 B%ESNw diff --git a/src/core/static/css/base.css b/src/core/static/css/base.css new file mode 100644 index 0000000..a2918f9 --- /dev/null +++ b/src/core/static/css/base.css @@ -0,0 +1,14 @@ +body { + overflow: hidden; /* Used to prevent touch scroll down reloading page. Ref: https://stackoverflow.com/questions/29008194/disabling-androids-chrome-pull-down-to-refresh-feature */ + -webkit-touch-callout: none; /* iOS Safari */ + -webkit-user-select: none; /* Safari */ + -khtml-user-select: none; /* Konqueror HTML */ + -moz-user-select: none; /* Old versions of Firefox */ + -ms-user-select: none; /* Internet Explorer/Edge */ + user-select: none; /* Non-prefixed version, currently + supported by Chrome, Opera and Firefox */ +} + +ol, ul, li { + list-style: none; +} diff --git a/src/core/static/css/iframe.css b/src/core/static/css/iframe.css new file mode 100644 index 0000000..f4e1830 --- /dev/null +++ b/src/core/static/css/iframe.css @@ -0,0 +1,5 @@ +body, +.container-fluid, .row, .col, +.error-styling, .dir-style, .movie-style, .file-style { + background-color: rgba(0,0,0,0.0); +} diff --git a/src/core/static/css/main.css b/src/core/static/css/main.css index 2d906a7..18bd0d0 100644 --- a/src/core/static/css/main.css +++ b/src/core/static/css/main.css @@ -1,27 +1,3 @@ -/* Elms */ -ul, li { - list-style: none; -} - -body { - overflow: hidden; /* Used to prevent touch scroll down reloading page. Ref: https://stackoverflow.com/questions/29008194/disabling-androids-chrome-pull-down-to-refresh-feature */ - -webkit-touch-callout: none; /* iOS Safari */ - -webkit-user-select: none; /* Safari */ - -khtml-user-select: none; /* Konqueror HTML */ - -moz-user-select: none; /* Old versions of Firefox */ - -ms-user-select: none; /* Internet Explorer/Edge */ - user-select: none; /* Non-prefixed version, currently - supported by Chrome, Opera and Firefox */ -} - -input { - width: 75% !important; - margin: 0 auto !important; - font-size: 200% !important; - background-color: #00000000 !important; -} - - /* IDs */ #bg { position: fixed; @@ -43,45 +19,118 @@ input { z-index: -999; } -#canvas { - position: relative; - width: 98%; - min-height: 1000px; - border: 1px solid #c3c3c3; +#file-grid { + display: grid; + grid-template-columns: repeat(auto-fit, minmax(18em, 1fr)); + grid-column-gap: 1em; + grid-row-gap: 1em; + margin: 5em auto; + width: 85%; + padding: 2em; } -#leftClickBtn, #rightClickBtn { - border-style: dashed; - border-width: 2px; + + +/* CLASSES */ +.scroller { + scrollbar-color: #00000084 #ffffff64; + scrollbar-width: thin; +} + +.dir-style, .video-style, .file-style { + display: block; + width: 100%; + height: auto; overflow: auto; - height: 5em; - font-size: 280%; + padding-bottom: 0.5em; + color: #ffffff; + text-align: center; + font-size: 1.2em; + background-color: rgba(0,0,0,0.64); + background-repeat: no-repeat; + background-size: 42px 42px; + touch-action: manipulation; } -#leftClickBtn:hover, -#rightClickBtn:hover { - background-color: rgba(0, 232, 255, 0.5); +.dir-style, .file-style { + background-position: 32px center; +} + +.image-style, +.video-style { + min-height: 6.5em; + width: auto; + overflow: hidden; + background-size: 100% 100%; +} + +.card-popout-btn { + float: right; + z-index: 2; + width: 2em; + height: 2em; + text-align: center; + background-color: rgba(0,0,0, 0.85); + color: rgb(255,255,255); + border-style: solid; + border-color: rgb(255,255,255); +} + +.close-btn:hover, +.card-popout-btn:hover, +.popout-btn:hover { cursor: pointer; } -#scrollToggle, -#mouseHoldToggle, -#sendKeysBtn { - display: inline-block; - font-size: 280%; - width: 100%; -} - -@media only screen and (min-width : 800px) { - body { - width: 800px; - margin: 0 auto; - } +.close-btn:hover, +.card-popout-btn:hover, +.popout-btn:hover { + background-color: rgba(255,255,255, 0.85); + color: #000000; + border-color: #000000; } -/* Classes */ -/* Other message text colors */ -.errorTxt { color: rgb(170, 18, 18); } -.warningTxt { color: rgb(255, 168, 0); } -.successTxt { color: rgb(136, 204, 39); } + +.dir-style:hover, .image-style:hover, .video-style:hover, .file-style:hover { + background-color: rgba(0, 141, 166, 0.56); + cursor: pointer; + box-shadow: 0px 0px 15px rgb(114,184,199); + border-radius: 0.5em; +} + +.dir-style:focus, .image-style:focus, .video-style:focus, .file-style:focus { + background-color: rgba(0, 139, 35, 0.76); + cursor: pointer; + box-shadow: 0px 0px 25px rgb(114, 199, 120); + border-radius: 0.5em; +} + + +.dir-title, .file-title, .video-title { + white-space: nowrap; + text-overflow: ellipsis; + text-align: center; + overflow: hidden; + border-style: none; + font-size: 75%; + user-select: none; + -moz-user-select: none; +} + +.dir-title, .file-title { + width: auto; + background-color: #00000000; + color: #ffffff; +} + +.video-title { + width: 100%; + margin-top: 5.5em; + background-color: rgba(0, 0, 0, 0.64); + color: rgb(255, 255, 255); + text-align: center; + border-top: 1px solid rgb(255, 255, 255); + border-bottom: 1px solid rgb(255, 255, 255); + text-overflow: ellipsis; +} diff --git a/src/core/static/css/overrides.css b/src/core/static/css/overrides.css new file mode 100644 index 0000000..15e59a9 --- /dev/null +++ b/src/core/static/css/overrides.css @@ -0,0 +1,14 @@ +.modal-content { + background-color: #32383e74; + border-color: #f8940674; +} + +.sticky-top, +.card { + background-color: rgba(50, 56, 62, 0.84); +} + +.label-as-badge { + border-radius: 1em; + cursor: pointer; +} diff --git a/src/core/static/js/events.js b/src/core/static/js/events.js index f20c1ea..83c4a4f 100644 --- a/src/core/static/js/events.js +++ b/src/core/static/js/events.js @@ -2,9 +2,11 @@ const socket = io(); let mouseHoldToggle = document.getElementById("mouseHoldToggle"); let scrollTggl = document.getElementById("scrollToggle"); let clickSound = document.getElementById("clickSound"); -let intervalTimer = null; let isHoldingMouse = false; let isScrolling = false; +let isClicking = true; +let step = 1; +let stepBump = 0.1; let mod = 0; let px = 0; let py = 0; @@ -18,32 +20,35 @@ socket.on('connect', function() { $(function () { $.mousedirection(); $("#canvas").on("mousedirection", function (e) { + isClicking = false; if (e.direction == "up") { px = 0; - py = -1 - mod; + py = -step - mod; } else if (e.direction == "down") { px = 0; - py = 1 + mod; + py = step + mod; } else if (e.direction == "left") { - px = -1 - mod; + px = -step - mod; py = 0; } else if (e.direction == "right") { - px = 1 + mod; + px = step + mod; py = 0; } else if (e.direction == "top-left") { - px = -1 - mod; - py = -1 - mod; + px = -step - mod; + py = -step - mod; } else if (e.direction == "top-right") { - px = 1 + mod; - py = -1 - mod; + px = step + mod; + py = -step - mod; } else if (e.direction == "bottom-left") { - px = -1 - mod; - py = 1 + mod; + px = -step - mod; + py = step + mod; } else if (e.direction == "bottom-right") { - px = 1 + mod; - py = 1 + mod; + px = step + mod; + py = step + mod; } + mod += stepBump; + if (isScrolling) { if (e.direction == "up") { socket.emit('scroll_up', ""); @@ -53,18 +58,11 @@ $(function () { } else { socket.emit('update_coords', px + "," + py); // doAjax("/update-coords/xy/" + px + "/" + py, "" , "update-coords", "GET"); - updateText (px, py); } }); }); - -function updateText (px, py) { - const coordsTxt = "X coords: " + px + ", Y coords: " + py; - document.getElementById("cordsText").innerText = coordsTxt; -} - // Touch events converted to mouse events function touchHandler(event) { let touches = event.changedTouches, @@ -89,15 +87,15 @@ function touchHandler(event) { } -function beginTimerModBump() { - intervalTimer = setInterval(function () { - mod += 2; - }, 600); +function setClickkCheck() { + isClicking = true; } -function endTimerModBump() { - clearInterval(intervalTimer); +function resetClickCheckAndModBump(e) { mod = 0; + if (e.target.id == "canvas" && isClicking) { + leftClick(); + } } function leftClick() { @@ -148,14 +146,13 @@ function playClickSound() { } -document.addEventListener("mousedown", beginTimerModBump, true); -document.addEventListener("mouseup", endTimerModBump, true); +document.addEventListener("mousedown", setClickkCheck, true); +document.addEventListener("mouseup", resetClickCheckAndModBump, true); document.addEventListener("touchstart", touchHandler, true); document.addEventListener("touchmove", touchHandler, true); document.addEventListener("touchend", touchHandler, true); document.addEventListener("touchcancel", touchHandler, true); -document.getElementById("leftClickBtn").addEventListener("mouseup", leftClick, true); document.getElementById("rightClickBtn").addEventListener("mouseup", rightClick, true); document.getElementById("scrollToggle").addEventListener("mouseup", scrollToggle, true); diff --git a/src/core/templates/index.html b/src/core/templates/index.html index 11b052f..c1e510c 100644 --- a/src/core/templates/index.html +++ b/src/core/templates/index.html @@ -8,11 +8,15 @@
-
- Left-Click +
+
-
- Right-Click +
+

+
+
+


@@ -27,22 +31,14 @@


-
- -
-
- +
+ Right-Click


-
-
- X coords: 0, Y coords: 0 -
- - +