Must be called before End()/EndChild()
| 9344 | |
| 9345 | // Must be called before End()/EndChild() |
| 9346 | void ImGui::ErrorCheckEndWindowRecover(ImGuiErrorLogCallback log_callback, void* user_data) |
| 9347 | { |
| 9348 | ImGuiContext& g = *GImGui; |
| 9349 | while (g.CurrentTable && (g.CurrentTable->OuterWindow == g.CurrentWindow || g.CurrentTable->InnerWindow == g.CurrentWindow)) |
| 9350 | { |
| 9351 | if (log_callback) log_callback(user_data, "Recovered from missing EndTable() in '%s'", g.CurrentTable->OuterWindow->Name); |
| 9352 | EndTable(); |
| 9353 | } |
| 9354 | |
| 9355 | ImGuiWindow* window = g.CurrentWindow; |
| 9356 | ImGuiStackSizes* stack_sizes = &g.CurrentWindowStack.back().StackSizesOnBegin; |
| 9357 | IM_ASSERT(window != NULL); |
| 9358 | while (g.CurrentTabBar != NULL) //-V1044 |
| 9359 | { |
| 9360 | if (log_callback) log_callback(user_data, "Recovered from missing EndTabBar() in '%s'", window->Name); |
| 9361 | EndTabBar(); |
| 9362 | } |
| 9363 | while (window->DC.TreeDepth > 0) |
| 9364 | { |
| 9365 | if (log_callback) log_callback(user_data, "Recovered from missing TreePop() in '%s'", window->Name); |
| 9366 | TreePop(); |
| 9367 | } |
| 9368 | while (g.GroupStack.Size > stack_sizes->SizeOfGroupStack) //-V1044 |
| 9369 | { |
| 9370 | if (log_callback) log_callback(user_data, "Recovered from missing EndGroup() in '%s'", window->Name); |
| 9371 | EndGroup(); |
| 9372 | } |
| 9373 | while (window->IDStack.Size > 1) |
| 9374 | { |
| 9375 | if (log_callback) log_callback(user_data, "Recovered from missing PopID() in '%s'", window->Name); |
| 9376 | PopID(); |
| 9377 | } |
| 9378 | while (g.DisabledStackSize > stack_sizes->SizeOfDisabledStack) //-V1044 |
| 9379 | { |
| 9380 | if (log_callback) log_callback(user_data, "Recovered from missing EndDisabled() in '%s'", window->Name); |
| 9381 | EndDisabled(); |
| 9382 | } |
| 9383 | while (g.ColorStack.Size > stack_sizes->SizeOfColorStack) |
| 9384 | { |
| 9385 | if (log_callback) log_callback(user_data, "Recovered from missing PopStyleColor() in '%s' for ImGuiCol_%s", window->Name, GetStyleColorName(g.ColorStack.back().Col)); |
| 9386 | PopStyleColor(); |
| 9387 | } |
| 9388 | while (g.ItemFlagsStack.Size > stack_sizes->SizeOfItemFlagsStack) //-V1044 |
| 9389 | { |
| 9390 | if (log_callback) log_callback(user_data, "Recovered from missing PopItemFlag() in '%s'", window->Name); |
| 9391 | PopItemFlag(); |
| 9392 | } |
| 9393 | while (g.StyleVarStack.Size > stack_sizes->SizeOfStyleVarStack) //-V1044 |
| 9394 | { |
| 9395 | if (log_callback) log_callback(user_data, "Recovered from missing PopStyleVar() in '%s'", window->Name); |
| 9396 | PopStyleVar(); |
| 9397 | } |
| 9398 | while (g.FontStack.Size > stack_sizes->SizeOfFontStack) //-V1044 |
| 9399 | { |
| 9400 | if (log_callback) log_callback(user_data, "Recovered from missing PopFont() in '%s'", window->Name); |
| 9401 | PopFont(); |
| 9402 | } |
| 9403 | while (g.FocusScopeStack.Size > stack_sizes->SizeOfFocusScopeStack + 1) //-V1044 |
nothing calls this directly
no test coverage detected