updated example clock with fast load code and a screenshot
parent
662cb75dfa
commit
e0acc5610e
|
|
@ -1,44 +1,48 @@
|
||||||
// timeout used to update every minute
|
{
|
||||||
let drawTimeout;
|
// timeout used to update every minute
|
||||||
|
let drawTimeout;
|
||||||
|
|
||||||
// schedule a draw for the next minute
|
// schedule a draw for the next minute
|
||||||
function queueDraw() {
|
let queueDraw = function() {
|
||||||
if (drawTimeout) clearTimeout(drawTimeout);
|
if (drawTimeout) clearTimeout(drawTimeout);
|
||||||
drawTimeout = setTimeout(function() {
|
drawTimeout = setTimeout(function() {
|
||||||
drawTimeout = undefined;
|
drawTimeout = undefined;
|
||||||
draw();
|
draw();
|
||||||
}, 60000 - (Date.now() % 60000));
|
}, 60000 - (Date.now() % 60000));
|
||||||
}
|
};
|
||||||
|
|
||||||
function draw() {
|
let draw = function() {
|
||||||
// queue next draw in one minute
|
// queue next draw in one minute
|
||||||
queueDraw();
|
queueDraw();
|
||||||
// Work out where to draw...
|
// Work out where to draw...
|
||||||
var x = g.getWidth()/2;
|
var x = g.getWidth()/2;
|
||||||
var y = g.getHeight()/2;
|
var y = g.getHeight()/2;
|
||||||
g.reset();
|
g.reset();
|
||||||
// work out locale-friendly date/time
|
// work out locale-friendly date/time
|
||||||
var date = new Date();
|
var date = new Date();
|
||||||
var timeStr = require("locale").time(date,1);
|
var timeStr = require("locale").time(date,1);
|
||||||
var dateStr = require("locale").date(date);
|
var dateStr = require("locale").date(date);
|
||||||
// draw time
|
// draw time
|
||||||
g.setFontAlign(0,0).setFont("Vector",48);
|
g.setFontAlign(0,0).setFont("Vector",48);
|
||||||
g.clearRect(0,y-15,g.getWidth(),y+25); // clear the background
|
g.clearRect(0,y-15,g.getWidth(),y+25); // clear the background
|
||||||
g.drawString(timeStr,x,y);
|
g.drawString(timeStr,x,y);
|
||||||
// draw date
|
// draw date
|
||||||
y += 35;
|
y += 35;
|
||||||
g.setFontAlign(0,0).setFont("6x8");
|
g.setFontAlign(0,0).setFont("6x8");
|
||||||
g.clearRect(0,y-4,g.getWidth(),y+4); // clear the background
|
g.clearRect(0,y-4,g.getWidth(),y+4); // clear the background
|
||||||
g.drawString(dateStr,x,y);
|
g.drawString(dateStr,x,y);
|
||||||
}
|
};
|
||||||
|
|
||||||
// Clear the screen once, at startup
|
// Clear the screen once, at startup
|
||||||
g.clear();
|
g.clear();
|
||||||
// draw immediately at first, queue update
|
// draw immediately at first, queue update
|
||||||
draw();
|
draw();
|
||||||
|
|
||||||
// Show launcher when middle button pressed
|
// Show launcher when middle button pressed
|
||||||
Bangle.setUI("clock");
|
Bangle.setUI({mode:"clock", remove:function() {
|
||||||
// Load widgets
|
// free any memory we allocated to allow fast loading
|
||||||
Bangle.loadWidgets();
|
}});
|
||||||
Bangle.drawWidgets();
|
// Load widgets
|
||||||
|
Bangle.loadWidgets();
|
||||||
|
Bangle.drawWidgets();
|
||||||
|
}
|
||||||
|
|
@ -4,6 +4,7 @@
|
||||||
"version":"0.01",
|
"version":"0.01",
|
||||||
"description": "A detailed description of my clock",
|
"description": "A detailed description of my clock",
|
||||||
"icon": "icon.png",
|
"icon": "icon.png",
|
||||||
|
"screenshots": [{"url":"screenshot.png"}],
|
||||||
"type": "clock",
|
"type": "clock",
|
||||||
"tags": "clock",
|
"tags": "clock",
|
||||||
"supports" : ["BANGLEJS2"],
|
"supports" : ["BANGLEJS2"],
|
||||||
|
|
|
||||||
Binary file not shown.
|
After Width: | Height: | Size: 2.4 KiB |
Loading…
Reference in New Issue