From fa6f7214d5730ac6967a6d72c29c3fef3bd3e285 Mon Sep 17 00:00:00 2001 From: kyleplo <31634240+kyleplo@users.noreply.github.com> Date: Sat, 15 Jan 2022 17:30:27 -0500 Subject: [PATCH] Update touchmenu.boot.js --- apps/touchmenu/touchmenu.boot.js | 52 +++++++++++++++++--------------- 1 file changed, 28 insertions(+), 24 deletions(-) diff --git a/apps/touchmenu/touchmenu.boot.js b/apps/touchmenu/touchmenu.boot.js index 93a0ba1c8..6141c6a00 100644 --- a/apps/touchmenu/touchmenu.boot.js +++ b/apps/touchmenu/touchmenu.boot.js @@ -1,10 +1,8 @@ E.showMenu = function(items) { - const gw = g.getWidth(); - const gh = g.getHeight(); + var ar = Bangle.appRect; Bangle.removeAllListeners("drag"); if(!items){ - delete m; - g.clearRect(0, 30, gw, gh - 30); + g.clearRect(ar.x, ar.y, ar.x2, ar.y2); return false; } var loc = require("locale"); @@ -26,45 +24,45 @@ E.showMenu = function(items) { draw: () => { g.reset().setFont('12x20'); m.info.predraw(g); - g.setColor(m.info.cB).fillRect(0, 50, gw, gh - 30).setColor(m.info.cF); + g.setColor(m.info.cB).fillRect(ar.x, ar.y + 20, ar.x2, ar.y2).setColor(m.info.cF); m.items.forEach((e, i) => { - const s = (i * 48) - m.scroll + 50; - if(s < 30 || s > gh - 74){ + const s = (i * 48) - m.scroll + ar.y + 20; + if(s < ar.y || s > ar.y2 - 44){ return false; } if(i == m.selected){ - g.setColor(m.info.cHB).fillRect(0, s, gw, Math.min(s + 48, gh - 30)).setColor(m.info.cHF); + g.setColor(m.info.cHB).fillRect(ar.x, s, ar.x2, Math.min(s + 48, ar.y2)).setColor(m.info.cHF); }else{ g.setColor(m.info.cF); } - g.drawString(e.title, (e.icon ? 30 : 10), s + 5); + g.drawString(e.title, ar.x + (e.icon ? 30 : 10), s + 5); if(e.icon){ - g.drawImage(e.icon, 5, s + 5); + g.drawImage(e.icon, ar.x + 5, s + 5); } - if(e.type && s < gh - 72){ + if(e.type && s < ar.y2 - 42){ if(e.format){ - g.setFontAlign(1, -1, 0).drawString(e.format(e.value), gw - 10, s + 25).setFontAlign(-1, -1, 0); + g.setFontAlign(1, -1, 0).drawString(e.format(e.value), ar.x2 - 10, s + 25).setFontAlign(-1, -1, 0); }else{ - g.setFontAlign(1, -1, 0).drawString(e.value, gw - 10, s + 25).setFontAlign(-1, -1, 0); + g.setFontAlign(1, -1, 0).drawString(e.value, ar.x2 - 10, s + 25).setFontAlign(-1, -1, 0); } } }); - g.setColor(m.info.cAB).fillRect(0, 30, gw, 50); - g.setColor(m.info.cAF).drawString(m.info.title, (m.back ? 30 : 10), 32); + g.setColor(m.info.cAB).fillRect(ar.x, ar.y, ar.x2, ar.y + 20); + g.setColor(m.info.cAF).drawString(m.info.title, ar.x + (m.back ? 30 : 10), ar.y + 2); if(m.back){ - g.drawLine(5, 40, 20, 40); - g.drawLine(5, 40, 15, 33); - g.drawLine(5, 40, 15, 47); + g.drawLine(ar.x + 5, ar.y + 10, ar.x + 20, ar.y + 10); + g.drawLine(ar.x + 5, ar.y + 10, ar.x + 15, ar.y + 17); + g.drawLine(ar.x + 5, ar.y + 10, ar.x + 15, ar.y + 3); } m.info.preflip(g, m.scroll > 0, m.scroll < (m.items.length - 1) * 48); }, select: (x, y) => { - if(m.selected == -1 || m.selected !== Math.max(Math.min(Math.floor((y + m.scroll - 50) / 48), m.items.length - 1), 0)){ + if(m.selected == -1 || m.selected !== Math.max(Math.min(Math.floor((y + m.scroll - ar.y - 20) / 48), m.items.length - 1), 0)){ if(y){ - if(y < 50 || y > gh - 30){ + if(y < ar.y + 20 || y > ar.y2){ return false; }else{ - m.selected = Math.max(Math.min(Math.floor((y + m.scroll - 50) / 48), m.items.length - 1), 0); + m.selected = Math.max(Math.min(Math.floor((y + m.scroll - ar.y - 20) / 48), m.items.length - 1), 0); } }else{ m.selected = Math.floor(m.scroll / 48); @@ -76,7 +74,7 @@ E.showMenu = function(items) { m.items[m.selected].onchange(m.items[m.selected].value); m.draw(); }else if(m.items[m.selected].type && m.items[m.selected].type === "number"){ - if(x && x < (gw / 2)){ + if(x && x < ((ar.x + ar.x2) / 2)){ m.items[m.selected].value = m.items[m.selected].value - (m.items[m.selected].step ? m.items[m.selected].step : 1); }else{ m.items[m.selected].value = m.items[m.selected].value + (m.items[m.selected].step ? m.items[m.selected].step : 1); @@ -99,7 +97,7 @@ E.showMenu = function(items) { move: d => { m.scroll += (d * 48); m.scroll = Math.min(Math.max(m.scroll, 0), (m.items.length - 1) * 48); - m.selected = Math.max(Math.min(Math.floor((m.scroll - 50) / 48), m.items.length - 1), 0); + m.selected = Math.max(Math.min(Math.floor((m.scroll - ar.y - 20) / 48), m.items.length - 1), 0); m.draw(); }, }; @@ -127,7 +125,7 @@ E.showMenu = function(items) { return false; } if(d.dx == 0 && d.dy == 0){ - if(d.x < 30 && d.y < 50){ + if(d.x < ar.x + 30 && d.y < ar.y + 20){ m.back(); return false; } @@ -195,3 +193,9 @@ E.showPrompt = function (e, t){ E.showMenu(menu); }); }; + +const bsl = Bangle.showLauncher; +Bangle.showLauncher = function (){ + Bangle.removeAllListeners("drag"); + bsl(); +};