add timdat clock and fix font sizes

pull/608/head
jeffmer 2020-12-09 14:58:39 +00:00
parent 6a63cfc3dc
commit fdb058e604
11 changed files with 54 additions and 17 deletions

View File

@ -2138,18 +2138,19 @@
{ "id": "multiclock",
"name": "Multi Clock",
"icon": "multiclock.png",
"version":"0.06",
"version":"0.07",
"description": "Clock with multiple faces - Big, Analogue, Digital, Text.\n Switch between faces with BT1 & BTN3",
"readme": "README.md",
"tags": "clock",
"type":"clock",
"allow_emulator":false,
"storage": [
{"name":"multiclock.app.js","url":"clock.min.js"},
{"name":"big.face.js","url":"big.min.js"},
{"name":"ana.face.js","url":"ana.min.js"},
{"name":"digi.face.js","url":"digi.min.js"},
{"name":"txt.face.js","url":"txt.min.js"},
{"name":"multiclock.app.js","url":"clock.js"},
{"name":"big.face.js","url":"big.js"},
{"name":"ana.face.js","url":"ana.js"},
{"name":"digi.face.js","url":"digi.js"},
{"name":"txt.face.js","url":"txt.js"},
{"name":"timdat.face.js","url":"timdat.js"},
{"name":"multiclock.img","url":"multiclock-icon.js","evaluate":true}
]
},

View File

@ -4,5 +4,7 @@
0.04: Bug Fixes
0.05: Add README
0.06: Add txt clock
0.07: Add Time Date clock and fix font sizes

View File

@ -14,6 +14,9 @@ This is a clock app that supports multiple clock faces. The user can switch betw
### Text Clock Face
![](txtface.jpg)
### Time and Date Clock Face
## Controls
Clock faces are kept in a circular list.

View File

@ -10,9 +10,9 @@
minutes = time[1];
g.clearRect(0,24,239,239);
g.setColor(1,1,1);
g.setFont("Vector",100);
g.setFont("Vector",132);
g.drawString(hours,50,24,true);
g.drawString(minutes,50,135,true);
g.drawString(minutes,50,132,true);
}
function onSecond(){

View File

@ -1 +0,0 @@
(function(){return function(){function c(a){g.reset();var b=a.toString().split(" ")[4].substr(0,5).split(":");a=b[0];b=b[1];g.clearRect(0,24,239,239);g.setColor(1,1,1);g.setFont("Vector",100);g.drawString(a,50,24,!0);g.drawString(b,50,135,!0)}return{init:function(){c(new Date)},tick:function(){var a=new Date;0===a.getSeconds()&&c(a)}}}})();

View File

@ -1,3 +0,0 @@
var FACES=[],iface=0;require("Storage").list(/\.face\.js$/).forEach(function(a){return FACES.push(eval(require("Storage").read(a)))});var face=FACES[iface](),intervalRefSec;function stopdraw(){intervalRefSec&&(intervalRefSec=clearInterval(intervalRefSec))}function startdraw(){g.clear();g.reset();Bangle.drawWidgets();face.init();intervalRefSec=setInterval(face.tick,1E3)}
function setButtons(){function a(a){var b=FACES.length-1;iface+=a;iface=iface>b?0:0>iface?b:iface;stopdraw();face=FACES[iface]();startdraw()}setWatch(Bangle.showLauncher,BTN2,{repeat:!1,edge:"falling"});setWatch(a.bind(null,1),BTN1,{repeat:!0,edge:"rising"});setWatch(a.bind(null,-1),BTN3,{repeat:!0,edge:"rising"})}var SCREENACCESS={withApp:!0,request:function(){this.withApp=!1;stopdraw();clearWatch()},release:function(){this.withApp=!0;startdraw();setButtons()}};
Bangle.on("lcdPower",function(a){SCREENACCESS.withApp&&(a?startdraw():stopdraw())});g.clear();Bangle.loadWidgets();startdraw();setButtons();

View File

@ -14,7 +14,7 @@ function getFace(){
var d = new Date();
var da = d.toString().split(" ");
var time = da[4];
buf.setFont("Vector",42);
buf.setFont("Vector",54);
buf.setFontAlign(0,-1);
buf.drawString(time,buf.getWidth()/2,0);
buf.setFont("6x8",2);

View File

@ -1 +0,0 @@
(function(){return function(){function b(){a.clear();a.setColor(1);var c=new Date,b=c.toString().split(" ")[4];a.setFont("Vector",42);a.setFontAlign(0,-1);a.drawString(b,a.getWidth()/2,0);a.setFont("6x8",2);a.setFontAlign(0,-1);c=c.toString().substr(0,15);a.drawString(c,a.getWidth()/2,70);g.setColor(1,1,1);g.drawImage({width:a.getWidth(),height:a.getHeight(),buffer:a.buffer},0,85)}var a=Graphics.createArrayBuffer(240,92,1,{msb:!0});return{init:b,tick:b}}})();

38
apps/multiclock/timdat.js Normal file
View File

@ -0,0 +1,38 @@
(() => {
function getFace(){
var lastmin=-1;
function drawClock(){
var d=Date();
if (d.getMinutes()==lastmin) return;
d=d.toString().split(' ');
var min=d[4].substr(3,2);
var sec=d[4].substr(-2);
var tm=d[4].substring(0,5);
var hr=d[4].substr(0,2);
lastmin=min;
g.reset();
g.clearRect(0,24,239,239);
var w=g.getWidth();
g.setColor(0xffff);
g.setFontVector(80);
g.drawString(tm,4+(w-g.stringWidth(tm))/2,64);
g.setFontVector(36);
g.setColor(0x07ff);
var dt=d[0]+" "+d[1]+" "+d[2];//+" "+d[3];
g.drawString(dt,(w-g.stringWidth(dt))/2,160);
g.flip();
}
function drawFirst(){
lastmin=-1;
drawClock();
}
return {init:drawFirst, tick:drawClock};
}
return getFace;
})();

View File

@ -16,7 +16,7 @@
g.clearRect(0,40,239,210);
g.setColor(1,1,1);
g.setFontAlign(0,0);
g.setFont("Vector",32);
g.setFont("Vector",44);
var txt = convert(d.getHours());
g.drawString(txt.top,120,60);
g.drawString(txt.bot,120,100);

View File

@ -1,2 +0,0 @@
(function(){return function(){function a(b){function a(c){var a=" ;one;two;three;four;five;six;seven;eight;nine".split(";"),b="ten eleven twelve thirteen fourteen fifteen sixteen seventeen eighteen nineteen".split(" "),d=["twenty","thirty","forty","fifty"];return 10>c?{top:" ",bot:a[c]}:20>c?{top:" ",bot:b[c-10]}:60>c?{top:d[Math.floor(c/10)-2],bot:a[c%10]}:"error"}g.reset();g.clearRect(0,40,239,210);g.setColor(1,1,1);g.setFontAlign(0,0);g.setFont("Vector",32);var d=a(b.getHours());g.drawString(d.top,
120,60);g.drawString(d.bot,120,100);d=a(b.getMinutes());g.drawString(d.top,120,140);g.drawString(d.bot,120,180)}return{init:function(){a(new Date)},tick:function(){var b=new Date;0===b.getSeconds()&&a(b)}}}})();