mirror of
https://github.com/espruino/Espruino.git
synced 2025-12-08 19:06:15 +00:00
7 lines
3.5 KiB
JavaScript
7 lines
3.5 KiB
JavaScript
(function(k){function w(a,b){var h=a.step||1;if(!a.noList&&void 0!==a.min&&void 0!==a.max&&20>(a.max-a.min)/h)E.showScroller({h:40,c:(a.max+h-a.min)/h,back:p,scrollMin:-24,scroll:-24,draw:(d,c)=>{if(0>d)return g.setFont("12x20").setFontAlign(-1,0).drawString("\x00\f\f\u0081\x00\u00ff\u00ff\u00ff\x00\x00\x00\x00\u000f\u00ff\u00ff\u00f0\x00\x00\x00\x00\u00ff\u00ff\u00ff "+b,c.x+12,c.y+40-12);g.setColor(g.theme.bg2).fillRect({x:c.x+4,y:c.y+2,w:c.w-8,h:c.h-4,r:5});d=d*h+a.min;
|
|
g.setColor(g.theme.fg2).setFont("12x20").setFontAlign(-1,0).drawString(a.format?a.format(d,1):d,c.x+12,c.y+20);g.drawImage(atob(d==a.value?"FBSBAAH4AH/gHgeDgBww8MY/xmf+bH/jz/88//PP/zz/88f+Nn/mY/xjDww4AcHgeAf+AB+A":"FBSBAAH4AH/gHgeDgBwwAMYABmAAbAADwAA8AAPAADwAA8AANgAGYABjAAw4AcHgeAf+AB+A"),c.x+c.w-32,c.y+20-10)},select:function(d){if(!(0>d)){Bangle.buzz(20);a.value=a.min+d*h;if(a.onchange)a.onchange(a.value);r.scroll=l.scroller.scroll;p()}}});else{var e=Bangle.appRect,f=a.value;g.reset().clearRect(Bangle.appRect);
|
|
g.setFont("12x20").setFontAlign(0,0).drawString("\x00\f\f\u0081\x00\u00ff\u00ff\u00ff\x00\x00\x00\x00\u000f\u00ff\u00ff\u00f0\x00\x00\x00\x00\u00ff\u00ff\u00ff "+b,e.x+e.w/2,e.y+12);function d(){var c=e.x+e.w/2,m=12+e.y+e.h/2,u=a.format?a.format(f,2):f;g.reset().setColor(g.theme.bg2).fillRect({x:e.x+24,y:e.y+36,w:e.w-48,h:e.h-48,r:5});g.setColor(g.theme.fg2).setFontVector(Math.min(30,100*(e.w-52)/g.setFontVector(100).stringWidth(u))).setFontAlign(0,0).drawString(u,c,m);g.fillPoly([c,m-45,c+15,m-30,
|
|
c-15,m-30]).fillPoly([c,m+45,c+15,m+30,c-15,m+30])}d();Bangle.setUI({mode:"updown",back:p},c=>{if(c)f-=(c||1)*(a.step||1),void 0!==a.min&&f<a.min&&(f=a.wrap?a.max:a.min),void 0!==a.max&&f>a.max&&(f=a.wrap?a.min:a.max),d();else{a.value=f;if(a.onchange)a.onchange(a.value);r.scroll=l.scroller.scroll;p()}})}}function p(){l.scroller=E.showScroller(r)}if(void 0===k)return g.clearRect(Bangle.appRect),Bangle.setUI();var q=k[""]||{};q.title||(q.title="Menu");var t=q.back||k["< Back"],n=Object.keys(k).filter(a=>
|
|
""!==a&&"< Back"!=a);n.forEach(a=>{a=k[a];"object"!=typeof a||"boolean"!=typeof a.value||a.format||(a.format=b=>"\x00"+atob(b?"EhKBAH//v/////////////5//x//j//H+eP+Mf/A//h//z//////////3//g":"EhKBAH//v//8AA8AA8AA8AA8AA8AA8AA8AA8AA8AA8AA8AA8AA8AA///3//g"))});var l={draw:()=>l.scroller.draw(),scroller:void 0};let v;var r={h:40,c:n.length,scrollMin:-24,scroll:null!=(v=q.scroll)?v:-24,back:t,draw:(a,b)=>{if(0>a)return g.setColor(g.theme.fg).setFont("12x20").setFontAlign(-1,0).drawString("\x00\f\f\u0081\x00\u00ff\u00ff\u00ff\x00\x00\x00\x00\u000f\u00ff\u00ff\u00f0\x00\x00\x00\x00\u00ff\u00ff\u00ff "+
|
|
q.title,b.x+12,b.y+40-12);g.setColor(g.theme.bg2).fillRect({x:b.x+4,y:b.y+2,w:b.w-8,h:b.h-4,r:5});g.setColor(g.theme.fg2).setFont("12x20");var h=24,e=k[n[a]];if("object"==typeof e){var f=e.value;e.format&&(f=e.format(f));g.stringMetrics(f).width>b.w/2&&(f=g.wrapString(f,b.w/2).join("\n"));g.setFontAlign(1,0).drawString(f,b.x+b.w-8,b.y+20);h+=g.stringWidth(f)}else"function"==typeof e&&(g.drawImage(atob("CRKBAGA4Hg8DwPB4HgcDg8PB4eHg8HAwAA=="),b.x+b.w-21,b.y+20-9),h+=16);var d;a=null!=(d=e.title)?d:
|
|
n[a];d=g.wrapString(a,b.w-h);1<d.length&&(d=g.setFont("6x15").wrapString(a,b.w-h));g.setFontAlign(-1,0).drawString(d.join("\n"),b.x+12,b.y+20)},select:function(a){if(0>a)return t&&t();var b=k[n[a]];Bangle.buzz(20);if("function"==typeof b)b(l);else if("object"==typeof b)if("number"==typeof b.value)w(b,n[a]);else{"boolean"==typeof b.value&&(b.value=!b.value);if(b.onchange)b.onchange(b.value);l.scroller.drawItem(a)}}};p();return l}) |