1
0
Fork 0
mirror of https://github.com/ocornut/imgui.git synced 2026-01-11 00:04:24 +00:00

Add dedicated style color for selected tree nodes

This commit is contained in:
Timo Suoranta 2025-05-01 09:44:50 +03:00 committed by Timo Suoranta
parent 44aa9a4b3a
commit 77550b8d37
3 changed files with 9 additions and 2 deletions

View file

@ -3697,6 +3697,7 @@ const char* ImGui::GetStyleColorName(ImGuiCol idx)
case ImGuiCol_Header: return "Header"; case ImGuiCol_Header: return "Header";
case ImGuiCol_HeaderHovered: return "HeaderHovered"; case ImGuiCol_HeaderHovered: return "HeaderHovered";
case ImGuiCol_HeaderActive: return "HeaderActive"; case ImGuiCol_HeaderActive: return "HeaderActive";
case ImGuiCol_HeaderSelected: return "HeaderSelected";
case ImGuiCol_Separator: return "Separator"; case ImGuiCol_Separator: return "Separator";
case ImGuiCol_SeparatorHovered: return "SeparatorHovered"; case ImGuiCol_SeparatorHovered: return "SeparatorHovered";
case ImGuiCol_SeparatorActive: return "SeparatorActive"; case ImGuiCol_SeparatorActive: return "SeparatorActive";

View file

@ -1798,6 +1798,7 @@ enum ImGuiCol_
ImGuiCol_Header, // Header* colors are used for CollapsingHeader, TreeNode, Selectable, MenuItem ImGuiCol_Header, // Header* colors are used for CollapsingHeader, TreeNode, Selectable, MenuItem
ImGuiCol_HeaderHovered, ImGuiCol_HeaderHovered,
ImGuiCol_HeaderActive, ImGuiCol_HeaderActive,
ImGuiCol_HeaderSelected,
ImGuiCol_Separator, ImGuiCol_Separator,
ImGuiCol_SeparatorHovered, ImGuiCol_SeparatorHovered,
ImGuiCol_SeparatorActive, ImGuiCol_SeparatorActive,

View file

@ -6880,9 +6880,14 @@ bool ImGui::TreeNodeBehavior(ImGuiID id, ImGuiTreeNodeFlags flags, const char* l
else else
{ {
// Unframed typed for tree nodes // Unframed typed for tree nodes
if (hovered || selected) if (selected)
{ {
const ImU32 bg_col = GetColorU32((held && hovered) ? ImGuiCol_HeaderActive : hovered ? ImGuiCol_HeaderHovered : ImGuiCol_Header); const ImU32 bg_col = GetColorU32(ImGuiCol_HeaderSelected);
RenderFrame(frame_bb.Min, frame_bb.Max, bg_col, false);
}
if (hovered)
{
const ImU32 bg_col = GetColorU32((held && hovered) ? ImGuiCol_HeaderActive : ImGuiCol_HeaderHovered);
RenderFrame(frame_bb.Min, frame_bb.Max, bg_col, false); RenderFrame(frame_bb.Min, frame_bb.Max, bg_col, false);
} }
RenderNavCursor(frame_bb, id, nav_render_cursor_flags); RenderNavCursor(frame_bb, id, nav_render_cursor_flags);