From 5bffc85ba64a5cb751f50345b01bab4ff9c0ab9d Mon Sep 17 00:00:00 2001 From: Kyle Rocha Date: Mon, 21 Mar 2016 12:07:13 -0700 Subject: [PATCH 1/3] Exposed FindTextDisplayEnd to imgui_internal.h --- imgui.cpp | 29 ++++++++++++++--------------- imgui_internal.h | 2 ++ 2 files changed, 16 insertions(+), 15 deletions(-) diff --git a/imgui.cpp b/imgui.cpp index c50a894e..2bdb8590 100644 --- a/imgui.cpp +++ b/imgui.cpp @@ -591,7 +591,6 @@ //------------------------------------------------------------------------- static void LogRenderedText(const ImVec2& ref_pos, const char* text, const char* text_end = NULL); -static const char* FindTextDisplayEnd(const char* text, const char* text_end = NULL); static void PushMultiItemsWidths(int components, float w_full = 0.0f); static float GetDraggedColumnOffset(int column_index); @@ -2510,7 +2509,7 @@ void ImGui::Render() } // Find the optional ## from which we stop displaying text. -static const char* FindTextDisplayEnd(const char* text, const char* text_end) +const char* ImGui::FindTextDisplayEnd(const char* text, const char* text_end) { const char* text_display_end = text; if (!text_end) @@ -2549,7 +2548,7 @@ static void LogRenderedText(const ImVec2& ref_pos, const char* text, const char* ImGuiWindow* window = ImGui::GetCurrentWindowRead(); if (!text_end) - text_end = FindTextDisplayEnd(text, text_end); + text_end = ImGui::FindTextDisplayEnd(text, text_end); const bool log_new_line = ref_pos.y > window->DC.LogLinePosY+1; window->DC.LogLinePosY = ref_pos.y; @@ -2603,7 +2602,7 @@ void ImGui::RenderText(ImVec2 pos, const char* text, const char* text_end, bool const char* text_display_end; if (hide_text_after_hash) { - text_display_end = FindTextDisplayEnd(text, text_end); + text_display_end = ImGui::FindTextDisplayEnd(text, text_end); } else { @@ -2642,7 +2641,7 @@ void ImGui::RenderTextWrapped(ImVec2 pos, const char* text, const char* text_end void ImGui::RenderTextClipped(const ImVec2& pos_min, const ImVec2& pos_max, const char* text, const char* text_end, const ImVec2* text_size_if_known, ImGuiAlign align, const ImVec2* clip_min, const ImVec2* clip_max) { // Hide anything after a '##' string - const char* text_display_end = FindTextDisplayEnd(text, text_end); + const char* text_display_end = ImGui::FindTextDisplayEnd(text, text_end); const int text_len = (int)(text_display_end - text); if (text_len == 0) return; @@ -2749,7 +2748,7 @@ ImVec2 ImGui::CalcTextSize(const char* text, const char* text_end, bool hide_tex const char* text_display_end; if (hide_text_after_double_hash) - text_display_end = FindTextDisplayEnd(text, text_end); // Hide anything after a '##' string + text_display_end = ImGui::FindTextDisplayEnd(text, text_end); // Hide anything after a '##' string else text_display_end = text_end; @@ -6334,7 +6333,7 @@ bool ImGui::SliderFloatN(const char* label, float* v, int components, float v_mi } ImGui::PopID(); - ImGui::TextUnformatted(label, FindTextDisplayEnd(label)); + ImGui::TextUnformatted(label, ImGui::FindTextDisplayEnd(label)); ImGui::EndGroup(); return value_changed; @@ -6376,7 +6375,7 @@ bool ImGui::SliderIntN(const char* label, int* v, int components, int v_min, int } ImGui::PopID(); - ImGui::TextUnformatted(label, FindTextDisplayEnd(label)); + ImGui::TextUnformatted(label, ImGui::FindTextDisplayEnd(label)); ImGui::EndGroup(); return value_changed; @@ -6556,7 +6555,7 @@ bool ImGui::DragFloatN(const char* label, float* v, int components, float v_spee } ImGui::PopID(); - ImGui::TextUnformatted(label, FindTextDisplayEnd(label)); + ImGui::TextUnformatted(label, ImGui::FindTextDisplayEnd(label)); ImGui::EndGroup(); return value_changed; @@ -6595,7 +6594,7 @@ bool ImGui::DragFloatRange2(const char* label, float* v_current_min, float* v_cu ImGui::PopItemWidth(); ImGui::SameLine(0, g.Style.ItemInnerSpacing.x); - ImGui::TextUnformatted(label, FindTextDisplayEnd(label)); + ImGui::TextUnformatted(label, ImGui::FindTextDisplayEnd(label)); ImGui::EndGroup(); ImGui::PopID(); @@ -6634,7 +6633,7 @@ bool ImGui::DragIntN(const char* label, int* v, int components, float v_speed, i } ImGui::PopID(); - ImGui::TextUnformatted(label, FindTextDisplayEnd(label)); + ImGui::TextUnformatted(label, ImGui::FindTextDisplayEnd(label)); ImGui::EndGroup(); return value_changed; @@ -6673,7 +6672,7 @@ bool ImGui::DragIntRange2(const char* label, int* v_current_min, int* v_current_ ImGui::PopItemWidth(); ImGui::SameLine(0, g.Style.ItemInnerSpacing.x); - ImGui::TextUnformatted(label, FindTextDisplayEnd(label)); + ImGui::TextUnformatted(label, ImGui::FindTextDisplayEnd(label)); ImGui::EndGroup(); ImGui::PopID(); @@ -7893,7 +7892,7 @@ bool ImGui::InputFloatN(const char* label, float* v, int components, int decimal ImGui::PopID(); window->DC.CurrentLineTextBaseOffset = ImMax(window->DC.CurrentLineTextBaseOffset, g.Style.FramePadding.y); - ImGui::TextUnformatted(label, FindTextDisplayEnd(label)); + ImGui::TextUnformatted(label, ImGui::FindTextDisplayEnd(label)); ImGui::EndGroup(); return value_changed; @@ -7936,7 +7935,7 @@ bool ImGui::InputIntN(const char* label, int* v, int components, ImGuiInputTextF ImGui::PopID(); window->DC.CurrentLineTextBaseOffset = ImMax(window->DC.CurrentLineTextBaseOffset, g.Style.FramePadding.y); - ImGui::TextUnformatted(label, FindTextDisplayEnd(label)); + ImGui::TextUnformatted(label, ImGui::FindTextDisplayEnd(label)); ImGui::EndGroup(); return value_changed; @@ -8647,7 +8646,7 @@ bool ImGui::ColorEdit4(const char* label, float col[4], bool alpha) g.ColorEditModeStorage.SetInt(id, (edit_mode + 1) % 3); // Don't set local copy of 'edit_mode' right away! } - const char* label_display_end = FindTextDisplayEnd(label); + const char* label_display_end = ImGui::FindTextDisplayEnd(label); if (label != label_display_end) { ImGui::SameLine(0, (window->DC.ColorEditMode == ImGuiColorEditMode_UserSelectShowButton) ? -1.0f : style.ItemInnerSpacing.x); diff --git a/imgui_internal.h b/imgui_internal.h index f6300e74..d6fc78ae 100644 --- a/imgui_internal.h +++ b/imgui_internal.h @@ -683,6 +683,8 @@ namespace ImGui IMGUI_API void SetHoveredID(ImGuiID id); IMGUI_API void KeepAliveID(ImGuiID id); + const char* FindTextDisplayEnd(const char* text, const char* text_end = NULL); + IMGUI_API void EndFrame(); // Automatically called by Render() IMGUI_API void ItemSize(const ImVec2& size, float text_offset_y = 0.0f); From 3f46d9b9337e7ed0f5526f7f4c4dfda2e5c2820f Mon Sep 17 00:00:00 2001 From: Kyle Rocha Date: Mon, 21 Mar 2016 12:33:48 -0700 Subject: [PATCH 2/3] Renamed FindTextDisplayEnd to FindRenderedTextEnd --- imgui.cpp | 29 ++++++++++++++--------------- imgui_internal.h | 5 ++--- 2 files changed, 16 insertions(+), 18 deletions(-) diff --git a/imgui.cpp b/imgui.cpp index 2bdb8590..83fdc6e3 100644 --- a/imgui.cpp +++ b/imgui.cpp @@ -2508,8 +2508,7 @@ void ImGui::Render() } } -// Find the optional ## from which we stop displaying text. -const char* ImGui::FindTextDisplayEnd(const char* text, const char* text_end) +const char* ImGui::FindRenderedTextEnd(const char* text, const char* text_end) { const char* text_display_end = text; if (!text_end) @@ -2548,7 +2547,7 @@ static void LogRenderedText(const ImVec2& ref_pos, const char* text, const char* ImGuiWindow* window = ImGui::GetCurrentWindowRead(); if (!text_end) - text_end = ImGui::FindTextDisplayEnd(text, text_end); + text_end = ImGui::FindRenderedTextEnd(text, text_end); const bool log_new_line = ref_pos.y > window->DC.LogLinePosY+1; window->DC.LogLinePosY = ref_pos.y; @@ -2602,7 +2601,7 @@ void ImGui::RenderText(ImVec2 pos, const char* text, const char* text_end, bool const char* text_display_end; if (hide_text_after_hash) { - text_display_end = ImGui::FindTextDisplayEnd(text, text_end); + text_display_end = FindRenderedTextEnd(text, text_end); } else { @@ -2641,7 +2640,7 @@ void ImGui::RenderTextWrapped(ImVec2 pos, const char* text, const char* text_end void ImGui::RenderTextClipped(const ImVec2& pos_min, const ImVec2& pos_max, const char* text, const char* text_end, const ImVec2* text_size_if_known, ImGuiAlign align, const ImVec2* clip_min, const ImVec2* clip_max) { // Hide anything after a '##' string - const char* text_display_end = ImGui::FindTextDisplayEnd(text, text_end); + const char* text_display_end = FindRenderedTextEnd(text, text_end); const int text_len = (int)(text_display_end - text); if (text_len == 0) return; @@ -2748,7 +2747,7 @@ ImVec2 ImGui::CalcTextSize(const char* text, const char* text_end, bool hide_tex const char* text_display_end; if (hide_text_after_double_hash) - text_display_end = ImGui::FindTextDisplayEnd(text, text_end); // Hide anything after a '##' string + text_display_end = FindRenderedTextEnd(text, text_end); // Hide anything after a '##' string else text_display_end = text_end; @@ -6333,7 +6332,7 @@ bool ImGui::SliderFloatN(const char* label, float* v, int components, float v_mi } ImGui::PopID(); - ImGui::TextUnformatted(label, ImGui::FindTextDisplayEnd(label)); + ImGui::TextUnformatted(label, FindRenderedTextEnd(label)); ImGui::EndGroup(); return value_changed; @@ -6375,7 +6374,7 @@ bool ImGui::SliderIntN(const char* label, int* v, int components, int v_min, int } ImGui::PopID(); - ImGui::TextUnformatted(label, ImGui::FindTextDisplayEnd(label)); + ImGui::TextUnformatted(label, FindRenderedTextEnd(label)); ImGui::EndGroup(); return value_changed; @@ -6555,7 +6554,7 @@ bool ImGui::DragFloatN(const char* label, float* v, int components, float v_spee } ImGui::PopID(); - ImGui::TextUnformatted(label, ImGui::FindTextDisplayEnd(label)); + ImGui::TextUnformatted(label, FindRenderedTextEnd(label)); ImGui::EndGroup(); return value_changed; @@ -6594,7 +6593,7 @@ bool ImGui::DragFloatRange2(const char* label, float* v_current_min, float* v_cu ImGui::PopItemWidth(); ImGui::SameLine(0, g.Style.ItemInnerSpacing.x); - ImGui::TextUnformatted(label, ImGui::FindTextDisplayEnd(label)); + ImGui::TextUnformatted(label, FindRenderedTextEnd(label)); ImGui::EndGroup(); ImGui::PopID(); @@ -6633,7 +6632,7 @@ bool ImGui::DragIntN(const char* label, int* v, int components, float v_speed, i } ImGui::PopID(); - ImGui::TextUnformatted(label, ImGui::FindTextDisplayEnd(label)); + ImGui::TextUnformatted(label, FindRenderedTextEnd(label)); ImGui::EndGroup(); return value_changed; @@ -6672,7 +6671,7 @@ bool ImGui::DragIntRange2(const char* label, int* v_current_min, int* v_current_ ImGui::PopItemWidth(); ImGui::SameLine(0, g.Style.ItemInnerSpacing.x); - ImGui::TextUnformatted(label, ImGui::FindTextDisplayEnd(label)); + ImGui::TextUnformatted(label, FindRenderedTextEnd(label)); ImGui::EndGroup(); ImGui::PopID(); @@ -7892,7 +7891,7 @@ bool ImGui::InputFloatN(const char* label, float* v, int components, int decimal ImGui::PopID(); window->DC.CurrentLineTextBaseOffset = ImMax(window->DC.CurrentLineTextBaseOffset, g.Style.FramePadding.y); - ImGui::TextUnformatted(label, ImGui::FindTextDisplayEnd(label)); + ImGui::TextUnformatted(label, FindRenderedTextEnd(label)); ImGui::EndGroup(); return value_changed; @@ -7935,7 +7934,7 @@ bool ImGui::InputIntN(const char* label, int* v, int components, ImGuiInputTextF ImGui::PopID(); window->DC.CurrentLineTextBaseOffset = ImMax(window->DC.CurrentLineTextBaseOffset, g.Style.FramePadding.y); - ImGui::TextUnformatted(label, ImGui::FindTextDisplayEnd(label)); + ImGui::TextUnformatted(label, FindRenderedTextEnd(label)); ImGui::EndGroup(); return value_changed; @@ -8646,7 +8645,7 @@ bool ImGui::ColorEdit4(const char* label, float col[4], bool alpha) g.ColorEditModeStorage.SetInt(id, (edit_mode + 1) % 3); // Don't set local copy of 'edit_mode' right away! } - const char* label_display_end = ImGui::FindTextDisplayEnd(label); + const char* label_display_end = FindRenderedTextEnd(label); if (label != label_display_end) { ImGui::SameLine(0, (window->DC.ColorEditMode == ImGuiColorEditMode_UserSelectShowButton) ? -1.0f : style.ItemInnerSpacing.x); diff --git a/imgui_internal.h b/imgui_internal.h index d6fc78ae..d5f97c60 100644 --- a/imgui_internal.h +++ b/imgui_internal.h @@ -683,8 +683,6 @@ namespace ImGui IMGUI_API void SetHoveredID(ImGuiID id); IMGUI_API void KeepAliveID(ImGuiID id); - const char* FindTextDisplayEnd(const char* text, const char* text_end = NULL); - IMGUI_API void EndFrame(); // Automatically called by Render() IMGUI_API void ItemSize(const ImVec2& size, float text_offset_y = 0.0f); @@ -709,7 +707,8 @@ namespace ImGui IMGUI_API void RenderTextClipped(const ImVec2& pos_min, const ImVec2& pos_max, const char* text, const char* text_end, const ImVec2* text_size_if_known, ImGuiAlign align = ImGuiAlign_Default, const ImVec2* clip_min = NULL, const ImVec2* clip_max = NULL); IMGUI_API void RenderFrame(ImVec2 p_min, ImVec2 p_max, ImU32 fill_col, bool border = true, float rounding = 0.0f); IMGUI_API void RenderCollapseTriangle(ImVec2 p_min, bool opened, float scale = 1.0f, bool shadow = false); - IMGUI_API void RenderCheckMark(ImVec2 pos, ImU32 col); + IMGUI_API void RenderCheckMark(ImVec2 pos, ImU32 col); + IMGUI_API const char* FindRenderedTextEnd(const char* text, const char* text_end = NULL); // Find the optional ## from which we stop displaying text. IMGUI_API void PushClipRect(const ImVec2& clip_rect_min, const ImVec2& clip_rect_max, bool intersect_with_existing_clip_rect = true); IMGUI_API void PopClipRect(); From b8fcb4e7e450d536c2e881ae026a8f3227219865 Mon Sep 17 00:00:00 2001 From: Kyle Rocha Date: Mon, 21 Mar 2016 12:40:02 -0700 Subject: [PATCH 3/3] Converted tabs to spaces --- imgui_internal.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/imgui_internal.h b/imgui_internal.h index d5f97c60..4df5ca94 100644 --- a/imgui_internal.h +++ b/imgui_internal.h @@ -708,7 +708,7 @@ namespace ImGui IMGUI_API void RenderFrame(ImVec2 p_min, ImVec2 p_max, ImU32 fill_col, bool border = true, float rounding = 0.0f); IMGUI_API void RenderCollapseTriangle(ImVec2 p_min, bool opened, float scale = 1.0f, bool shadow = false); IMGUI_API void RenderCheckMark(ImVec2 pos, ImU32 col); - IMGUI_API const char* FindRenderedTextEnd(const char* text, const char* text_end = NULL); // Find the optional ## from which we stop displaying text. + IMGUI_API const char* FindRenderedTextEnd(const char* text, const char* text_end = NULL); // Find the optional ## from which we stop displaying text. IMGUI_API void PushClipRect(const ImVec2& clip_rect_min, const ImVec2& clip_rect_max, bool intersect_with_existing_clip_rect = true); IMGUI_API void PopClipRect();