90 lines
2.1 KiB
JavaScript
90 lines
2.1 KiB
JavaScript
if (window.context == undefined)
|
|
{
|
|
window.context = {};
|
|
}
|
|
|
|
window.context.drag_mouse = (dx, dy, buttons, element) => {
|
|
let sx = null;
|
|
let sy = null;
|
|
|
|
if (element == undefined)
|
|
{
|
|
element = document.body;
|
|
}
|
|
if (buttons == undefined)
|
|
{
|
|
buttons = []
|
|
}
|
|
|
|
{
|
|
let t1 = element.getBoundingClientRect();
|
|
sx = t1.left + t1.width / 2;
|
|
sy = t1.top + t1.height / 2;
|
|
}
|
|
//console.log([sx, sy]);
|
|
|
|
t2 = (btn, mvx, mvy, clx, cly, t) => {
|
|
return new MouseEvent(
|
|
t,
|
|
{
|
|
type: t,
|
|
button: btn,
|
|
target: element,
|
|
movementX: mvx,
|
|
movementY: mvy,
|
|
clientX: clx,
|
|
clientY: cly,
|
|
shiftKey: false, // you don't need to include values
|
|
ctrlKey: false, // if you aren't going to use them.
|
|
metaKey: false // these are here for example's sake.
|
|
}
|
|
);
|
|
}
|
|
|
|
t3 = [
|
|
t2(-1, 0, 0, sx, sy, "mousemove"),
|
|
t2(pc.MOUSEBUTTON_LEFT, 0, 0, sx, sy, "mousedown"),
|
|
t2(-1, 0, 0, sx, sy, "mousemove"),
|
|
t2(-1, dx, dy, sx + dx, sy + dy, "mousemove"),
|
|
t2(-1, 0, 0, sx + dx, sy + dy, "mousemove"),
|
|
t2(-1, 0, 0, sx + dx, sy + dy, "mousemove"),
|
|
t2(pc.MOUSEBUTTON_LEFT, 0, 0, sx + dx, sy + dy, "mouseup"),
|
|
];
|
|
if (true)
|
|
{
|
|
window.dispatchEvent(t3[0]);
|
|
}
|
|
if (true)
|
|
{
|
|
for (let button in buttons)
|
|
{
|
|
let event = t2(
|
|
button, 0, 0, sx, sy, "mousedown"
|
|
);
|
|
window.dispatchEvent(event);
|
|
}
|
|
}
|
|
t3.slice(3, 4).forEach(
|
|
(o) => window.dispatchEvent(o)
|
|
);
|
|
//t3.slice(4, 5).forEach(
|
|
// (o) => window.dispatchEvent(o)
|
|
//);
|
|
//t3.slice(5, 6).forEach(
|
|
// (o) => window.dispatchEvent(o)
|
|
//);
|
|
|
|
if (false)
|
|
{
|
|
for (let button in buttons)
|
|
{
|
|
let event = t2(
|
|
button, 0, 0, sx + dx, sy + dy, "mouseup",
|
|
);
|
|
window.dispatchEvent(event);
|
|
}
|
|
}
|
|
|
|
window.dispatchEvent(t3[6]);
|
|
}
|