diff --git a/menu/cbs/menu_cbs_ok.c b/menu/cbs/menu_cbs_ok.c index a4eb7b1395..d19808ae75 100644 --- a/menu/cbs/menu_cbs_ok.c +++ b/menu/cbs/menu_cbs_ok.c @@ -2020,7 +2020,7 @@ static int (funcname)(void *data, const char *path, const char *label, unsigned line.type = type; \ line.idx = (_idx); \ line.cb = _cb; \ - if (!menu_input_dialog_start(&line, data)) \ + if (!menu_input_dialog_start(&line)) \ return -1; \ return 0; \ } @@ -3986,7 +3986,7 @@ static int action_ok_netplay_enable_client(void *data, line.idx = 0; line.cb = action_ok_netplay_enable_client_hostname_cb; - if (menu_input_dialog_start(&line, data)) + if (menu_input_dialog_start(&line)) return 0; #endif return -1; diff --git a/menu/drivers/menu_generic.c b/menu/drivers/menu_generic.c index aa091bdd10..3add7400e2 100644 --- a/menu/drivers/menu_generic.c +++ b/menu/drivers/menu_generic.c @@ -238,7 +238,7 @@ int generic_menu_iterate(void *data, void *userdata, enum menu_action action) BIT64_SET(menu->state, MENU_STATE_POST_ITERATE); /* Have to defer it so we let settings refresh. */ - menu_dialog_push(menu); + menu_dialog_push(); } break; } diff --git a/menu/widgets/menu_dialog.c b/menu/widgets/menu_dialog.c index 0c42557094..23aebda618 100644 --- a/menu/widgets/menu_dialog.c +++ b/menu/widgets/menu_dialog.c @@ -252,7 +252,7 @@ void menu_dialog_push_pending(bool push, enum menu_dialog_type type) menu_dialog_active = true; } -void menu_dialog_push(void *data) +void menu_dialog_push(void) { menu_displaylist_info_t info; const char *label = NULL; @@ -271,7 +271,9 @@ void menu_dialog_push(void *data) if (label) info.label = strdup(label); - menu_displaylist_ctl(DISPLAYLIST_HELP, &info, data); + menu_driver_ctl(RARCH_MENU_CTL_DRIVER_DATA_GET, &menu); + + menu_displaylist_ctl(DISPLAYLIST_HELP, &info, menu); } void menu_dialog_set_current_id(unsigned id) @@ -289,6 +291,18 @@ void menu_dialog_reset(void) menu_display_toggle_set_reason(MENU_TOGGLE_REASON_NONE); } +void menu_dialog_show_message( + enum menu_dialog_type type, enum msg_hash_enums msg) +{ + menu_dialog_current_msg = msg; + + if (!menu_driver_ctl(RARCH_MENU_CTL_IS_TOGGLE, NULL)) + menu_display_toggle_set_reason(MENU_TOGGLE_REASON_MESSAGE); + + menu_dialog_push_pending(true, type); + menu_dialog_push(); +} + bool menu_dialog_is_active(void) { return menu_dialog_active; diff --git a/menu/widgets/menu_dialog.h b/menu/widgets/menu_dialog.h index 0df01e8202..b692fe3138 100644 --- a/menu/widgets/menu_dialog.h +++ b/menu/widgets/menu_dialog.h @@ -59,10 +59,13 @@ void menu_dialog_unset_pending_push(void); bool menu_dialog_is_push_pending(void); -void menu_dialog_push(void *data); +void menu_dialog_push(void); void menu_dialog_reset(void); +void menu_dialog_show_message( + enum menu_dialog_type type, enum msg_hash_enums msg); + bool menu_dialog_is_active(void); void menu_dialog_set_current_id(unsigned id); diff --git a/menu/widgets/menu_input_dialog.c b/menu/widgets/menu_input_dialog.c index ca33931fd9..79af78a1a3 100644 --- a/menu/widgets/menu_input_dialog.c +++ b/menu/widgets/menu_input_dialog.c @@ -119,13 +119,12 @@ bool menu_input_dialog_start_search(void *data) return true; } -bool menu_input_dialog_start(menu_input_ctx_line_t *line, - void *data) +bool menu_input_dialog_start(menu_input_ctx_line_t *line) { - menu_handle_t *menu = (menu_handle_t*)data; + menu_handle_t *menu = NULL; if (!line) return false; - if (!menu) + if (!menu_driver_ctl(RARCH_MENU_CTL_DRIVER_DATA_GET, &menu)) return false; menu_input_dialog_display_kb(); @@ -136,8 +135,7 @@ bool menu_input_dialog_start(menu_input_ctx_line_t *line, sizeof(menu_input_dialog_keyboard_label)); if (line->label_setting) strlcpy(menu_input_dialog_keyboard_label_setting, - line->label_setting, - sizeof(menu_input_dialog_keyboard_label_setting)); + line->label_setting, sizeof(menu_input_dialog_keyboard_label_setting)); menu_input_dialog_keyboard_type = line->type; menu_input_dialog_keyboard_idx = line->idx; diff --git a/menu/widgets/menu_input_dialog.h b/menu/widgets/menu_input_dialog.h index 0c4b8187a0..cb6cc8e3ca 100644 --- a/menu/widgets/menu_input_dialog.h +++ b/menu/widgets/menu_input_dialog.h @@ -55,8 +55,7 @@ void menu_input_dialog_display_kb(void); bool menu_input_dialog_get_display_kb(void); -bool menu_input_dialog_start(menu_input_ctx_line_t *line, - void *data); +bool menu_input_dialog_start(menu_input_ctx_line_t *line); void menu_input_dialog_end(void); diff --git a/network/netplay/netplay_handshake.c b/network/netplay/netplay_handshake.c index 48ceedfbf0..021b51d35c 100644 --- a/network/netplay/netplay_handshake.c +++ b/network/netplay/netplay_handshake.c @@ -37,7 +37,6 @@ #include "../../version.h" #ifdef HAVE_MENU -#include "../../menu/menu_driver.h" #include "../../menu/widgets/menu_input_dialog.h" #endif @@ -416,8 +415,6 @@ bool netplay_handshake_init(netplay_t *netplay, { #ifdef HAVE_MENU menu_input_ctx_line_t line; - menu_handle_t *menu = NULL; - rarch_menu_running(); #endif @@ -428,10 +425,7 @@ bool netplay_handshake_init(netplay_t *netplay, line.label = msg_hash_to_str(MSG_NETPLAY_ENTER_PASSWORD); line.label_setting = "no_setting"; line.cb = handshake_password; - - menu_driver_ctl(RARCH_MENU_CTL_DRIVER_DATA_GET, &menu); - - if (menu && !menu_input_dialog_start(&line, menu)) + if (!menu_input_dialog_start(&line)) return false; #endif } diff --git a/setting_list.c b/setting_list.c index eb7047360d..254bd62e38 100644 --- a/setting_list.c +++ b/setting_list.c @@ -2004,7 +2004,6 @@ static void menu_input_st_hex_cb(void *userdata, const char *str) static int setting_generic_action_ok_linefeed(void *data, bool wraparound) { menu_input_ctx_line_t line; - menu_handle_t *menu = NULL; input_keyboard_line_complete_t cb = NULL; rarch_setting_t *setting = (rarch_setting_t*)data; @@ -2035,9 +2034,7 @@ static int setting_generic_action_ok_linefeed(void *data, bool wraparound) line.idx = 0; line.cb = cb; - menu_driver_ctl(RARCH_MENU_CTL_DRIVER_DATA_GET, &menu); - - if (!menu || !menu_input_dialog_start(&line, menu)) + if (!menu_input_dialog_start(&line)) return -1; return 0;