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);
|
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)
|
const char *path, const char *, size_t list_size)
|
||||||
{
|
{
|
||||||
wchar_t buf[PATH_MAX_LENGTH] = {0};
|
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);
|
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)
|
const char *path, const char *unused, size_t list_size)
|
||||||
{
|
{
|
||||||
size_t selection;
|
size_t selection;
|
||||||
int current = 0;
|
int current = 0;
|
||||||
int i = list_size;
|
int i = list_size;
|
||||||
xmb_node_t *node = NULL;
|
xmb_node_t *node = NULL;
|
||||||
xmb_handle_t *xmb = NULL;
|
xmb_handle_t *xmb = (xmb_handle_t*)userdata;
|
||||||
menu_handle_t *menu = menu_driver_get_ptr();
|
|
||||||
|
|
||||||
if (!menu)
|
if (!xmb || !list)
|
||||||
return;
|
return;
|
||||||
if (!menu_navigation_ctl(MENU_NAVIGATION_CTL_GET_SELECTION, &selection))
|
if (!menu_navigation_ctl(MENU_NAVIGATION_CTL_GET_SELECTION, &selection))
|
||||||
return;
|
return;
|
||||||
|
|
||||||
xmb = (xmb_handle_t*)menu->userdata;
|
|
||||||
|
|
||||||
if (!list || !xmb)
|
|
||||||
return;
|
|
||||||
|
|
||||||
node = (xmb_node_t*)menu_entries_get_userdata_at_offset(list, i);
|
node = (xmb_node_t*)menu_entries_get_userdata_at_offset(list, i);
|
||||||
|
|
||||||
if (!node)
|
if (!node)
|
||||||
|
|
|
@ -154,6 +154,15 @@ void init_menu(void)
|
||||||
retro_fail(1, "init_menu()");
|
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)
|
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_descend_alphabet)(size_t *);
|
||||||
void (*navigation_ascend_alphabet)(size_t *);
|
void (*navigation_ascend_alphabet)(size_t *);
|
||||||
bool (*lists_init)(void*);
|
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_free)(file_list_t *list, size_t, size_t);
|
||||||
void (*list_clear)(file_list_t *list);
|
void (*list_clear)(file_list_t *list);
|
||||||
void (*list_cache)(void *data, menu_list_type_t, unsigned);
|
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_file_list_cbs_t *cbs,
|
||||||
menu_entry_t *entry, unsigned action);
|
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);
|
void menu_driver_navigation_clear(bool pending_push);
|
||||||
|
|
||||||
/* HACK */
|
/* HACK */
|
||||||
|
|
|
@ -587,8 +587,7 @@ void menu_entries_push(file_list_t *list, const char *path, const char *label,
|
||||||
|
|
||||||
idx = list->size - 1;
|
idx = list->size - 1;
|
||||||
|
|
||||||
if (driver->list_insert)
|
menu_driver_list_insert(list, path, label, idx);
|
||||||
driver->list_insert(list, path, label, idx);
|
|
||||||
|
|
||||||
file_list_free_actiondata(list, idx);
|
file_list_free_actiondata(list, idx);
|
||||||
cbs = (menu_file_list_cbs_t*)
|
cbs = (menu_file_list_cbs_t*)
|
||||||
|
|
Loading…
Reference in New Issue