From 5bb7097fbbdcca5285a18f814e857eef6188fecf Mon Sep 17 00:00:00 2001 From: twinaphex Date: Sun, 2 Mar 2014 06:07:18 +0100 Subject: [PATCH] (Menu) Add OSK enable option --- frontend/menu/menu_common.c | 4 +++- frontend/menu/menu_common.h | 1 + frontend/menu/menu_settings.c | 33 ++++++++++++++++++++++++++++++--- general.h | 1 + griffin/griffin.c | 2 +- 5 files changed, 36 insertions(+), 5 deletions(-) diff --git a/frontend/menu/menu_common.c b/frontend/menu/menu_common.c index 2bde0c50a7..2f40e45bfc 100644 --- a/frontend/menu/menu_common.c +++ b/frontend/menu/menu_common.c @@ -1982,7 +1982,9 @@ void menu_populate_entries(void *data, unsigned menu_type) file_list_push(rgui->selection_buf, "Configure All (RetroPad)", RGUI_SETTINGS_CUSTOM_BIND_ALL, 0); file_list_push(rgui->selection_buf, "Default All (RetroPad)", RGUI_SETTINGS_CUSTOM_BIND_DEFAULT_ALL, 0); - +#ifdef HAVE_OSK + file_list_push(rgui->selection_buf, "Onscreen Keyboard Enable", RGUI_SETTINGS_ONSCREEN_KEYBOARD_ENABLE, 0); +#endif last = (driver.input && driver.input->set_keybinds && !driver.input->get_joypad_driver) ? RGUI_SETTINGS_BIND_R3 : RGUI_SETTINGS_BIND_MENU_TOGGLE; for (i = RGUI_SETTINGS_BIND_BEGIN; i <= last; i++) file_list_push(rgui->selection_buf, input_config_bind_map[i - RGUI_SETTINGS_BIND_BEGIN].desc, i, 0); diff --git a/frontend/menu/menu_common.h b/frontend/menu/menu_common.h index b6743951a5..1fcf938cb7 100644 --- a/frontend/menu/menu_common.h +++ b/frontend/menu/menu_common.h @@ -240,6 +240,7 @@ typedef enum RGUI_SETTINGS_CUSTOM_BIND, RGUI_SETTINGS_CUSTOM_BIND_ALL, RGUI_SETTINGS_CUSTOM_BIND_DEFAULT_ALL, + RGUI_SETTINGS_ONSCREEN_KEYBOARD_ENABLE, RGUI_SETTINGS_BIND_LAST = RGUI_SETTINGS_BIND_ANALOG_RIGHT_Y_MINUS, diff --git a/frontend/menu/menu_settings.c b/frontend/menu/menu_settings.c index a36b9ef3a3..388fcf7326 100644 --- a/frontend/menu/menu_settings.c +++ b/frontend/menu/menu_settings.c @@ -1607,11 +1607,19 @@ int menu_set_settings(void *data, unsigned setting, unsigned action) #endif break; case RGUI_SETTINGS_RSOUND_SERVER_IP_ADDRESS: -#if defined(HAVE_RSOUND) && defined(HAVE_OSK) +#ifdef HAVE_RSOUND if (action == RGUI_ACTION_OK) { +#ifdef HAVE_OSK + if (g_settings.osk.enable) + { g_extern.osk.cb_init = osk_callback_enter_rsound_init; g_extern.osk.cb_callback = osk_callback_enter_rsound; + } + else +#endif + { + } } #endif break; @@ -1723,9 +1731,15 @@ int menu_set_settings(void *data, unsigned setting, unsigned action) if (action == RGUI_ACTION_OK) { #ifdef HAVE_OSK - g_extern.osk.cb_init = osk_callback_enter_filename_init; - g_extern.osk.cb_callback = osk_callback_enter_filename; + if (g_settings.osk.enable) + { + g_extern.osk.cb_init = osk_callback_enter_filename_init; + g_extern.osk.cb_callback = osk_callback_enter_filename; + } + else #endif + { + } } break; case RGUI_SETTINGS_CUSTOM_BGM_CONTROL_ENABLE: @@ -1842,6 +1856,14 @@ int menu_set_settings(void *data, unsigned setting, unsigned action) else if (action == RGUI_ACTION_START) g_extern.netplay_is_spectate = false; break; +#endif +#ifdef HAVE_OSK + case RGUI_SETTINGS_ONSCREEN_KEYBOARD_ENABLE: + if (action == RGUI_ACTION_OK || action == RGUI_ACTION_LEFT || action == RGUI_ACTION_RIGHT) + g_settings.osk.enable = !g_settings.osk.enable; + else if (action == RGUI_ACTION_START) + g_settings.osk.enable = false; + break; #endif default: break; @@ -2269,6 +2291,11 @@ void menu_set_settings_label(char *type_str, size_t type_str_size, unsigned *w, case RGUI_SETTINGS_NETPLAY_SPECTATOR_MODE_ENABLE: snprintf(type_str, type_str_size, g_extern.netplay_is_spectate ? "ON" : "OFF"); break; +#endif +#ifdef HAVE_OSK + case RGUI_SETTINGS_ONSCREEN_KEYBOARD_ENABLE: + snprintf(type_str, type_str_size, g_settings.osk.enable ? "ON" : "OFF"); + break; #endif default: *type_str = '\0'; diff --git a/general.h b/general.h index 3b6f6dc98f..8d3d2c898b 100644 --- a/general.h +++ b/general.h @@ -210,6 +210,7 @@ struct settings struct { char driver[32]; + bool enable; } osk; #endif diff --git a/griffin/griffin.c b/griffin/griffin.c index ba7acbecc2..a2b595bd6a 100644 --- a/griffin/griffin.c +++ b/griffin/griffin.c @@ -571,7 +571,7 @@ SCREENSHOTS MENU ============================================================ */ #ifdef HAVE_MENU -#include "../frontend/menu/menu_input_line.c" +#include "../frontend/menu/menu_input_line_cb.c" #include "../frontend/menu/menu_common.c" #include "../frontend/menu/menu_navigation.c" #include "../frontend/menu/menu_context.c"