1
0
Fork 0
BangleApps/apps/contourclock/lib.js

58 lines
1.7 KiB
JavaScript

var is12;
function getHours(d) {
var h = d.getHours();
if (is12===undefined) is12 = (require('Storage').readJSON('setting.json',1)||{})["12hour"];
if (!is12) return h;
return (h%12==0) ? 12 : h%12;
}
exports.drawClock = function(fontIndex) {
var digits = [];
fontFile=require("Storage").read("contourclock-"+Math.abs(parseInt(fontIndex+0.5))+".json");
if (fontFile==undefined) return(false); //exit if font file not found
var font = JSON.parse(fontFile);
for (var n in font.characters) {
digits.push({width: parseInt(font.characters[n].width),
height: font.size,
bpp: 2,
transparent: 1,
buffer:E.toArrayBuffer(atob(font.characters[n].buffer))});
}
if (n!=10) return (false); //font file seems to be invalid
var x=0;
var y = g.getHeight()/2-digits[0].height/2;
var date = new Date();
g.clearRect(0,38,g.getWidth()-1,138);
d1=parseInt(getHours(date)/10);
d2=parseInt(getHours(date)%10);
d3=10;
d4=parseInt(date.getMinutes()/10);
d5=parseInt(date.getMinutes()%10);
w1=digits[d1].width;
w2=digits[d2].width;
w3=digits[d3].width;
w4=digits[d4].width;
w5=digits[d5].width;
squeeze=(g.getWidth()-w5)/(w1+w2+w3+w4);
if (fontIndex<0) {
fg=g.theme.fg;
bg=g.theme.bg;
g.setColor(bg);
g.setBgColor(fg);
}
g.drawImage(digits[d1],x,y);
x+=parseInt(w1*squeeze);
g.drawImage(digits[d2],x,y);
x+=parseInt(w2*squeeze);
g.drawImage(digits[d3],x,y);
x+=parseInt(w3*squeeze);
g.drawImage(digits[d4],x,y);
x+=parseInt(w4*squeeze);
g.drawImage(digits[d5],x,y);
if (fontIndex<0) {
g.setColor(fg);
g.setBgColor(bg);
}
return font.name;
}