From 2d36bfdc99a6bda76ddc780bade8007fad69bf65 Mon Sep 17 00:00:00 2001 From: Agent X <44549182+Agent-11@users.noreply.github.com> Date: Sun, 17 Dec 2023 09:04:01 -0500 Subject: [PATCH] Add "Open User Folder" button (AppData on Windows) --- lang/Czech.ini | 2 ++ lang/Dutch.ini | 2 ++ lang/English.ini | 8 +++++--- lang/French.ini | 2 ++ lang/German.ini | 2 ++ lang/Italian.ini | 2 ++ lang/Polish.ini | 2 ++ lang/Portuguese.ini | 2 ++ lang/Russian.ini | 2 ++ lang/SpanishES.ini | 2 ++ lang/SpanishUS.ini | 2 ++ src/pc/djui/djui_panel_options.c | 26 ++++++++++++++++++++++++++ src/pc/lua/utils/smlua_misc_utils.c | 2 +- 13 files changed, 52 insertions(+), 4 deletions(-) diff --git a/lang/Czech.ini b/lang/Czech.ini index 52ac322f..6b62de99 100644 --- a/lang/Czech.ini +++ b/lang/Czech.ini @@ -276,6 +276,8 @@ CONTROLS = "Ovládání" DISPLAY = "Video" SOUND = "Zvuk" MISC = "Jiné" +USER_FOLDER = "Otevřít uživatelský adresář" +APPDATA = "Otevřít AppData" [PAUSE] QUIT_TITLE = "ODPOJIT SE" diff --git a/lang/Dutch.ini b/lang/Dutch.ini index 5b1a49e2..e957b1f5 100644 --- a/lang/Dutch.ini +++ b/lang/Dutch.ini @@ -276,6 +276,8 @@ CONTROLS = "Controles" DISPLAY = "Weergave" SOUND = "Geluid" MISC = "Misc" +USER_FOLDER = "Gebruikersmap openen" +APPDATA = "Open AppData" [PAUSE] QUIT_TITLE = "STOPPEN" diff --git a/lang/English.ini b/lang/English.ini index 509929c8..51365381 100644 --- a/lang/English.ini +++ b/lang/English.ini @@ -191,9 +191,9 @@ SHARE_LIVES = "Share lives" ENABLE_CHEATS = "Enable cheats" BUBBLE_ON_DEATH = "Bubble on death" NAMETAGS = "Nametags \\#ffff00\\(NEW!)" -BOUNCY_BOUNDS_ON_CAP = "On (Capped)" -BOUNCY_BOUNDS_ON = "On" -BOUNCY_BOUNDS_OFF = "Off" +BOUNCY_BOUNDS_ON_CAP = "ON (Capped)" +BOUNCY_BOUNDS_ON = "ON" +BOUNCY_BOUNDS_OFF = "OFF" BOUNCY_LEVEL_BOUNDS = "Bouncy Level Bounds \\#ffff00\\(NEW!)" AMOUNT_OF_PLAYERS = "Amount of players" @@ -276,6 +276,8 @@ CONTROLS = "Controls" DISPLAY = "Display" SOUND = "Sound" MISC = "Misc" +USER_FOLDER = "Open User Folder" +APPDATA = "Open AppData" [PAUSE] QUIT_TITLE = "QUIT" diff --git a/lang/French.ini b/lang/French.ini index a5579aeb..534020c3 100644 --- a/lang/French.ini +++ b/lang/French.ini @@ -276,6 +276,8 @@ CONTROLS = "Contrôles" DISPLAY = "Affichage" SOUND = "Audio" MISC = "Autres Paramètres" +USER_FOLDER = "Ouvrir le dossier utilisateur" +APPDATA = "Ouvrir AppData" [PAUSE] QUIT_TITLE = "QUITTER" diff --git a/lang/German.ini b/lang/German.ini index e71cd587..5a388f61 100644 --- a/lang/German.ini +++ b/lang/German.ini @@ -276,6 +276,8 @@ CONTROLS = "Steuerung" DISPLAY = "Anzeige" SOUND = "Sound" MISC = "Sonstiges" +USER_FOLDER = "Benutzerordner öffnen" +APPDATA = "AppData öffnen" [PAUSE] QUIT_TITLE = "BEENDEN" diff --git a/lang/Italian.ini b/lang/Italian.ini index 72d7ec0a..43c4742b 100644 --- a/lang/Italian.ini +++ b/lang/Italian.ini @@ -274,6 +274,8 @@ CONTROLS = "Comandi" DISPLAY = "Grafica" SOUND = "Suono" MISC = "Varie" +USER_FOLDER = "Apri cartella utente" +APPDATA = "Apri AppData" [PAUSE] QUIT_TITLE = "ABBANDONA" diff --git a/lang/Polish.ini b/lang/Polish.ini index 32cfcc13..16485110 100644 --- a/lang/Polish.ini +++ b/lang/Polish.ini @@ -276,6 +276,8 @@ CONTROLS = "Sterowanie" DISPLAY = "Wyswietlanie" SOUND = "Dzwiek" MISC = "Rozne" +USER_FOLDER = "Otwórz folder użytkownika" +APPDATA = "Otwórz AppData" [PAUSE] QUIT_TITLE = "WYJSCIE" diff --git a/lang/Portuguese.ini b/lang/Portuguese.ini index baf3e343..1b75d085 100644 --- a/lang/Portuguese.ini +++ b/lang/Portuguese.ini @@ -276,6 +276,8 @@ CONTROLS = "Controles" DISPLAY = "Vídeo" SOUND = "Som" MISC = "Outros" +USER_FOLDER = "Abrir pasta do usuário" +APPDATA = "Abrir AppData" [PAUSE] QUIT_TITLE = "SAIR" diff --git a/lang/Russian.ini b/lang/Russian.ini index b15ffa9d..ccd8736b 100644 --- a/lang/Russian.ini +++ b/lang/Russian.ini @@ -275,6 +275,8 @@ CONTROLS = "Управление" DISPLAY = "Дисплей" SOUND = "Звук" MISC = "Разное" +USER_FOLDER = "Открыть папку пользователя" +APPDATA = "Открыть AppData" [PAUSE] QUIT_TITLE = "QUIT" diff --git a/lang/SpanishES.ini b/lang/SpanishES.ini index 4cca1ac3..599cddb0 100644 --- a/lang/SpanishES.ini +++ b/lang/SpanishES.ini @@ -276,6 +276,8 @@ CONTROLS = "Controles" DISPLAY = "Pantalla" SOUND = "Sonido" MISC = "Otros" +USER_FOLDER = "Abrir carpeta de usuario" +APPDATA = "Abrir AppData" [PAUSE] QUIT_TITLE = "SALIR" diff --git a/lang/SpanishUS.ini b/lang/SpanishUS.ini index 75af2381..81ea2aa2 100644 --- a/lang/SpanishUS.ini +++ b/lang/SpanishUS.ini @@ -276,6 +276,8 @@ CONTROLS = "Controles" DISPLAY = "Pantalla" SOUND = "Sonido" MISC = "Otros" +USER_FOLDER = "Abrir carpeta de usuario" +APPDATA = "Abrir AppData" [PAUSE] QUIT_TITLE = "SALIR" diff --git a/src/pc/djui/djui_panel_options.c b/src/pc/djui/djui_panel_options.c index 7e16fdd5..e5e22769 100644 --- a/src/pc/djui/djui_panel_options.c +++ b/src/pc/djui/djui_panel_options.c @@ -12,6 +12,27 @@ #include "pc/utils/misc.h" #include "pc/pc_main.h" +#if defined(_WIN32) || defined(_WIN64) +#include +#endif + +void djui_panel_options_open_user_folder(UNUSED struct DjuiBase* caller) { +#if defined(_WIN32) || defined(_WIN64) + // Windows + ShellExecuteA(NULL, "open", sys_user_path(), NULL, NULL, SW_SHOWNORMAL); +#elif __linux__ + // Linux + char command[512]; + snprintf(command, sizeof(command), "xdg-open %s", sys_user_path()); + system(command); +#elif __APPLE__ + // macOS + char command[512]; + snprintf(command, sizeof(command), "open %s", sys_user_path()); + system(command); +#endif +} + void djui_panel_options_back(struct DjuiBase* caller) { configfile_save(configfile_name()); djui_panel_menu_back(caller); @@ -33,6 +54,11 @@ void djui_panel_options_create(struct DjuiBase* caller) { djui_button_create(body, DLANG(OPTIONS, DISPLAY), DJUI_BUTTON_STYLE_NORMAL, djui_panel_display_create); djui_button_create(body, DLANG(OPTIONS, SOUND), DJUI_BUTTON_STYLE_NORMAL, djui_panel_sound_create); djui_button_create(body, DLANG(OPTIONS, MISC), DJUI_BUTTON_STYLE_NORMAL, djui_panel_misc_create); +#if defined(_WIN32) || defined(_WIN64) + djui_button_create(body, DLANG(OPTIONS, APPDATA), DJUI_BUTTON_STYLE_NORMAL, djui_panel_options_open_user_folder); +#elif __linux__ || __APPLE__ || __MACH__ + djui_button_create(body, DLANG(OPTIONS, USER_FOLDER), DJUI_BUTTON_STYLE_NORMAL, djui_panel_options_open_user_folder); +#endif djui_button_create(body, DLANG(MENU, BACK), DJUI_BUTTON_STYLE_BACK, djui_panel_options_back); } diff --git a/src/pc/lua/utils/smlua_misc_utils.c b/src/pc/lua/utils/smlua_misc_utils.c index 878d82d5..fe589685 100644 --- a/src/pc/lua/utils/smlua_misc_utils.c +++ b/src/pc/lua/utils/smlua_misc_utils.c @@ -626,7 +626,7 @@ const char* get_os_name(void) { #if defined(_WIN32) || defined(_WIN64) return "Windows"; #elif __APPLE__ || __MACH__ - return "Mac OSX"; + return "Mac OSX"; // should be macOS #elif __linux__ return "Linux"; #elif __FreeBSD__