MCPcopy Index your code
hub / github.com/cifertech/DisplayKit / renderGuides

Function renderGuides

app.js:394–434  ·  view source on GitHub ↗
()

Source from the content-addressed store, hash-verified

392}
393
394function renderGuides() {
395 // remove old
396 document.querySelectorAll(".guide-line").forEach((n) => n.remove());
397 const scale = parseFloat(preview.dataset.scale || "1");
398 guides.forEach((g) => {
399 const div = document.createElement("div");
400 div.className = "guide-line " + g.orient;
401 div.dataset.id = g.id;
402 if (g.orient === "v") div.style.left = (g.pos * scale) + "px";
403 else div.style.top = (g.pos * scale) + "px";
404 preview.appendChild(div);
405
406 let dragging = false;
407 let start = 0;
408 div.addEventListener("mousedown", (e) => {
409 e.preventDefault();
410 dragging = true;
411 start = g.orient === "v" ? e.clientX : e.clientY;
412 });
413 document.addEventListener("mousemove", (e) => {
414 if (!dragging) return;
415 const cur = g.orient === "v" ? e.clientX : e.clientY;
416 const deltaPx = cur - start;
417 const deltaUnits = deltaPx / scale;
418 g.pos = Math.max(0, Math.round(g.pos + deltaUnits));
419 start = cur;
420 renderGuides();
421 });
422 document.addEventListener("mouseup", () => {
423 if (!dragging) return;
424 dragging = false;
425 pushHistory();
426 });
427 div.addEventListener("dblclick", (e) => {
428 e.preventDefault();
429 guides = guides.filter((x) => x.id !== g.id);
430 renderGuides();
431 pushHistory();
432 });
433 });
434}
435
436function snapMoveToElements(elementId, x, y, opts) {
437 const suppressSnap = !!(opts && opts.suppressSnap);

Callers 2

app.jsFile · 0.85
updatePreviewSizeFunction · 0.85

Calls 1

pushHistoryFunction · 0.85

Tested by

no test coverage detected