diff options
author | Devaev Maxim <[email protected]> | 2018-08-19 04:09:20 +0300 |
---|---|---|
committer | Devaev Maxim <[email protected]> | 2018-08-19 04:09:20 +0300 |
commit | b687574920306c3262443f43f4f9f860691ec6b4 (patch) | |
tree | 86a5fa484855893c9c7ed042d8e2530573b53344 | |
parent | 1591b8ed3530e1762def620bbc04eca219ca444d (diff) |
tablet style
-rw-r--r-- | kvmd/web/css/keyboard.css | 10 | ||||
-rw-r--r-- | kvmd/web/css/main.css | 1 | ||||
-rw-r--r-- | kvmd/web/css/mobile.css | 65 | ||||
-rw-r--r-- | kvmd/web/index.html | 8 | ||||
-rw-r--r-- | kvmd/web/js/ui.js | 15 |
5 files changed, 91 insertions, 8 deletions
diff --git a/kvmd/web/css/keyboard.css b/kvmd/web/css/keyboard.css index f19a5689..7686a3f3 100644 --- a/kvmd/web/css/keyboard.css +++ b/kvmd/web/css/keyboard.css @@ -42,15 +42,15 @@ div#keyboard div.key:hover, div.modifier:hover { color: var(--fg-color-intensive); background-color: var(--bg-color-ctl); } -div#keyboard div.pressed, div.pressed { +div#keyboard div.pressed { box-shadow: none; - color: var(--fg-color-selected); - background-color: var(--bg-color-dark); + color: var(--fg-color-selected) !important; + background-color: var(--bg-color-dark) !important; } div#keyboard div.holded { box-shadow: none; - color: var(--fg-color-normal); - background-color: var(--bg-color-intensive); + color: var(--fg-color-normal) !important; + background-color: var(--bg-color-intensive) !important; } div#keyboard div.key:last-child, div.empty-key:last-child, div.modifier:last-child { margin-right: 0; diff --git a/kvmd/web/css/main.css b/kvmd/web/css/main.css index 630536da..dec3cb45 100644 --- a/kvmd/web/css/main.css +++ b/kvmd/web/css/main.css @@ -7,6 +7,7 @@ body { -webkit-user-select: none; -moz-user-select: none; user-select: none; + touch-action: manipulation; } img#logo { -webkit-filter: invert(0.7); diff --git a/kvmd/web/css/mobile.css b/kvmd/web/css/mobile.css new file mode 100644 index 00000000..9d686da2 --- /dev/null +++ b/kvmd/web/css/mobile.css @@ -0,0 +1,65 @@ +/* + http://stephen.io/mediaqueries/ + https://gist.github.com/gokulkrishh/242e68d1ee94ad05f488 +*/ + +@media only screen and (min-device-width : 768px) and (max-device-width : 1024px) { + div.window { + padding-top: 45px !important; + } + div.window-header { + height: 35px !important; + } + div.window-grab { + height: 35px !important; + } + button.window-button-close { + height: 40px !important; + } + + div#keyboard div.key:hover, div.modifier:hover { + color: var(--fg-color-normal); + background-color: var(--bg-color-gray); + } +} + +@media only screen and (min-width: 768px) and (max-width: 1024px) and (orientation: portrait) { + div.ctl-dropdown-content button { + height: 45px !important; + } + + div#stream-window { + padding-top: 9px !important; + border-top: 0 !important; + border-radius: 0 0 8px 8px !important; + top: 50px !important; + left: 50% !important; + -webkit-transform: translateX(-50%) !important; + transform: translateX(-50%) !important; + } + div#stream-window-header { + display: none !important; + } + + div#keyboard { + zoom: 1.1 !important; + } + div#keyboard-window { + visibility: visible !important; + padding-top: 9px !important; + padding-bottom: 30px !important; + border-bottom: 0 !important; + border-left: 0 !important; + border-right: 0 !important; + border-radius: 0 !important; + top: unset !important; + bottom: 0 !important; + width: 100% !important; + left: 50% !important; + -webkit-transform: translateX(-50%) !important; + transform: translateX(-50%) !important; + } + div#keyboard-window-header { + display: none !important + } +} diff --git a/kvmd/web/index.html b/kvmd/web/index.html index 5f27074d..4f225f02 100644 --- a/kvmd/web/index.html +++ b/kvmd/web/index.html @@ -18,6 +18,8 @@ <link rel="stylesheet" href="css/keyboard.css"> <link rel="stylesheet" href="css/about.css"> + <link rel="stylesheet" href="css/mobile.css"> + <script src="js/tools.js"></script> <script src="js/stream.js"></script> <script src="js/atx.js"></script> @@ -216,18 +218,18 @@ </ul> <div id="stream-window" class="window" style="z-index: 1" tabindex="0"> - <div class="window-header"><div class="window-grab">Stream</div></div> + <div id="stream-window-header" class="window-header"><div class="window-grab">Stream</div></div> <div id="stream-box" class="stream-box-inactive"> <img id="stream-image" class="stream-image-inactive" src="png/blank-stream.png" /> </div> </div> <div id="keyboard-window" class="window" tabindex="0"> - <div class="window-header"> + <div id="keyboard-window-header" class="window-header"> <div class="window-grab">Virtual Keyboard</div> <button class="window-button-close">×</button> </div> - <div id="keyboard"> + <div id="keyboard" align="center"> <div class="keyboard-block"> <div class="keyboard-row"> <div id="Escape" class="key small"><p>Esc</p></div> diff --git a/kvmd/web/js/ui.js b/kvmd/web/js/ui.js index f97b237b..cb782bda 100644 --- a/kvmd/web/js/ui.js +++ b/kvmd/web/js/ui.js @@ -58,6 +58,9 @@ function Ui(hid) { window.onmouseup = __globalMouseButtonHandler; // window.oncontextmenu = __globalMouseButtonHandler; + window.addEventListener("resize", () => __organizeWindowsOnResize(false)); + window.addEventListener("orientationchange", () => __organizeWindowsOnResize(true)); + $("show-about-button").onclick = () => self.showWindow($("about-window")); $("show-keyboard-button").onclick = () => self.showWindow($("keyboard-window")); $("show-stream-button").onclick = () => self.showWindow($("stream-window")); @@ -153,6 +156,18 @@ function Ui(hid) { } }; + var __organizeWindowsOnResize = function(orientation) { + var view = __getViewGeometry(); + Array.prototype.forEach.call($$("window"), function(el_window) { + if (el_window.style.visibility === "visible" && (orientation || el_window.hasAttribute("data-centered"))) { + var rect = el_window.getBoundingClientRect(); + el_window.style.top = Math.max($("ctl").clientHeight, Math.round((view.bottom - rect.height) / 2)) + "px"; + el_window.style.left = Math.round((view.right - rect.width) / 2) + "px"; + el_window.setAttribute("data-centered", ""); + } + }); + }; + var __makeWindowMovable = function(el_window) { var el_header = el_window.querySelector(".window-header"); var el_grab = el_window.querySelector(".window-header .window-grab"); |