@@ -6357,17 +6357,17 @@ static void ShowDemoWindowTables()
6357
6357
IMGUI_DEMO_MARKER("Tables/Tree view");
6358
6358
if (ImGui::TreeNode("Tree view"))
6359
6359
{
6360
- static ImGuiTableFlags flags = ImGuiTableFlags_BordersV | ImGuiTableFlags_BordersOuterH | ImGuiTableFlags_Resizable | ImGuiTableFlags_RowBg | ImGuiTableFlags_NoBordersInBody;
6360
+ static ImGuiTableFlags table_flags = ImGuiTableFlags_BordersV | ImGuiTableFlags_BordersOuterH | ImGuiTableFlags_Resizable | ImGuiTableFlags_RowBg | ImGuiTableFlags_NoBordersInBody;
6361
6361
6362
- static ImGuiTreeNodeFlags tree_node_flags = ImGuiTreeNodeFlags_SpanAllColumns;
6363
- ImGui::CheckboxFlags("ImGuiTreeNodeFlags_SpanFullWidth", &tree_node_flags , ImGuiTreeNodeFlags_SpanFullWidth);
6364
- ImGui::CheckboxFlags("ImGuiTreeNodeFlags_SpanTextWidth", &tree_node_flags , ImGuiTreeNodeFlags_SpanTextWidth);
6365
- ImGui::CheckboxFlags("ImGuiTreeNodeFlags_SpanAllColumns", &tree_node_flags , ImGuiTreeNodeFlags_SpanAllColumns);
6366
- ImGui::CheckboxFlags("ImGuiTreeNodeFlags_LabelSpanAllColumns", &tree_node_flags , ImGuiTreeNodeFlags_LabelSpanAllColumns);
6362
+ static ImGuiTreeNodeFlags tree_node_flags_base = ImGuiTreeNodeFlags_SpanAllColumns;
6363
+ ImGui::CheckboxFlags("ImGuiTreeNodeFlags_SpanFullWidth", &tree_node_flags_base , ImGuiTreeNodeFlags_SpanFullWidth);
6364
+ ImGui::CheckboxFlags("ImGuiTreeNodeFlags_SpanTextWidth", &tree_node_flags_base , ImGuiTreeNodeFlags_SpanTextWidth);
6365
+ ImGui::CheckboxFlags("ImGuiTreeNodeFlags_SpanAllColumns", &tree_node_flags_base , ImGuiTreeNodeFlags_SpanAllColumns);
6366
+ ImGui::CheckboxFlags("ImGuiTreeNodeFlags_LabelSpanAllColumns", &tree_node_flags_base , ImGuiTreeNodeFlags_LabelSpanAllColumns);
6367
6367
ImGui::SameLine(); HelpMarker("Useful if you know that you aren't displaying contents in other columns");
6368
6368
6369
6369
HelpMarker("See \"Columns flags\" section to configure how indentation is applied to individual columns.");
6370
- if (ImGui::BeginTable("3ways", 3, flags ))
6370
+ if (ImGui::BeginTable("3ways", 3, table_flags ))
6371
6371
{
6372
6372
// The first column will use the default _WidthStretch when ScrollX is Off and _WidthFixed when ScrollX is On
6373
6373
ImGui::TableSetupColumn("Name", ImGuiTableColumnFlags_NoHide);
@@ -6388,13 +6388,21 @@ static void ShowDemoWindowTables()
6388
6388
ImGui::TableNextRow();
6389
6389
ImGui::TableNextColumn();
6390
6390
const bool is_folder = (node->ChildCount > 0);
6391
+
6392
+ ImGuiTreeNodeFlags node_flags = tree_node_flags_base;
6393
+ if (node != &all_nodes[0])
6394
+ node_flags &= ~ImGuiTreeNodeFlags_LabelSpanAllColumns; // Only demonstrate this on the root node.
6395
+
6391
6396
if (is_folder)
6392
6397
{
6393
- bool open = ImGui::TreeNodeEx(node->Name, tree_node_flags);
6394
- ImGui::TableNextColumn();
6395
- ImGui::TextDisabled("--");
6396
- ImGui::TableNextColumn();
6397
- ImGui::TextUnformatted(node->Type);
6398
+ bool open = ImGui::TreeNodeEx(node->Name, node_flags);
6399
+ if ((node_flags & ImGuiTreeNodeFlags_LabelSpanAllColumns) == 0)
6400
+ {
6401
+ ImGui::TableNextColumn();
6402
+ ImGui::TextDisabled("--");
6403
+ ImGui::TableNextColumn();
6404
+ ImGui::TextUnformatted(node->Type);
6405
+ }
6398
6406
if (open)
6399
6407
{
6400
6408
for (int child_n = 0; child_n < node->ChildCount; child_n++)
@@ -6404,7 +6412,7 @@ static void ShowDemoWindowTables()
6404
6412
}
6405
6413
else
6406
6414
{
6407
- ImGui::TreeNodeEx(node->Name, tree_node_flags | ImGuiTreeNodeFlags_Leaf | ImGuiTreeNodeFlags_Bullet | ImGuiTreeNodeFlags_NoTreePushOnOpen);
6415
+ ImGui::TreeNodeEx(node->Name, node_flags | ImGuiTreeNodeFlags_Leaf | ImGuiTreeNodeFlags_Bullet | ImGuiTreeNodeFlags_NoTreePushOnOpen);
6408
6416
ImGui::TableNextColumn();
6409
6417
ImGui::Text("%d", node->Size);
6410
6418
ImGui::TableNextColumn();
@@ -6414,7 +6422,7 @@ static void ShowDemoWindowTables()
6414
6422
};
6415
6423
static const MyTreeNode nodes[] =
6416
6424
{
6417
- { "Root", "Folder", -1, 1, 3 }, // 0
6425
+ { "Root with Long Name", "Folder", -1, 1, 3 }, // 0
6418
6426
{ "Music", "Folder", -1, 4, 2 }, // 1
6419
6427
{ "Textures", "Folder", -1, 6, 3 }, // 2
6420
6428
{ "desktop.ini", "System file", 1024, -1,-1 }, // 3
0 commit comments