diff --git a/apps.json b/apps.json index b088865d2..723b7093f 100644 --- a/apps.json +++ b/apps.json @@ -973,5 +973,18 @@ "storage": [ {"name":"widhwt.wid.js","url":"widget.js"} ] + }, + { "id": "toucher", + "name": "Touch Launcher", + "shortName":"Menu", + "icon": "app.png", + "version":"0.01", + "description": "Touch enable left to right launcher.", + "tags": "tool,system,launcher", + "type":"launch", + "storage": [ + {"name":"toucher.app.js","url":"app.js"} + ], + "sortorder" : -10 } ] diff --git a/apps/toucher/ChangeLog b/apps/toucher/ChangeLog new file mode 100644 index 000000000..5560f00bc --- /dev/null +++ b/apps/toucher/ChangeLog @@ -0,0 +1 @@ +0.01: New App! diff --git a/apps/toucher/app.js b/apps/toucher/app.js new file mode 100644 index 000000000..abeb78092 --- /dev/null +++ b/apps/toucher/app.js @@ -0,0 +1,150 @@ +g.clear(); + +var Storage = require("Storage"); + + +function getApps(){ + return Storage.list(/\.info$/).filter(app => app.endsWith('.info')).map(app => Storage.readJSON(app,1) || { name: "DEAD: "+app.substr(1) }) + .filter(app=>app.type=="app" || app.type=="clock" || !app.type) + .sort((a,b)=>{ + var n=(0|a.sortorder)-(0|b.sortorder); + if (n) return n; // do sortorder first + if (a.nameb.name) return 1; + return 0; + }); +} + +var selected = 0; +var menuScroll = 0; +var menuShowing = false; +var apps = getApps(); +var displayBack = false; + +function prev(){ + if (selected>=0) { + selected--; + } + drawMenu(); +} + +function next() { + if (selected+1=n+menuScroll) menuScroll = 1+selected-n; + if (selectedn+menuScroll) g.fillPoly([120,239,100,219,140,219]); + else g.clearRect(100,219,140,239); + for (var i=0;i