summaryrefslogtreecommitdiff
path: root/2016_lamp_browser/firefox/index.js
diff options
context:
space:
mode:
Diffstat (limited to '2016_lamp_browser/firefox/index.js')
-rw-r--r--2016_lamp_browser/firefox/index.js55
1 files changed, 55 insertions, 0 deletions
diff --git a/2016_lamp_browser/firefox/index.js b/2016_lamp_browser/firefox/index.js
new file mode 100644
index 0000000..c83160e
--- /dev/null
+++ b/2016_lamp_browser/firefox/index.js
@@ -0,0 +1,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"'
+ });
+ }
+});