Tests: Added hook/tweaks for imgui-test engine. + Fixed warnings.
diff --git a/imgui.cpp b/imgui.cpp
index 79fe1d4..3e882ab 100644
--- a/imgui.cpp
+++ b/imgui.cpp
@@ -2837,7 +2837,7 @@
#ifdef IMGUI_ENABLE_TEST_ENGINE
if (id != 0)
- ImGuiTestEngineHook_ItemAdd(&g, nav_bb_arg ? *nav_bb_arg : bb, id);
+ IMGUI_TEST_ENGINE_ITEM_ADD(nav_bb_arg ? *nav_bb_arg : bb, id);
#endif
// Clipping test
@@ -5544,6 +5544,10 @@
window->DC.LastItemId = window->MoveId;
window->DC.LastItemStatusFlags = IsMouseHoveringRect(title_bar_rect.Min, title_bar_rect.Max, false) ? ImGuiItemStatusFlags_HoveredRect : 0;
window->DC.LastItemRect = title_bar_rect;
+#ifdef IMGUI_ENABLE_TEST_ENGINE
+ if (!(window->Flags & ImGuiWindowFlags_NoTitleBar))
+ IMGUI_TEST_ENGINE_ITEM_ADD(window->DC.LastItemRect, window->DC.LastItemId);
+#endif
}
PushClipRect(window->InnerClipRect.Min, window->InnerClipRect.Max, true);
diff --git a/imgui_internal.h b/imgui_internal.h
index 426301d..7e7ffb4 100644
--- a/imgui_internal.h
+++ b/imgui_internal.h
@@ -1584,8 +1584,10 @@
extern void ImGuiTestEngineHook_PostNewFrame(ImGuiContext* ctx);
extern void ImGuiTestEngineHook_ItemAdd(ImGuiContext* ctx, const ImRect& bb, ImGuiID id);
extern void ImGuiTestEngineHook_ItemInfo(ImGuiContext* ctx, ImGuiID id, const char* label, ImGuiItemStatusFlags flags);
+#define IMGUI_TEST_ENGINE_ITEM_ADD(_BB, _ID) ImGuiTestEngineHook_ItemAdd(&g, _BB, _ID) // Register status flags
#define IMGUI_TEST_ENGINE_ITEM_INFO(_ID, _LABEL, _FLAGS) ImGuiTestEngineHook_ItemInfo(&g, _ID, _LABEL, _FLAGS) // Register status flags
#else
+#define IMGUI_TEST_ENGINE_ITEM_ADD(_BB, _ID) do { } while (0)
#define IMGUI_TEST_ENGINE_ITEM_INFO(_ID, _LABEL, _FLAGS) do { } while (0)
#endif
diff --git a/imgui_widgets.cpp b/imgui_widgets.cpp
index 4008fa2..82696d5 100644
--- a/imgui_widgets.cpp
+++ b/imgui_widgets.cpp
@@ -5133,7 +5133,7 @@
SetItemAllowOverlap();
// In this branch, TreeNodeBehavior() cannot toggle the selection so this will never trigger.
- if (selected != was_selected)
+ if (selected != was_selected) //-V547
window->DC.LastItemStatusFlags |= ImGuiItemStatusFlags_ToggledSelection;
// Render
@@ -5381,7 +5381,7 @@
SetItemAllowOverlap();
// In this branch, Selectable() cannot toggle the selection so this will never trigger.
- if (selected != was_selected)
+ if (selected != was_selected) //-V547
window->DC.LastItemStatusFlags |= ImGuiItemStatusFlags_ToggledSelection;
// Render
@@ -5405,6 +5405,8 @@
// Automatically close popups
if (pressed && (window->Flags & ImGuiWindowFlags_Popup) && !(flags & ImGuiSelectableFlags_DontClosePopups) && !(window->DC.ItemFlags & ImGuiItemFlags_SelectableDontClosePopup))
CloseCurrentPopup();
+
+ IMGUI_TEST_ENGINE_ITEM_INFO(id, label, window->DC.ItemFlags);
return pressed;
}
@@ -5756,6 +5758,7 @@
void ImGuiMenuColumns::Update(int count, float spacing, bool clear)
{
IM_ASSERT(count == IM_ARRAYSIZE(Pos));
+ IM_UNUSED(count);
Width = NextWidth = 0.0f;
Spacing = spacing;
if (clear)