1
0
Fork 0

Merge pull request #850 from DeuxEtienne/svclock

svclock - scaling for the banglejs 2 and locale support
master
Gordon Williams 2021-10-19 09:36:30 +01:00 committed by GitHub
commit 6f24ba5aa4
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 48 additions and 33 deletions

View File

@ -961,7 +961,7 @@
{ "id": "svclock", { "id": "svclock",
"name": "Simple V-Clock", "name": "Simple V-Clock",
"icon": "vclock-simple.png", "icon": "vclock-simple.png",
"version":"0.02", "version":"0.03",
"description": "Modification of Simple Clock 0.04 to use Vectorfont", "description": "Modification of Simple Clock 0.04 to use Vectorfont",
"tags": "clock", "tags": "clock",
"type":"clock", "type":"clock",

View File

@ -1,2 +1,3 @@
0.01: Modification of SimpleClock 0.04 to use Vectorfont 0.01: Modification of SimpleClock 0.04 to use Vectorfont
0.02: Use Bangle.setUI for button/launcher handling 0.02: Use Bangle.setUI for button/launcher handling
0.03: Scale to BangleJS 2 and add locale

View File

@ -1,15 +1,39 @@
/* jshint esversion: 6 */ /* jshint esversion: 6 */
const timeFontSize = 65; const locale = require("locale");
const dateFontSize = 20;
const gmtFontSize = 10;
const font = "Vector";
const xyCenter = g.getWidth() / 2; var timeFontSize;
const yposTime = 75; var dateFontSize;
const yposDate = 130; var gmtFontSize;
const yposYear = 175; var font = "Vector";
const yposGMT = 220;
var xyCenter = g.getWidth() / 2;
var yposTime;
var yposDate;
var yposYear;
var yposGMT;
switch (process.env.BOARD) {
case "EMSCRIPTEN":
timeFontSize = 65;
dateFontSize = 20;
gmtFontSize = 10;
yposTime = 75;
yposDate = 130;
yposYear = 175;
yposGMT = 220;
break;
case "EMSCRIPTEN2":
timeFontSize = 48;
dateFontSize = 15;
gmtFontSize = 10;
yposTime = 55;
yposDate = 95;
yposYear = 128;
yposGMT = 161;
break;
}
// Check settings for what type our clock should be // Check settings for what type our clock should be
var is12Hour = (require("Storage").readJSON("setting.json",1)||{})["12hour"]; var is12Hour = (require("Storage").readJSON("setting.json",1)||{})["12hour"];
@ -19,49 +43,39 @@ function drawSimpleClock() {
// get date // get date
var d = new Date(); var d = new Date();
var da = d.toString().split(" ");
g.reset(); // default draw styles g.reset(); // default draw styles
// drawSting centered // drawSting centered
g.setFontAlign(0, 0); g.setFontAlign(0, 0);
// draw time // drawTime
var time = da[4].substr(0, 5).split(":"); var hours;
var hours = time[0],
minutes = time[1];
var meridian = "";
if (is12Hour) { if (is12Hour) {
hours = parseInt(hours,10); hours = ("0" + d.getHours()%12).slice(-2);
meridian = "AM"; } else {
if (hours == 0) { hours = ("0" + d.getHours()).slice(-2);
hours = 12;
meridian = "AM";
} else if (hours >= 12) {
meridian = "PM";
if (hours>12) hours -= 12;
}
hours = (" "+hours).substr(-2);
} }
var minutes = ("0" + d.getMinutes()).slice(-2);
g.setFont(font, timeFontSize); g.setFont(font, timeFontSize);
g.drawString(`${hours}:${minutes}`, xyCenter, yposTime, true); g.drawString(`${hours}:${minutes}`, xyCenter, yposTime, true);
g.setFont(font, gmtFontSize);
g.drawString(meridian, xyCenter + 102, yposTime + 10, true); if (is12Hour) {
g.setFont(font, gmtFontSize);
g.drawString(locale.meridian(d), xyCenter + 102, yposTime + 10, true);
}
// draw Day, name of month, Date // draw Day, name of month, Date
var date = [da[0], da[1], da[2]].join(" ");
g.setFont(font, dateFontSize); g.setFont(font, dateFontSize);
g.drawString([locale.dow(d,1), locale.month(d,1), d.getDate()].join(" "), xyCenter, yposDate, true);
g.drawString(date, xyCenter, yposDate, true);
// draw year // draw year
g.setFont(font, dateFontSize); g.setFont(font, dateFontSize);
g.drawString(d.getFullYear(), xyCenter, yposYear, true); g.drawString(d.getFullYear(), xyCenter, yposYear, true);
// draw gmt // draw gmt
var gmt = da[5];
g.setFont(font, gmtFontSize); g.setFont(font, gmtFontSize);
g.drawString(gmt, xyCenter, yposGMT, true); g.drawString(d.toString().match(/GMT[+-]\d+/), xyCenter, yposGMT, true);
} }
// handle switch display on by pressing BTN1 // handle switch display on by pressing BTN1