Espruino/libs/js/pixljs/E_showPrompt.min.js
2023-06-13 09:22:21 +01:00

3 lines
1.3 KiB
JavaScript

(function(q,a){function m(){g.clear(1);g.setFontAlign(0,0);var e=g.getWidth(),k=g.getHeight();if(a.title){g.drawString(a.title,e/2,4);var h=(g.stringWidth(a.title)+16)/2;g.fillRect(e/2-h,8,e/2+h,8)}h=q.split("\n");var t=(k-6*h.length)/2;h.forEach((f,n)=>g.drawString(f,e/2,t+6*n));var r=0;l.forEach(f=>r+=10+g.stringWidth(f));var b=(e-r)/2,d=k-7;l.forEach((f,n)=>{var p=g.stringWidth(f);b+=(10+p)/2;var c=2+p/2;c=[b-c,d-6,b+c,d-6,b+c+2,d-4,b+c+2,d+4,b+c,d+6,b-c,d+6,b-c-2,d+4,
b-c-2,d-4,b-c,d-6];g.drawPoly(c);n==a.selected&&(g.setColor(1),g.fillPoly(c),g.setColor(0));g.drawString(f,b,d+1);g.setColor(1);b+=(10+p)/2});g.setColor(1);g.drawImage(E.toString(8,8,1,16,48,112,254,112,48,16,16),0,4);g.drawImage(E.toString(8,8,1,16,24,28,30,254,28,24,16),0,k-12);g.drawImage(E.toString(16,8,1,103,160,148,32,132,32,103,32,20,32,148,32,103,188,0,0),e-16,k-8);g.flip()}a||(a={});a.buttons||(a.buttons={Yes:!0,No:!1});var l=Object.keys(a.buttons);a.selected||(a.selected=0);Pixl.btnWatches&&
(Pixl.btnWatches.forEach(clearWatch),Pixl.btnWatches=void 0);if(!q)return g.clear(1),g.flip(),Promise.resolve();m();return new Promise(e=>{Pixl.btnWatches=[setWatch(function(){0<a.selected&&(a.selected--,m())},BTN1,{repeat:1}),setWatch(function(){a.selected<l.length-1&&(a.selected++,m())},BTN4,{repeat:1}),setWatch(function(){E.showPrompt();e(a.buttons[l[a.selected]])},BTN3,{repeat:1})]})})