mirror of https://github.com/espruino/BangleApps
37 lines
1.4 KiB
JavaScript
37 lines
1.4 KiB
JavaScript
(function () {
|
|
WIDGETS["slpquiet"] = {
|
|
area: "tl",
|
|
width: ((require("Storage").readJSON("setting.json", 1) || {}).quiet | 0) ? 24 : 0,
|
|
draw: function () {
|
|
const mode = (require("Storage").readJSON("setting.json", 1) || {}).quiet | 0;
|
|
if (mode === 0) { // Off
|
|
if (this.width !== 0) {
|
|
this.width = 0;
|
|
Bangle.drawWidgets();
|
|
}
|
|
return;
|
|
}
|
|
// not Off: make sure width is correct
|
|
if (this.width !== 24) {
|
|
this.width = 24;
|
|
Bangle.drawWidgets();
|
|
return; // drawWidgets will call draw again
|
|
}
|
|
let x = this.x, y = this.y;
|
|
g.reset().clearRect(x, y, x + 23, y + 23);
|
|
// quiet mode: draw red one-way-street sign (dim red on Bangle.js 1)
|
|
x = this.x + 11; y = this.y + 11; // center of widget
|
|
g.setColor(process.env.HWVERSION === 2 ? 1 : 0.8, 0, 0).fillCircle(x, y, 8);
|
|
g.setColor(g.theme.bg).fillRect(x - 6, y - 2, x + 6, y + 2);
|
|
if (mode > 1) { return; } // no alarms
|
|
// alarms still on: draw alarm icon in bottom-right corner
|
|
x = this.x + 18; y = this.y + 17; // center of alarm
|
|
g.setColor(1, 1, 0)
|
|
.fillCircle(x, y, 3) // alarm body
|
|
.fillRect(x - 5, y + 2, x + 5, y + 3) // bottom ridge
|
|
.fillRect(x - 1, y - 5, x + 1, y + 5).drawLine(x, y - 6, x, y + 6) // top+bottom
|
|
.drawLine(x + 5, y - 3, x + 3, y - 5).drawLine(x - 5, y - 3, x - 3, y - 5); // wriggles
|
|
},
|
|
};
|
|
})();
|