const { ToggleButton } = require('sdk/ui/button/toggle'); const { Panel } = require("sdk/panel"); let button = ToggleButton({ id: "my-button", label: "my button", icon: "./icon.png", onChange({checked}) { if (checked) panel.show({position: this}); } }); let panel = Panel({ // `./` is a shortcut for add-on's "data" folder // so there is no need to use `self` module contentURL: './content.html', onHide() { button.state('window', {checked: false}); } }); panel.port.on("button-clicked", (message) => { console.log(message); panel.port.emit("clicked-received", "Got " + message); });