1
0
mirror of https://github.com/ocornut/imgui.git synced 2025-01-31 12:03:49 +01:00

IO: amend PlatformOpenInShellFn specs to return a bool. (#7660)

Amend 8f36798
This commit is contained in:
ocornut 2024-07-02 19:03:40 +02:00
parent 380b3559c6
commit 0ebf49b4c1
4 changed files with 10 additions and 10 deletions

View File

@ -579,7 +579,7 @@ static bool ImGui_ImplGlfw_Init(GLFWwindow* window, bool install_callbacks, Glfw
io.GetClipboardTextFn = ImGui_ImplGlfw_GetClipboardText; io.GetClipboardTextFn = ImGui_ImplGlfw_GetClipboardText;
io.ClipboardUserData = bd->Window; io.ClipboardUserData = bd->Window;
#ifdef __EMSCRIPTEN__ #ifdef __EMSCRIPTEN__
io.PlatformOpenInShellFn = [](ImGuiContext*, const char* url) { ImGui_ImplGlfw_EmscriptenOpenURL(url); }; io.PlatformOpenInShellFn = [](ImGuiContext*, const char* url) { ImGui_ImplGlfw_EmscriptenOpenURL(url); return true; };
#endif #endif
// Create mouse cursors // Create mouse cursors

View File

@ -441,7 +441,7 @@ static bool ImGui_ImplSDL2_Init(SDL_Window* window, SDL_Renderer* renderer, void
io.ClipboardUserData = nullptr; io.ClipboardUserData = nullptr;
io.PlatformSetImeDataFn = ImGui_ImplSDL2_PlatformSetImeData; io.PlatformSetImeDataFn = ImGui_ImplSDL2_PlatformSetImeData;
#ifdef __EMSCRIPTEN__ #ifdef __EMSCRIPTEN__
io.PlatformOpenInShellFn = [](ImGuiContext*, const char* url) { ImGui_ImplSDL2_EmscriptenOpenURL(url); }; io.PlatformOpenInShellFn = [](ImGuiContext*, const char* url) { ImGui_ImplSDL2_EmscriptenOpenURL(url); return true; };
#endif #endif
// Gamepad handling // Gamepad handling

View File

@ -1131,7 +1131,7 @@ static void WindowSettingsHandler_WriteAll(ImGuiContext*, ImGuiSetti
static const char* GetClipboardTextFn_DefaultImpl(void* user_data_ctx); static const char* GetClipboardTextFn_DefaultImpl(void* user_data_ctx);
static void SetClipboardTextFn_DefaultImpl(void* user_data_ctx, const char* text); static void SetClipboardTextFn_DefaultImpl(void* user_data_ctx, const char* text);
static void PlatformSetImeDataFn_DefaultImpl(ImGuiContext* ctx, ImGuiViewport* viewport, ImGuiPlatformImeData* data); static void PlatformSetImeDataFn_DefaultImpl(ImGuiContext* ctx, ImGuiViewport* viewport, ImGuiPlatformImeData* data);
static void PlatformOpenInShellFn_DefaultImpl(ImGuiContext* ctx, const char* path); static bool PlatformOpenInShellFn_DefaultImpl(ImGuiContext* ctx, const char* path);
namespace ImGui namespace ImGui
{ {
@ -14358,12 +14358,12 @@ static void SetClipboardTextFn_DefaultImpl(void* user_data_ctx, const char* text
#ifdef _MSC_VER #ifdef _MSC_VER
#pragma comment(lib, "shell32") #pragma comment(lib, "shell32")
#endif #endif
static void PlatformOpenInShellFn_DefaultImpl(ImGuiContext*, const char* path) static bool PlatformOpenInShellFn_DefaultImpl(ImGuiContext*, const char* path)
{ {
::ShellExecuteA(NULL, "open", path, NULL, NULL, SW_SHOWDEFAULT); return (INT_PTR)::ShellExecuteA(NULL, "open", path, NULL, NULL, SW_SHOWDEFAULT) > 32;
} }
#elif !defined(IMGUI_DISABLE_DEFAULT_SHELL_FUNCTIONS) #elif !defined(IMGUI_DISABLE_DEFAULT_SHELL_FUNCTIONS)
static void PlatformOpenInShellFn_DefaultImpl(ImGuiContext*, const char* path) static bool PlatformOpenInShellFn_DefaultImpl(ImGuiContext*, const char* path)
{ {
#if __APPLE__ #if __APPLE__
const char* open_executable = "open"; const char* open_executable = "open";
@ -14372,10 +14372,10 @@ static void PlatformOpenInShellFn_DefaultImpl(ImGuiContext*, const char* path)
#endif #endif
ImGuiTextBuffer buf; ImGuiTextBuffer buf;
buf.appendf("%s \"%s\"", open_executable, path); buf.appendf("%s \"%s\"", open_executable, path);
system(buf.c_str()); return system(buf.c_str()) != -1;
} }
#else #else
static void PlatformOpenInShellFn_DefaultImpl(ImGuiContext*, const char*) {} static bool PlatformOpenInShellFn_DefaultImpl(ImGuiContext*, const char*) { return false; }
#endif // Default shell handlers #endif // Default shell handlers
//----------------------------------------------------------------------------- //-----------------------------------------------------------------------------

View File

@ -28,7 +28,7 @@
// Library Version // Library Version
// (Integer encoded as XYYZZ for use in #if preprocessor conditionals, e.g. '#if IMGUI_VERSION_NUM >= 12345') // (Integer encoded as XYYZZ for use in #if preprocessor conditionals, e.g. '#if IMGUI_VERSION_NUM >= 12345')
#define IMGUI_VERSION "1.91.0 WIP" #define IMGUI_VERSION "1.91.0 WIP"
#define IMGUI_VERSION_NUM 19092 #define IMGUI_VERSION_NUM 19093
#define IMGUI_HAS_TABLE #define IMGUI_HAS_TABLE
/* /*
@ -2245,7 +2245,7 @@ struct ImGuiIO
// Optional: Open link/folder/file in OS Shell // Optional: Open link/folder/file in OS Shell
// (default to use ShellExecuteA() on Windows, system() on Linux/Mac) // (default to use ShellExecuteA() on Windows, system() on Linux/Mac)
void (*PlatformOpenInShellFn)(ImGuiContext* ctx, const char* path); bool (*PlatformOpenInShellFn)(ImGuiContext* ctx, const char* path);
void* PlatformOpenInShellUserData; void* PlatformOpenInShellUserData;
// Optional: Notify OS Input Method Editor of the screen position of your cursor for text input position (e.g. when using Japanese/Chinese IME on Windows) // Optional: Notify OS Input Method Editor of the screen position of your cursor for text input position (e.g. when using Japanese/Chinese IME on Windows)