-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathsettings.js
More file actions
75 lines (72 loc) · 2.2 KB
/
settings.js
File metadata and controls
75 lines (72 loc) · 2.2 KB
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
64
65
66
67
68
69
70
71
72
73
74
75
var selection = null;
var moved = false;
var lastX = null;
function select() {
selection = this;
}
function move(ev) {
ev = ev || window.event;
var self = this;
if( selection && self != selection ) {
if( ev.clientX < lastX ) {
moved = true;
selection.parentElement.removeChild(selection);
self.parentElement.insertBefore(selection, self);
} else {
moved = true;
selection.parentElement.removeChild(selection);
self.parentElement.insertBefore(selection, self.nextSibling);
}
}
lastX = ev.clientX;
}
function done() {
if( selection ) {
if( !moved ) {
selection.style.filter = selection.dim ? '' : 'alpha(opacity=50)';
selection.dim = !selection.dim;
}
selection = null;
moved = false;
}
}
function load() {
var order = System.Gadget.Settings.read("order").split(',');
$('options').interval.value = System.Gadget.Settings.read("interval");
$('options').auto.checked = System.Gadget.Settings.read("auto");
$('options').halt.checked = System.Gadget.Settings.read("halt");
System.Gadget.onSettingsClosing = close;
var desc = $('desc'); var w = 6;
for( var i=0; order[i]; i++ ) {
var item = document.createElement('div');
item.prefix = order[i].replace(/-/,'');
item.className = 'panel';
item.innerHTML = item.prefix;
desc.parentElement.insertBefore(item, desc);
w += item.offsetWidth + 4;
item.onmousedown = select;
item.onmouseover = move;
item.onmouseup = done;
if( order[i].match(/-/) ) {
item.style.filter = 'alpha(opacity=50)';
item.dim = true;
}
}
$('sites').style.width = w;
$('options').style.marginLeft = (w - $('options').offsetWidth) / 2;
document.body.style.width = w + 10;
}
function close(event) {
if (event.closeAction == event.Action.commit) {
var obj = $('sites').firstChild;
var order = '';
while( obj.prefix ) {
order += (order ? ',' : '') + (obj.dim ? '-' : '') + obj.prefix;
obj = obj.nextSibling;
}
System.Gadget.Settings.write("order", order);
System.Gadget.Settings.write("interval", $('options').interval.value);
System.Gadget.Settings.write("auto", $('options').auto.checked);
System.Gadget.Settings.write("halt", $('options').halt.checked);
}
}