250c833895
Also updates a lot of other things (brush size now independent from scale factor, split some files, and a lot other things; removed erase safeguard as now erase is supported by undo/redo; tried adding github prettier autoformatting to pull requests; may have some other things as well Signed-off-by: Victor Seiji Hariki <victorseijih@gmail.com> Former-commit-id: 0ba21f23c69f9dca2c3189a838b945900b01f81d
48 lines
1.2 KiB
JavaScript
48 lines
1.2 KiB
JavaScript
function makeDraggable(element) {
|
|
const startbb = element.getBoundingClientRect();
|
|
let dragging = false;
|
|
let offset = {x: 0, y: 0};
|
|
|
|
element.style.top = startbb.y + "px";
|
|
element.style.left = startbb.x + "px";
|
|
|
|
mouse.listen.window.left.onpaintstart.on((evn) => {
|
|
if (
|
|
element.contains(evn.target) &&
|
|
evn.target.classList.contains("draggable")
|
|
) {
|
|
const bb = element.getBoundingClientRect();
|
|
offset.x = evn.x - bb.x;
|
|
offset.y = evn.y - bb.y;
|
|
dragging = true;
|
|
}
|
|
});
|
|
|
|
mouse.listen.window.left.onpaint.on((evn) => {
|
|
if (dragging) {
|
|
element.style.top = evn.y - offset.y + "px";
|
|
element.style.left = evn.x - offset.x + "px";
|
|
}
|
|
});
|
|
|
|
mouse.listen.window.left.onpaintend.on((evn) => {
|
|
dragging = false;
|
|
});
|
|
}
|
|
|
|
document.querySelectorAll(".floating-window").forEach((w) => {
|
|
makeDraggable(w);
|
|
});
|
|
|
|
var coll = document.getElementsByClassName("collapsible");
|
|
for (var i = 0; i < coll.length; i++) {
|
|
coll[i].addEventListener("click", function () {
|
|
this.classList.toggle("active");
|
|
var content = this.nextElementSibling;
|
|
if (content.style.maxHeight) {
|
|
content.style.maxHeight = null;
|
|
} else {
|
|
content.style.maxHeight = content.scrollHeight + "px";
|
|
}
|
|
});
|
|
}
|