Pārlūkot izejas kodu

unix: Add internal function SDL_CanUseGtk()

Necessary for a backport of #14712 to the 3.2.x branch. In the 3.4.x
branch this was factored out from tray-icon code, but 3.2.x doesn't have
that functionality.

Helps: https://github.com/libsdl-org/sdl2-compat/issues/564
Signed-off-by: Simon McVittie <smcv@debian.org>
Simon McVittie 2 mēneši atpakaļ
vecāks
revīzija
a45a2368a7
2 mainītis faili ar 60 papildinājumiem un 0 dzēšanām
  1. 31 0
      src/core/unix/SDL_gtk.c
  2. 29 0
      src/core/unix/SDL_gtk.h

+ 31 - 0
src/core/unix/SDL_gtk.c

@@ -0,0 +1,31 @@
+/*
+  Simple DirectMedia Layer
+  Copyright (C) 1997-2025 Sam Lantinga <slouken@libsdl.org>
+
+  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_gtk.h"
+
+bool SDL_CanUseGtk(void)
+{
+    if (!SDL_GetHintBoolean("SDL_ENABLE_GTK", true)) {
+        return false;
+    }
+
+    return true;
+}

+ 29 - 0
src/core/unix/SDL_gtk.h

@@ -0,0 +1,29 @@
+/*
+  Simple DirectMedia Layer
+  Copyright (C) 1997-2025 Sam Lantinga <slouken@libsdl.org>
+
+  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"
+
+#ifndef SDL_gtk_h_
+#define SDL_gtk_h_
+
+extern bool SDL_CanUseGtk(void);
+
+#endif // SDL_gtk_h_