mirror of
https://github.com/libretro/RetroArch
synced 2025-03-29 22:20:21 +00:00
Pass userdata pointer to list_insert callback
This commit is contained in:
parent
b42149c826
commit
d6538bb7ae
@ -639,7 +639,8 @@ static void rmenu_xui_navigation_alphabet(size_t *ptr_out)
|
||||
XuiListSetCurSelVisible(m_menulist, *ptr_out);
|
||||
}
|
||||
|
||||
static void rmenu_xui_list_insert(file_list_t *list,
|
||||
static void rmenu_xui_list_insert(void *data,
|
||||
file_list_t *list,
|
||||
const char *path, const char *, size_t list_size)
|
||||
{
|
||||
wchar_t buf[PATH_MAX_LENGTH] = {0};
|
||||
|
@ -2253,26 +2253,21 @@ static void xmb_navigation_alphabet(size_t *unused)
|
||||
xmb_selection_pointer_changed(xmb, true);
|
||||
}
|
||||
|
||||
static void xmb_list_insert(file_list_t *list,
|
||||
static void xmb_list_insert(void *userdata,
|
||||
file_list_t *list,
|
||||
const char *path, const char *unused, size_t list_size)
|
||||
{
|
||||
size_t selection;
|
||||
int current = 0;
|
||||
int i = list_size;
|
||||
xmb_node_t *node = NULL;
|
||||
xmb_handle_t *xmb = NULL;
|
||||
menu_handle_t *menu = menu_driver_get_ptr();
|
||||
xmb_handle_t *xmb = (xmb_handle_t*)userdata;
|
||||
|
||||
if (!menu)
|
||||
if (!xmb || !list)
|
||||
return;
|
||||
if (!menu_navigation_ctl(MENU_NAVIGATION_CTL_GET_SELECTION, &selection))
|
||||
return;
|
||||
|
||||
xmb = (xmb_handle_t*)menu->userdata;
|
||||
|
||||
if (!list || !xmb)
|
||||
return;
|
||||
|
||||
node = (xmb_node_t*)menu_entries_get_userdata_at_offset(list, i);
|
||||
|
||||
if (!node)
|
||||
|
@ -154,6 +154,15 @@ void init_menu(void)
|
||||
retro_fail(1, "init_menu()");
|
||||
}
|
||||
|
||||
void menu_driver_list_insert(file_list_t *list, const char *path,
|
||||
const char *label, size_t idx)
|
||||
{
|
||||
const menu_ctx_driver_t *driver = menu_ctx_driver_get_ptr();
|
||||
|
||||
if (driver->list_insert)
|
||||
driver->list_insert(menu_driver_data ? menu_driver_data->userdata : NULL,
|
||||
list, path, label, idx);
|
||||
}
|
||||
|
||||
void menu_driver_list_free(file_list_t *list, size_t idx, size_t list_size)
|
||||
{
|
||||
|
@ -269,7 +269,8 @@ typedef struct menu_ctx_driver
|
||||
void (*navigation_descend_alphabet)(size_t *);
|
||||
void (*navigation_ascend_alphabet)(size_t *);
|
||||
bool (*lists_init)(void*);
|
||||
void (*list_insert)(file_list_t *list, const char *, const char *, size_t);
|
||||
void (*list_insert)(void *userdata,
|
||||
file_list_t *list, const char *, const char *, size_t);
|
||||
void (*list_free)(file_list_t *list, size_t, size_t);
|
||||
void (*list_clear)(file_list_t *list);
|
||||
void (*list_cache)(void *data, menu_list_type_t, unsigned);
|
||||
@ -370,6 +371,9 @@ int menu_driver_pointer_tap(unsigned x, unsigned y, unsigned ptr,
|
||||
menu_file_list_cbs_t *cbs,
|
||||
menu_entry_t *entry, unsigned action);
|
||||
|
||||
void menu_driver_list_insert(file_list_t *list, const char *path,
|
||||
const char *label, size_t idx);
|
||||
|
||||
void menu_driver_navigation_clear(bool pending_push);
|
||||
|
||||
/* HACK */
|
||||
|
@ -587,8 +587,7 @@ void menu_entries_push(file_list_t *list, const char *path, const char *label,
|
||||
|
||||
idx = list->size - 1;
|
||||
|
||||
if (driver->list_insert)
|
||||
driver->list_insert(list, path, label, idx);
|
||||
menu_driver_list_insert(list, path, label, idx);
|
||||
|
||||
file_list_free_actiondata(list, idx);
|
||||
cbs = (menu_file_list_cbs_t*)
|
||||
|
Loading…
x
Reference in New Issue
Block a user