mirror of
https://github.com/Drezil/imgui.git
synced 2024-11-15 01:17:00 +00:00
Debug Tools: moved DebugStartItemPicker() to public API. Added to Demo->Tools menu. (#2673)
This commit is contained in:
parent
198c38f0b1
commit
659fb41d0a
@ -55,6 +55,9 @@ Other changes:
|
|||||||
drawn too low, particularly visible with tables that have no scrolling. (#6917)
|
drawn too low, particularly visible with tables that have no scrolling. (#6917)
|
||||||
- ProgressBar: Fixed a minor tesselation issue when rendering rounded progress bars,
|
- ProgressBar: Fixed a minor tesselation issue when rendering rounded progress bars,
|
||||||
where in some situations the rounded section wouldn't follow regular tesselation rules.
|
where in some situations the rounded section wouldn't follow regular tesselation rules.
|
||||||
|
- Debug Tools: Item Picker: Promoted ImGui::DebugStartItemPicker() to public API. (#2673)
|
||||||
|
- Debug Tools: Item Picker: Menu entry visible in Demo->Tools but greyed out unless
|
||||||
|
io.ConfigDebugIsDebuggerPresent is set. (#2673)
|
||||||
- Demo: Custom Rendering: better demonstrate PathArcTo(), PathBezierQuadraticCurveTo(),
|
- Demo: Custom Rendering: better demonstrate PathArcTo(), PathBezierQuadraticCurveTo(),
|
||||||
PathBezierCubicCurveTo(), PathStroke(), PathFillConvex() functions.
|
PathBezierCubicCurveTo(), PathStroke(), PathFillConvex() functions.
|
||||||
|
|
||||||
|
@ -15462,6 +15462,12 @@ void ImGui::DebugLocateItemResolveWithLastItem()
|
|||||||
draw_list->AddLine(p1, p2, DEBUG_LOCATE_ITEM_COLOR);
|
draw_list->AddLine(p1, p2, DEBUG_LOCATE_ITEM_COLOR);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void ImGui::DebugStartItemPicker()
|
||||||
|
{
|
||||||
|
ImGuiContext& g = *GImGui;
|
||||||
|
g.DebugItemPickerActive = true;
|
||||||
|
}
|
||||||
|
|
||||||
// [DEBUG] Item picker tool - start with DebugStartItemPicker() - useful to visually select an item and break into its call-stack.
|
// [DEBUG] Item picker tool - start with DebugStartItemPicker() - useful to visually select an item and break into its call-stack.
|
||||||
void ImGui::UpdateDebugToolItemPicker()
|
void ImGui::UpdateDebugToolItemPicker()
|
||||||
{
|
{
|
||||||
@ -15630,7 +15636,7 @@ void ImGui::ShowIDStackToolWindow(bool* p_open)
|
|||||||
Checkbox("Ctrl+C: copy path to clipboard", &tool->CopyToClipboardOnCtrlC);
|
Checkbox("Ctrl+C: copy path to clipboard", &tool->CopyToClipboardOnCtrlC);
|
||||||
SameLine();
|
SameLine();
|
||||||
TextColored((time_since_copy >= 0.0f && time_since_copy < 0.75f && ImFmod(time_since_copy, 0.25f) < 0.25f * 0.5f) ? ImVec4(1.f, 1.f, 0.3f, 1.f) : ImVec4(), "*COPIED*");
|
TextColored((time_since_copy >= 0.0f && time_since_copy < 0.75f && ImFmod(time_since_copy, 0.25f) < 0.25f * 0.5f) ? ImVec4(1.f, 1.f, 0.3f, 1.f) : ImVec4(), "*COPIED*");
|
||||||
if (tool->CopyToClipboardOnCtrlC && IsKeyDown(ImGuiMod_Ctrl) && IsKeyPressed(ImGuiKey_C))
|
if (tool->CopyToClipboardOnCtrlC && Shortcut(ImGuiMod_Ctrl | ImGuiKey_C, 0, ImGuiInputFlags_RouteGlobal))
|
||||||
{
|
{
|
||||||
tool->CopyToClipboardLastTime = (float)g.Time;
|
tool->CopyToClipboardLastTime = (float)g.Time;
|
||||||
char* p = g.TempBuffer.Data;
|
char* p = g.TempBuffer.Data;
|
||||||
@ -15697,6 +15703,7 @@ void ImGui::DebugLog(const char*, ...) {}
|
|||||||
void ImGui::DebugLogV(const char*, va_list) {}
|
void ImGui::DebugLogV(const char*, va_list) {}
|
||||||
void ImGui::ShowDebugLogWindow(bool*) {}
|
void ImGui::ShowDebugLogWindow(bool*) {}
|
||||||
void ImGui::ShowIDStackToolWindow(bool*) {}
|
void ImGui::ShowIDStackToolWindow(bool*) {}
|
||||||
|
void ImGui::DebugStartItemPicker() {}
|
||||||
void ImGui::DebugHookIdInfo(ImGuiID, ImGuiDataType, const void*, const void*) {}
|
void ImGui::DebugHookIdInfo(ImGuiID, ImGuiDataType, const void*, const void*) {}
|
||||||
|
|
||||||
#endif // #ifndef IMGUI_DISABLE_DEBUG_TOOLS
|
#endif // #ifndef IMGUI_DISABLE_DEBUG_TOOLS
|
||||||
|
1
imgui.h
1
imgui.h
@ -967,6 +967,7 @@ namespace ImGui
|
|||||||
// - Your main debugging friend is the ShowMetricsWindow() function, which is also accessible from Demo->Tools->Metrics Debugger
|
// - Your main debugging friend is the ShowMetricsWindow() function, which is also accessible from Demo->Tools->Metrics Debugger
|
||||||
IMGUI_API void DebugTextEncoding(const char* text);
|
IMGUI_API void DebugTextEncoding(const char* text);
|
||||||
IMGUI_API void DebugFlashStyleColor(ImGuiCol idx);
|
IMGUI_API void DebugFlashStyleColor(ImGuiCol idx);
|
||||||
|
IMGUI_API void DebugStartItemPicker();
|
||||||
IMGUI_API bool DebugCheckVersionAndDataLayout(const char* version_str, size_t sz_io, size_t sz_style, size_t sz_vec2, size_t sz_vec4, size_t sz_drawvert, size_t sz_drawidx); // This is called by IMGUI_CHECKVERSION() macro.
|
IMGUI_API bool DebugCheckVersionAndDataLayout(const char* version_str, size_t sz_io, size_t sz_style, size_t sz_vec2, size_t sz_vec4, size_t sz_drawvert, size_t sz_drawidx); // This is called by IMGUI_CHECKVERSION() macro.
|
||||||
|
|
||||||
// Memory Allocators
|
// Memory Allocators
|
||||||
|
@ -401,6 +401,12 @@ void ImGui::ShowDemoWindow(bool* p_open)
|
|||||||
ImGui::MenuItem("Debug Log", NULL, &show_tool_debug_log, has_debug_tools);
|
ImGui::MenuItem("Debug Log", NULL, &show_tool_debug_log, has_debug_tools);
|
||||||
ImGui::MenuItem("ID Stack Tool", NULL, &show_tool_id_stack_tool, has_debug_tools);
|
ImGui::MenuItem("ID Stack Tool", NULL, &show_tool_id_stack_tool, has_debug_tools);
|
||||||
ImGui::MenuItem("Style Editor", NULL, &show_tool_style_editor);
|
ImGui::MenuItem("Style Editor", NULL, &show_tool_style_editor);
|
||||||
|
bool is_debugger_present = ImGui::GetIO().ConfigDebugIsDebuggerPresent;
|
||||||
|
if (ImGui::MenuItem("Item Picker", NULL, false, has_debug_tools && is_debugger_present))
|
||||||
|
ImGui::DebugStartItemPicker();
|
||||||
|
if (!is_debugger_present)
|
||||||
|
ImGui::SetItemTooltip("Requires io.ConfigDebugIsDebuggerPresent=true to be set.\n\nWe otherwise disable the menu option to avoid casual users crashing the application.\n\nYou can however always access the Item Picker in Metrics->Tools.");
|
||||||
|
ImGui::Separator();
|
||||||
ImGui::MenuItem("About Dear ImGui", NULL, &show_tool_about);
|
ImGui::MenuItem("About Dear ImGui", NULL, &show_tool_about);
|
||||||
ImGui::EndMenu();
|
ImGui::EndMenu();
|
||||||
}
|
}
|
||||||
|
@ -3483,7 +3483,6 @@ namespace ImGui
|
|||||||
IMGUI_API void DebugBreakClearData();
|
IMGUI_API void DebugBreakClearData();
|
||||||
IMGUI_API bool DebugBreakButton(const char* label, const char* description_of_location);
|
IMGUI_API bool DebugBreakButton(const char* label, const char* description_of_location);
|
||||||
IMGUI_API void DebugBreakButtonTooltip(bool keyboard_only, const char* description_of_location);
|
IMGUI_API void DebugBreakButtonTooltip(bool keyboard_only, const char* description_of_location);
|
||||||
inline void DebugStartItemPicker() { ImGuiContext& g = *GImGui; g.DebugItemPickerActive = true; }
|
|
||||||
IMGUI_API void ShowFontAtlas(ImFontAtlas* atlas);
|
IMGUI_API void ShowFontAtlas(ImFontAtlas* atlas);
|
||||||
IMGUI_API void DebugHookIdInfo(ImGuiID id, ImGuiDataType data_type, const void* data_id, const void* data_id_end);
|
IMGUI_API void DebugHookIdInfo(ImGuiID id, ImGuiDataType data_type, const void* data_id, const void* data_id_end);
|
||||||
IMGUI_API void DebugNodeColumns(ImGuiOldColumns* columns);
|
IMGUI_API void DebugNodeColumns(ImGuiOldColumns* columns);
|
||||||
|
Loading…
Reference in New Issue
Block a user