mirror of
https://github.com/libretro/RetroArch
synced 2025-03-03 04:14:00 +00:00
(XMB) Split xmb_populate_entries in two functions
This commit is contained in:
parent
ef1b06d800
commit
9a261d36c0
@ -744,8 +744,7 @@ static void xmb_set_title(void)
|
||||
}
|
||||
}
|
||||
|
||||
static void xmb_populate_entries(void *data, const char *path,
|
||||
const char *label, unsigned k)
|
||||
static void xmb_list_open()
|
||||
{
|
||||
int dir;
|
||||
unsigned j;
|
||||
@ -754,36 +753,40 @@ static void xmb_populate_entries(void *data, const char *path,
|
||||
if (!xmb)
|
||||
return;
|
||||
|
||||
xmb_set_title();
|
||||
dir = driver.menu->cat_selection_ptr > xmb->cat_selection_ptr_old ? 1 : -1;
|
||||
|
||||
if (driver.menu->cat_selection_ptr != xmb->active_category_old)
|
||||
xmb->active_category += dir;
|
||||
|
||||
for (j = 0; j < xmb->num_categories; j++)
|
||||
{
|
||||
dir = driver.menu->cat_selection_ptr > xmb->cat_selection_ptr_old ? 1 : -1;
|
||||
float ia, iz;
|
||||
xmb_node_t *node = j ? xmb_node_for_core(j-1) : &xmb->settings_node;
|
||||
|
||||
xmb->active_category += dir;
|
||||
if (!node)
|
||||
continue;
|
||||
|
||||
for (j = 0; j < xmb->num_categories; j++)
|
||||
{
|
||||
float ia, iz;
|
||||
xmb_node_t *node = j ? xmb_node_for_core(j-1) : &xmb->settings_node;
|
||||
|
||||
if (!node)
|
||||
continue;
|
||||
|
||||
ia = (j == xmb->active_category) ? xmb->c_active_alpha : xmb->c_passive_alpha;
|
||||
iz = (j == xmb->active_category) ? xmb->c_active_zoom : xmb->c_passive_zoom;
|
||||
add_tween(XMB_DELAY, ia, &node->alpha, &inOutQuad, NULL);
|
||||
add_tween(XMB_DELAY, iz, &node->zoom, &inOutQuad, NULL);
|
||||
}
|
||||
|
||||
add_tween(XMB_DELAY, xmb->hspacing*-(float)driver.menu->cat_selection_ptr, &xmb->categories_x, &inOutQuad, NULL);
|
||||
dir = driver.menu->cat_selection_ptr > xmb->cat_selection_ptr_old ? 1 : -1;
|
||||
xmb_list_switch_old(xmb->selection_buf_old, dir, xmb->selection_ptr_old);
|
||||
xmb_list_switch_new(driver.menu->menu_list->selection_buf, dir, driver.menu->selection_ptr);
|
||||
xmb->active_category_old = driver.menu->cat_selection_ptr;
|
||||
return;
|
||||
ia = (j == xmb->active_category) ? xmb->c_active_alpha : xmb->c_passive_alpha;
|
||||
iz = (j == xmb->active_category) ? xmb->c_active_zoom : xmb->c_passive_zoom;
|
||||
add_tween(XMB_DELAY, ia, &node->alpha, &inOutQuad, NULL);
|
||||
add_tween(XMB_DELAY, iz, &node->zoom, &inOutQuad, NULL);
|
||||
}
|
||||
|
||||
add_tween(XMB_DELAY, xmb->hspacing*-(float)driver.menu->cat_selection_ptr, &xmb->categories_x, &inOutQuad, NULL);
|
||||
dir = driver.menu->cat_selection_ptr > xmb->cat_selection_ptr_old ? 1 : -1;
|
||||
xmb_list_switch_old(xmb->selection_buf_old, dir, xmb->selection_ptr_old);
|
||||
xmb_list_switch_new(driver.menu->menu_list->selection_buf, dir, driver.menu->selection_ptr);
|
||||
xmb->active_category_old = driver.menu->cat_selection_ptr;
|
||||
}
|
||||
|
||||
static void xmb_list_switch()
|
||||
{
|
||||
int dir;
|
||||
unsigned j;
|
||||
xmb_handle_t *xmb = (xmb_handle_t*)driver.menu->userdata;
|
||||
|
||||
if (!xmb)
|
||||
return;
|
||||
|
||||
xmb->depth = file_list_get_size(driver.menu->menu_list->menu_stack);
|
||||
|
||||
dir = 0;
|
||||
@ -820,6 +823,26 @@ static void xmb_populate_entries(void *data, const char *path,
|
||||
xmb->old_depth = xmb->depth;
|
||||
}
|
||||
|
||||
static void xmb_populate_entries(void *data, const char *path,
|
||||
const char *label, unsigned k)
|
||||
{
|
||||
int dir;
|
||||
unsigned j;
|
||||
xmb_handle_t *xmb = (xmb_handle_t*)driver.menu->userdata;
|
||||
|
||||
if (!xmb)
|
||||
return;
|
||||
|
||||
xmb_set_title();
|
||||
|
||||
// horizontal list switching
|
||||
if (driver.menu->cat_selection_ptr != xmb->active_category_old)
|
||||
xmb_list_open();
|
||||
// list open
|
||||
else
|
||||
xmb_list_switch();
|
||||
}
|
||||
|
||||
static void xmb_draw_items(file_list_t *list, file_list_t *stack,
|
||||
size_t current, size_t cat_selection_ptr)
|
||||
{
|
||||
|
Loading…
x
Reference in New Issue
Block a user