launcher 0.04: Now displays widgets

master
Gordon Williams 2020-06-24 10:20:39 +01:00
parent 7647a7a921
commit ab30d2dd6b
3 changed files with 12 additions and 6 deletions

View File

@ -41,7 +41,7 @@
"name": "Launcher (Default)", "name": "Launcher (Default)",
"shortName":"Launcher", "shortName":"Launcher",
"icon": "app.png", "icon": "app.png",
"version":"0.03", "version":"0.04",
"description": "This is needed by Bangle.js to display a menu allowing you to choose your own applications. You can replace this with a customised launcher.", "description": "This is needed by Bangle.js to display a menu allowing you to choose your own applications. You can replace this with a customised launcher.",
"tags": "tool,system,launcher", "tags": "tool,system,launcher",
"type":"launch", "type":"launch",

View File

@ -1,3 +1,4 @@
0.01: New App! 0.01: New App!
0.02: Only store relevant app data (saves RAM when many apps) 0.02: Only store relevant app data (saves RAM when many apps)
0.03: Allow scrolling to wrap around (fix #382) 0.03: Allow scrolling to wrap around (fix #382)
0.04: Now displays widgets

View File

@ -1,5 +1,5 @@
var s = require("Storage"); var s = require("Storage");
var apps = s.list(/\.info$/).map(app=>{var a=s.readJSON(app,1);return a&&{name:a.name,type:a.type,icon:a.icon,sortorder:a.sortorder,src:a.src}}).filter(app=>app && (app.type=="app" || app.type=="clock" || !app.type)); var apps = s.list(/\.info$/).map(app=>{var a=s.readJSON(app,1);return a&&{name:a.name,type:a.type,icon:a.icon,sortorder:a.sortorder,src:a.src};}).filter(app=>app && (app.type=="app" || app.type=="clock" || !app.type));
apps.sort((a,b)=>{ apps.sort((a,b)=>{
var n=(0|a.sortorder)-(0|b.sortorder); var n=(0|a.sortorder)-(0|b.sortorder);
if (n) return n; // do sortorder first if (n) return n; // do sortorder first
@ -17,10 +17,13 @@ function drawMenu() {
var n = 3; var n = 3;
if (selected>=n+menuScroll) menuScroll = 1+selected-n; if (selected>=n+menuScroll) menuScroll = 1+selected-n;
if (selected<menuScroll) menuScroll = selected; if (selected<menuScroll) menuScroll = selected;
if (menuScroll) g.fillPoly([120,0,100,20,140,20]); // arrows
else g.clearRect(100,0,140,20); g.setColor(menuScroll ? -1 : 0);
if (apps.length>n+menuScroll) g.fillPoly([120,239,100,219,140,219]); g.fillPoly([120,6,106,20,134,20]);
else g.clearRect(100,219,140,239); g.setColor((apps.length>n+menuScroll) ? -1 : 0);
g.fillPoly([120,233,106,219,134,219]);
// draw
g.setColor(-1);
for (var i=0;i<n;i++) { for (var i=0;i<n;i++) {
var app = apps[i+menuScroll]; var app = apps[i+menuScroll];
if (!app) break; if (!app) break;
@ -59,3 +62,5 @@ setWatch(function() { // run
load(apps[selected].src); load(apps[selected].src);
} }
}, BTN2, {repeat:true,edge:"falling"}); }, BTN2, {repeat:true,edge:"falling"});
Bangle.loadWidgets();
Bangle.drawWidgets();