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

3 lines
1.3 KiB
JavaScript

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