1
0
Fork 0
BangleApps/apps/snepwatch/settings.js

82 lines
2.8 KiB
JavaScript

(
function(back) {
var FILE = "snepwatch.json";
/* Load settings */
var settings = Object.assign ({
/* Default Values */
outline_r: 1,
outline_g: 0,
outline_b: 0,
fill_r: 0.5,
fill_g: 0,
fill_b: 0,
bg_r: 0,
bg_g: 0,
bg_b: 0,
text: 1
,
}, require ('Storage').readJSON (FILE, true) || {});
function write_settings () {
require ('Storage').writeJSON (FILE, settings);
}
/* Show the menu */
var main_menu = {
"" : { "title": "Snepwatch",
back : function() { back (); }},
"Outline Colour": function () { E.showMenu (outline_menu); },
"Fill Colour": function () { E.showMenu (fill_menu); },
"Background Colour": function () { E.showMenu (background_menu); },
"Text": { value: (settings.text == 1),
format: v => v ? "Light" : "Dark",
onchange: v => { settings.text = v; write_settings (); }},
};
var outline_menu = {
"": { title : "Outline Colour",
back : function() { E.showMenu (main_menu); } },
"Red": { value: settings.outline_r,
min: 0, max: 1, step: 0.5, wrap: true,
onchange: v => { settings.outline_r = v; write_settings (); }},
"Green": { value: settings.outline_g,
min: 0, max: 1, step: 0.5, wrap: true,
onchange: v => { settings.outline_g = v; write_settings (); }},
"Blue": { value: settings.outline_b,
min: 0, max: 1, step: 0.5, wrap: true,
onchange: v => { settings.outline_b = v; write_settings (); }},
};
var fill_menu = {
"" : { title : "Fill Colour",
back : function() { E.showMenu (main_menu); } },
"Red": { value: settings.fill_r,
min: 0, max: 1, step: 0.5, wrap: true,
onchange: v => { settings.fill_r = v; write_settings (); }},
"Green": { value: settings.fill_g,
min: 0, max: 1, step: 0.5, wrap: true,
onchange: v => { settings.fill_g = v; write_settings (); }},
"Blue": { value: settings.fill_b,
min: 0, max: 1, step: 0.5, wrap: true,
onchange: v => { settings.fill_b = v; write_settings (); }},
};
var background_menu = {
"" : { title : "Background Colour",
back : function() { E.showMenu (main_menu); } },
"Red": { value: settings.bg_r,
min: 0, max: 1, step: 0.5, wrap: true,
onchange: v => { settings.bg_r = v; write_settings (); }},
"Green": { value: settings.bg_g,
min: 0, max: 1, step: 0.5, wrap: true,
onchange: v => { settings.bg_g = v; write_settings (); }},
"Blue": { value: settings.bg_b,
min: 0, max: 1, step: 0.5, wrap: true,
onchange: v => { settings.bg_b = v; write_settings (); }},
};
E.showMenu (main_menu);
}
)