return false;
}
+ var firstNode, secondNode;
+ var cursor;
+ var dial = document.getElementsByClassName("shortcut");
+
+ var click = function (ev) {
+ ev.preventDefault();
+ var ele = ev.target;
+ cursor = ele.style.cursor;
+ ele.style.cursor = 'move';
+
+ var eparent;
+
+ if (ele.nodeName == 'IMG')
+ eparent = ele.parentNode.parentNode.parentNode;
+ if (ele.className == 'title')
+ eparent = ele.parentNode;
+ if (ele.className == 'shortcut')
+ eparent = ele;
+ if (eparent != undefined) {
+ eparent.style.outline = '1px dotted black';
+ eparent.style.backgroundColor = '#eef';
+ firstNode = eparent.id;
+ }
+ out();
+ remove();
+ };
+
+ var remove = function () {
+ document.RemoveEventListener('click', click, false);
+ document.RemoveEventListener('mouseout', out, false);
+ };
+
+ var up = function (ev) {
+ ele = ev.target;
+ var eparent;
+
+ if (ele.nodeName == 'IMG')
+ eparent = ele.parentNode.parentNode.parentNode;
+ if (ele.className == 'title')
+ eparent = ele.parentNode;
+ if (ele.className == 'shortcut')
+ eparent = ele;
+
+ ele.style.cursor = cursor;
+ secondNode = eparent.id;
+
+ /* ommit just mere clicking the dial */
+ if (firstNode != secondNode && firstNode != undefined)
+ swap();
+ };
+
+ var over = function (ev) {
+ var ele = ev.target;
+ var eparent;
+
+ if (ele.nodeName == 'IMG')
+ eparent = ele.parentNode.parentNode.parentNode;
+ if (ele.className == 'title')
+ eparent = ele.parentNode;
+ if (ele.className == 'shortcut')
+ eparent = ele;
+
+ if (firstNode != undefined)
+ {
+ eparent.style.outline = '1px dotted black';
+ eparent.style.backgroundColor = '#eef';
+ for (var i = 0; i <= dial.length; i++) {
+ if (eparent.id != firstNode.id && dial[i].id != eparent.id) {
+ dial[i].style.outline = '0px';
+ dial[i].style.backgroundColor = '#eee';
+ }
+ }
+ }
+ ele.style.cursor = cursor;
+ }
+ var out = function (ev) {
+ var ele = ev.target;
+ var eparent;
+
+ if (ele.nodeName == 'IMG')
+ eparent = ele.parentNode.parentNode.parentNode;
+ if (ele.className == 'title')
+ eparent = ele.parentNode;
+ if (ele.className == 'shortcut')
+ eparent = ele;
+ if (firstNode != undefined) {
+ for (var i = 0; i <= dial.length; i++) {
+ if (eparent.id != firstNode.id && dial[i].id != eparent.id) {
+ dial[i].style.outline = '0px';
+ dial[i].backgroundColor = '#eee';
+ }
+ }
+ }
+ ele.style.cursor = cursor;
+ }
+
+ function swap () {
+ console.log ("speed_dial-save-swap " + firstNode + " " + secondNode);
+ };
+
+ document.addEventListener('mousedown', click, false);
+ document.addEventListener('mouseup', up, false);
+ document.addEventListener('mouseover', over, false);
+ document.addEventListener('mouseout', out, false);
</script>
</head>
<body>
action = parts[0];
if (g_str_equal (action, "add") || g_str_equal (action, "rename")
- || g_str_equal (action, "delete"))
+ || g_str_equal (action, "delete") || g_str_equal (action, "swap"))
{
gchar* tmp = g_strdup (parts[1] + 1);
guint slot_id = atoi (tmp);
g_key_file_set_string (key_file, dial_id, "title", title);
g_free (title);
}
+ else if (g_str_equal (action, "swap"))
+ {
+ gchar* tmp1 = g_strdup (parts[2] + 1);
+ guint slot2_id = atoi (tmp1);
+ gchar* dial2_id = g_strdup_printf ("Dial %d", slot2_id);
+ gchar* uri, *uri2, *title, *title2;
+ g_free (tmp1);
+
+ uri = g_key_file_get_string (key_file, dial_id, "uri", NULL);
+ title = g_key_file_get_string (key_file, dial_id, "title", NULL);
+ uri2 = g_key_file_get_string (key_file, dial2_id, "uri", NULL);
+ title2 = g_key_file_get_string (key_file, dial2_id, "title", NULL);
+
+ g_key_file_set_string (key_file, dial_id, "uri", uri2);
+ g_key_file_set_string (key_file, dial2_id, "uri", uri);
+ g_key_file_set_string (key_file, dial_id, "title", title2);
+ g_key_file_set_string (key_file, dial2_id, "title", title);
+
+ g_free (uri);
+ g_free (uri2);
+ g_free (title);
+ g_free (title2);
+ g_free (dial2_id);
+ }
g_free (dial_id);
}