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

3 lines
1.4 KiB
JavaScript

(function(v,a){function p(){g.reset().setFont("6x8",2).setFontAlign(0,-1);var h=Bangle.appRect.y,e=g.getWidth(),k=g.getHeight()-h,q=g.getFontHeight(),n=g.wrapString(a.title,e-2),r=g.wrapString(v||"",e-2),b=h+(k+(n.length-r.length)*q)/2-24;a.img&&(k=g.imageMetrics(a.img),g.drawImage(a.img,(e-k.width)/2,b-k.height/2),b+=4+k.height/2);n&&g.setColor(g.theme.fgH).setBgColor(g.theme.bgH).clearRect(0,h,e-1,h+4+n.length*q).drawString(n.join("\n"),e/2,h+2);g.setColor(g.theme.fg).setBgColor(g.theme.bg).drawString(r.join("\n"),
e/2,b);b+=r.length*q+32;var l=0;g.setFontAlign(0,0);m.forEach(f=>l+=16+g.stringWidth(t.translate(f)));l>e&&(g.setFont("6x8"),l=0,m.forEach(f=>l+=16+g.stringWidth(t.translate(f))));var c=(e-l)/2;m.forEach((f,w)=>{f=t.translate(f);var u=g.stringWidth(f);c+=(16+u)/2;var d=2+u/2;d=[c-d,b-12,c+d,b-12,c+d+4,b-8,c+d+4,b+8,c+d,b+12,c-d,b+12,c-d-4,b+8,c-d-4,b-8,c-d,b-12];g.setColor(w==a.selected?g.theme.bgH:g.theme.bg).fillPoly(d).setColor(w==a.selected?g.theme.fgH:g.theme.fg).drawPoly(d).drawString(f,c,b+
1);c+=(16+u)/2});Bangle.setLCDPower(1)}a||(a={});a.buttons||(a.buttons={Yes:!0,No:!1});var t=require("locale"),m=Object.keys(a.buttons);a.selected||(a.selected=0);g.clearRect(Bangle.appRect);if(!v)return Bangle.setUI(),Promise.resolve();p();return new Promise(h=>{Bangle.setUI("leftright",e=>{0>e?0<a.selected&&(a.selected--,p()):0<e?a.selected<m.length-1&&(a.selected++,p()):(E.showPrompt(),h(a.buttons[m[a.selected]]))})})})