1
0
Fork 0

promenu: don't show "..." if the string isn't truncated

master
Rob Pilling 2024-09-23 18:26:22 +01:00
parent d1de2fa67c
commit 7c2f191fa7
4 changed files with 35 additions and 18 deletions

View File

@ -10,3 +10,4 @@
0.06: Fix lower bounding of numeric values
0.07: Fix bug with alarms app (scroller) and correctly show images
0.08: Fix bug with modifying menu - allows hadash to save scroll positions
0.09: Don't show "..." if a string isn't truncated (i.e. scrolled)

View File

@ -43,17 +43,21 @@ E.showMenu = function (items) {
.setColor(hl ? g.theme.fgH : g.theme.fg)
.setFontAlign(-1, -1);
var vplain = v.indexOf("\0") < 0;
var truncated = true;
if (vplain && name.length >= 17 - v.length && typeof item === "object") {
g.drawString(name.substring(nameScroll, nameScroll + 12 - v.length) + "...", x + 3.7, y + 2.7);
var truncated = false;
var drawn = false;
if (vplain) {
var isFunc = typeof item === "function";
var lim = isFunc ? 15 : 17 - v.length;
if (name.length >= lim) {
var len = isFunc ? 15 : 12 - v.length;
var dots = name.length - nameScroll > len ? "..." : "";
g.drawString(name.substring(nameScroll, nameScroll + len) + dots, x + 3.7, y + 2.7);
drawn = true;
truncated = true;
}
}
else if (vplain && name.length >= 15) {
g.drawString(name.substring(nameScroll, nameScroll + 15) + "...", x + 3.7, y + 2.7);
}
else {
if (!drawn)
g.drawString(name, x + 3.7, y + 2.7);
truncated = false;
}
var xo = x2;
if (selectEdit && idx === selected) {
xo -= 24 + 1;

View File

@ -64,15 +64,27 @@ E.showMenu = (items?: Menu): MenuInstance => {
.setFontAlign(-1, -1);
const vplain = v.indexOf("\0") < 0;
let truncated = true;
if(vplain && name.length >= 17 - v.length && typeof item === "object"){
g.drawString(name.substring(nameScroll, nameScroll + 12 - v.length) + "...", x + 3.7, y + 2.7);
}else if(vplain && name.length >= 15){
g.drawString(name.substring(nameScroll, nameScroll + 15) + "...", x + 3.7, y + 2.7);
}else{
g.drawString(name, x + 3.7, y + 2.7);
truncated = false;
let truncated = false;
let drawn = false;
if(vplain){
const isFunc = typeof item === "function";
const lim = isFunc ? 15 : 17 - v.length;
if(name.length >= lim){
const len = isFunc ? 15 : 12 - v.length;
const dots = name.length - nameScroll > len ? "..." : "";
g.drawString(
name.substring(nameScroll, nameScroll + len) + dots,
x + 3.7,
y + 2.7
);
drawn = true;
truncated = true;
}
}
if(!drawn)
g.drawString(name, x + 3.7, y + 2.7);
let xo = x2;
if (selectEdit && idx === selected) {

View File

@ -1,7 +1,7 @@
{
"id": "promenu",
"name": "Pro Menu",
"version": "0.08",
"version": "0.09",
"description": "Replace the built in menu function. Supports Bangle.js 1 and Bangle.js 2.",
"icon": "icon.png",
"type": "bootloader",