mirror of
https://github.com/Drezil/imgui.git
synced 2024-11-24 04:37:00 +00:00
Nav: tweak RenderNavHighlight() syntax. ImGuiNavHighlightFlags_TypeThin -> ImGuiNavHighlightFlags_Compact.
This commit is contained in:
parent
1e8fc01ddd
commit
a5e0e90c16
20
imgui.cpp
20
imgui.cpp
@ -3452,22 +3452,22 @@ void ImGui::RenderNavHighlight(const ImRect& bb, ImGuiID id, ImGuiNavHighlightFl
|
|||||||
float rounding = (flags & ImGuiNavHighlightFlags_NoRounding) ? 0.0f : g.Style.FrameRounding;
|
float rounding = (flags & ImGuiNavHighlightFlags_NoRounding) ? 0.0f : g.Style.FrameRounding;
|
||||||
ImRect display_rect = bb;
|
ImRect display_rect = bb;
|
||||||
display_rect.ClipWith(window->ClipRect);
|
display_rect.ClipWith(window->ClipRect);
|
||||||
if (flags & ImGuiNavHighlightFlags_TypeDefault)
|
const float thickness = 2.0f;
|
||||||
|
if (flags & ImGuiNavHighlightFlags_Compact)
|
||||||
{
|
{
|
||||||
const float THICKNESS = 2.0f;
|
window->DrawList->AddRect(display_rect.Min, display_rect.Max, GetColorU32(ImGuiCol_NavHighlight), rounding, 0, thickness);
|
||||||
const float DISTANCE = 3.0f + THICKNESS * 0.5f;
|
}
|
||||||
display_rect.Expand(ImVec2(DISTANCE, DISTANCE));
|
else
|
||||||
|
{
|
||||||
|
const float distance = 3.0f + thickness * 0.5f;
|
||||||
|
display_rect.Expand(ImVec2(distance, distance));
|
||||||
bool fully_visible = window->ClipRect.Contains(display_rect);
|
bool fully_visible = window->ClipRect.Contains(display_rect);
|
||||||
if (!fully_visible)
|
if (!fully_visible)
|
||||||
window->DrawList->PushClipRect(display_rect.Min, display_rect.Max);
|
window->DrawList->PushClipRect(display_rect.Min, display_rect.Max);
|
||||||
window->DrawList->AddRect(display_rect.Min + ImVec2(THICKNESS * 0.5f, THICKNESS * 0.5f), display_rect.Max - ImVec2(THICKNESS * 0.5f, THICKNESS * 0.5f), GetColorU32(ImGuiCol_NavHighlight), rounding, 0, THICKNESS);
|
window->DrawList->AddRect(display_rect.Min, display_rect.Max, GetColorU32(ImGuiCol_NavHighlight), rounding, 0, thickness);
|
||||||
if (!fully_visible)
|
if (!fully_visible)
|
||||||
window->DrawList->PopClipRect();
|
window->DrawList->PopClipRect();
|
||||||
}
|
}
|
||||||
if (flags & ImGuiNavHighlightFlags_TypeThin)
|
|
||||||
{
|
|
||||||
window->DrawList->AddRect(display_rect.Min, display_rect.Max, GetColorU32(ImGuiCol_NavHighlight), rounding, 0, 1.0f);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void ImGui::RenderMouseCursor(ImVec2 base_pos, float base_scale, ImGuiMouseCursor mouse_cursor, ImU32 col_fill, ImU32 col_border, ImU32 col_shadow)
|
void ImGui::RenderMouseCursor(ImVec2 base_pos, float base_scale, ImGuiMouseCursor mouse_cursor, ImU32 col_fill, ImU32 col_border, ImU32 col_shadow)
|
||||||
@ -5543,7 +5543,7 @@ void ImGui::EndChild()
|
|||||||
|
|
||||||
// When browsing a window that has no activable items (scroll only) we keep a highlight on the child (pass g.NavId to trick into always displaying)
|
// When browsing a window that has no activable items (scroll only) we keep a highlight on the child (pass g.NavId to trick into always displaying)
|
||||||
if (child_window->DC.NavLayersActiveMask == 0 && child_window == g.NavWindow)
|
if (child_window->DC.NavLayersActiveMask == 0 && child_window == g.NavWindow)
|
||||||
RenderNavHighlight(ImRect(bb.Min - ImVec2(2, 2), bb.Max + ImVec2(2, 2)), g.NavId, ImGuiNavHighlightFlags_TypeThin);
|
RenderNavHighlight(ImRect(bb.Min - ImVec2(2, 2), bb.Max + ImVec2(2, 2)), g.NavId, ImGuiNavHighlightFlags_Compact);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
@ -1554,8 +1554,7 @@ enum ImGuiScrollFlags_
|
|||||||
enum ImGuiNavHighlightFlags_
|
enum ImGuiNavHighlightFlags_
|
||||||
{
|
{
|
||||||
ImGuiNavHighlightFlags_None = 0,
|
ImGuiNavHighlightFlags_None = 0,
|
||||||
ImGuiNavHighlightFlags_TypeDefault = 1 << 0,
|
ImGuiNavHighlightFlags_Compact = 1 << 1, // Compact highlight, no padding
|
||||||
ImGuiNavHighlightFlags_TypeThin = 1 << 1,
|
|
||||||
ImGuiNavHighlightFlags_AlwaysDraw = 1 << 2, // Draw rectangular highlight if (g.NavId == id) _even_ when using the mouse.
|
ImGuiNavHighlightFlags_AlwaysDraw = 1 << 2, // Draw rectangular highlight if (g.NavId == id) _even_ when using the mouse.
|
||||||
ImGuiNavHighlightFlags_NoRounding = 1 << 3,
|
ImGuiNavHighlightFlags_NoRounding = 1 << 3,
|
||||||
};
|
};
|
||||||
@ -3377,7 +3376,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 RenderFrame(ImVec2 p_min, ImVec2 p_max, ImU32 fill_col, bool border = true, float rounding = 0.0f);
|
||||||
IMGUI_API void RenderFrameBorder(ImVec2 p_min, ImVec2 p_max, float rounding = 0.0f);
|
IMGUI_API void RenderFrameBorder(ImVec2 p_min, ImVec2 p_max, float rounding = 0.0f);
|
||||||
IMGUI_API void RenderColorRectWithAlphaCheckerboard(ImDrawList* draw_list, ImVec2 p_min, ImVec2 p_max, ImU32 fill_col, float grid_step, ImVec2 grid_off, float rounding = 0.0f, ImDrawFlags flags = 0);
|
IMGUI_API void RenderColorRectWithAlphaCheckerboard(ImDrawList* draw_list, ImVec2 p_min, ImVec2 p_max, ImU32 fill_col, float grid_step, ImVec2 grid_off, float rounding = 0.0f, ImDrawFlags flags = 0);
|
||||||
IMGUI_API void RenderNavHighlight(const ImRect& bb, ImGuiID id, ImGuiNavHighlightFlags flags = ImGuiNavHighlightFlags_TypeDefault); // Navigation highlight
|
IMGUI_API void RenderNavHighlight(const ImRect& bb, ImGuiID id, ImGuiNavHighlightFlags flags = ImGuiNavHighlightFlags_None); // Navigation highlight
|
||||||
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 RenderMouseCursor(ImVec2 pos, float scale, ImGuiMouseCursor mouse_cursor, ImU32 col_fill, ImU32 col_border, ImU32 col_shadow);
|
IMGUI_API void RenderMouseCursor(ImVec2 pos, float scale, ImGuiMouseCursor mouse_cursor, ImU32 col_fill, ImU32 col_border, ImU32 col_shadow);
|
||||||
|
|
||||||
|
@ -3082,7 +3082,7 @@ void ImGui::TableHeader(const char* label)
|
|||||||
if ((table->RowFlags & ImGuiTableRowFlags_Headers) == 0)
|
if ((table->RowFlags & ImGuiTableRowFlags_Headers) == 0)
|
||||||
TableSetBgColor(ImGuiTableBgTarget_CellBg, GetColorU32(ImGuiCol_TableHeaderBg), table->CurrentColumn);
|
TableSetBgColor(ImGuiTableBgTarget_CellBg, GetColorU32(ImGuiCol_TableHeaderBg), table->CurrentColumn);
|
||||||
}
|
}
|
||||||
RenderNavHighlight(bb, id, ImGuiNavHighlightFlags_TypeThin | ImGuiNavHighlightFlags_NoRounding);
|
RenderNavHighlight(bb, id, ImGuiNavHighlightFlags_Compact | ImGuiNavHighlightFlags_NoRounding);
|
||||||
if (held)
|
if (held)
|
||||||
table->HeldHeaderColumn = (ImGuiTableColumnIdx)column_n;
|
table->HeldHeaderColumn = (ImGuiTableColumnIdx)column_n;
|
||||||
window->DC.CursorPos.y -= g.Style.ItemSpacing.y * 0.5f;
|
window->DC.CursorPos.y -= g.Style.ItemSpacing.y * 0.5f;
|
||||||
|
@ -6338,7 +6338,7 @@ bool ImGui::TreeNodeBehavior(ImGuiID id, ImGuiTreeNodeFlags flags, const char* l
|
|||||||
|
|
||||||
// Render
|
// Render
|
||||||
const ImU32 text_col = GetColorU32(ImGuiCol_Text);
|
const ImU32 text_col = GetColorU32(ImGuiCol_Text);
|
||||||
ImGuiNavHighlightFlags nav_highlight_flags = ImGuiNavHighlightFlags_TypeThin;
|
ImGuiNavHighlightFlags nav_highlight_flags = ImGuiNavHighlightFlags_Compact;
|
||||||
if (display_frame)
|
if (display_frame)
|
||||||
{
|
{
|
||||||
// Framed type
|
// Framed type
|
||||||
@ -6641,7 +6641,7 @@ bool ImGui::Selectable(const char* label, bool selected, ImGuiSelectableFlags fl
|
|||||||
RenderFrame(bb.Min, bb.Max, col, false, 0.0f);
|
RenderFrame(bb.Min, bb.Max, col, false, 0.0f);
|
||||||
}
|
}
|
||||||
if (g.NavId == id)
|
if (g.NavId == id)
|
||||||
RenderNavHighlight(bb, id, ImGuiNavHighlightFlags_TypeThin | ImGuiNavHighlightFlags_NoRounding);
|
RenderNavHighlight(bb, id, ImGuiNavHighlightFlags_Compact | ImGuiNavHighlightFlags_NoRounding);
|
||||||
|
|
||||||
if (span_all_columns)
|
if (span_all_columns)
|
||||||
{
|
{
|
||||||
|
Loading…
Reference in New Issue
Block a user