MCPcopy Create free account
hub / github.com/KebsCS/KBotExt / TreeNodeUpdateNextOpen

Method TreeNodeUpdateNextOpen

KBotExt/imgui/imgui_widgets.cpp:6075–6119  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

6073}
6074
6075bool ImGui::TreeNodeUpdateNextOpen(ImGuiID id, ImGuiTreeNodeFlags flags)
6076{
6077 if (flags & ImGuiTreeNodeFlags_Leaf)
6078 return true;
6079
6080 // We only write to the tree storage if the user clicks (or explicitly use the SetNextItemOpen function)
6081 ImGuiContext& g = *GImGui;
6082 ImGuiWindow* window = g.CurrentWindow;
6083 ImGuiStorage* storage = window->DC.StateStorage;
6084
6085 bool is_open;
6086 if (g.NextItemData.Flags & ImGuiNextItemDataFlags_HasOpen)
6087 {
6088 if (g.NextItemData.OpenCond & ImGuiCond_Always)
6089 {
6090 is_open = g.NextItemData.OpenVal;
6091 TreeNodeSetOpen(id, is_open);
6092 }
6093 else
6094 {
6095 // We treat ImGuiCond_Once and ImGuiCond_FirstUseEver the same because tree node state are not saved persistently.
6096 const int stored_value = storage->GetInt(id, -1);
6097 if (stored_value == -1)
6098 {
6099 is_open = g.NextItemData.OpenVal;
6100 TreeNodeSetOpen(id, is_open);
6101 }
6102 else
6103 {
6104 is_open = stored_value != 0;
6105 }
6106 }
6107 }
6108 else
6109 {
6110 is_open = storage->GetInt(id, (flags & ImGuiTreeNodeFlags_DefaultOpen) ? 1 : 0) != 0;
6111 }
6112
6113 // When logging is enabled, we automatically expand tree nodes (but *NOT* collapsing headers.. seems like sensible behavior).
6114 // NB- If we are above max depth we still allow manually opened nodes to be logged.
6115 if (g.LogEnabled && !(flags & ImGuiTreeNodeFlags_NoAutoOpenOnLog) && (window->DC.TreeDepth - g.LogDepthRef) < g.LogDepthToExpand)
6116 is_open = true;
6117
6118 return is_open;
6119}
6120
6121bool ImGui::TreeNodeBehavior(ImGuiID id, ImGuiTreeNodeFlags flags, const char* label, const char* label_end)
6122{

Callers

nothing calls this directly

Calls 1

GetIntMethod · 0.80

Tested by

no test coverage detected