Espruino/libs/js/banglejs/E_showScroller.min.js
Gordon Williams 95ea8838ff Bangle.js1: Add 'back' option to E.showScroller and Bangle.setUI
Bangle.js1: setUI button handlers now work on falling edge
            Bangle.js: Add setUI custom 'swipe' handler
2022-03-02 15:41:41 +00:00

3 lines
1.1 KiB
JavaScript

(function(a){if(!a)return Bangle.setUI();var m=Bangle.appRect.w,h=Bangle.appRect.h,b=Bangle.appRect.x,c=Bangle.appRect.y,e={scroll:0|a.scroll,draw:function(f){g.reset();var d=Math.floor((h-a.h)/2)-e.scroll*a.h,k=d+a.c*a.h;k<=h&&(d+=h-k);0<d&&(d=0);k=d;for(var l=0;l<a.c;l++)(void 0===f||f===l)&&d>-a.h+1&&d<h&&(g.setColor(l==e.scroll?g.theme.fgH:g.theme.fg).setBgColor(l==e.scroll?g.theme.bgH:g.theme.bg).setClipRect(b,c+Math.max(0,d),b+m-1,c+Math.min(h,d+a.h)-1),a.draw(l,{x:b,
y:c+d,w:m,h:a.h},l==e.scroll)||l==e.scroll&&g.setColor(g.theme.fgH).drawRect(b,c+d,b+m-1,c+d+a.h-1).drawRect(b+1,c+d+1,b+m-2,c+d+a.h-2)),d+=a.h;g.setClipRect(b,c,b+m-1,c+h-1);f=m/2;0>k&&(k=[b+f,c,b+f-14,c+14,b+f+14,c+14],g.setColor(g.theme.fg).fillPoly(k).setColor(g.theme.bg).drawPoly(k,!0));d>h&&(k=[b+f,c+h,b+f-14,c+h-14,b+f+14,c+h-14],g.setColor(g.theme.fg).fillPoly(k).setColor(g.theme.bg).drawPoly(k,!0))},drawItem:f=>draw(f)};g.reset().clearRect(b,c,b+m-1,c+h-1);e.draw();Bangle.setUI({mode:"updown",
back:a.back},f=>{f?(e.scroll+=f,0>e.scroll&&(e.scroll=a.c-1),e.scroll>=a.c&&(e.scroll=0),e.draw()):a.select(e.scroll)});return e})