|
@@ -5600,6 +5600,9 @@ void ImGui::LogButtons()
|
|
|
|
|
|
bool ImGui::TreeNodeBehaviorIsOpened(ImGuiID id, ImGuiTreeNodeFlags flags)
|
|
bool ImGui::TreeNodeBehaviorIsOpened(ImGuiID id, ImGuiTreeNodeFlags flags)
|
|
{
|
|
{
|
|
|
|
+ if (flags & ImGuiTreeNodeFlags_AlwaysOpen)
|
|
|
|
+ return true;
|
|
|
|
+
|
|
// We only write to the tree storage if the user clicks (or explicitely use SetNextTreeNode*** functions)
|
|
// We only write to the tree storage if the user clicks (or explicitely use SetNextTreeNode*** functions)
|
|
ImGuiState& g = *GImGui;
|
|
ImGuiState& g = *GImGui;
|
|
ImGuiWindow* window = g.CurrentWindow;
|
|
ImGuiWindow* window = g.CurrentWindow;
|
|
@@ -5692,7 +5695,7 @@ bool ImGui::TreeNodeBehavior(ImGuiID id, ImGuiTreeNodeFlags flags, const char* l
|
|
if (flags & ImGuiTreeNodeFlags_OpenOnDoubleClick)
|
|
if (flags & ImGuiTreeNodeFlags_OpenOnDoubleClick)
|
|
button_flags |= ImGuiButtonFlags_PressedOnDoubleClick | ((flags & ImGuiTreeNodeFlags_OpenOnArrow) ? ImGuiButtonFlags_PressedOnClickRelease : 0);
|
|
button_flags |= ImGuiButtonFlags_PressedOnDoubleClick | ((flags & ImGuiTreeNodeFlags_OpenOnArrow) ? ImGuiButtonFlags_PressedOnClickRelease : 0);
|
|
bool hovered, held, pressed = ButtonBehavior(interact_bb, id, &hovered, &held, button_flags);
|
|
bool hovered, held, pressed = ButtonBehavior(interact_bb, id, &hovered, &held, button_flags);
|
|
- if (pressed)
|
|
|
|
|
|
+ if (pressed && !(flags & ImGuiTreeNodeFlags_AlwaysOpen))
|
|
{
|
|
{
|
|
bool toggled = !(flags & (ImGuiTreeNodeFlags_OpenOnArrow | ImGuiTreeNodeFlags_OpenOnDoubleClick));
|
|
bool toggled = !(flags & (ImGuiTreeNodeFlags_OpenOnArrow | ImGuiTreeNodeFlags_OpenOnDoubleClick));
|
|
if (flags & ImGuiTreeNodeFlags_OpenOnArrow)
|
|
if (flags & ImGuiTreeNodeFlags_OpenOnArrow)
|
|
@@ -5736,7 +5739,10 @@ bool ImGui::TreeNodeBehavior(ImGuiID id, ImGuiTreeNodeFlags flags, const char* l
|
|
if (hovered || (flags & ImGuiTreeNodeFlags_Selected))
|
|
if (hovered || (flags & ImGuiTreeNodeFlags_Selected))
|
|
RenderFrame(bb.Min, bb.Max, col, false);
|
|
RenderFrame(bb.Min, bb.Max, col, false);
|
|
|
|
|
|
- RenderCollapseTriangle(bb.Min + ImVec2(padding.x, g.FontSize*0.15f + text_base_offset_y), opened, 0.70f, false);
|
|
|
|
|
|
+ if (flags & ImGuiTreeNodeFlags_AlwaysOpen)
|
|
|
|
+ RenderBullet(bb.Min + ImVec2((padding.x + collapser_width) * 0.5f, g.FontSize*0.50f + text_base_offset_y));
|
|
|
|
+ else
|
|
|
|
+ RenderCollapseTriangle(bb.Min + ImVec2(padding.x, g.FontSize*0.15f + text_base_offset_y), opened, 0.70f, false);
|
|
if (g.LogEnabled)
|
|
if (g.LogEnabled)
|
|
LogRenderedText(text_pos, ">");
|
|
LogRenderedText(text_pos, ">");
|
|
RenderText(text_pos, label, label_end, false);
|
|
RenderText(text_pos, label, label_end, false);
|