diff --git a/README.md b/README.md index a819b03..2ca71c7 100644 --- a/README.md +++ b/README.md @@ -47,6 +47,7 @@ Extra Vanilla functionality can be accessed through these keyboard shortcuts. On | Function | Key | | --------------------- | ------------- | | Start/Stop Recording | F5 | +| Toggle Fullscreen | F11 | | Take Screenshot | F12 | | Disconnect | Esc | diff --git a/gui/assets/tex/fullscreen_icon.svg b/gui/assets/tex/fullscreen_icon.svg new file mode 100644 index 0000000..98f5319 --- /dev/null +++ b/gui/assets/tex/fullscreen_icon.svg @@ -0,0 +1,101 @@ + + + + + + + + + + + + + + + diff --git a/gui/menu/menu.c b/gui/menu/menu.c index b1cba8b..f7a71f1 100644 --- a/gui/menu/menu.c +++ b/gui/menu/menu.c @@ -71,5 +71,11 @@ void vpi_menu_action(vui_context_t *vui, vpi_extra_action_t action) } break; } + case VPI_ACTION_TOGGLE_FULLSCREEN: + { + vpi_config.fullscreen = !vpi_config.fullscreen; + vpi_config_save(); + vui_set_fullscreen(vui, vpi_config.fullscreen); + } } } diff --git a/gui/menu/menu.h b/gui/menu/menu.h index 97188a0..75c5b38 100644 --- a/gui/menu/menu.h +++ b/gui/menu/menu.h @@ -8,6 +8,7 @@ typedef enum { VPI_ACTION_SCREENSHOT, VPI_ACTION_TOGGLE_RECORDING, VPI_ACTION_DISCONNECT, + VPI_ACTION_TOGGLE_FULLSCREEN, } vpi_extra_action_t; void vpi_menu_init(vui_context_t *vui); diff --git a/gui/menu/menu_gamepad.c b/gui/menu/menu_gamepad.c index 2e7da60..d5216fe 100644 --- a/gui/menu/menu_gamepad.c +++ b/gui/menu/menu_gamepad.c @@ -161,6 +161,8 @@ void vpi_menu_key_bindings_more(vui_context_t *vui, void *v) // Special Action Buttons create_key_bind_button(vui, VPI_ACTION_TOGGLE_RECORDING, img_x + img_w + padding, img_y + padding + (img_w * btn_offset), btn_w, btn_h, layer); vui_image_create(vui, img_x, img_y + padding + (img_h * btn_offset++), img_w, img_h, "recording_icon.svg", layer); + create_key_bind_button(vui, VPI_ACTION_TOGGLE_FULLSCREEN, img_x + img_w + padding, img_y + padding + (img_w * btn_offset), btn_w, btn_h, layer); + vui_image_create(vui, img_x, img_y + padding + (img_h * btn_offset++), img_w, img_h, "fullscreen_icon.svg", layer); create_key_bind_button(vui, VPI_ACTION_SCREENSHOT, img_x + img_w + padding, img_y + padding + (img_w * btn_offset), btn_w, btn_h, layer); vui_image_create(vui, img_x, img_y + padding + (img_h * btn_offset++), img_w, img_h, "screenshot_icon.svg", layer); } diff --git a/gui/ui/ui_sdl.c b/gui/ui/ui_sdl.c index 52e9a61..92f0476 100644 --- a/gui/ui/ui_sdl.c +++ b/gui/ui/ui_sdl.c @@ -154,6 +154,7 @@ void init_gamepad(vui_context_t *ctx) ctx->default_key_map[SDL_SCANCODE_J] = VANILLA_BTN_ZR; ctx->default_key_map[SDL_SCANCODE_F5] = VPI_ACTION_TOGGLE_RECORDING; ctx->default_key_map[SDL_SCANCODE_F12] = VPI_ACTION_SCREENSHOT; + ctx->default_key_map[SDL_SCANCODE_F11] = VPI_ACTION_TOGGLE_FULLSCREEN; ctx->default_key_map[SDL_SCANCODE_ESCAPE] = VPI_ACTION_DISCONNECT; }