mirror of https://github.com/espruino/BangleApps
Added settings menu for Pastel
parent
63b19409f4
commit
e455c3616c
|
@ -3454,7 +3454,11 @@
|
||||||
"readme": "README.md",
|
"readme": "README.md",
|
||||||
"storage": [
|
"storage": [
|
||||||
{"name":"pastel.app.js","url":"pastel.app.js"},
|
{"name":"pastel.app.js","url":"pastel.app.js"},
|
||||||
{"name":"pastel.img","url":"pastel.icon.js","evaluate":true}
|
{"name":"pastel.img","url":"pastel.icon.js","evaluate":true},
|
||||||
|
{"name":"pastel.settings.js","url":"pastel.settings.js"}
|
||||||
|
],
|
||||||
|
"data": [
|
||||||
|
{"name":"pastel.json"}
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
|
|
|
@ -45,6 +45,18 @@ g.setFontCustom(font, 46, widths, 73+(scale<<8)+(1<<16));
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
|
const SETTINGS_FILE = "pastel.json";
|
||||||
|
let settings = undefined;
|
||||||
|
|
||||||
|
function loadSettings() {
|
||||||
|
//console.log("loadSettings()");
|
||||||
|
settings = require("Storage").readJSON(SETTINGS_FILE,1)||{};
|
||||||
|
settings.grid = settings.grid||false;
|
||||||
|
settings.date = settings.date||false;
|
||||||
|
settings.font = settings.font||"Lato";
|
||||||
|
//console.log(settings);
|
||||||
|
}
|
||||||
|
|
||||||
var mm_prev = "xx";
|
var mm_prev = "xx";
|
||||||
|
|
||||||
function draw() {
|
function draw() {
|
||||||
|
@ -80,7 +92,7 @@ function draw() {
|
||||||
}
|
}
|
||||||
|
|
||||||
// draw a grid like graph paper
|
// draw a grid like graph paper
|
||||||
if (process.env.HWVERSION !=1) {
|
if (settings.grid && process.env.HWVERSION !=1) {
|
||||||
g.setColor("#0f0");
|
g.setColor("#0f0");
|
||||||
for (var gx=20; gx <= w; gx += 20)
|
for (var gx=20; gx <= w; gx += 20)
|
||||||
g.drawLine(gx, 30, gx, h);
|
g.drawLine(gx, 30, gx, h);
|
||||||
|
@ -93,10 +105,15 @@ function draw() {
|
||||||
else
|
else
|
||||||
g.setColor("#000");
|
g.setColor("#000");
|
||||||
|
|
||||||
g.setFontLato();
|
if (settings.font == "Architect")
|
||||||
//g.setFontArchitect();
|
g.setFontArchitect();
|
||||||
//g.setFontGochiHand();
|
else if (settings.font == "GochiHand")
|
||||||
//g.setFontCabinSketch();
|
g.setFontGochiHand();
|
||||||
|
else if (settings.font == "CabinSketch")
|
||||||
|
g.setFontCabinSketch();
|
||||||
|
else
|
||||||
|
g.setFontLato();
|
||||||
|
|
||||||
g.setFontAlign(1,-1); // right aligned
|
g.setFontAlign(1,-1); // right aligned
|
||||||
g.drawString(hh, x - 6, y);
|
g.drawString(hh, x - 6, y);
|
||||||
g.setFontAlign(-1,-1); // left aligned
|
g.setFontAlign(-1,-1); // left aligned
|
||||||
|
@ -115,11 +132,13 @@ function draw() {
|
||||||
g.setColor("#fff");
|
g.setColor("#fff");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
g.setFontLatoSmall();
|
if (settings.date) {
|
||||||
g.setFontAlign(1, -1);
|
g.setFontLatoSmall();
|
||||||
g.drawString(day + " ", w, h - 24 - 24);
|
g.setFontAlign(1, -1);
|
||||||
g.drawString(month_day + " ", w, h - 24);
|
g.drawString(day + " ", w, h - 24 - 24);
|
||||||
|
g.drawString(month_day + " ", w, h - 24);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// handle switch display on by pressing BTN1
|
// handle switch display on by pressing BTN1
|
||||||
|
@ -130,6 +149,7 @@ Bangle.on('lcdPower', function(on) {
|
||||||
g.clear();
|
g.clear();
|
||||||
Bangle.loadWidgets();
|
Bangle.loadWidgets();
|
||||||
Bangle.drawWidgets();
|
Bangle.drawWidgets();
|
||||||
|
loadSettings();
|
||||||
setInterval(draw, 1000); // refresh every second
|
setInterval(draw, 1000); // refresh every second
|
||||||
draw();
|
draw();
|
||||||
// Show launcher when button pressed
|
// Show launcher when button pressed
|
||||||
|
|
|
@ -0,0 +1,57 @@
|
||||||
|
(function(back) {
|
||||||
|
const SETTINGS_FILE = "pastel.json";
|
||||||
|
|
||||||
|
// initialize with default settings...
|
||||||
|
let s = {
|
||||||
|
'grid': false,
|
||||||
|
'date': false,
|
||||||
|
'font': "Lato"
|
||||||
|
}
|
||||||
|
|
||||||
|
// ...and overwrite them with any saved values
|
||||||
|
// This way saved values are preserved if a new version adds more settings
|
||||||
|
const storage = require('Storage')
|
||||||
|
const settings = storage.readJSON(SETTINGS_FILE, 1) || {}
|
||||||
|
const saved = settings || {}
|
||||||
|
for (const key in saved) {
|
||||||
|
s[key] = saved[key]
|
||||||
|
}
|
||||||
|
|
||||||
|
function save() {
|
||||||
|
settings = s
|
||||||
|
storage.write(SETTINGS_FILE, settings)
|
||||||
|
}
|
||||||
|
|
||||||
|
var font_options = ["Lato","Architect","GochiHand","CabinSketch"];
|
||||||
|
|
||||||
|
E.showMenu({
|
||||||
|
'': { 'title': 'Pastel Clock' },
|
||||||
|
'< Back': back,
|
||||||
|
'Font': {
|
||||||
|
value: 0 | font_options.indexOf(s.font),
|
||||||
|
min: 0, max: 3,
|
||||||
|
format: v => font_options[v],
|
||||||
|
onchange: v => {
|
||||||
|
s.font = font_options[v];
|
||||||
|
save();
|
||||||
|
},
|
||||||
|
},
|
||||||
|
'Show Grid': {
|
||||||
|
value: s.grid,
|
||||||
|
format: () => (s.grid ? 'Yes' : 'No'),
|
||||||
|
onchange: () => {
|
||||||
|
s.grid = !s.grid
|
||||||
|
save()
|
||||||
|
},
|
||||||
|
},
|
||||||
|
'Show Date': {
|
||||||
|
value: s.date,
|
||||||
|
format: () => (s.date ? 'Yes' : 'No'),
|
||||||
|
onchange: () => {
|
||||||
|
s.date = !s.date
|
||||||
|
save()
|
||||||
|
},
|
||||||
|
},
|
||||||
|
'< Back': back,
|
||||||
|
})
|
||||||
|
})
|
|
@ -0,0 +1,6 @@
|
||||||
|
const SETTINGS_FILE = "pastel.json";
|
||||||
|
let settings = {"grid":false, "date":false, "font":"Lato"}
|
||||||
|
|
||||||
|
require("Storage").write(SETTINGS_FILE, settings);
|
||||||
|
settings = require("Storage").readJSON(SETTINGS_FILE,1)||{};
|
||||||
|
console.log(settings);
|
Loading…
Reference in New Issue