Skip to content

Commit c5f6094

Browse files
committed
Demo: tweak demo for ImGuiTreeNodeFlags_LabelSpanAllColumns. (#8318, #3565)
1 parent 290e402 commit c5f6094

File tree

1 file changed

+22
-14
lines changed

1 file changed

+22
-14
lines changed

imgui_demo.cpp

+22-14
Original file line numberDiff line numberDiff line change
@@ -6357,17 +6357,17 @@ static void ShowDemoWindowTables()
63576357
IMGUI_DEMO_MARKER("Tables/Tree view");
63586358
if (ImGui::TreeNode("Tree view"))
63596359
{
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;
63616361

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);
63676367
ImGui::SameLine(); HelpMarker("Useful if you know that you aren't displaying contents in other columns");
63686368

63696369
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))
63716371
{
63726372
// The first column will use the default _WidthStretch when ScrollX is Off and _WidthFixed when ScrollX is On
63736373
ImGui::TableSetupColumn("Name", ImGuiTableColumnFlags_NoHide);
@@ -6388,13 +6388,21 @@ static void ShowDemoWindowTables()
63886388
ImGui::TableNextRow();
63896389
ImGui::TableNextColumn();
63906390
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+
63916396
if (is_folder)
63926397
{
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+
}
63986406
if (open)
63996407
{
64006408
for (int child_n = 0; child_n < node->ChildCount; child_n++)
@@ -6404,7 +6412,7 @@ static void ShowDemoWindowTables()
64046412
}
64056413
else
64066414
{
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);
64086416
ImGui::TableNextColumn();
64096417
ImGui::Text("%d", node->Size);
64106418
ImGui::TableNextColumn();
@@ -6414,7 +6422,7 @@ static void ShowDemoWindowTables()
64146422
};
64156423
static const MyTreeNode nodes[] =
64166424
{
6417-
{ "Root", "Folder", -1, 1, 3 }, // 0
6425+
{ "Root with Long Name", "Folder", -1, 1, 3 }, // 0
64186426
{ "Music", "Folder", -1, 4, 2 }, // 1
64196427
{ "Textures", "Folder", -1, 6, 3 }, // 2
64206428
{ "desktop.ini", "System file", 1024, -1,-1 }, // 3

0 commit comments

Comments
 (0)