From 4e98fb20e2e0453f5e886e268877a4841eb3778d Mon Sep 17 00:00:00 2001 From: ocornut Date: Wed, 10 Sep 2025 17:59:26 +0200 Subject: [PATCH] TabBar: Internals: added TabBarFindByID(), TabBarRemove() helpers. Currently only for the benefit of TestEngine. --- imgui_internal.h | 2 ++ imgui_tables.cpp | 2 +- imgui_widgets.cpp | 13 +++++++++++++ 3 files changed, 16 insertions(+), 1 deletion(-) diff --git a/imgui_internal.h b/imgui_internal.h index 0a5018bdf..6b5b4ca25 100644 --- a/imgui_internal.h +++ b/imgui_internal.h @@ -3522,6 +3522,8 @@ namespace ImGui // Tab Bars inline ImGuiTabBar* GetCurrentTabBar() { ImGuiContext& g = *GImGui; return g.CurrentTabBar; } + IMGUI_API ImGuiTabBar* TabBarFindByID(ImGuiID id); + IMGUI_API void TabBarRemove(ImGuiTabBar* tab_bar); IMGUI_API bool BeginTabBarEx(ImGuiTabBar* tab_bar, const ImRect& bb, ImGuiTabBarFlags flags); IMGUI_API ImGuiTabItem* TabBarFindTabByID(ImGuiTabBar* tab_bar, ImGuiID tab_id); IMGUI_API ImGuiTabItem* TabBarFindTabByOrder(ImGuiTabBar* tab_bar, int order); diff --git a/imgui_tables.cpp b/imgui_tables.cpp index ba8f0034f..5b4e3e07d 100644 --- a/imgui_tables.cpp +++ b/imgui_tables.cpp @@ -3943,7 +3943,7 @@ void ImGui::TableSettingsAddSettingsHandler() // - TableGcCompactSettings() [Internal] //------------------------------------------------------------------------- -// Remove Table (currently only used by TestEngine) +// Remove Table data (currently only used by TestEngine) void ImGui::TableRemove(ImGuiTable* table) { //IMGUI_DEBUG_PRINT("TableRemove() id=0x%08X\n", table->ID); diff --git a/imgui_widgets.cpp b/imgui_widgets.cpp index a0e1af4ac..c405d2f2d 100644 --- a/imgui_widgets.cpp +++ b/imgui_widgets.cpp @@ -9557,6 +9557,19 @@ static ImGuiPtrOrIndex GetTabBarRefFromTabBar(ImGuiTabBar* tab_bar) return ImGuiPtrOrIndex(tab_bar); } +ImGuiTabBar* ImGui::TabBarFindByID(ImGuiID id) +{ + ImGuiContext& g = *GImGui; + return g.TabBars.GetByKey(id); +} + +// Remove TabBar data (currently only used by TestEngine) +void ImGui::TabBarRemove(ImGuiTabBar* tab_bar) +{ + ImGuiContext& g = *GImGui; + g.TabBars.Remove(tab_bar->ID, tab_bar); +} + bool ImGui::BeginTabBar(const char* str_id, ImGuiTabBarFlags flags) { ImGuiContext& g = *GImGui;