refactoring

This commit is contained in:
Devaev Maxim 2018-12-18 23:25:23 +03:00
parent 8867b32356
commit 3e7b5bf049
6 changed files with 20 additions and 16 deletions

View File

@ -12,6 +12,7 @@ globals:
checkBrowser: true
"$": true
"$$": true
"$$$": true
env:
browser: true

View File

@ -46,7 +46,7 @@ function Hid() {
tools.setOnClick($("hid-pak-button"), __clickPasteAsKeysButton);
tools.setOnClick($("hid-reset-button"), __clickResetButton);
Array.prototype.forEach.call(document.querySelectorAll("[data-shortcut]"), function(el_shortcut) {
tools.forEach($$$("[data-shortcut]"), function(el_shortcut) {
tools.setOnClick(el_shortcut, () => __emitShortcut(el_shortcut.getAttribute("data-shortcut").split(" ")));
});
};

View File

@ -5,8 +5,8 @@ function Keyboard() {
var __ws = null;
var __keys = [].slice.call(document.querySelectorAll("div#keyboard-desktop div.keyboard-block div.keyboard-row div.key"));
var __modifiers = [].slice.call(document.querySelectorAll("div#keyboard-desktop div.keyboard-block div.keyboard-row div.modifier"));
var __keys = [].slice.call($$$("div#keyboard-desktop div.keyboard-block div.keyboard-row div.key"));
var __modifiers = [].slice.call($$$("div#keyboard-desktop div.keyboard-block div.keyboard-row div.modifier"));
var __init__ = function() {
$("hid-keyboard-led").title = "Keyboard free";
@ -24,7 +24,7 @@ function Keyboard() {
window.addEventListener("focusin", __updateLeds);
window.addEventListener("focusout", __updateLeds);
Array.prototype.forEach.call($$("key"), function(el_key) {
tools.forEach($$("key"), function(el_key) {
tools.setOnDown(el_key, () => __clickHandler(el_key, true));
tools.setOnUp(el_key, () => __clickHandler(el_key, false));
el_key.onmouseout = function() {
@ -34,7 +34,7 @@ function Keyboard() {
};
});
Array.prototype.forEach.call($$("modifier"), function(el_key) {
tools.forEach($$("modifier"), function(el_key) {
tools.setOnDown(el_key, () => __toggleModifierHandler(el_key));
});
@ -134,7 +134,7 @@ function Keyboard() {
var __isPressed = function(el_key) {
var is_pressed = false;
Array.prototype.forEach.call(__resolveKeys(el_key), function(el_key) {
tools.forEach(__resolveKeys(el_key), function(el_key) {
is_pressed = (is_pressed || el_key.classList.contains("pressed"));
});
return is_pressed;
@ -142,7 +142,7 @@ function Keyboard() {
var __isHolded = function(el_key) {
var is_holded = false;
Array.prototype.forEach.call(__resolveKeys(el_key), function(el_key) {
tools.forEach(__resolveKeys(el_key), function(el_key) {
is_holded = (is_holded || el_key.classList.contains("holded"));
});
return is_holded;
@ -150,20 +150,20 @@ function Keyboard() {
var __isActive = function(el_key) {
var is_active = false;
Array.prototype.forEach.call(__resolveKeys(el_key), function(el_key) {
tools.forEach(__resolveKeys(el_key), function(el_key) {
is_active = (is_active || el_key.classList.contains("pressed") || el_key.classList.contains("holded"));
});
return is_active;
};
var __activate = function(el_key, cls) {
Array.prototype.forEach.call(__resolveKeys(el_key), function(el_key) {
tools.forEach(__resolveKeys(el_key), function(el_key) {
el_key.classList.add(cls);
});
};
var __deactivate = function(el_key) {
Array.prototype.forEach.call(__resolveKeys(el_key), function(el_key) {
tools.forEach(__resolveKeys(el_key), function(el_key) {
el_key.classList.remove("pressed");
el_key.classList.remove("holded");
});
@ -171,7 +171,7 @@ function Keyboard() {
var __resolveKeys = function(el_key) {
var code = el_key.getAttribute("data-key");
return document.querySelectorAll(`[data-key='${code}']`);
return $$$(`[data-key='${code}']`);
};
var __sendKey = function(el_key, state) {

View File

@ -23,7 +23,7 @@ function Mouse() {
$("stream-box").onwheel = __wheelHandler;
$("stream-box").ontouchstart = (event) => __touchMoveHandler(event);
Array.prototype.forEach.call(document.querySelectorAll("[data-mouse-button]"), function(el_button) {
tools.forEach($$$("[data-mouse-button]"), function(el_button) {
var button = el_button.getAttribute("data-mouse-button");
tools.setOnDown(el_button, () => __sendButton(button, true));
tools.setOnUp(el_button, () => __sendButton(button, false));

View File

@ -1,6 +1,8 @@
var tools = new function() {
var __debug = (new URL(window.location.href)).searchParams.get("debug");
this.forEach = (...args) => Array.prototype.forEach.call(...args);
this.makeRequest = function(method, url, callback, body=null, content_type=null) {
var http = new XMLHttpRequest();
http.open(method, url, true);
@ -134,3 +136,4 @@ var tools = new function() {
var $ = (id) => document.getElementById(id);
var $$ = (cls) => document.getElementsByClassName(cls);
var $$$ = (selector) => document.querySelectorAll(selector);

View File

@ -8,19 +8,19 @@ function WindowManager() {
var __menu_items = [];
var __init__ = function() {
Array.prototype.forEach.call(document.querySelectorAll("button"), function(el_button) {
tools.forEach($$$("button"), function(el_button) {
// XXX: Workaround for iOS Safari:
// https://stackoverflow.com/questions/3885018/active-pseudo-class-doesnt-work-in-mobile-safari
el_button.ontouchstart = function() {};
});
Array.prototype.forEach.call($$("menu-item"), function(el_item) {
tools.forEach($$("menu-item"), function(el_item) {
el_item.parentElement.querySelector(".menu-item-content").setAttribute("tabindex", "-1");
tools.setOnDown(el_item, () => __toggleMenu(el_item));
__menu_items.push(el_item);
});
Array.prototype.forEach.call($$("window"), function(el_window) {
tools.forEach($$("window"), function(el_window) {
el_window.setAttribute("tabindex", "-1");
__makeWindowMovable(el_window);
__windows.push(el_window);
@ -258,7 +258,7 @@ function WindowManager() {
var __organizeWindowsOnResize = function(orientation) {
var view = self.getViewGeometry();
Array.prototype.forEach.call($$("window"), function(el_window) {
tools.forEach($$("window"), function(el_window) {
if (el_window.style.visibility === "visible" && (orientation || el_window.hasAttribute("data-centered"))) {
var rect = el_window.getBoundingClientRect();