Debugging#
Metrics Window#
Many internal state and tools are exposed in the Metrics window. To access the Metrics window:
- Call
ShowMetricsWindow()
Using Begin/BeginChild#
-
You can omit
Begin()
/End()
, widgets will be created into an implicit "Debug" window. -
You can call
Begin()
multiple times to append to a same window from different place. -
Use
Begin()
/BeginChild()
to put yourself back into the context of another window (see #270
An interesting trick that isn't obvious is that you can use Begin() just to put yourself into the context of that window. So here I want to react to the user inputting an address to scroll to, I use BeginChild() again on the child that I've already drawn so I can use SetScrollFromPosY() on it
C++
ImGui::BeginChild("##scrolling", ImVec2(0, -ImGui::GetFrameHeightWithSpacing()));
// ...(draw main content)
ImGui::EndChild();
// And then much later in the main window, get back into child context to change scrolling offset
ImGui::BeginChild("##scrolling");
ImGui::SetScrollFromPosY(ImGui::GetCursorStartPos().y + (goto_addr / Rows) * line_height);
ImGui::End();