MCPcopy Create free account
hub / github.com/idank/explainshell / brushstart

Function brushstart

explainshell/web/static/js/d3.v3.js:7617–7723  ·  view source on GitHub ↗
()

Source from the content-addressed store, hash-verified

7615 g.selectAll(".extent,.e>rect,.w>rect").attr("height", extent[1][1] - extent[0][1]);
7616 }
7617 function brushstart() {
7618 var target = this, eventTarget = d3.select(d3.event.target), event_ = event.of(target, arguments), g = d3.select(target), resizing = eventTarget.datum(), resizingX = !/^(n|s)$/.test(resizing) && x, resizingY = !/^(e|w)$/.test(resizing) && y, dragging = eventTarget.classed("extent"), center, origin = mouse(), offset;
7619 var w = d3.select(d3_window).on("mousemove.brush", brushmove).on("mouseup.brush", brushend).on("touchmove.brush", brushmove).on("touchend.brush", brushend).on("keydown.brush", keydown).on("keyup.brush", keyup);
7620 if (dragging) {
7621 origin[0] = extent[0][0] - origin[0];
7622 origin[1] = extent[0][1] - origin[1];
7623 } else if (resizing) {
7624 var ex = +/w$/.test(resizing), ey = +/^n/.test(resizing);
7625 offset = [ extent[1 - ex][0] - origin[0], extent[1 - ey][1] - origin[1] ];
7626 origin[0] = extent[ex][0];
7627 origin[1] = extent[ey][1];
7628 } else if (d3.event.altKey) center = origin.slice();
7629 g.style("pointer-events", "none").selectAll(".resize").style("display", null);
7630 d3.select("body").style("cursor", eventTarget.style("cursor"));
7631 event_({
7632 type: "brushstart"
7633 });
7634 brushmove();
7635 d3_eventCancel();
7636 function mouse() {
7637 var touches = d3.event.changedTouches;
7638 return touches ? d3.touches(target, touches)[0] : d3.mouse(target);
7639 }
7640 function keydown() {
7641 if (d3.event.keyCode == 32) {
7642 if (!dragging) {
7643 center = null;
7644 origin[0] -= extent[1][0];
7645 origin[1] -= extent[1][1];
7646 dragging = 2;
7647 }
7648 d3_eventCancel();
7649 }
7650 }
7651 function keyup() {
7652 if (d3.event.keyCode == 32 && dragging == 2) {
7653 origin[0] += extent[1][0];
7654 origin[1] += extent[1][1];
7655 dragging = 0;
7656 d3_eventCancel();
7657 }
7658 }
7659 function brushmove() {
7660 var point = mouse(), moved = false;
7661 if (offset) {
7662 point[0] += offset[0];
7663 point[1] += offset[1];
7664 }
7665 if (!dragging) {
7666 if (d3.event.altKey) {
7667 if (!center) center = [ (extent[0][0] + extent[1][0]) / 2, (extent[0][1] + extent[1][1]) / 2 ];
7668 origin[0] = extent[+(point[0] < center[0])][0];
7669 origin[1] = extent[+(point[1] < center[1])][1];
7670 } else center = null;
7671 }
7672 if (resizingX && move1(point, x, 0)) {
7673 redrawX(g);
7674 moved = true;

Callers

nothing calls this directly

Calls 3

mouseFunction · 0.85
brushmoveFunction · 0.85
d3_eventCancelFunction · 0.85

Tested by

no test coverage detected