Espruino/libs/js/banglejs/E_showMenu.min.js

5 lines
2.4 KiB
JavaScript

(function(n){Bangle.btnWatches&&(Bangle.btnWatches.forEach(clearWatch),Bangle.btnWatches=void 0);g.clear(1);g.flip();Bangle.drawWidgets();if(n){var q=g.getWidth()-9;g.getHeight();var f=Object.keys(n),a=n[""];a&&f.splice(f.indexOf(""),1);a instanceof Object||(a={});a.fontHeight=16;a.x=0;a.x2=q-2;a.y=24;a.y2=220;void 0===a.selected&&(a.selected=0);a.fontHeight||(a.fontHeight=6);var r=0|a.x,p=a.x2||g.getWidth()-1,m=0|a.y,v=a.y2||g.getHeight()-1;a.title&&(m+=a.fontHeight+2);var u=
require("locale"),e={draw:function(){g.reset().setFont("6x8",2).setFontAlign(0,-1,0);a.title&&(g.drawString(a.title,(r+p)/2,m-a.fontHeight-2),g.drawLine(r,m-2,p,m-2));for(var d=0|Math.min((v-m)/a.fontHeight,f.length),b=E.clip(a.selected-(d>>1),0,f.length-d),k=m;d--;){var l=f[b],t=n[l],h=b==a.selected&&!e.selectEdit;g.setColor(h?g.theme.bgH:c.theme.bg);g.fillRect(r,k,p,k+a.fontHeight-1);g.setColor(h?g.theme.fgH:c.theme.fg);g.setFontAlign(-1,-1);g.drawString(u.translate(l),r,k);"object"==typeof t&&
(l=p,h=t.value,t.format&&(h=t.format(h)),h=u.translate(""+h),e.selectEdit&&b==a.selected&&(l-=25,g.setColor(g.theme.bgH).fillRect(l-(g.stringWidth(h)+4),k,p,k+a.fontHeight-1),g.setColor(g.theme.fgH).drawImage("\f\u0005\u0081\x00 \u0007\x00\u00f9\u00f0\u000e\x00@",l,k+(a.fontHeight-10)/2,{scale:2})),g.setFontAlign(1,-1),g.drawString(h,l-2,k));g.setColor(g.theme.fg);k+=a.fontHeight;b++}g.setFontAlign(-1,-1);d=b<f.length;g.drawImage("\b\b\u0001\u00108|\u00fe\u0010\u0010\u0010\u0010",q,40);g.drawImage("\b\b\u0001\u0010\u0010\u0010\u0010\u00fe|8\u0010",
q,194);g.drawImage("\b\b\u0001\x00\b\f\u000e\u00ff\u000e\f\b",q,116);g.setColor(d?g.theme.fg:g.theme.bg).fillPoly([104,220,136,220,120,228]);g.flip()},select:function(d){d=n[f[a.selected]];if("function"==typeof d)d(e);else if("object"==typeof d){if("number"==typeof d.value)e.selectEdit=e.selectEdit?void 0:d;else if("boolean"==typeof d.value&&(d.value=!d.value),d.onchange)d.onchange(d.value);e.draw()}},move:function(d){if(e.selectEdit){var b=e.selectEdit;b.value-=(d||1)*(b.step||1);void 0!==b.min&&
b.value<b.min&&(b.value=b.min);void 0!==b.max&&b.value>b.max&&(b.value=b.max);if(b.onchange)b.onchange(b.value)}else a.selected=(d+a.selected)%f.length,0>a.selected&&(a.selected+=f.length);e.draw()}};e.draw();Bangle.btnWatches=[setWatch(function(){e.move(-1)},BTN1,{repeat:1}),setWatch(function(){e.move(1)},BTN3,{repeat:1}),setWatch(function(){e.select()},BTN2,{repeat:1})];return e}})