Merge commit 'jesse/master'
[taboo.git] / chrome / content / start_xul.js
blob4cf9208f32eca502b15ae7fcace8b9df846d6c47
1 const CC = Components.classes;
2 const CI = Components.interfaces;
3 const SVC = CC['@oy/taboo;1'].getService(CI.oyITaboo);
5 var groupbox = document.getElementById('taboo');
7 var enum = SVC.get(null, false);
8 while (enum.hasMoreElements()) {
9   var tab = enum.getNext();
10   tab.QueryInterface(CI.oyITabooInfo);
12   // this should be a custom xbl:
13   (function (tab){
14     
15     var box = document.createElement('vbox');
16     box.setAttribute('class', 'taboo')
17     
18     var node = document.createElement('image');
19     node.setAttribute('class', 'delete')
20     box.appendChild(node);
21     
22     var node = document.createElement('label');
23     node.setAttribute('class', 'title')
24     node.setAttribute('tooltiptext', tab.title);
25     node.setAttribute('value', tab.title);
26     node.setAttribute('minwidth', '125')
27     node.setAttribute('maxwidth', '125')
28     node.setAttribute('crop', 'end');
29     
30     var node = document.createElement('label');
31     node.setAttribute('class', 'title')
32     node.setAttribute('tooltiptext', tab.title);
33     node.setAttribute('value', tab.title);
34     node.setAttribute('minwidth', '125')
35     node.setAttribute('maxwidth', '125')
36     node.setAttribute('crop', 'end');
38     box.appendChild(node);
39     
40     var node = document.createElement('label');
41     node.setAttribute('class', 'url')
42     node.setAttribute('value', tab.url);
43     node.setAttribute('tooltiptext', tab.url);
44     node.setAttribute('minwidth', '125')
45     node.setAttribute('maxwidth', '125')
46     node.setAttribute('crop', 'end');
47     
48     box.appendChild(node);
49     
50     var hbox = document.createElement('hbox');
51     var spacer = document.createElement('spacer');
52     spacer.setAttribute('flex', 1)
53     hbox.appendChild(spacer);
54     var node = document.createElement('image');
55     node.setAttribute('src', tab.imageURL);
56     node.setAttribute('class', 'preview')
57     hbox.appendChild(node);
58     var spacer = document.createElement('spacer');
59     spacer.setAttribute('flex', 1)
60     hbox.appendChild(spacer);
61     
62     box.appendChild(hbox);
63     
64     box.onclick = function(event) {
65       if (event.originalTarget.className == 'delete') {
66         SVC.delete(tab.url);
67         box.parentNode.removeChild(box);
68       }
69       else {
70         SVC.open(tab.url, whereToOpenLink(event));
71       }
72     }
73     
74     groupbox.appendChild(box);
75     
76   })(tab);