mirror of
https://github.com/libretro/RetroArch
synced 2025-04-15 14:42:27 +00:00
Cleanups - start using menu_driver_resolve everywhere in menu
code for safety reasons
This commit is contained in:
parent
8568732234
commit
55844f06d7
@ -212,7 +212,7 @@ int menu_entries_push_horizontal_menu_list(menu_handle_t *menu,
|
||||
if (!info_list)
|
||||
return -1;
|
||||
|
||||
info = (core_info_t*)&info_list->list[driver.menu->categories.selection_ptr - 1];
|
||||
info = (core_info_t*)&info_list->list[menu->categories.selection_ptr - 1];
|
||||
|
||||
if (!info)
|
||||
return -1;
|
||||
@ -223,7 +223,7 @@ int menu_entries_push_horizontal_menu_list(menu_handle_t *menu,
|
||||
|
||||
menu_entries_push_cores_list(list, info, g_settings.content_directory, true);
|
||||
|
||||
menu_list_populate_generic(menu, list, path, label, menu_type);
|
||||
menu_list_populate_generic(list, path, label, menu_type);
|
||||
|
||||
return 0;
|
||||
}
|
||||
@ -476,7 +476,7 @@ int menu_entries_parse_list(
|
||||
menu_list_sort_on_alt(list);
|
||||
}
|
||||
|
||||
menu_list_populate_generic(driver.menu, list, dir, label, type);
|
||||
menu_list_populate_generic(list, dir, label, type);
|
||||
|
||||
return 0;
|
||||
}
|
||||
@ -521,7 +521,7 @@ bool menu_entries_init(menu_handle_t *menu)
|
||||
menu->list_settings = setting_data_new(SL_FLAG_ALL);
|
||||
|
||||
menu_list_push_stack(menu->menu_list, "", "Main Menu", MENU_SETTINGS, 0);
|
||||
menu_navigation_clear(menu, true);
|
||||
menu_navigation_clear(true);
|
||||
menu_entries_push_list(menu, menu->menu_list->selection_buf,
|
||||
"", "Main Menu", 0, SL_FLAG_MAIN_MENU);
|
||||
|
||||
|
@ -1422,7 +1422,7 @@ static int action_ok_config_load(const char *path,
|
||||
menu->msg_force = true;
|
||||
if (rarch_replace_config(config))
|
||||
{
|
||||
menu_navigation_clear(menu, false);
|
||||
menu_navigation_clear(false);
|
||||
return -1;
|
||||
}
|
||||
|
||||
@ -2183,19 +2183,17 @@ static int action_toggle_scroll(unsigned type, const char *label,
|
||||
{
|
||||
case MENU_ACTION_LEFT:
|
||||
if (menu->selection_ptr > fast_scroll_speed)
|
||||
menu_navigation_set(menu,
|
||||
menu->selection_ptr - fast_scroll_speed, true);
|
||||
menu_navigation_set(menu->selection_ptr - fast_scroll_speed, true);
|
||||
else
|
||||
menu_navigation_clear(menu, false);
|
||||
menu_navigation_clear(false);
|
||||
break;
|
||||
case MENU_ACTION_RIGHT:
|
||||
if (menu->selection_ptr + fast_scroll_speed < (menu_list_get_size(menu->menu_list)))
|
||||
menu_navigation_set(menu,
|
||||
menu->selection_ptr + fast_scroll_speed, true);
|
||||
menu_navigation_set(menu->selection_ptr + fast_scroll_speed, true);
|
||||
else
|
||||
{
|
||||
if ((menu_list_get_size(menu->menu_list) > 0))
|
||||
menu_navigation_set_last(menu);
|
||||
menu_navigation_set_last();
|
||||
}
|
||||
break;
|
||||
}
|
||||
@ -2653,7 +2651,7 @@ static int deferred_push_core_list_deferred(void *data, void *userdata,
|
||||
|
||||
menu_list_sort_on_alt(list);
|
||||
|
||||
menu_list_populate_generic(menu, list, path, label, type);
|
||||
menu_list_populate_generic(list, path, label, type);
|
||||
|
||||
return 0;
|
||||
}
|
||||
@ -2679,7 +2677,7 @@ static int deferred_push_database_manager_list_deferred(void *data, void *userda
|
||||
|
||||
menu_list_sort_on_alt(list);
|
||||
|
||||
menu_list_populate_generic(menu, list, path, label, type);
|
||||
menu_list_populate_generic(list, path, label, type);
|
||||
|
||||
return 0;
|
||||
}
|
||||
@ -2722,7 +2720,7 @@ static int deferred_push_cursor_manager_list_deferred(void *data, void *userdata
|
||||
|
||||
menu_list_sort_on_alt(list);
|
||||
|
||||
menu_list_populate_generic(menu, list, path, label, type);
|
||||
menu_list_populate_generic(list, path, label, type);
|
||||
|
||||
return 0;
|
||||
}
|
||||
@ -2823,7 +2821,7 @@ static int deferred_push_cursor_manager_list_deferred_query_subsearch(
|
||||
|
||||
menu_list_sort_on_alt(list);
|
||||
|
||||
menu_list_populate_generic(menu, list, str_list->elems[0].data, label, type);
|
||||
menu_list_populate_generic(list, str_list->elems[0].data, label, type);
|
||||
|
||||
string_list_free(str_list);
|
||||
|
||||
@ -3612,8 +3610,7 @@ static int cb_core_updater_list(void *data_, size_t len)
|
||||
|
||||
print_buf_lines(list, data, len, MENU_FILE_DOWNLOAD_CORE);
|
||||
|
||||
menu_list_populate_generic(menu,
|
||||
list, core_updater_list_path,
|
||||
menu_list_populate_generic(list, core_updater_list_path,
|
||||
core_updater_list_label, core_updater_list_type);
|
||||
|
||||
return 0;
|
||||
@ -3624,10 +3621,6 @@ static int cb_core_updater_list(void *data_, size_t len)
|
||||
static int deferred_push_core_updater_list(void *data, void *userdata,
|
||||
const char *path, const char *label, unsigned type)
|
||||
{
|
||||
menu_handle_t *menu = menu_driver_resolve();
|
||||
if (!menu)
|
||||
return -1;
|
||||
|
||||
#ifdef HAVE_NETWORKING
|
||||
char url_path[PATH_MAX_LENGTH];
|
||||
|
||||
@ -3651,7 +3644,7 @@ static int deferred_push_core_updater_list(void *data, void *userdata,
|
||||
0, 0);
|
||||
#endif
|
||||
|
||||
menu_list_populate_generic(menu, list, path, label, type);
|
||||
menu_list_populate_generic(list, path, label, type);
|
||||
|
||||
return 0;
|
||||
}
|
||||
@ -3677,15 +3670,12 @@ static int deferred_push_history_list(void *data, void *userdata,
|
||||
unsigned i;
|
||||
size_t list_size = 0;
|
||||
file_list_t *list = (file_list_t*)data;
|
||||
menu_handle_t *menu = menu_driver_resolve();
|
||||
if (!menu)
|
||||
|
||||
if (!list)
|
||||
return -1;
|
||||
|
||||
(void)userdata;
|
||||
|
||||
if (!list || !menu)
|
||||
return -1;
|
||||
|
||||
menu_list_clear(list);
|
||||
list_size = content_playlist_size(g_defaults.history);
|
||||
|
||||
@ -3710,7 +3700,7 @@ static int deferred_push_history_list(void *data, void *userdata,
|
||||
MENU_FILE_PLAYLIST_ENTRY, 0);
|
||||
}
|
||||
|
||||
menu_list_populate_generic(menu, list, path, label, type);
|
||||
menu_list_populate_generic(list, path, label, type);
|
||||
|
||||
return 0;
|
||||
}
|
||||
@ -3725,7 +3715,7 @@ static int deferred_push_content_actions(void *data, void *userdata,
|
||||
|
||||
(void)userdata;
|
||||
|
||||
if (!list || !menu)
|
||||
if (!list)
|
||||
return -1;
|
||||
|
||||
menu_list_clear(list);
|
||||
@ -3750,7 +3740,7 @@ static int deferred_push_content_actions(void *data, void *userdata,
|
||||
else
|
||||
menu_list_push(list, "Run", "file_load_or_resume", MENU_SETTING_ACTION_RUN, 0);
|
||||
|
||||
menu_list_populate_generic(menu, list, path, label, type);
|
||||
menu_list_populate_generic(list, path, label, type);
|
||||
|
||||
return 0;
|
||||
}
|
||||
@ -3928,29 +3918,24 @@ static int action_bind_up_or_down_generic(unsigned type, const char *label,
|
||||
{
|
||||
case MENU_ACTION_UP:
|
||||
if (menu->selection_ptr >= scroll_speed)
|
||||
menu_navigation_set(menu,
|
||||
menu->selection_ptr - scroll_speed, true);
|
||||
menu_navigation_set(menu->selection_ptr - scroll_speed, true);
|
||||
else
|
||||
{
|
||||
if (g_settings.menu.navigation.wraparound.vertical_enable)
|
||||
menu_navigation_set(menu,
|
||||
menu_list_get_size(menu->menu_list) - 1, true);
|
||||
menu_navigation_set(menu_list_get_size(menu->menu_list) - 1, true);
|
||||
else
|
||||
menu_navigation_set(menu,
|
||||
0, true);
|
||||
menu_navigation_set(0, true);
|
||||
}
|
||||
break;
|
||||
case MENU_ACTION_DOWN:
|
||||
if (menu->selection_ptr + scroll_speed < (menu_list_get_size(menu->menu_list)))
|
||||
menu_navigation_set(menu,
|
||||
menu->selection_ptr + scroll_speed, true);
|
||||
menu_navigation_set(menu->selection_ptr + scroll_speed, true);
|
||||
else
|
||||
{
|
||||
if (g_settings.menu.navigation.wraparound.vertical_enable)
|
||||
menu_navigation_clear(menu, false);
|
||||
menu_navigation_clear(false);
|
||||
else
|
||||
menu_navigation_set(menu,
|
||||
menu_list_get_size(menu->menu_list) - 1, true);
|
||||
menu_navigation_set(menu_list_get_size(menu->menu_list) - 1, true);
|
||||
}
|
||||
break;
|
||||
}
|
||||
@ -3983,7 +3968,7 @@ static int mouse_post_iterate(menu_file_list_cbs_t *cbs, const char *path,
|
||||
return 0;
|
||||
|
||||
if (menu->mouse.ptr <= menu_list_get_size(menu->menu_list)-1)
|
||||
menu_navigation_set(menu, menu->mouse.ptr, false);
|
||||
menu_navigation_set(menu->mouse.ptr, false);
|
||||
|
||||
if (menu->mouse.left)
|
||||
{
|
||||
@ -4466,10 +4451,10 @@ static int action_iterate_main(const char *label, unsigned action)
|
||||
ret = cbs->action_up_or_down(type_offset, label_offset, action);
|
||||
break;
|
||||
case MENU_ACTION_SCROLL_UP:
|
||||
menu_navigation_descend_alphabet(menu, &menu->selection_ptr);
|
||||
menu_navigation_descend_alphabet(&menu->selection_ptr);
|
||||
break;
|
||||
case MENU_ACTION_SCROLL_DOWN:
|
||||
menu_navigation_ascend_alphabet(menu, &menu->selection_ptr);
|
||||
menu_navigation_ascend_alphabet(&menu->selection_ptr);
|
||||
break;
|
||||
|
||||
case MENU_ACTION_CANCEL:
|
||||
|
@ -70,7 +70,7 @@ static void menu_input_search_callback(void *userdata, const char *str)
|
||||
return;
|
||||
|
||||
if (str && *str && file_list_search(menu->menu_list->selection_buf, str, &idx))
|
||||
menu_navigation_set(menu, idx, true);
|
||||
menu_navigation_set(idx, true);
|
||||
|
||||
menu_input_key_end_line(menu);
|
||||
}
|
||||
|
@ -28,16 +28,19 @@
|
||||
*
|
||||
* Ensure it doesn't overflow.
|
||||
**/
|
||||
static void menu_entries_refresh(menu_handle_t *menu, file_list_t *list)
|
||||
static void menu_entries_refresh(file_list_t *list)
|
||||
{
|
||||
menu_handle_t *menu = menu_driver_resolve();
|
||||
if (!menu)
|
||||
return;
|
||||
if (!list)
|
||||
return;
|
||||
|
||||
if (menu->selection_ptr >= menu_list_get_size(menu->menu_list)
|
||||
&& menu_list_get_size(menu->menu_list))
|
||||
menu_navigation_set(menu, menu_list_get_size(menu->menu_list) - 1, true);
|
||||
menu_navigation_set(menu_list_get_size(menu->menu_list) - 1, true);
|
||||
else if (!menu_list_get_size(menu->menu_list))
|
||||
menu_navigation_clear(menu, true);
|
||||
menu_navigation_clear(true);
|
||||
}
|
||||
|
||||
/**
|
||||
@ -94,15 +97,16 @@ static void menu_entries_build_scroll_indices(file_list_t *list)
|
||||
size_t i;
|
||||
int current;
|
||||
bool current_is_dir;
|
||||
menu_handle_t *menu = menu_driver_resolve();
|
||||
|
||||
if (!driver.menu || !list)
|
||||
if (!menu || !list)
|
||||
return;
|
||||
|
||||
driver.menu->scroll.indices.size = 0;
|
||||
menu->scroll.indices.size = 0;
|
||||
if (!list->size)
|
||||
return;
|
||||
|
||||
driver.menu->scroll.indices.list[driver.menu->scroll.indices.size++] = 0;
|
||||
menu->scroll.indices.list[menu->scroll.indices.size++] = 0;
|
||||
|
||||
current = menu_entries_list_get_first_char(list, 0);
|
||||
current_is_dir = menu_entries_list_elem_is_dir(list, 0);
|
||||
@ -113,13 +117,13 @@ static void menu_entries_build_scroll_indices(file_list_t *list)
|
||||
bool is_dir = menu_entries_list_elem_is_dir(list, i);
|
||||
|
||||
if ((current_is_dir && !is_dir) || (first > current))
|
||||
driver.menu->scroll.indices.list[driver.menu->scroll.indices.size++] = i;
|
||||
menu->scroll.indices.list[menu->scroll.indices.size++] = i;
|
||||
|
||||
current = first;
|
||||
current_is_dir = is_dir;
|
||||
}
|
||||
|
||||
driver.menu->scroll.indices.list[driver.menu->scroll.indices.size++] =
|
||||
menu->scroll.indices.list[menu->scroll.indices.size++] =
|
||||
list->size - 1;
|
||||
}
|
||||
|
||||
@ -228,16 +232,16 @@ void menu_list_flush_stack(menu_list_t *list,
|
||||
const char *path = NULL;
|
||||
const char *label = NULL;
|
||||
unsigned type = 0;
|
||||
|
||||
if (!driver.menu || !list)
|
||||
menu_handle_t *menu = menu_driver_resolve();
|
||||
if (!menu || !list)
|
||||
return;
|
||||
|
||||
driver.menu->need_refresh = true;
|
||||
menu->need_refresh = true;
|
||||
file_list_get_last(list->menu_stack, &path, &label, &type);
|
||||
|
||||
while (type != final_type)
|
||||
{
|
||||
menu_list_pop(list->menu_stack, &driver.menu->selection_ptr);
|
||||
menu_list_pop(list->menu_stack, &menu->selection_ptr);
|
||||
file_list_get_last(list->menu_stack, &path, &label, &type);
|
||||
}
|
||||
}
|
||||
@ -248,23 +252,24 @@ void menu_list_flush_stack_by_needle(menu_list_t *list,
|
||||
const char *path = NULL;
|
||||
const char *label = NULL;
|
||||
unsigned type = 0;
|
||||
|
||||
if (!driver.menu || !list)
|
||||
menu_handle_t *menu = menu_driver_resolve();
|
||||
if (!menu || !list)
|
||||
return;
|
||||
|
||||
driver.menu->need_refresh = true;
|
||||
menu->need_refresh = true;
|
||||
file_list_get_last(list->menu_stack, &path, &label, &type);
|
||||
|
||||
while (strcmp(needle, label) != 0)
|
||||
{
|
||||
menu_list_pop(list->menu_stack, &driver.menu->selection_ptr);
|
||||
menu_list_pop(list->menu_stack, &menu->selection_ptr);
|
||||
file_list_get_last(list->menu_stack, &path, &label, &type);
|
||||
}
|
||||
}
|
||||
|
||||
void menu_list_pop_stack(menu_list_t *list)
|
||||
{
|
||||
if (!list)
|
||||
menu_handle_t *menu = menu_driver_resolve();
|
||||
if (!menu || !list)
|
||||
return;
|
||||
|
||||
if (file_list_get_size(list->menu_stack) <= 1)
|
||||
@ -273,8 +278,8 @@ void menu_list_pop_stack(menu_list_t *list)
|
||||
if (driver.menu_ctx->list_cache)
|
||||
driver.menu_ctx->list_cache(false, 0);
|
||||
|
||||
menu_list_pop(list->menu_stack, &driver.menu->selection_ptr);
|
||||
driver.menu->need_refresh = true;
|
||||
menu_list_pop(list->menu_stack, &menu->selection_ptr);
|
||||
menu->need_refresh = true;
|
||||
}
|
||||
|
||||
void menu_list_pop_stack_by_needle(menu_list_t *list,
|
||||
@ -283,16 +288,17 @@ void menu_list_pop_stack_by_needle(menu_list_t *list,
|
||||
const char *path = NULL;
|
||||
const char *label = NULL;
|
||||
unsigned type = 0;
|
||||
menu_handle_t *menu = menu_driver_resolve();
|
||||
|
||||
if (!driver.menu || !list)
|
||||
if (!menu || !list)
|
||||
return;
|
||||
|
||||
driver.menu->need_refresh = true;
|
||||
menu->need_refresh = true;
|
||||
file_list_get_last(list->menu_stack, &path, &label, &type);
|
||||
|
||||
while (strcmp(needle, label) == 0)
|
||||
{
|
||||
menu_list_pop(list->menu_stack, &driver.menu->selection_ptr);
|
||||
menu_list_pop(list->menu_stack, &menu->selection_ptr);
|
||||
file_list_get_last(list->menu_stack, &path, &label, &type);
|
||||
}
|
||||
}
|
||||
@ -363,26 +369,28 @@ void menu_list_push_refresh(file_list_t *list,
|
||||
const char *path, const char *label,
|
||||
unsigned type, size_t directory_ptr)
|
||||
{
|
||||
if (!list)
|
||||
menu_handle_t *menu = menu_driver_resolve();
|
||||
if (!menu || !list)
|
||||
return;
|
||||
|
||||
menu_list_push(list, path, label, type, directory_ptr);
|
||||
menu_navigation_clear(driver.menu, true);
|
||||
driver.menu->need_refresh = true;
|
||||
menu_navigation_clear(true);
|
||||
menu->need_refresh = true;
|
||||
}
|
||||
|
||||
void menu_list_push_stack(menu_list_t *list,
|
||||
const char *path, const char *label,
|
||||
void menu_list_push_stack(menu_list_t *list, const char *path, const char *label,
|
||||
unsigned type, size_t directory_ptr)
|
||||
{
|
||||
if (list)
|
||||
menu_list_push(list->menu_stack, path, label, type, directory_ptr);
|
||||
}
|
||||
|
||||
int menu_list_push_stack_refresh(menu_list_t *list,
|
||||
const char *path, const char *label,
|
||||
int menu_list_push_stack_refresh(menu_list_t *list, const char *path, const char *label,
|
||||
unsigned type, size_t directory_ptr)
|
||||
{
|
||||
menu_handle_t *menu = menu_driver_resolve();
|
||||
if (!menu)
|
||||
return -1;
|
||||
if (!list)
|
||||
return -1;
|
||||
|
||||
@ -390,8 +398,8 @@ int menu_list_push_stack_refresh(menu_list_t *list,
|
||||
driver.menu_ctx->list_cache(false, 0);
|
||||
|
||||
menu_list_push_stack(list, path, label, type, directory_ptr);
|
||||
menu_navigation_clear(driver.menu, true);
|
||||
driver.menu->need_refresh = true;
|
||||
menu_navigation_clear(true);
|
||||
menu->need_refresh = true;
|
||||
|
||||
return 0;
|
||||
}
|
||||
@ -413,18 +421,18 @@ void menu_list_sort_on_alt(file_list_t *list)
|
||||
file_list_sort_on_alt(list);
|
||||
}
|
||||
|
||||
int menu_list_populate_generic(void *data,
|
||||
file_list_t *list, const char *path,
|
||||
int menu_list_populate_generic(file_list_t *list, const char *path,
|
||||
const char *label, unsigned type)
|
||||
{
|
||||
menu_handle_t *menu = (menu_handle_t*)data;
|
||||
menu_handle_t *menu = menu_driver_resolve();
|
||||
|
||||
if (!menu)
|
||||
return -1;
|
||||
|
||||
driver.menu->scroll.indices.size = 0;
|
||||
menu->scroll.indices.size = 0;
|
||||
|
||||
menu_entries_build_scroll_indices(list);
|
||||
menu_entries_refresh(menu, list);
|
||||
menu_entries_refresh(list);
|
||||
|
||||
if (driver.menu_ctx && driver.menu_ctx->populate_entries)
|
||||
driver.menu_ctx->populate_entries(path, label, type);
|
||||
|
@ -94,7 +94,7 @@ void menu_list_get_alt_at_offset(const file_list_t *list, size_t idx,
|
||||
void menu_list_set_alt_at_offset(file_list_t *list, size_t idx,
|
||||
const char *alt);
|
||||
|
||||
int menu_list_populate_generic(void *data, file_list_t *list,
|
||||
int menu_list_populate_generic(file_list_t *list,
|
||||
const char *path, const char *label, unsigned type);
|
||||
|
||||
#ifdef __cplusplus
|
||||
|
@ -24,13 +24,16 @@
|
||||
|
||||
/**
|
||||
* menu_navigation_clear:
|
||||
* @menu : menu handle
|
||||
* @pending_push : pending push ?
|
||||
*
|
||||
* Clears the navigation pointer.
|
||||
**/
|
||||
void menu_navigation_clear(menu_handle_t *menu, bool pending_push)
|
||||
void menu_navigation_clear(bool pending_push)
|
||||
{
|
||||
menu_handle_t *menu = menu_driver_resolve();
|
||||
if (!menu)
|
||||
return;
|
||||
|
||||
menu->selection_ptr = 0;
|
||||
|
||||
if (driver.menu_ctx && driver.menu_ctx->navigation_clear)
|
||||
@ -39,12 +42,15 @@ void menu_navigation_clear(menu_handle_t *menu, bool pending_push)
|
||||
|
||||
/**
|
||||
* menu_navigation_decrement:
|
||||
* @menu : menu handle
|
||||
*
|
||||
* Decrement the navigation pointer.
|
||||
**/
|
||||
void menu_navigation_decrement(menu_handle_t *menu)
|
||||
void menu_navigation_decrement(void)
|
||||
{
|
||||
menu_handle_t *menu = menu_driver_resolve();
|
||||
if (!menu)
|
||||
return;
|
||||
|
||||
menu->selection_ptr--;
|
||||
|
||||
if (driver.menu_ctx && driver.menu_ctx->navigation_decrement)
|
||||
@ -53,12 +59,15 @@ void menu_navigation_decrement(menu_handle_t *menu)
|
||||
|
||||
/**
|
||||
* menu_navigation_increment:
|
||||
* @menu : menu handle
|
||||
*
|
||||
* Increment the navigation pointer.
|
||||
**/
|
||||
void menu_navigation_increment(menu_handle_t *menu)
|
||||
void menu_navigation_increment(void)
|
||||
{
|
||||
menu_handle_t *menu = menu_driver_resolve();
|
||||
if (!menu)
|
||||
return;
|
||||
|
||||
menu->selection_ptr++;
|
||||
|
||||
if (driver.menu_ctx && driver.menu_ctx->navigation_increment)
|
||||
@ -67,14 +76,17 @@ void menu_navigation_increment(menu_handle_t *menu)
|
||||
|
||||
/**
|
||||
* menu_navigation_set:
|
||||
* @menu : menu handle
|
||||
* @idx : index to set navigation pointer to.
|
||||
* @scroll : should we scroll when needed?
|
||||
*
|
||||
* Sets navigation pointer to index @idx.
|
||||
**/
|
||||
void menu_navigation_set(menu_handle_t *menu, size_t idx, bool scroll)
|
||||
void menu_navigation_set(size_t idx, bool scroll)
|
||||
{
|
||||
menu_handle_t *menu = menu_driver_resolve();
|
||||
if (!menu)
|
||||
return;
|
||||
|
||||
menu->selection_ptr = idx;
|
||||
|
||||
if (driver.menu_ctx && driver.menu_ctx->navigation_set)
|
||||
@ -83,12 +95,15 @@ void menu_navigation_set(menu_handle_t *menu, size_t idx, bool scroll)
|
||||
|
||||
/**
|
||||
* menu_navigation_set_last:
|
||||
* @menu : menu handle
|
||||
*
|
||||
* Sets navigation pointer to last index.
|
||||
**/
|
||||
void menu_navigation_set_last(menu_handle_t *menu)
|
||||
void menu_navigation_set_last(void)
|
||||
{
|
||||
menu_handle_t *menu = menu_driver_resolve();
|
||||
if (!menu)
|
||||
return;
|
||||
|
||||
menu->selection_ptr = menu_list_get_size(driver.menu->menu_list) - 1;
|
||||
|
||||
if (driver.menu_ctx && driver.menu_ctx->navigation_set_last)
|
||||
@ -97,7 +112,6 @@ void menu_navigation_set_last(menu_handle_t *menu)
|
||||
|
||||
/**
|
||||
* menu_navigation_descend_alphabet:
|
||||
* @menu : menu handle
|
||||
* @ptr_out : Amount of indices to 'scroll' to get
|
||||
* to the next entry.
|
||||
*
|
||||
@ -106,10 +120,13 @@ void menu_navigation_set_last(menu_handle_t *menu)
|
||||
* If navigation points to an entry called 'Beta',
|
||||
* navigation pointer will be set to an entry called 'Alpha'.
|
||||
**/
|
||||
void menu_navigation_descend_alphabet(menu_handle_t *menu, size_t *ptr_out)
|
||||
void menu_navigation_descend_alphabet(size_t *ptr_out)
|
||||
{
|
||||
size_t i = 0;
|
||||
size_t ptr = *ptr_out;
|
||||
menu_handle_t *menu = menu_driver_resolve();
|
||||
if (!menu)
|
||||
return;
|
||||
|
||||
if (!menu->scroll.indices.size)
|
||||
return;
|
||||
@ -129,7 +146,6 @@ void menu_navigation_descend_alphabet(menu_handle_t *menu, size_t *ptr_out)
|
||||
|
||||
/**
|
||||
* menu_navigation_ascends_alphabet:
|
||||
* @menu : menu handle
|
||||
* @ptr_out : Amount of indices to 'scroll' to get
|
||||
* to the next entry.
|
||||
*
|
||||
@ -138,10 +154,13 @@ void menu_navigation_descend_alphabet(menu_handle_t *menu, size_t *ptr_out)
|
||||
* If navigation points to an entry called 'Alpha',
|
||||
* navigation pointer will be set to an entry called 'Beta'.
|
||||
**/
|
||||
void menu_navigation_ascend_alphabet(menu_handle_t *menu, size_t *ptr_out)
|
||||
void menu_navigation_ascend_alphabet(size_t *ptr_out)
|
||||
{
|
||||
size_t i = 0;
|
||||
size_t ptr = *ptr_out;
|
||||
menu_handle_t *menu = menu_driver_resolve();
|
||||
if (!menu)
|
||||
return;
|
||||
|
||||
if (!menu->scroll.indices.size)
|
||||
return;
|
||||
|
@ -25,50 +25,44 @@ extern "C" {
|
||||
|
||||
/**
|
||||
* menu_navigation_clear:
|
||||
* @menu : menu handle
|
||||
* @pending_push : pending push ?
|
||||
*
|
||||
* Clears the navigation pointer.
|
||||
**/
|
||||
void menu_navigation_clear(menu_handle_t *menu, bool pending_push);
|
||||
void menu_navigation_clear(bool pending_push);
|
||||
|
||||
/**
|
||||
* menu_navigation_decrement:
|
||||
* @menu : menu handle
|
||||
*
|
||||
* Decrement the navigation pointer.
|
||||
**/
|
||||
void menu_navigation_decrement(menu_handle_t *menu);
|
||||
void menu_navigation_decrement(void);
|
||||
|
||||
/**
|
||||
* menu_navigation_increment:
|
||||
* @menu : menu handle
|
||||
*
|
||||
* Increment the navigation pointer.
|
||||
**/
|
||||
void menu_navigation_increment(menu_handle_t *menu);
|
||||
void menu_navigation_increment(void);
|
||||
|
||||
/**
|
||||
* menu_navigation_set:
|
||||
* @menu : menu handle
|
||||
* @idx : index to set navigation pointer to.
|
||||
* @scroll : should we scroll when needed?
|
||||
*
|
||||
* Sets navigation pointer to index @idx.
|
||||
**/
|
||||
void menu_navigation_set(menu_handle_t *menu, size_t i, bool scroll);
|
||||
void menu_navigation_set(size_t i, bool scroll);
|
||||
|
||||
/**
|
||||
* menu_navigation_set_last:
|
||||
* @menu : menu handle
|
||||
*
|
||||
* Sets navigation pointer to last index.
|
||||
**/
|
||||
void menu_navigation_set_last(menu_handle_t *menu);
|
||||
void menu_navigation_set_last(void);
|
||||
|
||||
/**
|
||||
* menu_navigation_descend_alphabet:
|
||||
* @menu : menu handle
|
||||
* @ptr_out : Amount of indices to 'scroll' to get
|
||||
* to the next entry.
|
||||
*
|
||||
@ -77,11 +71,10 @@ void menu_navigation_set_last(menu_handle_t *menu);
|
||||
* If navigation points to an entry called 'Beta',
|
||||
* navigation pointer will be set to an entry called 'Alpha'.
|
||||
**/
|
||||
void menu_navigation_descend_alphabet(menu_handle_t *menu, size_t *ptr_out);
|
||||
void menu_navigation_descend_alphabet(size_t *ptr_out);
|
||||
|
||||
/**
|
||||
* menu_navigation_ascends_alphabet:
|
||||
* @menu : menu handle
|
||||
* @ptr_out : Amount of indices to 'scroll' to get
|
||||
* to the next entry.
|
||||
*
|
||||
@ -90,7 +83,7 @@ void menu_navigation_descend_alphabet(menu_handle_t *menu, size_t *ptr_out);
|
||||
* If navigation points to an entry called 'Alpha',
|
||||
* navigation pointer will be set to an entry called 'Beta'.
|
||||
**/
|
||||
void menu_navigation_ascend_alphabet(menu_handle_t *menu, size_t *ptr_out);
|
||||
void menu_navigation_ascend_alphabet(size_t *ptr_out);
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user