1
0
Fork 0
mirror of https://github.com/ocornut/imgui.git synced 2026-01-09 23:54:20 +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_HeaderHovered: return "HeaderHovered";
case ImGuiCol_HeaderActive: return "HeaderActive";
case ImGuiCol_HeaderSelected: return "HeaderSelected";
case ImGuiCol_Separator: return "Separator";
case ImGuiCol_SeparatorHovered: return "SeparatorHovered";
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_HeaderHovered,
ImGuiCol_HeaderActive,
ImGuiCol_HeaderSelected,
ImGuiCol_Separator,
ImGuiCol_SeparatorHovered,
ImGuiCol_SeparatorActive,

View file

@ -6880,9 +6880,14 @@ bool ImGui::TreeNodeBehavior(ImGuiID id, ImGuiTreeNodeFlags flags, const char* l
else
{
// 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);
}
RenderNavCursor(frame_bb, id, nav_render_cursor_flags);