From: notaz Date: Sat, 10 Dec 2011 23:32:30 +0000 (+0000) Subject: menu: limit enum text length X-Git-Tag: v1.85~118 X-Git-Url: https://notaz.gp2x.de/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=3e74fc0b385bd4614a0d7fbc9ab3ad83414bc443;p=picodrive.git menu: limit enum text length git-svn-id: file:///home/notaz/opt/svn/PicoDrive@939 be3aeb3a-fb24-0410-a615-afba39da0efa --- diff --git a/platform/common/menu.c b/platform/common/menu.c index 1513d395..d76eda43 100644 --- a/platform/common/menu.c +++ b/platform/common/menu.c @@ -482,7 +482,7 @@ static void me_draw(const menu_entry *entries, int sel, void (*draw_more)(void)) for (ent = entries; ent->name; ent++) { const char **names; - int len; + int len, leftname_end = 0; if (!ent->enabled) continue; @@ -492,8 +492,10 @@ static void me_draw(const menu_entry *entries, int sel, void (*draw_more)(void)) if (ent->generate_name) name = ent->generate_name(ent->id, &offs); } - if (name != NULL) + if (name != NULL) { text_out16(x, y, name); + leftname_end = x + (strlen(name) + 1) * me_mfont_w; + } switch (ent->beh) { case MB_NONE: @@ -516,13 +518,15 @@ static void me_draw(const menu_entry *entries, int sel, void (*draw_more)(void)) break; case MB_OPT_ENUM: names = (const char **)ent->data; - offs = 0; for (i = 0; names[i] != NULL; i++) { + offs = x + col2_offs; len = strlen(names[i]); if (len > 10) - offs = 10 - len - 2; + offs += (10 - len - 2) * me_mfont_w; + if (offs < leftname_end) + offs = leftname_end; if (i == *(unsigned char *)ent->var) { - text_out16(x + col2_offs + offs * me_mfont_w, y, "%s", names[i]); + text_out16(offs, y, "%s", names[i]); break; } }