From 1dae7df26fa3cdef3a7f44aa7ff9dd74850b755f Mon Sep 17 00:00:00 2001 From: ocornut Date: Thu, 8 Dec 2022 18:26:25 +0100 Subject: [PATCH] Misc: added GetItemID() in public API. --- docs/CHANGELOG.txt | 3 +++ imgui.cpp | 6 ++++++ imgui.h | 1 + imgui_internal.h | 1 - 4 files changed, 10 insertions(+), 1 deletion(-) diff --git a/docs/CHANGELOG.txt b/docs/CHANGELOG.txt index 0c69abdd8..0f30b2db0 100644 --- a/docs/CHANGELOG.txt +++ b/docs/CHANGELOG.txt @@ -56,6 +56,9 @@ Other changes: We expect this behavior to be further improved/tweaked. (#3795, #4559) [@ocornut, @folays] - Text: fixed layouting of wrapped-text block when the last source line is above the clipping region. Regression added in 1.89. (#5720, #5919) +- Misc: added GetItemID() in public API. It is not often expected that you would use this, + but it is useful for Shortcut() and upcoming owner-aware input functions which wants to + be implemented with public API. - Fonts: added a 'void* UserData' field in ImFontAtlas, as a convenience for use by applications using multiple font atlases. - Demo: simplified "Inputs" section, moved contents to Metrics->Inputs. diff --git a/imgui.cpp b/imgui.cpp index eabf88b6d..41829e06f 100644 --- a/imgui.cpp +++ b/imgui.cpp @@ -5148,6 +5148,12 @@ void ImGui::SetActiveIdUsingAllKeyboardKeys() NavMoveRequestCancel(); } +ImGuiID ImGui::GetItemID() +{ + ImGuiContext& g = *GImGui; + return g.LastItemData.ID; +} + ImVec2 ImGui::GetItemRectMin() { ImGuiContext& g = *GImGui; diff --git a/imgui.h b/imgui.h index 3a57d075b..fed40b16d 100644 --- a/imgui.h +++ b/imgui.h @@ -845,6 +845,7 @@ namespace ImGui IMGUI_API bool IsAnyItemHovered(); // is any item hovered? IMGUI_API bool IsAnyItemActive(); // is any item active? IMGUI_API bool IsAnyItemFocused(); // is any item focused? + IMGUI_API ImGuiID GetItemID(); // get ID of last item (~~ often same ImGui::GetID(label) beforehand) IMGUI_API ImVec2 GetItemRectMin(); // get upper-left bounding rectangle of the last item (screen space) IMGUI_API ImVec2 GetItemRectMax(); // get lower-right bounding rectangle of the last item (screen space) IMGUI_API ImVec2 GetItemRectSize(); // get size of last item diff --git a/imgui_internal.h b/imgui_internal.h index 85119106a..25c53ff61 100644 --- a/imgui_internal.h +++ b/imgui_internal.h @@ -2794,7 +2794,6 @@ namespace ImGui //#endif // Basic Accessors - inline ImGuiID GetItemID() { ImGuiContext& g = *GImGui; return g.LastItemData.ID; } // Get ID of last item (~~ often same ImGui::GetID(label) beforehand) inline ImGuiItemStatusFlags GetItemStatusFlags(){ ImGuiContext& g = *GImGui; return g.LastItemData.StatusFlags; } inline ImGuiItemFlags GetItemFlags() { ImGuiContext& g = *GImGui; return g.LastItemData.InFlags; } inline ImGuiID GetActiveID() { ImGuiContext& g = *GImGui; return g.ActiveId; }