Simplify menu_entry_get_rich_label

This commit is contained in:
twinaphex 2017-09-28 06:19:34 +02:00
parent 2f10fd14d6
commit c5255b1bff
6 changed files with 24 additions and 19 deletions

View File

@ -996,6 +996,7 @@ static void mui_render_menu_list(
for (i = 0; i < entries_end; i++) for (i = 0; i < entries_end; i++)
{ {
menu_entry_t entry;
char rich_label[255]; char rich_label[255];
char entry_value[255]; char entry_value[255];
bool entry_selected = false; bool entry_selected = false;
@ -1014,8 +1015,10 @@ static void mui_render_menu_list(
if (y > (int)height) if (y > (int)height)
break; break;
menu_entry_init(&entry);
menu_entry_get(&entry, 0, (unsigned)i, NULL, true);
menu_entry_get_value((unsigned)i, NULL, entry_value, sizeof(entry_value)); menu_entry_get_value((unsigned)i, NULL, entry_value, sizeof(entry_value));
menu_entry_get_rich_label((unsigned)i, rich_label, sizeof(rich_label)); menu_entry_get_rich_label(&entry, rich_label, sizeof(rich_label));
entry_selected = selection == i; entry_selected = selection == i;
@ -1036,6 +1039,8 @@ static void mui_render_menu_list(
menu_list_color, menu_list_color,
sublabel_color sublabel_color
); );
menu_entry_free(&entry);
} }
} }

View File

@ -566,6 +566,7 @@ static void rgui_render(void *data, bool is_idle)
for (; i < end; i++, y += FONT_HEIGHT_STRIDE) for (; i < end; i++, y += FONT_HEIGHT_STRIDE)
{ {
menu_entry_t entry;
menu_animation_ctx_ticker_t ticker; menu_animation_ctx_ticker_t ticker;
char entry_path[255]; char entry_path[255];
char entry_value[255]; char entry_value[255];
@ -586,8 +587,11 @@ static void rgui_render(void *data, bool is_idle)
entry_title_buf[0] = '\0'; entry_title_buf[0] = '\0';
type_str_buf[0] = '\0'; type_str_buf[0] = '\0';
menu_entry_init(&entry);
menu_entry_get(&entry, 0, (unsigned)i, NULL, true);
menu_entry_get_value((unsigned)i, NULL, entry_value, sizeof(entry_value)); menu_entry_get_value((unsigned)i, NULL, entry_value, sizeof(entry_value));
menu_entry_get_rich_label((unsigned)i, entry_path, sizeof(entry_path)); menu_entry_get_rich_label(&entry, entry_path, sizeof(entry_path));
ticker.s = entry_title_buf; ticker.s = entry_title_buf;
ticker.len = RGUI_TERM_WIDTH(fb_width) - (entry_spacing + 1 + 2); ticker.len = RGUI_TERM_WIDTH(fb_width) - (entry_spacing + 1 + 2);
@ -617,6 +621,8 @@ static void rgui_render(void *data, bool is_idle)
if (rgui_framebuf_data) if (rgui_framebuf_data)
blit_line(x, y, message, blit_line(x, y, message,
entry_selected ? hover_color : normal_color); entry_selected ? hover_color : normal_color);
menu_entry_free(&entry);
} }
if (menu_input_dialog_get_display_kb()) if (menu_input_dialog_get_display_kb())

View File

@ -2442,7 +2442,7 @@ static void xmb_draw_items(
ticker_limit = 70; ticker_limit = 70;
} }
menu_entry_get_rich_label((unsigned)i, ticker_str, sizeof(ticker_str)); menu_entry_get_rich_label(&entry, ticker_str, sizeof(ticker_str));
ticker.s = tmp; ticker.s = tmp;
ticker.len = ticker_limit; ticker.len = ticker_limit;

View File

@ -522,7 +522,7 @@ static int zarch_zui_render_lay_root_recent(
menu_entry_init(&entry); menu_entry_init(&entry);
menu_entry_get(&entry, 0, i, NULL, true); menu_entry_get(&entry, 0, i, NULL, true);
menu_entry_get_rich_label(i, rich_label, sizeof(rich_label)); menu_entry_get_rich_label(&entry, rich_label, sizeof(rich_label));
menu_entry_get_value(i, NULL, entry_value,sizeof(entry_value)); menu_entry_get_value(i, NULL, entry_value,sizeof(entry_value));
if (zarch_zui_list_item( if (zarch_zui_list_item(

View File

@ -103,17 +103,14 @@ void menu_entry_get_path(uint32_t i, char *s, size_t len)
strlcpy(s, entry.path, len); strlcpy(s, entry.path, len);
} }
void menu_entry_get_rich_label(uint32_t i, char *s, size_t len) void menu_entry_get_rich_label(menu_entry_t *entry, char *s, size_t len)
{ {
menu_entry_t entry; if (!entry)
return;
menu_entry_init(&entry); if (!string_is_empty(entry->rich_label))
menu_entry_get(&entry, 0, i, NULL, true); strlcpy(s, entry->rich_label, len);
if (!string_is_empty(entry.rich_label))
strlcpy(s, entry.rich_label, len);
else else
strlcpy(s, entry.path, len); strlcpy(s, entry->path, len);
} }
bool menu_entry_get_sublabel(uint32_t i, char *s, size_t len) bool menu_entry_get_sublabel(uint32_t i, char *s, size_t len)
@ -320,10 +317,7 @@ void menu_entry_get(menu_entry_t *entry, size_t stack_idx,
const char *entry_label = NULL; const char *entry_label = NULL;
menu_file_list_cbs_t *cbs = NULL; menu_file_list_cbs_t *cbs = NULL;
file_list_t *selection_buf = menu_entries_get_selection_buf_ptr(stack_idx); file_list_t *selection_buf = menu_entries_get_selection_buf_ptr(stack_idx);
file_list_t *list = selection_buf; file_list_t *list = (userdata) ? (file_list_t*)userdata : selection_buf;
if (userdata)
list = (file_list_t*)userdata;
if (!list) if (!list)
return; return;
@ -338,7 +332,7 @@ void menu_entry_get(menu_entry_t *entry, size_t stack_idx,
const char *label = NULL; const char *label = NULL;
enum msg_hash_enums enum_idx = MSG_UNKNOWN; enum msg_hash_enums enum_idx = MSG_UNKNOWN;
entry->enum_idx = cbs->enum_idx; entry->enum_idx = cbs->enum_idx;
menu_entries_get_last_stack(NULL, &label, NULL, &enum_idx, NULL); menu_entries_get_last_stack(NULL, &label, NULL, &enum_idx, NULL);

View File

@ -93,7 +93,7 @@ void menu_entry_pathdir_extensions(uint32_t i, char *s, size_t len);
void menu_entry_reset(uint32_t i); void menu_entry_reset(uint32_t i);
void menu_entry_get_rich_label(uint32_t i, char *s, size_t len); void menu_entry_get_rich_label(menu_entry_t *entry, char *s, size_t len);
bool menu_entry_get_sublabel(uint32_t i, char *s, size_t len); bool menu_entry_get_sublabel(uint32_t i, char *s, size_t len);