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