mirror of
https://github.com/espruino/Espruino.git
synced 2025-12-08 19:06:15 +00:00
[E_showMenu_Q3] Add "Back" on list submenu
1. Add "Back"-Button on list selection submenu inside E_showMenu 2. Regenerated E_showMenu_Q3.min.js via IDE with "Closure Simple Optimizations" 3. Add ChangeLog entry 4. Readd ChangeLog entry for #2186
This commit is contained in:
parent
7c15a764a9
commit
7070a4cc3e
@ -1,3 +1,5 @@
|
||||
Bangle.js2: Add "Back"-Button on list selection submenu inside E_showMenu
|
||||
Bangle.js2: Add ".noList" property to prevent E.showScroller inside E.showMenu
|
||||
Bangle.js2: Fix issue with E.showMenu creating a global `s` variable
|
||||
Bangle.js2: Recheck string wrapping after font change inside E.showMenu
|
||||
Bangle.js2: Double input buffer size from 1kb to 2kb
|
||||
|
||||
@ -26,6 +26,7 @@
|
||||
// show scrolling menu of options
|
||||
E.showScroller({
|
||||
h : H, c : (item.max+step-item.min)/step,
|
||||
back: show, // redraw original menu
|
||||
scrollMin : -24, scroll : -24, // title is 24px, rendered at -1
|
||||
draw : (idx, r) => {
|
||||
if (idx<0) // TITLE
|
||||
|
||||
14
libs/js/banglejs/E_showMenu_Q3.min.js
vendored
14
libs/js/banglejs/E_showMenu_Q3.min.js
vendored
@ -1,7 +1,7 @@
|
||||
(function(k){function u(a,b){var h=a.step||1;if(!a.noList&&void 0!==a.min&&void 0!==a.max&&20>(a.max-a.min)/h)E.showScroller({h:40,c:(a.max+h-a.min)/h,scrollMin:-24,scroll:-24,draw:(f,c)=>{if(0>f)return g.setFont("12x20").setFontAlign(-1,0).drawString("\x00\f\f\u0081\x00\u00ff\u00ff\u00ff\x00\x00\x00\x00\u000f\u00ff\u00ff\u00f0\x00\x00\x00\x00\u00ff\u00ff\u00ff "+b,c.x+12,c.y+40-12);g.setColor(g.theme.bg2).fillRect({x:c.x+4,y:c.y+2,w:c.w-8,h:c.h-4,r:5});f=f*h+a.min;g.setColor(g.theme.fg2).setFont("12x20").setFontAlign(-1,
|
||||
0).drawString(a.format?a.format(f):f,c.x+12,c.y+20);g.drawImage(atob(f==a.value?"FBSBAAH4AH/gHgeDgBww8MY/xmf+bH/jz/88//PP/zz/88f+Nn/mY/xjDww4AcHgeAf+AB+A":"FBSBAAH4AH/gHgeDgBwwAMYABmAAbAADwAA8AAPAADwAA8AANgAGYABjAAw4AcHgeAf+AB+A"),c.x+c.w-32,c.y+20-10)},select:function(f){if(!(0>f)){Bangle.buzz(20);a.value=a.min+f*h;if(a.onchange)a.onchange(a.value);p.scroll=n.scroll;n=E.showScroller(p)}}});else{var d=Bangle.appRect,e=a.value;g.reset().clearRect(Bangle.appRect);g.setFont("12x20").setFontAlign(0,0).drawString("\x00\f\f\u0081\x00\u00ff\u00ff\u00ff\x00\x00\x00\x00\u000f\u00ff\u00ff\u00f0\x00\x00\x00\x00\u00ff\u00ff\u00ff "+
|
||||
b,d.x+d.w/2,d.y+12);function f(){var c=d.x+d.w/2,l=12+d.y+d.h/2;g.reset().setColor(g.theme.bg2).fillRect({x:d.x+24,y:d.y+36,w:d.w-48,h:d.h-48,r:5});g.setColor(g.theme.fg2).setFontVector(30).setFontAlign(0,0).drawString(a.format?a.format(e):e,c,l);g.fillPoly([c,l-45,c+15,l-30,c-15,l-30]).fillPoly([c,l+45,c+15,l+30,c-15,l+30])}f();Bangle.setUI("updown",c=>{if(c)e-=(c||1)*(a.step||1),void 0!==a.min&&e<a.min&&(e=a.wrap?a.max:a.min),void 0!==a.max&&e>a.max&&(e=a.wrap?a.min:a.max),f();else{a.value=e;if(a.onchange)a.onchange(a.value);
|
||||
p.scroll=n.scroll;n=E.showScroller(p)}})}}if(void 0===k)return g.clearRect(Bangle.appRect),Bangle.setUI();var q=k[""]||{};q.title||(q.title="Menu");var r=q.back||k["< Back"],m=Object.keys(k).filter(a=>""!=a&&"< Back"!=a);m.forEach(a=>{a=k[a];"object"!=typeof a||"boolean"!=typeof a.value||a.format||(a.format=b=>"\x00"+atob(b?"EhKBAH//v/////////////5//x//j//H+eP+Mf/A//h//z//////////3//g":"EhKBAH//v//8AA8AA8AA8AA8AA8AA8AA8AA8AA8AA8AA8AA8AA8AA///3//g"))});var t={draw:()=>n.draw()},p={h:40,c:m.length,
|
||||
scrollMin:-24,scroll:-24,back:r,draw:(a,b)=>{if(0>a)return g.setColor(g.theme.fg).setFont("12x20").setFontAlign(-1,0).drawString("\x00\f\f\u0081\x00\u00ff\u00ff\u00ff\x00\x00\x00\x00\u000f\u00ff\u00ff\u00f0\x00\x00\x00\x00\u00ff\u00ff\u00ff "+q.title,b.x+12,b.y+40-12);g.setColor(g.theme.bg2).fillRect({x:b.x+4,y:b.y+2,w:b.w-8,h:b.h-4,r:5});g.setColor(g.theme.fg2).setFont("12x20");var h=24,d=k[m[a]];if("object"==typeof d){var e=d.value;d.format&&(e=d.format(e));g.stringMetrics(e).width>b.w/2&&(e=g.wrapString(e,
|
||||
b.w/2).join("\n"));g.setFontAlign(1,0).drawString(e,b.x+b.w-8,b.y+20);h+=g.stringWidth(e)}else"function"==typeof d&&(g.drawImage(atob("CRKBAGA4Hg8DwPB4HgcDg8PB4eHg8HAwAA=="),b.x+b.w-21,b.y+20-9),h+=16);d=g.wrapString(m[a],b.w-h);1<d.length&&(g.setFont("6x15"),d=g.wrapString(m[a],b.w-h));g.setFontAlign(-1,0).drawString(d.join("\n"),b.x+12,b.y+20)},select:function(a){if(0>a)return r&&r();var b=k[m[a]];Bangle.buzz(20);if("function"==typeof b)b(t);else if("object"==typeof b)if("number"==typeof b.value)u(b,
|
||||
m[a]);else{"boolean"==typeof b.value&&(b.value=!b.value);if(b.onchange)b.onchange(b.value);n.drawItem(a)}}};var n=E.showScroller(p);return t})
|
||||
(function(l){function v(a,b){var h=a.step||1;if(!a.noList&&void 0!==a.min&&void 0!==a.max&&20>(a.max-a.min)/h)E.showScroller({h:40,c:(a.max+h-a.min)/h,back:p,scrollMin:-24,scroll:-24,draw:function(c,d){if(0>c)return g.setFont("12x20").setFontAlign(-1,0).drawString("\x00\f\f\u0081\x00\u00ff\u00ff\u00ff\x00\x00\x00\x00\u000f\u00ff\u00ff\u00f0\x00\x00\x00\x00\u00ff\u00ff\u00ff "+b,d.x+12,d.y+40-12);g.setColor(g.theme.bg2).fillRect({x:d.x+4,y:d.y+2,w:d.w-8,h:d.h-4,r:5});c=c*h+a.min;g.setColor(g.theme.fg2).setFont("12x20").setFontAlign(-1,
|
||||
0).drawString(a.format?a.format(c):c,d.x+12,d.y+20);g.drawImage(atob(c==a.value?"FBSBAAH4AH/gHgeDgBww8MY/xmf+bH/jz/88//PP/zz/88f+Nn/mY/xjDww4AcHgeAf+AB+A":"FBSBAAH4AH/gHgeDgBwwAMYABmAAbAADwAA8AAPAADwAA8AANgAGYABjAAw4AcHgeAf+AB+A"),d.x+d.w-32,d.y+20-10)},select:function(c){if(!(0>c)){Bangle.buzz(20);a.value=a.min+c*h;if(a.onchange)a.onchange(a.value);r.scroll=n.scroll;p()}}});else{var f=function(){var c=e.x+e.w/2,d=12+e.y+e.h/2;g.reset().setColor(g.theme.bg2).fillRect({x:e.x+24,y:e.y+36,w:e.w-48,h:e.h-
|
||||
48,r:5});g.setColor(g.theme.fg2).setFontVector(30).setFontAlign(0,0).drawString(a.format?a.format(k):k,c,d);g.fillPoly([c,d-45,c+15,d-30,c-15,d-30]).fillPoly([c,d+45,c+15,d+30,c-15,d+30])},e=Bangle.appRect,k=a.value;g.reset().clearRect(Bangle.appRect);g.setFont("12x20").setFontAlign(0,0).drawString("\x00\f\f\u0081\x00\u00ff\u00ff\u00ff\x00\x00\x00\x00\u000f\u00ff\u00ff\u00f0\x00\x00\x00\x00\u00ff\u00ff\u00ff "+b,e.x+e.w/2,e.y+12);f();Bangle.setUI("updown",function(c){if(c)k-=(c||1)*(a.step||1),void 0!==
|
||||
a.min&&k<a.min&&(k=a.wrap?a.max:a.min),void 0!==a.max&&k>a.max&&(k=a.wrap?a.min:a.max),f();else{a.value=k;if(a.onchange)a.onchange(a.value);r.scroll=n.scroll;p()}})}}function p(){n=E.showScroller(r)}if(void 0===l)return g.clearRect(Bangle.appRect),Bangle.setUI();var q=l[""]||{};q.title||(q.title="Menu");var t=q.back||l["< Back"],m=Object.keys(l).filter(function(a){return""!=a&&"< Back"!=a});m.forEach(function(a){a=l[a];"object"!=typeof a||"boolean"!=typeof a.value||a.format||(a.format=function(b){return"\x00"+
|
||||
atob(b?"EhKBAH//v/////////////5//x//j//H+eP+Mf/A//h//z//////////3//g":"EhKBAH//v//8AA8AA8AA8AA8AA8AA8AA8AA8AA8AA8AA8AA8AA8AA///3//g")})});var u={draw:function(){return n.draw()}},r={h:40,c:m.length,scrollMin:-24,scroll:-24,back:t,draw:function(a,b){if(0>a)return g.setColor(g.theme.fg).setFont("12x20").setFontAlign(-1,0).drawString("\x00\f\f\u0081\x00\u00ff\u00ff\u00ff\x00\x00\x00\x00\u000f\u00ff\u00ff\u00f0\x00\x00\x00\x00\u00ff\u00ff\u00ff "+q.title,b.x+12,b.y+40-12);g.setColor(g.theme.bg2).fillRect({x:b.x+
|
||||
4,y:b.y+2,w:b.w-8,h:b.h-4,r:5});g.setColor(g.theme.fg2).setFont("12x20");var h=24,f=l[m[a]];if("object"==typeof f){var e=f.value;f.format&&(e=f.format(e));g.stringMetrics(e).width>b.w/2&&(e=g.wrapString(e,b.w/2).join("\n"));g.setFontAlign(1,0).drawString(e,b.x+b.w-8,b.y+20);h+=g.stringWidth(e)}else"function"==typeof f&&(g.drawImage(atob("CRKBAGA4Hg8DwPB4HgcDg8PB4eHg8HAwAA=="),b.x+b.w-21,b.y+20-9),h+=16);f=g.wrapString(m[a],b.w-h);1<f.length&&(g.setFont("6x15"),f=g.wrapString(m[a],b.w-h));g.setFontAlign(-1,
|
||||
0).drawString(f.join("\n"),b.x+12,b.y+20)},select:function(a){if(0>a)return t&&t();var b=l[m[a]];Bangle.buzz(20);if("function"==typeof b)b(u);else if("object"==typeof b)if("number"==typeof b.value)v(b,m[a]);else{"boolean"==typeof b.value&&(b.value=!b.value);if(b.onchange)b.onchange(b.value);n.drawItem(a)}}},n;p();return u});
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user