mirror of
https://github.com/espruino/Espruino.git
synced 2025-12-08 19:06:15 +00:00
3 lines
1.4 KiB
JavaScript
3 lines
1.4 KiB
JavaScript
(function(u,e){e||(e={});e.buttons||(e.buttons={Yes:!0,No:!1});var r=require("locale"),n=Object.keys(e.buttons),v=[];g.clearRect(Bangle.appRect);if(!u)return Bangle.setUI(),Promise.resolve();(function(){g.reset().setFont("6x8",2).setFontAlign(0,-1);var k=Bangle.appRect.y,d=g.getWidth(),f=g.getHeight()-k,l=g.getFontHeight(),p=g.wrapString(e.title,d-2),t=g.wrapString(u||"",d-2),a=k+(f+(p.length-t.length)*l)/2-24;e.img&&(f=g.imageMetrics(e.img),g.drawImage(e.img,(d-f.width)/
|
|
2,a-f.height/2),a+=4+f.height/2);p&&g.setColor(g.theme.fgH).setBgColor(g.theme.bgH).clearRect(0,k,d-1,k+4+p.length*l).drawString(p.join("\n"),d/2,k+2);g.setColor(g.theme.fg).setBgColor(g.theme.bg).drawString(t.join("\n"),d/2,a);a+=t.length*l+32;var m=0;g.setFontAlign(0,0);n.forEach(h=>m+=24+g.stringWidth(r.translate(h)));m>d&&(g.setFont("6x8"),m=0,n.forEach(h=>m+=24+g.stringWidth(r.translate(h))));var b=(d-m)/2;n.forEach((h,q)=>{h=r.translate(h);q=g.stringWidth(h);b+=(24+q)/2;var c=6+q/2;v.push({x1:b-
|
|
c,x2:b+c,y1:a-24,y2:a+24});c=[b-c,a-16,b+c,a-16,b+c+4,a-12,b+c+4,a+12,b+c,a+16,b-c,a+16,b-c-4,a+12,b-c-4,a-12,b-c,a-16];g.setColor(g.theme.bg2).fillPoly(c).setColor(g.theme.fg2).drawPoly(c).drawString(h,b,a+1);b+=(24+q)/2});Bangle.setLCDPower(1)})();return new Promise(k=>{Bangle.setUI("touch",d=>{v.forEach((f,l)=>{d.x>=f.x1&&d.x<=f.x2&&d.y>=f.y1&&d.y<=f.y2&&(E.showPrompt(),k(e.buttons[n[l]]))})})})}) |