Refactor menu_input_dialog

This commit is contained in:
twinaphex 2016-09-15 19:07:30 +02:00
parent e8e16aca9e
commit 5cf5371314
8 changed files with 21 additions and 60 deletions

View File

@ -1485,11 +1485,9 @@ static void menu_input_st_string_cb_save_preset(void *userdata,
{ {
if (str && *str) if (str && *str)
{ {
rarch_setting_t *setting = NULL; rarch_setting_t *setting = NULL;
const char *label = NULL; bool ret = false;
bool ret = false; const char *label = menu_input_dialog_get_label_buffer();
menu_input_ctl(MENU_INPUT_CTL_KEYBOARD_LABEL_SETTING, &label);
if (!string_is_empty(label)) if (!string_is_empty(label))
setting = menu_setting_find(label); setting = menu_setting_find(label);
@ -1616,10 +1614,8 @@ static void menu_input_st_string_cb_cheat_file_save_as(
{ {
if (str && *str) if (str && *str)
{ {
rarch_setting_t *setting = NULL; rarch_setting_t *setting = NULL;
const char *label = NULL; const char *label = menu_input_dialog_get_label_buffer();
menu_input_ctl(MENU_INPUT_CTL_KEYBOARD_LABEL_SETTING, &label);
if (!string_is_empty(label)) if (!string_is_empty(label))
setting = menu_setting_find(label); setting = menu_setting_find(label);

View File

@ -1205,13 +1205,9 @@ static void mui_frame(void *data)
if (menu_input_dialog_get_display_kb()) if (menu_input_dialog_get_display_kb())
{ {
const char *label = NULL;
const char *str = menu_input_dialog_get_buffer(); const char *str = menu_input_dialog_get_buffer();
const char *label = menu_input_dialog_get_label_buffer();
menu_input_ctl(MENU_INPUT_CTL_KEYBOARD_LABEL, &label);
if (!str)
str = "";
mui_render_quad(mui, 0, 0, width, height, width, height, &black_bg[0]); mui_render_quad(mui, 0, 0, width, height, width, height, &black_bg[0]);
snprintf(msg, sizeof(msg), "%s\n%s", label, str); snprintf(msg, sizeof(msg), "%s\n%s", label, str);
mui_render_messagebox(mui, msg, &body_bg_color[0], font_hover_color); mui_render_messagebox(mui, msg, &body_bg_color[0], font_hover_color);

View File

@ -611,10 +611,8 @@ static void rgui_render(void *data)
if (menu_input_dialog_get_display_kb()) if (menu_input_dialog_get_display_kb())
{ {
const char *label = NULL;
const char *str = menu_input_dialog_get_buffer(); const char *str = menu_input_dialog_get_buffer();
const char *label = menu_input_dialog_get_label_buffer();
menu_input_ctl(MENU_INPUT_CTL_KEYBOARD_LABEL, &label);
snprintf(msg, sizeof(msg), "%s\n%s", label, str); snprintf(msg, sizeof(msg), "%s\n%s", label, str);
rgui_render_messagebox(msg); rgui_render_messagebox(msg);

View File

@ -2366,13 +2366,9 @@ static void xmb_frame(void *data)
if (menu_input_dialog_get_display_kb()) if (menu_input_dialog_get_display_kb())
{ {
const char *label = NULL;
const char *str = menu_input_dialog_get_buffer(); const char *str = menu_input_dialog_get_buffer();
const char *label = menu_input_dialog_get_label_buffer();
menu_input_ctl(MENU_INPUT_CTL_KEYBOARD_LABEL, &label);
if (!str)
str = "";
snprintf(msg, sizeof(msg), "%s\n%s", label, str); snprintf(msg, sizeof(msg), "%s\n%s", label, str);
render_background = true; render_background = true;
} }

View File

@ -526,10 +526,10 @@ static void xui_set_list_text(int index, const wchar_t* leftText,
static void xui_render(void *data) static void xui_render(void *data)
{ {
uint64_t *frame_count; uint64_t *frame_count;
bool display_kb, msg_force;
unsigned fb_width; unsigned fb_width;
size_t end, i, selection; size_t end, i, selection;
char title[PATH_MAX_LENGTH] = {0}; char title[PATH_MAX_LENGTH] = {0};
bool msg_force = false;
const char *dir = NULL; const char *dir = NULL;
const char *label = NULL; const char *label = NULL;
unsigned menu_type = 0; unsigned menu_type = 0;
@ -584,22 +584,18 @@ static void xui_render(void *data)
mbstowcs(msg_right, entry_value, sizeof(msg_right) / sizeof(wchar_t)); mbstowcs(msg_right, entry_value, sizeof(msg_right) / sizeof(wchar_t));
xui_set_list_text(i, msg_left, msg_right); xui_set_list_text(i, msg_left, msg_right);
} }
if (!menu_navigation_ctl(MENU_NAVIGATION_CTL_GET_SELECTION, &selection)) if (!menu_navigation_ctl(MENU_NAVIGATION_CTL_GET_SELECTION, &selection))
return; return;
XuiListSetCurSelVisible(m_menulist, selection); XuiListSetCurSelVisible(m_menulist, selection);
menu_input_ctl(MENU_INPUT_CTL_KEYBOARD_DISPLAY, &display_kb); if (menu_input_dialog_get_display_kb())
if (display_kb)
{ {
char msg[1024] = {0}; char msg[1024] = {0};
const char *label = NULL;
const char *str = menu_input_dialog_get_buffer(); const char *str = menu_input_dialog_get_buffer();
const char *label = menu_input_dialog_get_label_buffer();
menu_input_ctl(MENU_INPUT_CTL_KEYBOARD_LABEL, &label);
if (!str)
str = "";
snprintf(msg, sizeof(msg), "%s\n%s", label, str); snprintf(msg, sizeof(msg), "%s\n%s", label, str);
xui_render_messagebox(msg); xui_render_messagebox(msg);
} }

View File

@ -190,12 +190,9 @@ void menu_input_st_uint_cb(void *userdata, const char *str)
{ {
if (str && *str) if (str && *str)
{ {
rarch_setting_t *setting = NULL; const char *label = menu_input_dialog_get_label_buffer();
const char *label = NULL; rarch_setting_t *setting = menu_setting_find(label);
menu_input_ctl(MENU_INPUT_CTL_KEYBOARD_LABEL_SETTING, &label);
setting = menu_setting_find(label);
setting_set_with_string_representation(setting, str); setting_set_with_string_representation(setting, str);
} }
@ -206,12 +203,8 @@ void menu_input_st_hex_cb(void *userdata, const char *str)
{ {
if (str && *str) if (str && *str)
{ {
rarch_setting_t *setting = NULL; const char *label = menu_input_dialog_get_label_buffer();
const char *label = NULL; rarch_setting_t *setting = menu_setting_find(label);
menu_input_ctl(MENU_INPUT_CTL_KEYBOARD_LABEL_SETTING, &label);
setting = menu_setting_find(label);
if (setting) if (setting)
{ {
@ -648,6 +641,8 @@ bool menu_input_mouse_check_vector_inside_hitbox(menu_input_ctx_hitbox_t *hitbox
const char *menu_input_dialog_get_buffer(void) const char *menu_input_dialog_get_buffer(void)
{ {
if (!(*menu_input_keyboard_buffer))
return "";
return *menu_input_keyboard_buffer; return *menu_input_keyboard_buffer;
} }
@ -708,18 +703,6 @@ bool menu_input_ctl(enum menu_input_ctl_state state, void *data)
case MENU_INPUT_CTL_UNSET_POINTER_DRAGGED: case MENU_INPUT_CTL_UNSET_POINTER_DRAGGED:
pointer_dragging = false; pointer_dragging = false;
break; break;
case MENU_INPUT_CTL_KEYBOARD_LABEL:
{
const char **ptr = (const char**)data;
*ptr = menu_input_keyboard_label;
}
break;
case MENU_INPUT_CTL_KEYBOARD_LABEL_SETTING:
{
const char **ptr = (const char**)data;
*ptr = menu_input_keyboard_label_setting;
}
break;
case MENU_INPUT_CTL_BIND_NONE: case MENU_INPUT_CTL_BIND_NONE:
case MENU_INPUT_CTL_BIND_SINGLE: case MENU_INPUT_CTL_BIND_SINGLE:
case MENU_INPUT_CTL_BIND_ALL: case MENU_INPUT_CTL_BIND_ALL:

View File

@ -76,8 +76,6 @@ enum menu_input_ctl_state
MENU_INPUT_CTL_IS_POINTER_DRAGGED, MENU_INPUT_CTL_IS_POINTER_DRAGGED,
MENU_INPUT_CTL_SET_POINTER_DRAGGED, MENU_INPUT_CTL_SET_POINTER_DRAGGED,
MENU_INPUT_CTL_UNSET_POINTER_DRAGGED, MENU_INPUT_CTL_UNSET_POINTER_DRAGGED,
MENU_INPUT_CTL_KEYBOARD_LABEL,
MENU_INPUT_CTL_KEYBOARD_LABEL_SETTING,
MENU_INPUT_CTL_DEINIT, MENU_INPUT_CTL_DEINIT,
MENU_INPUT_CTL_BIND_NONE, MENU_INPUT_CTL_BIND_NONE,
MENU_INPUT_CTL_BIND_SINGLE, MENU_INPUT_CTL_BIND_SINGLE,

View File

@ -1772,10 +1772,8 @@ static void menu_input_st_string_cb(void *userdata, const char *str)
{ {
if (str && *str) if (str && *str)
{ {
rarch_setting_t *setting = NULL; rarch_setting_t *setting = NULL;
const char *label = NULL; const char *label = menu_input_dialog_get_label_buffer();
menu_input_ctl(MENU_INPUT_CTL_KEYBOARD_LABEL_SETTING, &label);
if (!string_is_empty(label)) if (!string_is_empty(label))
setting = menu_setting_find(label); setting = menu_setting_find(label);