mirror of https://github.com/espruino/BangleApps
Merge pull request #3531 from bobrippling/fix/promenu-scroller
promenu: fix behaviour with scroller & image stringspull/3533/head
commit
c922e870d5
|
@ -28,6 +28,9 @@ E.showMenu = function (items) {
|
||||||
y += 22;
|
y += 22;
|
||||||
var lastIdx = 0;
|
var lastIdx = 0;
|
||||||
var selectEdit = undefined;
|
var selectEdit = undefined;
|
||||||
|
var scroller = {
|
||||||
|
scroll: selected,
|
||||||
|
};
|
||||||
var l = {
|
var l = {
|
||||||
draw: function (rowmin, rowmax) {
|
draw: function (rowmin, rowmax) {
|
||||||
var rows = 0 | Math.min((y2 - y) / fontHeight, menuItems.length);
|
var rows = 0 | Math.min((y2 - y) / fontHeight, menuItems.length);
|
||||||
|
@ -76,10 +79,11 @@ E.showMenu = function (items) {
|
||||||
v = "";
|
v = "";
|
||||||
}
|
}
|
||||||
{
|
{
|
||||||
if (name.length >= 17 - v.length && typeof item === "object") {
|
var vplain = v.indexOf("\0") < 0;
|
||||||
|
if (vplain && name.length >= 17 - v.length && typeof item === "object") {
|
||||||
g.drawString(name.substring(0, 12 - v.length) + "...", x + 3.7, iy + 2.7);
|
g.drawString(name.substring(0, 12 - v.length) + "...", x + 3.7, iy + 2.7);
|
||||||
}
|
}
|
||||||
else if (name.length >= 15) {
|
else if (vplain && name.length >= 15) {
|
||||||
g.drawString(name.substring(0, 15) + "...", x + 3.7, iy + 2.7);
|
g.drawString(name.substring(0, 15) + "...", x + 3.7, iy + 2.7);
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
|
@ -138,9 +142,11 @@ E.showMenu = function (items) {
|
||||||
else {
|
else {
|
||||||
var lastSelected = selected;
|
var lastSelected = selected;
|
||||||
selected = (selected + dir + menuItems.length) % menuItems.length;
|
selected = (selected + dir + menuItems.length) % menuItems.length;
|
||||||
|
scroller.scroll = selected;
|
||||||
l.draw(Math.min(lastSelected, selected), Math.max(lastSelected, selected));
|
l.draw(Math.min(lastSelected, selected), Math.max(lastSelected, selected));
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
scroller: scroller,
|
||||||
};
|
};
|
||||||
l.draw();
|
l.draw();
|
||||||
var back = options.back;
|
var back = options.back;
|
||||||
|
|
|
@ -35,6 +35,10 @@ E.showMenu = (items?: Menu): MenuInstance => {
|
||||||
let lastIdx = 0;
|
let lastIdx = 0;
|
||||||
let selectEdit: undefined | ActualMenuItem = undefined;
|
let selectEdit: undefined | ActualMenuItem = undefined;
|
||||||
|
|
||||||
|
const scroller = {
|
||||||
|
scroll: selected,
|
||||||
|
};
|
||||||
|
|
||||||
const l = {
|
const l = {
|
||||||
draw: (rowmin?: number, rowmax?: number) => {
|
draw: (rowmin?: number, rowmax?: number) => {
|
||||||
let rows = 0|Math.min((y2 - y) / fontHeight, menuItems.length);
|
let rows = 0|Math.min((y2 - y) / fontHeight, menuItems.length);
|
||||||
|
@ -83,9 +87,10 @@ E.showMenu = (items?: Menu): MenuInstance => {
|
||||||
}
|
}
|
||||||
|
|
||||||
/*???*/{
|
/*???*/{
|
||||||
if(name.length >= 17 - v.length && typeof item === "object"){
|
const vplain = v.indexOf("\0") < 0;
|
||||||
|
if(vplain && name.length >= 17 - v.length && typeof item === "object"){
|
||||||
g.drawString(name.substring(0, 12 - v.length) + "...", x + 3.7, iy + 2.7);
|
g.drawString(name.substring(0, 12 - v.length) + "...", x + 3.7, iy + 2.7);
|
||||||
}else if(name.length >= 15){
|
}else if(vplain && name.length >= 15){
|
||||||
g.drawString(name.substring(0, 15) + "...", x + 3.7, iy + 2.7);
|
g.drawString(name.substring(0, 15) + "...", x + 3.7, iy + 2.7);
|
||||||
}else{
|
}else{
|
||||||
g.drawString(name, x + 3.7, iy + 2.7);
|
g.drawString(name, x + 3.7, iy + 2.7);
|
||||||
|
@ -156,9 +161,11 @@ E.showMenu = (items?: Menu): MenuInstance => {
|
||||||
} else {
|
} else {
|
||||||
const lastSelected = selected;
|
const lastSelected = selected;
|
||||||
selected = (selected + dir + /*keep +ve*/menuItems.length) % menuItems.length;
|
selected = (selected + dir + /*keep +ve*/menuItems.length) % menuItems.length;
|
||||||
|
scroller.scroll = selected;
|
||||||
l.draw(Math.min(lastSelected, selected), Math.max(lastSelected, selected));
|
l.draw(Math.min(lastSelected, selected), Math.max(lastSelected, selected));
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
scroller,
|
||||||
};
|
};
|
||||||
|
|
||||||
l.draw();
|
l.draw();
|
||||||
|
|
Loading…
Reference in New Issue