diff --git a/apps.json b/apps.json index 07cedf21a..e0b28a2b8 100644 --- a/apps.json +++ b/apps.json @@ -1761,5 +1761,17 @@ { "name": "jbm8b.img", "url": "app-icon.js", "evaluate": true } ], "version": "0.03" + }, + { "id": "widviz", + "name": "Widget Visibility Widget", + "shortName":"Viz Widget", + "icon": "eye.png", + "version":"0.01", + "description": "Touch left screen to hide top bar widgets, right screen to redisplay. Will not work with apps that use BTN4 & BTN5.", + "tags": "widget", + "type": "widget", + "storage": [ + {"name":"widviz.wid.js","url":"widget.js"} + ] } ] diff --git a/apps/widviz/ChangeLog b/apps/widviz/ChangeLog new file mode 100644 index 000000000..ac6257425 --- /dev/null +++ b/apps/widviz/ChangeLog @@ -0,0 +1 @@ + 0.01: New Widget diff --git a/apps/widviz/eye.png b/apps/widviz/eye.png new file mode 100644 index 000000000..414ad33f5 Binary files /dev/null and b/apps/widviz/eye.png differ diff --git a/apps/widviz/widget.js b/apps/widviz/widget.js new file mode 100644 index 000000000..36d695c60 --- /dev/null +++ b/apps/widviz/widget.js @@ -0,0 +1,37 @@ +(() => { + + var saved = null; + + function hide(){ + if (!Bangle.isLCDOn() || saved) return; + saved = []; + for (var wd of WIDGETS) { + saved.push(wd.draw); + wd.draw=()=>{}; + } + g.setColor(0,0,0); + g.fillRect(0,0,239,23); + } + + function reveal(){ + if (!Bangle.isLCDOn() || !saved) return; + for (var wd of WIDGETS) wd.draw = saved.shift(); + Bangle.drawWidgets(); + saved=null; + } + + function setup(){ + setWatch(hide, BTN4, {repeat:true,edge:"rising"}); + setWatch(reveal, BTN5, {repeat:true,edge:"rising"}); + } + + function draw(){ + var img = E.toArrayBuffer(atob("GBgBAAAAAAAAAAAAAAAAAH4AAf+AB4HgDgBwHDw4OH4cMOcMYMMGYMMGMOcMOH4cHDw4DgBwB4HgAf+AAH4AAAAAAAAAAAAAAAAA")); + g.setColor(0x07ff); + g.drawImage(img,this.x,this.y); + } + + WIDGETS["viz"] ={area:"tl", width:24,draw:draw,setup:setup}; + setup(); + +})();