summaryrefslogtreecommitdiff
path: root/2016_lamp_browser/firefox/index.js
blob: c83160e399bef4d16e57f4b58449e4f662ae5009 (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
var { ToggleButton } = require('sdk/ui/button/toggle');
var panels = require("sdk/panel");
var self = require("sdk/self").data;
var pageMod = require("sdk/page-mod");
var state = false;

var button = ToggleButton({
	id: "my-button",
	label: "lamp",
	icon: {
		"16": "./icon-16.png",
		"32": "./icon-32.png",
		"64": "./icon-64.png"
	},
	onChange: handleChange
});

var panel = panels.Panel({
	width: 500,
	height: 130,
	contentURL: self.url("panel.html"),
	contentScriptFile: self.url("onoff.js"),
	onHide: handleHide
});

function handleChange(state) {
	if (state.checked) {
		panel.show({
			position: button
		});
	}
}

function handleHide() {
	button.state('window', {checked: false});
}

var workers = [];
panel.port.on("lamp", function (text) {
	if(text == "on"){
		state = true;
		pageMod.PageMod({
			include: "*",
			attachTo: ["existing", "top"],
			contentScript: 'document.getElementsByTagName("body")[0].style = "transition: opacity 0.2s ease-in; opacity: 1"'
		});
	} else if (text == "off"){
		state == false;
		pageMod.PageMod({
			include: "*",
			attachTo: ["existing", "top"],
			contentScript: 'document.getElementsByTagName("body")[0].style = "transition: opacity 0.2s ease-in; opacity: 0.0"'
		});
	}
});