mirror of
https://github.com/vanilla-wiiu/vanilla.git
synced 2026-10-28 09:43:51 +00:00
gui: improve menus
This commit is contained in:
1 parent
f956b9c356
commit
c516647bec
4 files changed
+47
-19
No files matched your search
+4
-3
@@ -50,14 +50,15 @@ static const char *lang_str[__VPI_LANG_T_COUNT] = {
|
||||
"WARNING",
|
||||
"This option will install a Polkit rule that will allow Vanilla's backend to run as root without password entry.\n\nThere are inherent risks to bypassing security systems. Only enable this if you are willing to accept those risks.\n\nNOTE: If you are using the Steam Deck, this will also disable read-only access to your system partition.",
|
||||
"I acknowledge",
|
||||
"Enable Root Password Skip",
|
||||
"Disable Root Password Skip",
|
||||
"Root Password Skip",
|
||||
"Root Password Skip",
|
||||
"Swap AB/XY buttons",
|
||||
"Keyboard Controls",
|
||||
"Reset To Defaults",
|
||||
"Reset",
|
||||
"Full Screen",
|
||||
"Hardware Decoding"
|
||||
"Hardware Decoding",
|
||||
"Cursor In Full Screen"
|
||||
};
|
||||
|
||||
const char *lang(vpi_lang_t id)
|
||||
|
||||
@@ -59,6 +59,7 @@ typedef enum {
|
||||
VPI_LANG_RESET,
|
||||
VPI_LANG_FULLSCREEN,
|
||||
VPI_LANG_HWDEC,
|
||||
VPI_LANG_CURSOR_IN_FS,
|
||||
__VPI_LANG_T_COUNT
|
||||
} vpi_lang_t;
|
||||
|
||||
|
||||
+39
-13
@@ -103,6 +103,14 @@ static void toggle_fullscreen(vui_context_t *vui, int button, void *v)
|
||||
vui_button_update_checked(vui, button, vpi_config.fullscreen);
|
||||
}
|
||||
|
||||
static void toggle_cursor_in_fullscreen(vui_context_t *vui, int button, void *v)
|
||||
{
|
||||
vpi_config.cursor_in_fullscreen = !vpi_config.cursor_in_fullscreen;
|
||||
vpi_config_save();
|
||||
vui_set_fullscreen(vui, vpi_config.fullscreen);
|
||||
vui_button_update_checked(vui, button, vpi_config.cursor_in_fullscreen);
|
||||
}
|
||||
|
||||
static void toggle_hwdec(vui_context_t *vui, int button, void *v)
|
||||
{
|
||||
vpi_config.force_software_decode = !vpi_config.force_software_decode;
|
||||
@@ -149,6 +157,11 @@ void vpi_menu_settings(vui_context_t *vui, void *v)
|
||||
SETTINGS_NAMES[sc] = VPI_LANG_FULLSCREEN;
|
||||
SETTINGS_ACTION[sc] = toggle_fullscreen;
|
||||
sc++;
|
||||
|
||||
int SHOW_CURSOR_IN_FS_BTN = sc;
|
||||
SETTINGS_NAMES[sc] = VPI_LANG_CURSOR_IN_FS;
|
||||
SETTINGS_ACTION[sc] = toggle_cursor_in_fullscreen;
|
||||
sc++;
|
||||
#else
|
||||
SETTINGS_NAMES[sc] = VPI_LANG_QUIT;
|
||||
SETTINGS_ACTION[sc] = thunk_to_quit;
|
||||
@@ -157,9 +170,9 @@ void vpi_menu_settings(vui_context_t *vui, void *v)
|
||||
|
||||
// Polkit option (if on a platform that supports polkit)
|
||||
#ifdef VANILLA_POLKIT_AVAILABLE
|
||||
int pw_skip_str;
|
||||
vui_button_callback_t pw_skip_action;
|
||||
if (access(POLKIT_ACTION_DST, F_OK) == 0) {
|
||||
int PW_SKIP_SETTING = sc;
|
||||
const int PW_SKIP_ENABLED = access(POLKIT_ACTION_DST, F_OK) == 0;
|
||||
if (PW_SKIP_ENABLED) {
|
||||
SETTINGS_NAMES[sc] = VPI_LANG_DISABLE_PASSWORD_SKIP;
|
||||
SETTINGS_ACTION[sc] = transition_to_uninstall_polkit_rule;
|
||||
} else {
|
||||
@@ -180,27 +193,40 @@ void vpi_menu_settings(vui_context_t *vui, void *v)
|
||||
sc++;
|
||||
#endif
|
||||
|
||||
int btnw = scrw*3/4;
|
||||
int btnx = scrw/2 - btnw/2;
|
||||
int btny = scrh/10;
|
||||
// Back button
|
||||
vpi_menu_create_back_button(vui, fglayer, return_to_main, (void *) (intptr_t) fglayer);
|
||||
|
||||
const int COLS = 2;
|
||||
|
||||
int btnfw = scrw;
|
||||
int btnw = btnfw / 2;
|
||||
int btnx = scrw/2 - btnfw/2;
|
||||
int btny = BTN_SZ;
|
||||
for (int index = 0; index < sc; index++) {
|
||||
buttons[index] = vui_button_create(vui, btnx, btny, btnw, BTN_SZ, lang(SETTINGS_NAMES[index]), 0, VUI_BUTTON_STYLE_BUTTON, fglayer, SETTINGS_ACTION[index], (void *) (intptr_t) fglayer);
|
||||
btny += BTN_SZ;
|
||||
int row = index / COLS;
|
||||
int col = index % COLS;
|
||||
buttons[index] = vui_button_create(vui, btnx + btnw * col, btny + BTN_SZ * row, btnw, BTN_SZ, lang(SETTINGS_NAMES[index]), 0, VUI_BUTTON_STYLE_BUTTON, fglayer, SETTINGS_ACTION[index], (void *) (intptr_t) fglayer);
|
||||
}
|
||||
|
||||
#ifdef VANILLA_POLKIT_AVAILABLE
|
||||
// Make root password skip button checkable
|
||||
vui_button_update_checkable(vui, buttons[PW_SKIP_SETTING], 1);
|
||||
vui_button_update_checked(vui, buttons[PW_SKIP_SETTING], PW_SKIP_ENABLED);
|
||||
#endif // VANILLA_POLKIT_AVAILABLE
|
||||
|
||||
#ifdef VANILLA_GUI_ENABLE_WINDOWED
|
||||
// Make full screen button checkable
|
||||
vui_button_update_checkable(vui, buttons[FS_SETTING], 1);
|
||||
vui_button_update_checked(vui, buttons[FS_SETTING], vpi_config.fullscreen);
|
||||
#endif
|
||||
|
||||
vui_button_update_checkable(vui, buttons[SHOW_CURSOR_IN_FS_BTN], 1);
|
||||
vui_button_update_checked(vui, buttons[SHOW_CURSOR_IN_FS_BTN], vpi_config.cursor_in_fullscreen);
|
||||
#endif // VANILLA_GUI_ENABLE_WINDOWED
|
||||
|
||||
#ifdef VANILLA_HAS_HWDEC
|
||||
vui_button_update_checkable(vui, buttons[HWDEC_SETTING], 1);
|
||||
vui_button_update_checked(vui, buttons[HWDEC_SETTING], !vpi_config.force_software_decode);
|
||||
#endif
|
||||
|
||||
// Back button
|
||||
vpi_menu_create_back_button(vui, fglayer, return_to_main, (void *) (intptr_t) fglayer);
|
||||
#endif // VANILLA_HAS_HWDEC
|
||||
|
||||
vui_transition_fade_layer_in(vui, fglayer, 0, 0);
|
||||
}
|
||||
+3
-3
@@ -1,6 +1,7 @@
|
||||
#include "ui.h"
|
||||
|
||||
#include <limits.h>
|
||||
#include <math.h>
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
#include <string.h>
|
||||
@@ -288,20 +289,19 @@ void vui_select_direction(vui_context_t *ctx, vui_direction_t dir)
|
||||
}
|
||||
|
||||
vui_direction_t btn_dir;
|
||||
int btn_dist;
|
||||
|
||||
int diffx_abs = abs(diffx);
|
||||
int diffy_abs = abs(diffy);
|
||||
|
||||
int btn_dist = sqrt(((int64_t)diffx_abs * diffx_abs) + ((int64_t)diffy_abs * diffy_abs));
|
||||
|
||||
if (diffx_abs > diffy_abs) {
|
||||
btn_dist = diffx_abs;
|
||||
if (diffx > 0) {
|
||||
btn_dir = VUI_DIR_RIGHT;
|
||||
} else {
|
||||
btn_dir = VUI_DIR_LEFT;
|
||||
}
|
||||
} else {
|
||||
btn_dist = diffy_abs;
|
||||
if (diffy > 0) {
|
||||
btn_dir = VUI_DIR_DOWN;
|
||||
} else {
|
||||
|
||||
Reference in new issue
Block a user