Espruino/libs/js/banglejs/E_showPrompt.min.js

3 lines
1.3 KiB
JavaScript

(function(q,a){function n(){g.reset().setFont("6x8",2).setFontAlign(0,0);var h=g.getWidth(),r=g.getHeight(),d=a.title;d&&(d=k.translate(d),g.drawString(d,h/2,34),d=(g.stringWidth(d)+16)/2,g.fillRect(h/2-d,44,h/2+d,44));d=q.split("\n");var u=(r-16*d.length)/2;d.forEach((f,l)=>g.drawString(k.translate(f),h/2,u+16*l));var t=0;m.forEach(f=>t+=16+g.stringWidth(k.translate(f)));var b=(h-t)/2,e=r-40;m.forEach((f,l)=>{f=k.translate(f);var p=g.stringWidth(f);b+=(16+p)/2;var c=2+p/
2;c=[b-c,e-12,b+c,e-12,b+c+4,e-8,b+c+4,e+8,b+c,e+12,b-c,e+12,b-c-4,e+8,b-c-4,e-8,b-c,e-12];g.setColor(l==a.selected?g.theme.bgH:g.theme.bg).fillPoly(c).setColor(l==a.selected?g.theme.fgH:g.theme.fg).drawPoly(c).drawString(f,b,e+1);b+=(16+p)/2});g.setColor(g.theme.fg).flip()}a||(a={});a.buttons||(a.buttons={Yes:!0,No:!1});var k=require("locale"),m=Object.keys(a.buttons);a.selected||(a.selected=0);Bangle.btnWatches&&(Bangle.btnWatches.forEach(clearWatch),Bangle.btnWatches=void 0);g.clear(1);Bangle.drawWidgets();
if(!q)return Promise.resolve();n();return new Promise(h=>{Bangle.btnWatches=[setWatch(function(){0<a.selected&&(a.selected--,n())},BTN1,{repeat:1}),setWatch(function(){a.selected<m.length-1&&(a.selected++,n())},BTN3,{repeat:1}),setWatch(function(){E.showPrompt();h(a.buttons[m[a.selected]])},BTN2,{repeat:1})]})})