diff options
author | Michael Pavone <pavone@retrodev.com> | 2017-11-22 11:18:36 -0800 |
---|---|---|
committer | Michael Pavone <pavone@retrodev.com> | 2017-11-22 11:18:36 -0800 |
commit | b21ebe75d412c72441be8a63c202641cc5ff4dfa (patch) | |
tree | 8b2aeb2b5a3a9db49c93919ea9dd443e02ff7dce | |
parent | 6895070c631340809829e0c20c085b231b0fcadd (diff) |
Pause menu now triggered on ui.exit event
--HG--
branch : nuklear_ui
-rw-r--r-- | io.c | 11 | ||||
-rw-r--r-- | nuklear_ui/blastem_nuklear.c | 14 | ||||
-rw-r--r-- | nuklear_ui/blastem_nuklear.h | 2 |
3 files changed, 27 insertions, 0 deletions
@@ -23,6 +23,9 @@ #include "render.h" #include "util.h" #include "menu.h" +#ifndef DISABLE_NUKLEAR +#include "nuklear_ui/blastem_nuklear.h" +#endif #define CYCLE_NEVER 0xFFFFFFFF #define MIN_POLL_INTERVAL 6840 @@ -532,6 +535,11 @@ void handle_binding_up(keybinding * binding) break; } case UI_EXIT: +#ifndef DISABLE_NUKLEAR + if (is_nuklear_active) { + show_pause_menu(); + } else { +#endif current_system->request_exit(current_system); if (current_system->type == SYSTEM_GENESIS) { genesis_context *gen = (genesis_context *)current_system; @@ -541,6 +549,9 @@ void handle_binding_up(keybinding * binding) menu->external_game_load = 1; } } +#ifndef DISABLE_NUKLEAR + } +#endif break; } break; diff --git a/nuklear_ui/blastem_nuklear.c b/nuklear_ui/blastem_nuklear.c index e63d9cf..2042402 100644 --- a/nuklear_ui/blastem_nuklear.c +++ b/nuklear_ui/blastem_nuklear.c @@ -190,6 +190,19 @@ static void context_created(void) nk_style_set_font(context, &def_font->handle); } +void show_pause_menu(void) +{ + context->style.window.background = nk_rgba(0, 0, 0, 128); + context->style.window.fixed_background = nk_style_item_color(nk_rgba(0, 0, 0, 128)); + current_view = view_pause; +} + +static uint8_t active; +uint8_t is_nuklear_active(void) +{ + return active; +} + void blastem_nuklear_init(uint8_t file_loaded) { context = nk_sdl_init(render_get_window()); @@ -207,5 +220,6 @@ void blastem_nuklear_init(uint8_t file_loaded) render_set_ui_render_fun(blastem_nuklear_render); render_set_event_handler(handle_event); render_set_gl_context_handlers(context_destroyed, context_created); + active = 1; idle_loop(); } diff --git a/nuklear_ui/blastem_nuklear.h b/nuklear_ui/blastem_nuklear.h index bcdeda3..a7cf377 100644 --- a/nuklear_ui/blastem_nuklear.h +++ b/nuklear_ui/blastem_nuklear.h @@ -12,5 +12,7 @@ #include "nuklear_sdl_gles2.h" void blastem_nuklear_init(uint8_t file_loaded); +void show_pause_menu(void); +uint8_t is_nuklear_active(void); #endif //BLASTEM_NUKLEAR_H_ |