mirror of
https://github.com/libretro/RetroArch
synced 2025-04-02 07:20:34 +00:00
(GLUI) Improve word wrapping with a better estimation of the glyph width
This commit is contained in:
parent
dc4140a00b
commit
b0a51d79ee
@ -98,6 +98,7 @@ typedef struct mui_handle
|
|||||||
unsigned icon_size;
|
unsigned icon_size;
|
||||||
unsigned margin;
|
unsigned margin;
|
||||||
unsigned glyph_width;
|
unsigned glyph_width;
|
||||||
|
unsigned glyph_width2;
|
||||||
char box_message[1024];
|
char box_message[1024];
|
||||||
bool mouse_show;
|
bool mouse_show;
|
||||||
|
|
||||||
@ -546,7 +547,7 @@ static void compute_entries_box(mui_handle_t* mui, int width)
|
|||||||
|
|
||||||
if (menu_entry_get_sublabel(i, sublabel_str, sizeof(sublabel_str)))
|
if (menu_entry_get_sublabel(i, sublabel_str, sizeof(sublabel_str)))
|
||||||
{
|
{
|
||||||
word_wrap(sublabel_str, sublabel_str, (int)((usable_width/0.75) / mui->glyph_width));
|
word_wrap(sublabel_str, sublabel_str, (int)(usable_width / mui->glyph_width2));
|
||||||
lines = count_lines(sublabel_str);
|
lines = count_lines(sublabel_str);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -686,7 +687,7 @@ static void mui_render_label_value(mui_handle_t *mui, mui_node_t *node,
|
|||||||
|
|
||||||
if (menu_entry_get_sublabel(i, sublabel_str, sizeof(sublabel_str)))
|
if (menu_entry_get_sublabel(i, sublabel_str, sizeof(sublabel_str)))
|
||||||
{
|
{
|
||||||
word_wrap(sublabel_str, sublabel_str, (int)((usable_width/0.75) / mui->glyph_width));
|
word_wrap(sublabel_str, sublabel_str, (int)(usable_width / mui->glyph_width2));
|
||||||
|
|
||||||
menu_display_draw_text(mui->font2, sublabel_str,
|
menu_display_draw_text(mui->font2, sublabel_str,
|
||||||
mui->margin,
|
mui->margin,
|
||||||
@ -1441,6 +1442,7 @@ static void mui_layout(mui_handle_t *mui)
|
|||||||
|
|
||||||
/* we assume the average glyph aspect ratio is close to 3:4 */
|
/* we assume the average glyph aspect ratio is close to 3:4 */
|
||||||
mui->glyph_width = new_font_size * 3/4;
|
mui->glyph_width = new_font_size * 3/4;
|
||||||
|
mui->glyph_width2 = new_font_size2 * 3/4;
|
||||||
|
|
||||||
mui->font = menu_display_font(APPLICATION_SPECIAL_DIRECTORY_ASSETS_MATERIALUI_FONT,
|
mui->font = menu_display_font(APPLICATION_SPECIAL_DIRECTORY_ASSETS_MATERIALUI_FONT,
|
||||||
new_font_size);
|
new_font_size);
|
||||||
@ -1456,6 +1458,15 @@ static void mui_layout(mui_handle_t *mui)
|
|||||||
if (m_width)
|
if (m_width)
|
||||||
mui->glyph_width = m_width;
|
mui->glyph_width = m_width;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (mui->font2) /* calculate a more realistic ticker_limit */
|
||||||
|
{
|
||||||
|
unsigned m_width2 =
|
||||||
|
font_driver_get_message_width(mui->font2, "a", 1, 1);
|
||||||
|
|
||||||
|
if (m_width2)
|
||||||
|
mui->glyph_width2 = m_width2;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
static void *mui_init(void **userdata)
|
static void *mui_init(void **userdata)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user