From 41f91c4dab0f44028040fe1da7de71616155dc25 Mon Sep 17 00:00:00 2001 From: Fen Dweller Date: Sun, 29 Mar 2020 09:07:57 -0400 Subject: [PATCH] Add horizontal scrolling via buttons or the scroll wheel --- macrovision.html | 7 +++++++ macrovision.js | 23 +++++++++++++++++++++-- 2 files changed, 28 insertions(+), 2 deletions(-) diff --git a/macrovision.html b/macrovision.html index bba09a86..030b7bd8 100644 --- a/macrovision.html +++ b/macrovision.html @@ -47,6 +47,7 @@
  • Scroll to zoom.
  • Alt-scroll to zoom preserve positions on the screen.
  • Shift-scroll with an entity selected to scale it.
  • +
  • Shift-scroll without a selection to move horizontally.
  • Adding/removing entities

    @@ -91,6 +92,12 @@ +
    + +
    +
    + +
    diff --git a/macrovision.js b/macrovision.js index d15e92c4..02ba8188 100644 --- a/macrovision.js +++ b/macrovision.js @@ -1152,7 +1152,7 @@ function prepareMenu() { } } -const lastHelpChange = 1585150501917; +const lastHelpChange = 1585487259753; function checkHelpDate() { try { @@ -1385,14 +1385,19 @@ document.addEventListener("DOMContentLoaded", () => { if (shiftHeld) { - const dir = e.deltaY > 0 ? 10/11 : 11/10; if (selected) { + const dir = e.deltaY > 0 ? 10/11 : 11/10; const entity = entities[selected.dataset.key]; entity.views[entity.view].height = math.multiply(entity.views[entity.view].height, dir); entity.dirty = true; updateEntityOptions(entity, entity.view); updateViewOptions(entity, entity.view); updateSizes(true); + } else { + document.querySelectorAll(".entity-box").forEach(element => { + element.dataset.x = parseFloat(element.dataset.x) + (e.deltaY < 0 ? 0.1 : -0.1); + }); + updateSizes(); } } else { @@ -1466,6 +1471,20 @@ document.addEventListener("DOMContentLoaded", () => { arrangeEntities(order); }); + document.querySelector("#options-world-scroll-left").addEventListener("click", () => { + document.querySelectorAll(".entity-box").forEach(element => { + element.dataset.x = parseFloat(element.dataset.x) + 0.1; + }); + updateSizes(); + }); + + document.querySelector("#options-world-scroll-right").addEventListener("click", () => { + document.querySelectorAll(".entity-box").forEach(element => { + element.dataset.x = parseFloat(element.dataset.x) - 0.1; + }); + updateSizes(); + }); + document.querySelector("#options-world-fit").addEventListener("click", () => fitWorld(true)); document.querySelector("#options-world-autofit").addEventListener("input", e => {