2022-03-02 15:34:35 +00:00
|
|
|
// settings menu for Monogram Watch Face
|
2022-02-25 20:54:38 +00:00
|
|
|
// Anton Clock settings were used as template
|
2022-03-02 15:34:35 +00:00
|
|
|
// helper functions taken from Anton Clock
|
2022-02-25 20:54:38 +00:00
|
|
|
|
2022-03-02 15:34:35 +00:00
|
|
|
(function (back) {
|
2022-03-03 22:30:34 +00:00
|
|
|
var FILE = "smclock.json";
|
2022-03-02 15:34:35 +00:00
|
|
|
// load settings from the file
|
|
|
|
// assign default values if it doesn't exist
|
2022-03-03 22:30:34 +00:00
|
|
|
var settings = Object.assign({
|
2022-03-03 20:46:26 +00:00
|
|
|
dateFormat: "Short",
|
|
|
|
drawInterval: 10,
|
|
|
|
pollInterval: 60,
|
|
|
|
showAnalogFace: false,
|
|
|
|
showWeekInfo: false,
|
|
|
|
useVectorFont: false,
|
2022-03-03 22:30:34 +00:00
|
|
|
}, require("Storage").readJSON(FILE, true) || {});
|
2022-02-25 20:54:38 +00:00
|
|
|
|
2022-03-02 15:34:35 +00:00
|
|
|
// write the new settings to the file
|
2022-03-03 22:30:34 +00:00
|
|
|
function writeSettings() {require("Storage").writeJSON(FILE, settings);}
|
2022-02-25 20:54:38 +00:00
|
|
|
|
2022-03-02 15:34:35 +00:00
|
|
|
// helper method which uses int-based menu item for set of string values
|
2022-02-25 20:54:38 +00:00
|
|
|
function stringItems(startvalue, writer, values) {
|
|
|
|
return {
|
2022-03-02 15:34:35 +00:00
|
|
|
value: startvalue === undefined ? 0 : values.indexOf(startvalue),
|
2022-03-03 22:30:34 +00:00
|
|
|
format: v => values[v],
|
2022-02-25 20:54:38 +00:00
|
|
|
min: 0,
|
|
|
|
max: values.length - 1,
|
|
|
|
wrap: true,
|
|
|
|
step: 1,
|
2022-03-03 22:30:34 +00:00
|
|
|
onchange: v => {
|
2022-02-25 20:54:38 +00:00
|
|
|
writer(values[v]);
|
|
|
|
writeSettings();
|
2022-03-02 15:34:35 +00:00
|
|
|
},
|
2022-02-25 20:54:38 +00:00
|
|
|
};
|
|
|
|
}
|
|
|
|
|
2022-03-02 15:34:35 +00:00
|
|
|
// helper method which breaks string set settings down to local settings object
|
2022-02-25 20:54:38 +00:00
|
|
|
function stringInSettings(name, values) {
|
2022-03-02 15:34:35 +00:00
|
|
|
return stringItems(settings[name], (v) => (settings[name] = v), values);
|
2022-02-25 20:54:38 +00:00
|
|
|
}
|
|
|
|
|
2022-03-02 15:34:35 +00:00
|
|
|
// settings menu
|
2022-02-25 20:54:38 +00:00
|
|
|
var mainmenu = {
|
2022-03-03 22:30:34 +00:00
|
|
|
"": {title: "Monogram Clock",},
|
2022-02-25 20:54:38 +00:00
|
|
|
"< Back": () => back(),
|
2022-03-02 15:34:35 +00:00
|
|
|
"Analog Face": {
|
|
|
|
value:
|
|
|
|
settings.showAnalogFace !== undefined ? settings.showAnalogFace : false,
|
2022-03-03 22:30:34 +00:00
|
|
|
onchange: v => {
|
2022-03-03 23:52:33 +00:00
|
|
|
settings.showAnalogFace = v;
|
2022-02-25 20:54:38 +00:00
|
|
|
writeSettings();
|
2022-03-02 15:34:35 +00:00
|
|
|
},
|
2022-02-25 20:54:38 +00:00
|
|
|
},
|
2022-03-15 16:09:14 +00:00
|
|
|
"Background": stringInSettings("backgroundImage", ["3bit", "4bit"]),
|
2022-03-03 15:38:29 +00:00
|
|
|
Date: stringInSettings("dateFormat", ["Long", "Short"]),
|
2022-03-03 12:36:56 +00:00
|
|
|
"Draw Interval": {
|
|
|
|
value: settings.drawInterval,
|
2022-03-03 22:30:34 +00:00
|
|
|
onchange: v => {
|
2022-03-03 12:36:56 +00:00
|
|
|
settings.drawInterval = v;
|
|
|
|
writeSettings();
|
|
|
|
},
|
|
|
|
},
|
|
|
|
"Poll Interval": {
|
|
|
|
value: settings.pollInterval,
|
2022-03-03 22:30:34 +00:00
|
|
|
onchange: v => {
|
2022-03-03 12:36:56 +00:00
|
|
|
settings.pollInterval = v;
|
|
|
|
writeSettings();
|
|
|
|
},
|
|
|
|
},
|
2022-03-02 15:34:35 +00:00
|
|
|
"Week Info": {
|
|
|
|
value:
|
|
|
|
settings.showWeekInfo !== undefined ? settings.showWeekInfo : false,
|
2022-03-03 22:30:34 +00:00
|
|
|
onchange: v => {
|
2022-03-03 23:52:33 +00:00
|
|
|
settings.showWeekInfo = v;
|
2022-02-25 20:54:38 +00:00
|
|
|
writeSettings();
|
2022-03-02 15:34:35 +00:00
|
|
|
},
|
2022-02-25 20:54:38 +00:00
|
|
|
},
|
2022-03-02 15:34:35 +00:00
|
|
|
"Vector Font": {
|
|
|
|
value:
|
|
|
|
settings.useVectorFont !== undefined ? settings.useVectorFont : false,
|
2022-03-03 22:30:34 +00:00
|
|
|
onchange: v => {
|
|
|
|
settings.useVectorFont = v;
|
2022-02-25 20:54:38 +00:00
|
|
|
writeSettings();
|
2022-03-02 15:34:35 +00:00
|
|
|
},
|
2022-02-25 20:54:38 +00:00
|
|
|
},
|
|
|
|
};
|
|
|
|
|
|
|
|
// Actually display the menu
|
|
|
|
E.showMenu(mainmenu);
|
2024-10-28 19:16:14 +00:00
|
|
|
})
|
2022-02-25 20:54:38 +00:00
|
|
|
|
|
|
|
// end of file
|