From 30f41c02aec763d32e62351452da9ef582bc3472 Mon Sep 17 00:00:00 2001 From: 3gg <3gg@shellblade.net> Date: Fri, 6 Mar 2026 13:30:59 -0800 Subject: Move contrib libraries to contrib repo --- contrib/SDL-3.2.8/src/dialog/unix/SDL_unixdialog.c | 81 ---------------------- 1 file changed, 81 deletions(-) delete mode 100644 contrib/SDL-3.2.8/src/dialog/unix/SDL_unixdialog.c (limited to 'contrib/SDL-3.2.8/src/dialog/unix/SDL_unixdialog.c') diff --git a/contrib/SDL-3.2.8/src/dialog/unix/SDL_unixdialog.c b/contrib/SDL-3.2.8/src/dialog/unix/SDL_unixdialog.c deleted file mode 100644 index bec2ac9..0000000 --- a/contrib/SDL-3.2.8/src/dialog/unix/SDL_unixdialog.c +++ /dev/null @@ -1,81 +0,0 @@ -/* - Simple DirectMedia Layer - Copyright (C) 1997-2025 Sam Lantinga - - This software is provided 'as-is', without any express or implied - warranty. In no event will the authors be held liable for any damages - arising from the use of this software. - - Permission is granted to anyone to use this software for any purpose, - including commercial applications, and to alter it and redistribute it - freely, subject to the following restrictions: - - 1. The origin of this software must not be misrepresented; you must not - claim that you wrote the original software. If you use this software - in a product, an acknowledgment in the product documentation would be - appreciated but is not required. - 2. Altered source versions must be plainly marked as such, and must not be - misrepresented as being the original software. - 3. This notice may not be removed or altered from any source distribution. -*/ -#include "SDL_internal.h" - -#include "../SDL_dialog.h" -#include "./SDL_portaldialog.h" -#include "./SDL_zenitydialog.h" - -static void (*detected_function)(SDL_FileDialogType type, SDL_DialogFileCallback callback, void *userdata, SDL_PropertiesID props) = NULL; - -void SDLCALL hint_callback(void *userdata, const char *name, const char *oldValue, const char *newValue); - -static void set_callback(void) -{ - static bool is_set = false; - - if (is_set == false) { - is_set = true; - SDL_AddHintCallback(SDL_HINT_FILE_DIALOG_DRIVER, hint_callback, NULL); - } -} - -// Returns non-zero on success, 0 on failure -static int detect_available_methods(const char *value) -{ - const char *driver = value ? value : SDL_GetHint(SDL_HINT_FILE_DIALOG_DRIVER); - - set_callback(); - - if (driver == NULL || SDL_strcmp(driver, "portal") == 0) { - if (SDL_Portal_detect()) { - detected_function = SDL_Portal_ShowFileDialogWithProperties; - return 1; - } - } - - if (driver == NULL || SDL_strcmp(driver, "zenity") == 0) { - if (SDL_Zenity_detect()) { - detected_function = SDL_Zenity_ShowFileDialogWithProperties; - return 2; - } - } - - SDL_SetError("File dialog driver unsupported (supported values for SDL_HINT_FILE_DIALOG_DRIVER are 'zenity' and 'portal')"); - return 0; -} - -void SDLCALL hint_callback(void *userdata, const char *name, const char *oldValue, const char *newValue) -{ - detect_available_methods(newValue); -} - -void SDL_SYS_ShowFileDialogWithProperties(SDL_FileDialogType type, SDL_DialogFileCallback callback, void *userdata, SDL_PropertiesID props) -{ - // Call detect_available_methods() again each time in case the situation changed - if (!detected_function && !detect_available_methods(NULL)) { - // SetError() done by detect_available_methods() - callback(userdata, NULL, -1); - return; - } - - detected_function(type, callback, userdata, props); -} -- cgit v1.2.3