(Menu) Add OSK enable option

This commit is contained in:
twinaphex 2014-03-02 06:07:18 +01:00
parent a58820d927
commit 5bb7097fbb
5 changed files with 36 additions and 5 deletions

View File

@ -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);

View File

@ -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,

View File

@ -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';

View File

@ -210,6 +210,7 @@ struct settings
struct
{
char driver[32];
bool enable;
} osk;
#endif

View File

@ -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"