void menu_build_scroll_indices(file_list_t *buf) { size_t i; int current; bool current_is_dir; if (!driver.menu || !buf) return; driver.menu->scroll_indices_size = 0; if (!buf->size) return; driver.menu->scroll_indices[driver.menu->scroll_indices_size++] = 0; current = menu_list_get_first_char(buf, 0); current_is_dir = menu_list_elem_is_dir(buf, 0); for (i = 1; i < buf->size; i++) { int first = menu_list_get_first_char(buf, i); bool is_dir = menu_list_elem_is_dir(buf, i); if ((current_is_dir && !is_dir) || (first > current)) driver.menu->scroll_indices[driver.menu->scroll_indices_size++] = i; current = first; current_is_dir = is_dir; } driver.menu->scroll_indices[driver.menu->scroll_indices_size++] = buf->size - 1; }
void menu_build_scroll_indices(void *data, file_list_t *buf) { size_t i; int current; bool current_is_dir; rgui_handle_t *rgui = (rgui_handle_t*)data; rgui->scroll_indices_size = 0; if (!buf->size) return; rgui->scroll_indices[rgui->scroll_indices_size++] = 0; current = menu_list_get_first_char(buf, 0); current_is_dir = menu_list_elem_is_dir(buf, 0); for (i = 1; i < buf->size; i++) { int first; bool is_dir; first = menu_list_get_first_char(buf, i); is_dir = menu_list_elem_is_dir(buf, i); if ((current_is_dir && !is_dir) || (first > current)) rgui->scroll_indices[rgui->scroll_indices_size++] = i; current = first; current_is_dir = is_dir; } rgui->scroll_indices[rgui->scroll_indices_size++] = buf->size - 1; }
static void menu_list_build_scroll_indices(file_list_t *list) { size_t i; int current; bool current_is_dir; menu_navigation_t *nav = menu_navigation_get_ptr(); if (!nav || !list) return; nav->scroll.indices.size = 0; if (!list->size) return; nav->scroll.indices.list[nav->scroll.indices.size++] = 0; current = menu_list_elem_get_first_char(list, 0); current_is_dir = menu_list_elem_is_dir(list, 0); for (i = 1; i < list->size; i++) { int first = menu_list_elem_get_first_char(list, i); bool is_dir = menu_list_elem_is_dir(list, i); if ((current_is_dir && !is_dir) || (first > current)) nav->scroll.indices.list[nav->scroll.indices.size++] = i; current = first; current_is_dir = is_dir; } nav->scroll.indices.list[nav->scroll.indices.size++] = list->size - 1; }