more tweaks

master
Gordon Williams 2021-06-24 14:28:46 +01:00
parent 490a0b9670
commit 272007c652
5 changed files with 52 additions and 145 deletions

View File

@ -1858,9 +1858,9 @@
{ "id": "calendar", { "id": "calendar",
"name": "Calendar", "name": "Calendar",
"icon": "calendar.png", "icon": "calendar.png",
"version": "0.01", "version": "0.02",
"description": "Simple calendar", "description": "Simple calendar",
"tags": "calendar", "tags": "calendar,b2",
"readme": "README.md", "readme": "README.md",
"allow_emulator": true, "allow_emulator": true,
"storage": [ "storage": [
@ -2495,9 +2495,9 @@
"name": "Digital Clock Face", "name": "Digital Clock Face",
"shortName":"Digi Clock", "shortName":"Digi Clock",
"icon": "digiclock.png", "icon": "digiclock.png",
"version":"0.01", "version":"0.02",
"description": "A simple digital clock with the time, day, month, and year", "description": "A simple digital clock with the time, day, month, and year",
"tags": "clock", "tags": "clock,nob2",
"type" : "clock", "type" : "clock",
"storage": [ "storage": [
{"name":"digiclock.app.js","url":"digiclock.js"}, {"name":"digiclock.app.js","url":"digiclock.js"},

View File

@ -1 +1,2 @@
0.01: Basic calendar 0.01: Basic calendar
0.02: Make Bangle 2 compatible

View File

@ -1,5 +1,6 @@
const maxX = 240; const maxX = g.getWidth();
const maxY = 240; const maxY = g.getHeight();
const fontSize = g.getWidth()>200?2:1;
const rowN = 7; const rowN = 7;
const colN = 7; const colN = 7;
const headerH = maxY / 7; const headerH = maxY / 7;
@ -50,7 +51,7 @@ function drawCalendar(date) {
11: "December" 11: "December"
}; };
g.setFontAlign(0, 0); g.setFontAlign(0, 0);
g.setFont("6x8", 2); g.setFont("6x8", fontSize);
g.setColor(white); g.setColor(white);
g.drawString(`${monthMap[month]} ${year}`, maxX / 2, headerH / 2); g.drawString(`${monthMap[month]} ${year}`, maxX / 2, headerH / 2);
g.drawPoly([10, headerH / 2, 20, 10, 20, headerH - 10], true); g.drawPoly([10, headerH / 2, 20, 10, 20, headerH - 10], true);
@ -59,7 +60,7 @@ function drawCalendar(date) {
true true
); );
g.setFont("6x8", 2); g.setFont("6x8", fontSize);
const dowLbls = ["Mo", "Tu", "We", "Th", "Fr", "Sa", "Su"]; const dowLbls = ["Mo", "Tu", "We", "Th", "Fr", "Sa", "Su"];
dowLbls.forEach((lbl, i) => { dowLbls.forEach((lbl, i) => {
g.drawString(lbl, i * colW + colW / 2, headerH + rowH / 2); g.drawString(lbl, i * colW + colW / 2, headerH + rowH / 2);
@ -135,26 +136,21 @@ const today = {
}; };
drawCalendar(date); drawCalendar(date);
clearWatch(); clearWatch();
setWatch( Bangle.on("touch",area=>{
() => { const month = date.getMonth();
const month = date.getMonth(); let prevMonth;
const prevMonth = month > 0 ? month - 1 : 11; if (area==1) {
let prevMonth = month > 0 ? month - 1 : 11;
if (prevMonth === 11) date.setFullYear(date.getFullYear() - 1); if (prevMonth === 11) date.setFullYear(date.getFullYear() - 1);
date.setMonth(prevMonth); date.setMonth(prevMonth);
drawCalendar(date); } else {
}, let prevMonth = month < 11 ? month + 1 : 0;
BTN4,
{ repeat: true }
);
setWatch(
() => {
const month = date.getMonth();
const prevMonth = month < 11 ? month + 1 : 0;
if (prevMonth === 0) date.setFullYear(date.getFullYear() + 1); if (prevMonth === 0) date.setFullYear(date.getFullYear() + 1);
date.setMonth(month + 1); date.setMonth(month + 1);
drawCalendar(date); }
}, drawCalendar(date);
BTN5, });
{ repeat: true }
); // Show launcher when button pressed
setWatch(Bangle.showLauncher, BTN2, { repeat: false, edge: "falling" }); Bangle.setUI("clock"); // TODO: ideally don't set 'clock' mode
// No space for widgets!

View File

@ -1 +1,2 @@
0.01: App Made! 0.01: App Made!
0.02: Changed setWatch to Bangle.setUI, code tidy

View File

@ -1,141 +1,50 @@
//load fonts //load fonts
require("Font7x11Numeric7Seg").add(Graphics); require("Font7x11Numeric7Seg").add(Graphics);
require("FontHaxorNarrow7x17").add(Graphics); require("FontHaxorNarrow7x17").add(Graphics);
//screen position //screen position
const X = 170; const X = 170;
const Y = 140; const Y = 140;
function draw() { function draw() {
// Date Variables // Date Variables
var date = new Date(); var date = new Date();
var h = date.getHours(); var h = date.getHours();
var m = date.getMinutes(); var m = date.getMinutes();
var day = date.getDay(); var day = require("locale").dow(date);
var month = date.getMonth(); var month = require("locale").month(date,1);
var dateNum = date.getDate(); var dateNum = date.getDate();
var year = date.getFullYear(); var year = date.getFullYear();
var half = "AM"; var half = "AM";
var time = (" " + h).substr(-2) + ":" + ("0" + m).substr(-2); var time = (" " + h).substr(-2) + ":" + ("0" + m).substr(-2);
//convert day into string
switch (day) {
case 0:
day = "Sunday";
break;
case 1:
day = "Monday";
break;
case 2:
day = "Tuesday";
break;
case 3:
day = "Wednesday";
break;
case 4:
day = "Thursday";
break;
case 5:
day = "Friday";
break;
case 6:
day = "Saturday";
break;
default:
day = "ERROR";
break;
}
//convert month into String
switch(month) {
case 0:
month = "Jan";
break;
case 1:
month = "Feb";
break;
case 2:
month = "Mar";
break;
case 3:
month = "Apr";
break;
case 4:
month = "May";
break;
case 5:
month = "Jun";
break;
case 6:
month = "Jul";
break;
case 7:
month = "Aug";
break;
case 8:
month = "Sep";
break;
case 9:
month = "Oct";
break;
case 10:
month = "Nov";
break;
case 11:
month = "Dec";
break;
default:
month = "ERROR";
break;
}
if (h > 12) { if (h > 12) {
half = "PM"; half = "PM";
h = h - 12; h = h - 12;
} }
//reset graphics //reset graphics
g.reset(); g.reset();
//draw the time //draw the time
g.setFont("7x11Numeric7Seg", 5); g.setFont("7x11Numeric7Seg", 5);
g.setFontAlign(1,1); g.setFontAlign(1,1);
g.drawString(time, X, Y, true /*clear background*/); g.drawString(time, X, Y, true /*clear background*/);
g.setFont("7x11Numeric7Seg", 3); g.setFont("7x11Numeric7Seg", 3);
g.drawString(("0"+date.getSeconds()).substr(-2), X+50, Y, true /*clear background*/); g.drawString(("0"+date.getSeconds()).substr(-2), X+50, Y, true /*clear background*/);
g.setFontAlign(0,1); g.setFontAlign(0,1);
g.setFont("HaxorNarrow7x17", 2); g.setFont("HaxorNarrow7x17", 2);
g.drawString(half, X+30, Y-35, true); g.drawString(half, X+30, Y-35, true);
g.setFont("HaxorNarrow7x17", 3); g.setFont("HaxorNarrow7x17", 3);
g.drawString(day, X-60, Y+53, true); g.drawString(day, X-60, Y+53, true);
g.drawString(month, X-100, Y+95, true); g.drawString(month, X-100, Y+95, true);
g.drawString(dateNum, X-40, Y+95, true); g.drawString(dateNum, X-40, Y+95, true);
g.drawString(year, X-90, Y-55, true); g.drawString(year, X-90, Y-55, true);
} }
//clear screen at startup //clear screen at startup
g.clear(); g.clear();
//draw immediatly //draw immediatly
draw(); draw();
var secondInterval = setInterval(draw, 1000); var secondInterval = setInterval(draw, 1000);
// Stop updates when LCD is off, restart when on // Stop updates when LCD is off, restart when on
@ -148,7 +57,7 @@ Bangle.on('lcdPower',on=>{
} }
}); });
// Show launcher when button pressed
Bangle.setUI("clock");
Bangle.loadWidgets(); Bangle.loadWidgets();
Bangle.drawWidgets(); Bangle.drawWidgets();
setWatch(Bangle.showLauncher, BTN2, {repeat : false, edge: "falling"});