mirror of https://github.com/espruino/BangleApps
Merge branch 'master' of github.com:espruino/BangleApps
commit
c9cce8ca9c
|
@ -1,2 +1,3 @@
|
||||||
0.01: New clkinfo!
|
0.01: New clkinfo!
|
||||||
0.02: Added format option, reduced battery usage
|
0.02: Added format option, reduced battery usage
|
||||||
|
0.03: Hardcode colon-format, show milliseconds for the first minute
|
||||||
|
|
|
@ -2,7 +2,8 @@
|
||||||
var durationOnPause = "---";
|
var durationOnPause = "---";
|
||||||
var redrawInterval;
|
var redrawInterval;
|
||||||
var startTime;
|
var startTime;
|
||||||
var _a = (require("Storage").readJSON("clkinfostopw.setting.json", true) || {}).format, format = _a === void 0 ? 0 : _a;
|
var showMillis = true;
|
||||||
|
var milliTime = 60;
|
||||||
var unqueueRedraw = function () {
|
var unqueueRedraw = function () {
|
||||||
if (redrawInterval)
|
if (redrawInterval)
|
||||||
clearInterval(redrawInterval);
|
clearInterval(redrawInterval);
|
||||||
|
@ -11,24 +12,31 @@
|
||||||
var queueRedraw = function () {
|
var queueRedraw = function () {
|
||||||
var _this = this;
|
var _this = this;
|
||||||
unqueueRedraw();
|
unqueueRedraw();
|
||||||
redrawInterval = setInterval(function () { return _this.emit('redraw'); }, 1000);
|
redrawInterval = setInterval(function () {
|
||||||
|
if (startTime) {
|
||||||
|
if (showMillis && Date.now() - startTime > milliTime * 1000) {
|
||||||
|
showMillis = false;
|
||||||
|
changeInterval(redrawInterval, 1000);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
unqueueRedraw();
|
||||||
|
}
|
||||||
|
_this.emit('redraw');
|
||||||
|
}, 100);
|
||||||
};
|
};
|
||||||
var pad2 = function (s) { return ('0' + s.toFixed(0)).slice(-2); };
|
var pad2 = function (s) { return ('0' + s.toFixed(0)).slice(-2); };
|
||||||
var duration = function (start) {
|
var duration = function (start) {
|
||||||
var seconds = (Date.now() - start) / 1000;
|
var seconds = (Date.now() - start) / 1000;
|
||||||
if (seconds < 60)
|
if (seconds < milliTime)
|
||||||
return seconds.toFixed(1);
|
return seconds.toFixed(1);
|
||||||
var mins = seconds / 60;
|
var mins = seconds / 60;
|
||||||
seconds %= 60;
|
seconds %= 60;
|
||||||
if (mins < 60)
|
if (mins < 60)
|
||||||
return format === 0
|
return "".concat(mins.toFixed(0), ":").concat(pad2(seconds));
|
||||||
? "".concat(pad2(mins), "m").concat(pad2(seconds), "s")
|
|
||||||
: "".concat(mins.toFixed(0), ":").concat(pad2(seconds));
|
|
||||||
var hours = mins / 60;
|
var hours = mins / 60;
|
||||||
mins %= 60;
|
mins %= 60;
|
||||||
return format === 0
|
return "".concat(hours.toFixed(0), ":").concat(pad2(mins), ":").concat(pad2(seconds));
|
||||||
? "".concat(hours.toFixed(0), "h").concat(pad2(mins), "m").concat(pad2(seconds), "s")
|
|
||||||
: "".concat(hours.toFixed(0), ":").concat(pad2(mins), ":").concat(pad2(seconds));
|
|
||||||
};
|
};
|
||||||
var img = function () { return atob("GBiBAAAAAAB+AAB+AAAAAAB+AAH/sAOB8AcA4A4YcAwYMBgYGBgYGBg8GBg8GBgYGBgAGAwAMA4AcAcA4AOBwAH/gAB+AAAAAAAAAA=="); };
|
var img = function () { return atob("GBiBAAAAAAB+AAB+AAAAAAB+AAH/sAOB8AcA4A4YcAwYMBgYGBgYGBg8GBg8GBgYGBgAGAwAMA4AcAcA4AOBwAH/gAB+AAAAAAAAAA=="); };
|
||||||
return {
|
return {
|
||||||
|
@ -56,10 +64,10 @@
|
||||||
if (startTime) {
|
if (startTime) {
|
||||||
durationOnPause = duration(startTime);
|
durationOnPause = duration(startTime);
|
||||||
startTime = undefined;
|
startTime = undefined;
|
||||||
unqueueRedraw();
|
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
queueRedraw.call(this);
|
queueRedraw.call(this);
|
||||||
|
showMillis = true;
|
||||||
startTime = Date.now();
|
startTime = Date.now();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -2,8 +2,8 @@
|
||||||
let durationOnPause = "---";
|
let durationOnPause = "---";
|
||||||
let redrawInterval: number | undefined;
|
let redrawInterval: number | undefined;
|
||||||
let startTime: number | undefined;
|
let startTime: number | undefined;
|
||||||
let { format = StopWatchFormat.HMS }: StopWatchSettings
|
let showMillis = true;
|
||||||
= require("Storage").readJSON("clkinfostopw.setting.json", true) || {};
|
const milliTime = 60;
|
||||||
|
|
||||||
const unqueueRedraw = () => {
|
const unqueueRedraw = () => {
|
||||||
if (redrawInterval) clearInterval(redrawInterval);
|
if (redrawInterval) clearInterval(redrawInterval);
|
||||||
|
@ -12,7 +12,17 @@
|
||||||
|
|
||||||
const queueRedraw = function(this: ClockInfo.MenuItem) {
|
const queueRedraw = function(this: ClockInfo.MenuItem) {
|
||||||
unqueueRedraw();
|
unqueueRedraw();
|
||||||
redrawInterval = setInterval(() => this.emit('redraw'), 1000);
|
redrawInterval = setInterval(() => {
|
||||||
|
if (startTime) {
|
||||||
|
if (showMillis && Date.now() - startTime > milliTime * 1000) {
|
||||||
|
showMillis = false;
|
||||||
|
changeInterval(redrawInterval, 1000);
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
unqueueRedraw();
|
||||||
|
}
|
||||||
|
this.emit('redraw')
|
||||||
|
}, 100);
|
||||||
};
|
};
|
||||||
|
|
||||||
const pad2 = (s: number) => ('0' + s.toFixed(0)).slice(-2);
|
const pad2 = (s: number) => ('0' + s.toFixed(0)).slice(-2);
|
||||||
|
@ -20,23 +30,19 @@
|
||||||
const duration = (start: number) => {
|
const duration = (start: number) => {
|
||||||
let seconds = (Date.now() - start) / 1000;
|
let seconds = (Date.now() - start) / 1000;
|
||||||
|
|
||||||
if (seconds < 60)
|
if (seconds < milliTime)
|
||||||
return seconds.toFixed(1);
|
return seconds.toFixed(1);
|
||||||
|
|
||||||
let mins = seconds / 60;
|
let mins = seconds / 60;
|
||||||
seconds %= 60;
|
seconds %= 60;
|
||||||
|
|
||||||
if (mins < 60)
|
if (mins < 60)
|
||||||
return format === StopWatchFormat.HMS
|
return `${mins.toFixed(0)}:${pad2(seconds)}`;
|
||||||
? `${pad2(mins)}m${pad2(seconds)}s`
|
|
||||||
: `${mins.toFixed(0)}:${pad2(seconds)}`;
|
|
||||||
|
|
||||||
let hours = mins / 60;
|
let hours = mins / 60;
|
||||||
mins %= 60;
|
mins %= 60;
|
||||||
|
|
||||||
return format === StopWatchFormat.HMS
|
return `${hours.toFixed(0)}:${pad2(mins)}:${pad2(seconds)}`;
|
||||||
? `${hours.toFixed(0)}h${pad2(mins)}m${pad2(seconds)}s`
|
|
||||||
: `${hours.toFixed(0)}:${pad2(mins)}:${pad2(seconds)}`;
|
|
||||||
};
|
};
|
||||||
|
|
||||||
const img = () => atob("GBiBAAAAAAB+AAB+AAAAAAB+AAH/sAOB8AcA4A4YcAwYMBgYGBgYGBg8GBg8GBgYGBgAGAwAMA4AcAcA4AOBwAH/gAB+AAAAAAAAAA==");
|
const img = () => atob("GBiBAAAAAAB+AAB+AAAAAAB+AAH/sAOB8AcA4A4YcAwYMBgYGBgYGBg8GBg8GBgYGBgAGAwAMA4AcAcA4AOBwAH/gAB+AAAAAAAAAA==");
|
||||||
|
@ -64,10 +70,10 @@
|
||||||
run: function() { // tapped
|
run: function() { // tapped
|
||||||
if (startTime) {
|
if (startTime) {
|
||||||
durationOnPause = duration(startTime);
|
durationOnPause = duration(startTime);
|
||||||
startTime = undefined;
|
startTime = undefined; // this also unqueues the redraw
|
||||||
unqueueRedraw();
|
|
||||||
} else {
|
} else {
|
||||||
queueRedraw.call(this);
|
queueRedraw.call(this);
|
||||||
|
showMillis = true;
|
||||||
startTime = Date.now();
|
startTime = Date.now();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
{
|
{
|
||||||
"id": "clkinfostopw",
|
"id": "clkinfostopw",
|
||||||
"name": "Stop Watch Clockinfo",
|
"name": "Stop Watch Clockinfo",
|
||||||
"version":"0.02",
|
"version":"0.03",
|
||||||
"description": "A simple stopwatch, shown via clockinfo",
|
"description": "A simple stopwatch, shown via clockinfo",
|
||||||
"icon": "app.png",
|
"icon": "app.png",
|
||||||
"type": "clkinfo",
|
"type": "clkinfo",
|
||||||
|
@ -10,7 +10,6 @@
|
||||||
"readme":"README.md",
|
"readme":"README.md",
|
||||||
"allow_emulator": true,
|
"allow_emulator": true,
|
||||||
"storage": [
|
"storage": [
|
||||||
{"name":"stopw.clkinfo.js","url":"clkinfo.js"},
|
{"name":"stopw.clkinfo.js","url":"clkinfo.js"}
|
||||||
{"name":"stopw.settings.js","url":"settings.js"}
|
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,24 +0,0 @@
|
||||||
(function (back) {
|
|
||||||
var _a;
|
|
||||||
var SETTINGS_FILE = "clkinfostopw.setting.json";
|
|
||||||
var storage = require("Storage");
|
|
||||||
var settings = storage.readJSON(SETTINGS_FILE, true) || {};
|
|
||||||
(_a = settings.format) !== null && _a !== void 0 ? _a : (settings.format = 0);
|
|
||||||
var save = function () {
|
|
||||||
storage.writeJSON(SETTINGS_FILE, settings);
|
|
||||||
};
|
|
||||||
E.showMenu({
|
|
||||||
"": { "title": "stopwatch" },
|
|
||||||
"< Back": back,
|
|
||||||
"Format": {
|
|
||||||
value: settings.format,
|
|
||||||
min: 0,
|
|
||||||
max: 1,
|
|
||||||
format: function (v) { return v === 0 ? "12m34s" : "12:34"; },
|
|
||||||
onchange: function (v) {
|
|
||||||
settings.format = v;
|
|
||||||
save();
|
|
||||||
},
|
|
||||||
},
|
|
||||||
});
|
|
||||||
});
|
|
|
@ -1,3 +1,3 @@
|
||||||
0.20: New App!
|
0.20: New App!
|
||||||
0.21: Tell clock widgets to hide.
|
0.21: Tell clock widgets to hide.
|
||||||
|
0.22: Changed font so 5 and 6 are not similar
|
||||||
|
|
|
@ -1,13 +1,36 @@
|
||||||
Graphics.prototype.setFontLECO1976Regular42 = function (scale) {
|
|
||||||
|
Graphics.prototype.setFontLECO1976Regular5fix42 = function(scale) {
|
||||||
// Actual height 42 (41 - 0)
|
// Actual height 42 (41 - 0)
|
||||||
g.setFontCustom(atob("AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAH/AAAAAAAAH/AAAAAAAAH/AAAAAAAAH/AAAAAAAAH/AAAAAAAAH/AAAAAAAAH/AAAAAAAAH/AAAAAAAAD/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADAAAAAAAAA/AAAAAAAAH/AAAAAAAA//AAAAAAAP//AAAAAAB///AAAAAAP///AAAAAB////AAAAAf////AAAAD////4AAAAf////AAAAH////4AAAA////+AAAAA////wAAAAA///+AAAAAA///gAAAAAA//8AAAAAAA//gAAAAAAA/4AAAAAAAA/AAAAAAAAA4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA///////AAA///////AAA///////AAA///////AAA///////AAA///////AAA///////AAA///////AAA///////AAA/4AAAH/AAA/4AAAH/AAA/4AAAH/AAA/4AAAH/AAA/4AAAH/AAA/4AAAH/AAA/4AAAH/AAA/4AAAH/AAA/4AAAH/AAA/4AAAH/AAA/4AAAH/AAA/4AAAH/AAA///////AAA///////AAA///////AAA///////AAA///////AAA///////AAA///////AAA///////AAA///////AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/4AAAH/AAA/4AAAH/AAA/4AAAH/AAA/4AAAH/AAA/4AAAH/AAA/4AAAH/AAA/4AAAH/AAA/4AAAH/AAA///////AAA///////AAA///////AAA///////AAA///////AAA///////AAA///////AAA///////AAA///////AAAAAAAAH/AAAAAAAAH/AAAAAAAAH/AAAAAAAAH/AAAAAAAAH/AAAAAAAAH/AAAAAAAAH/AAAAAAAAH/AAAAAAAAD/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA//h////AAA//h////AAA//h////AAA//h////AAA//h////AAA//h////AAA//h////AAA//h////AAA//h////AAA/4B/wH/AAA/4B/wH/AAA/4B/wH/AAA/4B/wH/AAA/4B/wH/AAA/4B/wH/AAA/4B/wH/AAA/4B/wH/AAA/4B/wH/AAA/4B/wH/AAA/4B/wH/AAA/4B/wH/AAA////wH/AAA////wH/AAA////wH/AAA////wH/AAA////wH/AAA////wH/AAA////wH/AAA////wH/AAA////gD/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/4AAAH/AAA/4AAAH/AAA/4AAAH/AAA/4AAAH/AAA/4B/gH/AAA/4B/wH/AAA/4B/wH/AAA/4B/wH/AAA/4B/wH/AAA/4B/wH/AAA/4B/wH/AAA/4B/wH/AAA/4B/wH/AAA/4B/wH/AAA/4B/wH/AAA/4B/wH/AAA/4B/wH/AAA/4B/wH/AAA/4B/wH/AAA/4B/wH/AAA/4B/wH/AAA///////AAA///////AAA///////AAA///////AAA///////AAA///////AAA///////AAA///////AAA///////AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA////wAAAAA////wAAAAA////wAAAAA////wAAAAA////wAAAAA////wAAAAA////wAAAAA////wAAAAA////wAAAAAAAB/wAAAAAAAB/wAAAAAAAB/wAAAAAAAB/wAAAAAAAB/wAAAAAAAB/wAAAAAAAB/wAAAAAAAB/wAAAAAAAB/wAAAAAAAB/wAAAAAAAB/wAAAAAAAB/wAAAAA///////AAA///////AAA///////AAA///////AAA///////AAA///////AAA///////AAA///////AAA///////AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA////x//AAA////x//AAA////x//AAA////x//AAA////x//AAA////x//AAA////x//AAA////x//AAA////x//AAA/4B/wH/AAA/4B/wH/AAA/4B/wH/AAA/4B/wH/AAA/4B/wH/AAA/4B/wH/AAA/4B/wH/AAA/4B/wH/AAA/4B/wH/AAA/4B/wH/AAA/4B/wH/AAA/4B/wH/AAA/4B////AAA/4B////AAA/4B////AAA/4B////AAA/4B////AAA/4B////AAA/4B////AAA/4B////AAA/wB////AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA///////AAA///////AAA///////AAA///////AAA///////AAA///////AAA///////AAA///////AAA///////AAA/4B/wH/AAA/4B/wH/AAA/4B/wH/AAA/4B/wH/AAA/4B/wH/AAA/4B/wH/AAA/4B/wH/AAA/4B/wH/AAA/4B/wH/AAA/4B/wH/AAA/4B/wH/AAA/4B/wH/AAA/4B////AAA/4B////AAA/4B////AAA/4B////AAA/4B////AAA/4B////AAA/4B////AAA/4B////AAA/wB////AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA//gAAAAAAA//gAAAAAAA//gAAAAAAA//gAAAAAAA//gAAAAAAA//gAAAAAAA//gAAAAAAA//gAAAAAAA//gAAAAAAA/4AAAAAAAA/4AAAAAAAA/4AAAAAAAA/4AAAAAAAA/4AAAAAAAA/4AAAAAAAA/4AAAAAAAA/4AAAAAAAA/4AAAAAAAA/4AAAAAAAA/4AAAAAAAA/4AAAAAAAA///////AAA///////AAA///////AAA///////AAA///////AAA///////AAA///////AAA///////AAA///////AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA///////AAA///////AAA///////AAA///////AAA///////AAA///////AAA///////AAA///////AAA///////AAA/4B/wH/AAA/4B/wH/AAA/4B/wH/AAA/4B/wH/AAA/4B/wH/AAA/4B/wH/AAA/4B/wH/AAA/4B/wH/AAA/4B/wH/AAA/4B/wH/AAA/4B/wH/AAA/4B/wH/AAA///////AAA///////AAA///////AAA///////AAA///////AAA///////AAA///////AAA///////AAA///////AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA////wH/AAA////wH/AAA////wH/AAA////wH/AAA////wH/AAA////wH/AAA////wH/AAA////wH/AAA////wH/AAA/4B/wH/AAA/4B/wH/AAA/4B/wH/AAA/4B/wH/AAA/4B/wH/AAA/4B/wH/AAA/4B/wH/AAA/4B/wH/AAA/4B/wH/AAA/4B/wH/AAA/4B/wH/AAA/4B/wH/AAA///////AAA///////AAA///////AAA///////AAA///////AAA///////AAA///////AAA///////AAA///////AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP+AAH/AAAAP+AAH/AAAAP+AAH/AAAAP+AAH/AAAAP+AAH/AAAAP+AAH/AAAAP+AAH/AAAAP+AAH/AAAAH+AAD/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA"), 46, atob("ERkmHyYmJiYmJCYmEQ=="), 60 + (scale << 8) + (1 << 16));
|
this.setFontCustom(
|
||||||
|
E.toString(require('heatshrink').decompress(atob('ADMD/gHFv/AAwkHB3QAtngGFj47Fh5KFh//BwkH/4OEgf/BwgGCBwcBAwIOEAwQODAwX/wB7CCos/Awo/BAAPgDgvwJwgGEBwX4LoplFAw0P/yCF/4GFh6YGKgQAhNAZGDAwZ4CB3ibCg4ODZoYO/BwyV/BxIA7YX7C/YRRZCAAZZDB2AAgNAMHO4v4O42PB3P4AIL+EwABBQwQO/BwgABBwgGBB34A0h/wAYMDSogDBSogGBUgoOOd/4O2AAbgEAAIO+AGY7C/AHDIIWAB3wQCBwjiDB34OGf1gOdAGbgDgZKFwF/JQn4g4O3/ABBBwmAB34OLcAgOBd4oO6AGY5CJQoADd4gO5f2wOdf1IOdAEgqBA4v//AOGwAO5AwqGCB34OJAAbRCAwbgDB3QAzO/4OL/ABBg4ODwABBv4O/BwyV/BxIAzHYX4gZKFSogOCSowOxf2gOdf1YOdAGkH/EAgY7DSgMASoSWCCIIO3ADg='))),
|
||||||
|
46,
|
||||||
|
atob("ERkmICYmJiYmJCYmEQ=="),
|
||||||
|
60+(scale<<8)+(1<<16)
|
||||||
|
);
|
||||||
|
return this;
|
||||||
};
|
};
|
||||||
|
|
||||||
Graphics.prototype.setFontLECO1976Regular22 = function (scale) {
|
Graphics.prototype.setFontLECO1976Regular5fix22 = function(scale) {
|
||||||
// Actual height 22 (21 - 0)
|
// Actual height 22 (21 - 0)
|
||||||
g.setFontCustom(atob("AAAAAAAAAAAAAAAAAAAAAAAAAAAAAP/nA/+cD/5wP/nAAAAAAAAPwAA/gAD+AAPwAAAAAD+AAP4AA/gAAAAAAAAAAAAAcOAP//A//8D//wP//AHDgAcOAP//A//8D//wP//AHDgAAAAAAAAH/jgf+OB/44H/jj8OP/w4//Dj/8OPxw/4HD/gcP+Bw/4AAAAAAAP+AA/8AD/wQOHHA4c8D//wP/8A//gAD4AAfAAH/8A//wP//A84cDjhwIP/AA/8AB/wAAAAAAAD//wP//A//8D//wOHHA4ccDhxwOHHA4f8Dh/wOH/A4f8ABwAAAAAAAAD8AAP4AA/gAD8AAAAAAAAAAAEAAD+AB//A///v/D//gB/wABwAAAAAADgAA/wAf/4P8///wf/4AP8AAOAAAAAAAAAyAAHcAAPwAD/gAP/AA/8AA/AAH8AAMwAAAAAAAAAAAAADgAAOAAA4AAf8AD/wAP/AA/8AAOAAA4AADgAAAAAAAAAAD8AAfwAB/AAD8AAAAAAAADgAAOAAA4AADgAAOAAA4AADgAAAAAAAAAADgAAOAAA4AADgAAAAAAAAABwAB/AA/8A//gP/gA/wADwAAIAAAAAAD//wP//A//8D//wOAHA4AcDgBwOAHA//8D//wP//A//8AAAAAAAA4AcDgBwOAHA//8D//wP//A//8AABwAAHAAAcAAAAAAAA+f8D5/wPn/A+f8DhxwOHHA4ccDhxwP/HA/8cD/xwP/HAAAAAAAAOAHA4AcDhxwOHHA4ccDhxwOHHA4ccD//wP//A//8D//wAAAAAAAD/wAP/AA/8AD/wAAHAAAcAABwAAHAA//8D//wP//A//8AAAAAAAA/98D/3wP/fA/98DhxwOHHA4ccDhxwOH/A4f8Dh/wOH/AAAAAAAAP//A//8D//wP//A4ccDhxwOHHA4ccDh/wOH/A4f8Dh/wAAAAAAAD4AAPgAA+AADgAAOAAA4AADgAAP//A//8D//wP//AAAAAAAAP//A//8D//wP//A4ccDhxwOHHA4ccD//wP//A//8D//wAAAAAAAD/xwP/HA/8cD/xwOHHA4ccDhxwOHHA//8D//wP//A//8AAAAAAAAOA4A4DgDgOAOA4AAAAAAAAOA/A4H8DgfwOA/AAAAAAAAB4AAPwAA/AAD8AAf4ABzgAPPAA8cAHh4AAAAAAAAAAAAHHAAccABxwAHHAAccABxwAHHAAccABxwAHHAAAAAAAAAOHAA4cADzwAPPAAf4AB/gAD8AAPwAAeAAB4AAAAAAAAA+AAD4AAPgAA+ecDh9wOH3A4fcDhwAP/AA/8AD/wAP/AAAAAAAAAP//4///j//+P//44ADjn/OOf845/zjnHOP8c4//zj//OP/84AAAAAAAP//A//8D//wP//A4cADhwAOHAA4cAD//wP//A//8D//wAAAAAAAD//wP//A//8D//wOHHA4ccDhxwOHHA//8D//wP9/A/j8AAAAAAAA//8D//wP//A//8DgBwOAHA4AcDgBwOAHA4AcDgBwOAHAAAAAAAAP//A//8D//wP//A4AcDgBwOAHA8A8D//wH/+AP/wAf+AAAAAAAAD//wP//A//8D//wOHHA4ccDhxwOHHA4ccDhxwOAHA4AcAAAAAAAA//8D//wP//A//8DhwAOHAA4cADhwAOHAA4cADgAAOAAAAAAD//wP//A//8D//wOAHA4ccDhxwOHHA4f8Dh/wOH/A4f8AAAAAAAA//8D//wP//A//8ABwAAHAAAcAABwAP//A//8D//wP//AAAAAAAAP//A//8D//wP//AAAAAAAAOAHA4AcDgBwOAHA4AcDgBwOAHA//8D//wP//A//8AAAAAAAA//8D//wP//A//8AHwAA/AAP8AB/wAPn/A8f8DB/wIH/AAAAAAAAP//A//8D//wP//AAAcAABwAAHAAAcAABwAAHAAAAAAAAP//A//8D//wP//Af8AAP+AAH/AAD8AAHwAD/AB/wAf8AP+AA//8D//wP//AAAAAAAAP//A//8D//wP//AfwAAfwAAfwAAfwAAfwP//A//8D//wAAAAAAAAAAAP//A//8D//wP//A4AcDgBwOAHA4AcD//wP//A//8D//wAAAAAAAD//wP//A//8D//wOHAA4cADhwAOHAA/8AD/wAP/AA/8AAAAAP//A//8D//wP//A4AcDgBwOAHA4AcD//+P//4///j//+AAA4AADgAAAP//A//8D//wP//A4eADh+AOH8A4f4D/3wP/HA/8MD/wQAAAAAAAD/xwP/HA/8cD/xwOHHA4ccDhxwOHHA4f8Dh/wOH/A4f8AAAAAAAA4AADgAAOAAA//8D//wP//A//8DgAAOAAA4AADgAAAAAA//8D//wP//A//8AABwAAHAAAcAABwP//A//8D//wP//AAAADAAAPgAA/wAD/4AB/8AA/8AAfwAB/AA/8Af+AP/AA/wAD4AAMAAA4AAD+AAP/gA//8AH/wAB/AAf8Af/wP/4A/4AD/gAP/4AH/8AB/wAB/AB/8D//wP/gA/gADgAAIABA4AcDwDwPw/Afn4Af+AA/wAD/AA//AH5+A/D8DwDwOAHAgAEAAAAP/AA/8AD/wAP/AAAf8AB/wAH/AAf8D/wAP/AA/8AD/wAAAAAAAADh/wOH/A4f8Dh/wOHHA4ccDhxwOHHA/8cD/xwP/HA/8cAAAAAAAAf//9///3///f//9wAA3AADcAAMAAAOAAA/gAD/wAH/8AB/8AA/wAAPAAAEAAAAHAADcAANwAB3///f//9///wAA"), 32, atob("BwYLDg4UDwYJCQwMBgkGCQ4MDg4ODg4NDg4GBgwMDA4PDg4ODg4NDg4GDQ4MEg8ODQ8ODgwODhQODg4ICQg="), 22 + (scale << 8) + (1 << 16));
|
this.setFontCustom(
|
||||||
|
E.toString(require('heatshrink').decompress(atob('AAs8AYV8AaQjOgP8AYMPAYV/AYMH/4DBn///EA///4ADB/wSB//gAYQlCCIIABCIIAFDYIjBAaYjBLYIDTF64AH+CDCGdLLV/i7C/wfCAZ/4/BPCAaTiBAaaHBABaPIIaxPMcbxbBAapgCAahPhVYLDTUbA7CAZ/wv5PKN6xPzAof+AaTuXdcCbuJ8H4ngDCE4QDOJ+8PgBPBh+AE4IDPAA4'))),
|
||||||
|
46,
|
||||||
|
atob("CQ0UERQUFBQUExQUCQ=="),
|
||||||
|
32+(scale<<8)+(1<<16)
|
||||||
|
);
|
||||||
|
return this;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
Graphics.prototype.setFontLECO1976Regular5fix11 = function(scale) {
|
||||||
|
// Actual height 11 (10 - 0)
|
||||||
|
this.setFontCustom(
|
||||||
|
E.toString(require('heatshrink').decompress(atob('AAMBwEDgEGgECgF8g/4v/w/+B+ARBg//h/+j/8mEYsEw//h//D/+AgEMg0Yhk/DofggHAFwMAh9+j38nv4scw41h/nD/OH+YdC5kxzAODxgsBw47CIIM/wF/gAGBhkAjBKFCAN/mH+FgUZw0zhl+jH8mP4CAJZEBwVmBwdj+HwgPggfAQoIxBFgJoDSwUDJQhZDO4QsB4CVB+cP80fNAiVGgaWDmAA=='))),
|
||||||
|
46,
|
||||||
|
atob("BAYJCAkJCQkJCQkJBA=="),
|
||||||
|
15+(scale<<8)+(1<<16)
|
||||||
|
);
|
||||||
|
return this;
|
||||||
|
};
|
||||||
|
|
||||||
require("Font7x11Numeric7Seg").add(Graphics);
|
require("Font7x11Numeric7Seg").add(Graphics);
|
||||||
|
|
||||||
|
@ -60,7 +83,7 @@ function drawCal() {
|
||||||
const CAL_Y = g.getHeight() - 44; // Bangle.appRect.y+this.DATE_FONT_SIZE()+10+this.TIME_FONT_SIZE()+3;
|
const CAL_Y = g.getHeight() - 44; // Bangle.appRect.y+this.DATE_FONT_SIZE()+10+this.TIME_FONT_SIZE()+3;
|
||||||
const CAL_AREA_H = 44; // g.getHeight()-CAL_Y+24; //+24: top widgtes only
|
const CAL_AREA_H = 44; // g.getHeight()-CAL_Y+24; //+24: top widgtes only
|
||||||
const CELL_W = g.getWidth() / 7; //cell width
|
const CELL_W = g.getWidth() / 7; //cell width
|
||||||
const CELL_H = (CAL_AREA_H - DAY_NAME_FONT_SIZE) / 3; //cell heigth
|
const CELL_H = 1+parseInt((CAL_AREA_H - DAY_NAME_FONT_SIZE) / 3); //cell heigth
|
||||||
const DAY_NUM_FONT_SIZE = Math.min(CELL_H + 3, 15); //size down, max 15
|
const DAY_NUM_FONT_SIZE = Math.min(CELL_H + 3, 15); //size down, max 15
|
||||||
|
|
||||||
const wdStrt = 1;
|
const wdStrt = 1;
|
||||||
|
@ -73,11 +96,14 @@ function drawCal() {
|
||||||
const tdyNumClr = 0; // today fg
|
const tdyNumClr = 0; // today fg
|
||||||
|
|
||||||
g.setFont("Vector", DAY_NAME_FONT_SIZE + 3);
|
g.setFont("Vector", DAY_NAME_FONT_SIZE + 3);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
g.setColor(nrgb[1]);
|
g.setColor(nrgb[1]);
|
||||||
g.setFontAlign(-1, -1);
|
g.setFontAlign(-1, -1);
|
||||||
// g.clearRect(Bangle.appRect.x, CAL_Y, Bangle.appRect.x2, CAL_Y+CAL_AREA_H);
|
// g.clearRect(Bangle.appRect.x, CAL_Y, Bangle.appRect.x2, CAL_Y+CAL_AREA_H);
|
||||||
|
|
||||||
//draw grid & Headline
|
// == draw grid & Headline ==
|
||||||
const dNames = ABR_DAY.map((a) => a.length <= 2 ? a : a.substr(0, 2)); //force shrt 2
|
const dNames = ABR_DAY.map((a) => a.length <= 2 ? a : a.substr(0, 2)); //force shrt 2
|
||||||
for (var dNo = 0; dNo < dNames.length; dNo++) {
|
for (var dNo = 0; dNo < dNames.length; dNo++) {
|
||||||
const dIdx = wdStrt >= 0 ? ((wdStrt + dNo) % 7) : ((dNo + d.getDay() + 4) % 7);
|
const dIdx = wdStrt >= 0 ? ((wdStrt + dNo) % 7) : ((dNo + d.getDay() + 4) % 7);
|
||||||
|
@ -103,9 +129,10 @@ function drawCal() {
|
||||||
// horizontal lines
|
// horizontal lines
|
||||||
// for(i=0; i<3; i++){ const y=nextY+i*CELL_H; g.drawLine(Bangle.appRect.x, y, Bangle.appRect.x2, y); }
|
// for(i=0; i<3; i++){ const y=nextY+i*CELL_H; g.drawLine(Bangle.appRect.x, y, Bangle.appRect.x2, y); }
|
||||||
|
|
||||||
g.setFont("Vector", DAY_NUM_FONT_SIZE);
|
// g.setFont("Vector", DAY_NUM_FONT_SIZE);
|
||||||
|
|
||||||
g.setFont("7x11Numeric7Seg", 1);
|
// g.setFont("7x11Numeric7Seg", 1);
|
||||||
|
g.setFontLECO1976Regular5fix11();
|
||||||
|
|
||||||
//write days
|
//write days
|
||||||
const tdyDate = d.getDate();
|
const tdyDate = d.getDate();
|
||||||
|
@ -113,16 +140,38 @@ function drawCal() {
|
||||||
var rD = new Date(d.getTime());
|
var rD = new Date(d.getTime());
|
||||||
rD.setDate(rD.getDate() - days);
|
rD.setDate(rD.getDate() - days);
|
||||||
var rDate = rD.getDate();
|
var rDate = rD.getDate();
|
||||||
|
|
||||||
|
// == today background rectangle ==
|
||||||
for (var y = 0; y < 3; y++) {
|
for (var y = 0; y < 3; y++) {
|
||||||
for (var x = 0; x < dNames.length; x++) {
|
for (var x = 0; x < dNames.length; x++) {
|
||||||
if (rDate === tdyDate) { //today
|
if (rDate === tdyDate) { //today
|
||||||
g.setColor(nrgb[tdyMrkClr]); //today marker color or fg color
|
g.setColor(nrgb[tdyMrkClr]); //today marker color or fg color
|
||||||
|
|
||||||
// rectangle
|
// rectangle
|
||||||
g.fillRect(x * CELL_W, nextY + CELL_H - 1, x * CELL_W + CELL_W, nextY + CELL_H + CELL_H - 1);
|
var frm=3; // fame pixels
|
||||||
g.setColor(nrgb[tdyNumClr]); //today color or fg color
|
g.drawRect(x * CELL_W-frm, nextY + CELL_H - 1-frm, x * CELL_W + CELL_W+frm, nextY + CELL_H + CELL_H - 1+frm);
|
||||||
|
}
|
||||||
|
rD.setDate(rDate + 1);
|
||||||
|
rDate = rD.getDate();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// == individual days ==
|
||||||
|
rD = new Date(d.getTime());
|
||||||
|
rD.setDate(rD.getDate() - days);
|
||||||
|
rDate = rD.getDate();
|
||||||
|
for (var y = 0; y < 3; y++) {
|
||||||
|
for (var x = 0; x < dNames.length; x++) {
|
||||||
|
if (rDate === tdyDate) { //today
|
||||||
|
g.setColor(nrgb[tdyMrkClr]); //today marker color or fg color
|
||||||
|
|
||||||
|
// rectangle
|
||||||
|
// g.fillRect(x * CELL_W, nextY + CELL_H - 1, x * CELL_W + CELL_W, nextY + CELL_H + CELL_H - 1);
|
||||||
|
// g.setColor(nrgb[tdyNumClr]); //today color or fg color
|
||||||
|
// g.drawRect(x * CELL_W, nextY + CELL_H - 1, x * CELL_W + CELL_W, nextY + CELL_H + CELL_H - 1);
|
||||||
|
|
||||||
// simulate "bold"
|
// simulate "bold"
|
||||||
|
// g.setColor(nrgb[tdyNumClr]); //today color or fg color
|
||||||
g.drawString(rDate, 1 + x * CELL_W + ((CELL_W - g.stringWidth(rDate)) / 2) + 2, nextY + ((CELL_H - DAY_NUM_FONT_SIZE + 2) / 2) + (CELL_H * y));
|
g.drawString(rDate, 1 + x * CELL_W + ((CELL_W - g.stringWidth(rDate)) / 2) + 2, nextY + ((CELL_H - DAY_NUM_FONT_SIZE + 2) / 2) + (CELL_H * y));
|
||||||
|
|
||||||
} else if (IS_SUNDAY[rD.getDay()]) { //sundays
|
} else if (IS_SUNDAY[rD.getDay()]) { //sundays
|
||||||
|
@ -153,7 +202,7 @@ function draw() {
|
||||||
|
|
||||||
// g.setFont('Vector', 30);
|
// g.setFont('Vector', 30);
|
||||||
// g.setFont("7x11Numeric7Seg", 5);
|
// g.setFont("7x11Numeric7Seg", 5);
|
||||||
g.setFontLECO1976Regular42();
|
g.setFontLECO1976Regular5fix42();
|
||||||
g.setFontAlign(0, -1);
|
g.setFontAlign(0, -1);
|
||||||
g.drawString(timeString(h, m), g.getWidth() / 2, 28);
|
g.drawString(timeString(h, m), g.getWidth() / 2, 28);
|
||||||
g.drawString(dayString(d), g.getWidth() * 3 / 4, 88);
|
g.drawString(dayString(d), g.getWidth() * 3 / 4, 88);
|
||||||
|
@ -162,7 +211,7 @@ function draw() {
|
||||||
g.reset();
|
g.reset();
|
||||||
|
|
||||||
// Steps
|
// Steps
|
||||||
g.setFontLECO1976Regular22();
|
g.setFontLECO1976Regular5fix22();
|
||||||
g.setFontAlign(-1, -1);
|
g.setFontAlign(-1, -1);
|
||||||
g.drawString(getSteps(), 8, 88);
|
g.drawString(getSteps(), 8, 88);
|
||||||
|
|
||||||
|
@ -200,4 +249,4 @@ Bangle.on('lcdPower', on => {
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
||||||
Bangle.drawWidgets();
|
Bangle.drawWidgets();
|
|
@ -2,7 +2,7 @@
|
||||||
"id": "glbasic",
|
"id": "glbasic",
|
||||||
"name": "GLBasic Clock",
|
"name": "GLBasic Clock",
|
||||||
"shortName": "GLBasic",
|
"shortName": "GLBasic",
|
||||||
"version": "0.21",
|
"version": "0.22",
|
||||||
"description": "A clock with large numbers",
|
"description": "A clock with large numbers",
|
||||||
"dependencies": {"widpedom":"app"},
|
"dependencies": {"widpedom":"app"},
|
||||||
"icon": "icon48.png",
|
"icon": "icon48.png",
|
||||||
|
|
|
@ -1,4 +1,5 @@
|
||||||
0.01: New widget!
|
0.01: New widget!
|
||||||
0.02: Adjust to message icons moving to messageicons lib
|
0.02: Adjust to message icons moving to messageicons lib
|
||||||
0.03: Use new message library
|
0.03: Use new message library
|
||||||
0.04: Remove library stub
|
0.04: Remove library stub
|
||||||
|
0.05: Don't turn on LCD
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
{
|
{
|
||||||
"id": "widmsggrid",
|
"id": "widmsggrid",
|
||||||
"name": "Messages Grid Widget",
|
"name": "Messages Grid Widget",
|
||||||
"version": "0.04",
|
"version": "0.05",
|
||||||
"description": "Widget that displays notification icons in a grid",
|
"description": "Widget that displays notification icons in a grid",
|
||||||
"icon": "widget.png",
|
"icon": "widget.png",
|
||||||
"type": "widget",
|
"type": "widget",
|
||||||
|
|
|
@ -70,7 +70,6 @@
|
||||||
w.total = w.srcs.length;
|
w.total = w.srcs.length;
|
||||||
w.srcs = w.srcs.filter((src, i, uniq) => uniq.indexOf(src) === i); // keep unique entries only
|
w.srcs = w.srcs.filter((src, i, uniq) => uniq.indexOf(src) === i); // keep unique entries only
|
||||||
Bangle.drawWidgets();
|
Bangle.drawWidgets();
|
||||||
Bangle.setLCDPower(1); // turns screen on
|
|
||||||
}, hide: function () {
|
}, hide: function () {
|
||||||
w.hidden = true;
|
w.hidden = true;
|
||||||
w.width = 0;
|
w.width = 0;
|
||||||
|
|
Loading…
Reference in New Issue