blob: 7ea141e8f84186492db956d7f29c29b224bc5482 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
|
function dialogMouseDown(e) {
bumpDialog(e.currentTarget);
}
function dialogTitleMouseDown(e) {
e = e || window.event;
e.preventDefault();
var element = e.currentTarget.parentElement;
var ds = element.dataset;
ds.lastX = e.clientX;
ds.lastY = e.clientY;
window.dragDialog = element;
document.onmouseup = dragMouseUp;
document.onmousemove = dragMouseMove;
}
function dragMouseUp() {
window.dragDialog = null;
document.onmouseup = null;
document.onmousemove = null;
}
function dragMouseMove(e) {
e = e || window.event;
e.preventDefault();
var element = window.dragDialog;
var ds = element.dataset;
deltaX = ds.lastX - e.clientX;
deltaY = ds.lastY - e.clientY;
ds.lastX = e.clientX;
ds.lastY = e.clientY;
element.style.left = (element.offsetLeft - deltaX) + 'px';
element.style.top = (element.offsetTop - deltaY) + 'px';
}
function setDialogVisibility(element, visible) {
if(visible) {
element.style.left = null;
element.style.top = null;
element.style.opacity = 1;
element.style.visibility = 'visible';
bumpDialog(element);
} else {
element.style.opacity = 0;
element.style.visibility = 'hidden';
}
}
function bumpDialog(element) {
var dialogs = Array
.from(document.querySelectorAll('div.dialog'))
.map(e => ({ zIndex: parseInt(e.style.zIndex), element: e }))
.sort((a, b) => a.zIndex - b.zIndex)
.map(d => d.element)
.filter(e => e != element);
dialogs.push(element);
var z = 900;
for(var d of dialogs)
d.style.zIndex = z++;
}
|