more tweaks
parent
490a0b9670
commit
272007c652
|
|
@ -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"},
|
||||||
|
|
|
||||||
|
|
@ -1 +1,2 @@
|
||||||
0.01: Basic calendar
|
0.01: Basic calendar
|
||||||
|
0.02: Make Bangle 2 compatible
|
||||||
|
|
|
||||||
|
|
@ -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!
|
||||||
|
|
|
||||||
|
|
@ -1 +1,2 @@
|
||||||
0.01: App Made!
|
0.01: App Made!
|
||||||
|
0.02: Changed setWatch to Bangle.setUI, code tidy
|
||||||
|
|
|
||||||
|
|
@ -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"});
|
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue