diff --git a/Makefile b/Makefile index 452d4417bf..fd2d0da9c8 100644 --- a/Makefile +++ b/Makefile @@ -95,7 +95,7 @@ ifneq ($(findstring Linux,$(OS)),) endif ifeq ($(HAVE_RGUI), 1) - OBJ += frontend/menu/menu_common.o frontend/menu/menu_navigation.o frontend/menu/menu_settings.o frontend/menu/menu_context.o frontend/menu/file_list.o frontend/menu/disp/rgui.o frontend/menu/history.o + OBJ += frontend/menu/menu_input_line_cb.o frontend/menu/menu_common.o frontend/menu/menu_navigation.o frontend/menu/menu_settings.o frontend/menu/menu_context.o frontend/menu/file_list.o frontend/menu/disp/rgui.o frontend/menu/history.o DEFINES += -DHAVE_MENU ifeq ($(HAVE_LAKKA), 1) OBJ += frontend/menu/disp/lakka.o diff --git a/Makefile.emscripten b/Makefile.emscripten index 0629ffa15f..91e19b6ddc 100644 --- a/Makefile.emscripten +++ b/Makefile.emscripten @@ -70,7 +70,7 @@ endif ifeq ($(HAVE_RGUI), 1) DEFINES += -DHAVE_MENU -DHAVE_RGUI - OBJ += frontend/menu/menu_common.o frontend/menu/menu_settings.o frontend/menu/menu_navigation.o frontend/menu/menu_context.o frontend/menu/file_list.o frontend/menu/disp/rgui.o frontend/menu/history.o + OBJ += frontend/menu/menu_input_line_cb.o frontend/menu/menu_common.o frontend/menu/menu_settings.o frontend/menu/menu_navigation.o frontend/menu/menu_context.o frontend/menu/file_list.o frontend/menu/disp/rgui.o frontend/menu/history.o endif ifeq ($(HAVE_SDL), 1) diff --git a/Makefile.win b/Makefile.win index 3d43a3d8e1..edcc5f3d2e 100644 --- a/Makefile.win +++ b/Makefile.win @@ -114,7 +114,7 @@ JLIBS = ifeq ($(HAVE_RGUI), 1) DEFINES += -DHAVE_RGUI -DHAVE_MENU - OBJ += frontend/menu/menu_common.o frontend/menu/menu_settings.o frontend/menu/menu_navigation.o frontend/menu/menu_context.o frontend/menu/file_list.o frontend/menu/disp/rgui.o frontend/menu/history.o + OBJ += frontend/menu/menu_input_line_cb.o frontend/menu/menu_common.o frontend/menu/menu_settings.o frontend/menu/menu_navigation.o frontend/menu/menu_context.o frontend/menu/file_list.o frontend/menu/disp/rgui.o frontend/menu/history.o endif ifeq ($(HAVE_SDL), 1) diff --git a/frontend/frontend.c b/frontend/frontend.c index 9650cbff68..6e7656681e 100644 --- a/frontend/frontend.c +++ b/frontend/frontend.c @@ -24,6 +24,7 @@ frontend_ctx_driver_t *frontend_ctx; #if defined(HAVE_MENU) +#include "menu/menu_input_line_cb.h" #include "menu/menu_common.h" #endif diff --git a/frontend/menu/menu_common.c b/frontend/menu/menu_common.c index c6adb85013..ab57e44dee 100644 --- a/frontend/menu/menu_common.c +++ b/frontend/menu/menu_common.c @@ -29,7 +29,6 @@ #include "../../file.h" #include "../../file_ext.h" #include "../../input/input_common.h" -#include "../../input/keyboard_line.h" #include "../../compat/posix_string.h" @@ -1736,31 +1735,6 @@ bool menu_poll_find_trigger(struct rgui_bind_state *state, struct rgui_bind_stat return false; } -static void menu_search_callback(void *userdata, const char *str) -{ - rgui_handle_t *rgui = (rgui_handle_t*)userdata; - - if (str && *str) - file_list_search(rgui->selection_buf, str, &rgui->selection_ptr); - rgui->keyboard.display = false; - rgui->keyboard.label = NULL; - rgui->old_input_state = -1ULL; // Avoid triggering states on pressing return. -} - -void menu_key_event(bool down, unsigned keycode, uint32_t character, uint16_t mod) -{ - (void)down; - (void)keycode; - (void)mod; - - if (character == '/') - { - rgui->keyboard.display = true; - rgui->keyboard.label = "Search:"; - rgui->keyboard.buffer = input_keyboard_start_line(rgui, menu_search_callback); - } -} - static inline int menu_list_get_first_char(file_list_t *buf, unsigned offset) { const char *path = NULL; diff --git a/frontend/menu/menu_common.h b/frontend/menu/menu_common.h index 303f44633f..b6743951a5 100644 --- a/frontend/menu/menu_common.h +++ b/frontend/menu/menu_common.h @@ -441,8 +441,6 @@ void menu_set_settings_label(char *type_str, size_t type_str_size, unsigned *w, void menu_populate_entries(void *data, unsigned menu_type); unsigned menu_type_is(unsigned type); -void menu_key_event(bool down, unsigned keycode, uint32_t character, uint16_t key_modifiers); - uint64_t menu_input(void); extern const menu_ctx_driver_t *menu_ctx; diff --git a/frontend/menu/menu_input_line_cb.c b/frontend/menu/menu_input_line_cb.c new file mode 100644 index 0000000000..a24bd36b26 --- /dev/null +++ b/frontend/menu/menu_input_line_cb.c @@ -0,0 +1,48 @@ +/* RetroArch - A frontend for libretro. + * Copyright (C) 2010-2014 - Hans-Kristian Arntzen + * Copyright (C) 2011-2014 - Daniel De Matteis + * + * RetroArch is free software: you can redistribute it and/or modify it under the terms + * of the GNU General Public License as published by the Free Software Found- + * ation, either version 3 of the License, or (at your option) any later version. + * + * RetroArch is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; + * without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR + * PURPOSE. See the GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License along with RetroArch. + * If not, see . + */ +#include +#include +#include +#include +#include +#include +#include "menu_common.h" +#include "../../input/keyboard_line.h" + +static void menu_search_callback(void *userdata, const char *str) +{ + rgui_handle_t *rgui = (rgui_handle_t*)userdata; + + if (str && *str) + file_list_search(rgui->selection_buf, str, &rgui->selection_ptr); + rgui->keyboard.display = false; + rgui->keyboard.label = NULL; + rgui->old_input_state = -1ULL; // Avoid triggering states on pressing return. +} + +void menu_key_event(bool down, unsigned keycode, uint32_t character, uint16_t mod) +{ + (void)down; + (void)keycode; + (void)mod; + + if (character == '/') + { + rgui->keyboard.display = true; + rgui->keyboard.label = "Search:"; + rgui->keyboard.buffer = input_keyboard_start_line(rgui, menu_search_callback); + } +} diff --git a/frontend/menu/menu_input_line_cb.h b/frontend/menu/menu_input_line_cb.h new file mode 100644 index 0000000000..14689f2daf --- /dev/null +++ b/frontend/menu/menu_input_line_cb.h @@ -0,0 +1,22 @@ +/* RetroArch - A frontend for libretro. + * Copyright (C) 2010-2014 - Hans-Kristian Arntzen + * Copyright (C) 2011-2014 - Daniel De Matteis + * + * RetroArch is free software: you can redistribute it and/or modify it under the terms + * of the GNU General Public License as published by the Free Software Found- + * ation, either version 3 of the License, or (at your option) any later version. + * + * RetroArch is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; + * without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR + * PURPOSE. See the GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License along with RetroArch. + * If not, see . + */ + +#ifndef _MENU_INPUT_LINE_CB_H +#define _MENU_INPUT_LINE_CB_H + +void menu_key_event(bool down, unsigned keycode, uint32_t character, uint16_t key_modifiers); + +#endif diff --git a/griffin/griffin.c b/griffin/griffin.c index 266bd0f1b7..ba7acbecc2 100644 --- a/griffin/griffin.c +++ b/griffin/griffin.c @@ -571,6 +571,7 @@ SCREENSHOTS MENU ============================================================ */ #ifdef HAVE_MENU +#include "../frontend/menu/menu_input_line.c" #include "../frontend/menu/menu_common.c" #include "../frontend/menu/menu_navigation.c" #include "../frontend/menu/menu_context.c"