@@ -1700,18 +1700,29 @@ void RegisterTests_Table(ImGuiTestEngine* e)
1700
1700
t = IM_REGISTER_TEST (e, " table" , " table_synced_3_autofit" );
1701
1701
t->GuiFunc = [](ImGuiTestContext* ctx)
1702
1702
{
1703
- bool do_checks = !ctx->IsFirstGuiFrame ();
1703
+ auto & vars = ctx->GenericVars ;
1704
+
1705
+ // bool do_checks = !ctx->IsFirstGuiFrame();
1706
+ ImGui::SetNextWindowSize (ImVec2 (500 .0f , 0 .0f ), ImGuiCond_Appearing); // FIXME-TESTS FIXME-TABLE: Auto or too small width has effect on indented table instance
1704
1707
ImGui::Begin (" Test Window" , NULL , ImGuiWindowFlags_NoSavedSettings);
1708
+
1709
+ ImGui::Checkbox (" Do checks" , &vars.Bool1 );
1710
+ ImGui::SliderInt (" Step" , &vars.Step , 0 , 1 );
1711
+
1712
+ const bool do_checks = vars.Bool1 ;
1713
+ const float width_0 = ImGui::CalcTextSize (" Very very long text 1" ).x ;
1714
+ const float width_1 = (vars.Step == 0 ) ? ImGui::CalcTextSize (" Text 1" ).x : width_0;
1715
+
1705
1716
if (ImGui::BeginTable (" test_table" , 2 , ImGuiTableFlags_Borders | ImGuiTableFlags_SizingFixedFit))
1706
1717
{
1707
1718
ImGui::TableNextColumn ();
1708
- if (do_checks)
1709
- IM_CHECK_EQ_NO_RET (ImGui::GetContentRegionAvail ().x , ImGui::CalcTextSize (" Very very long text 1" ).x );
1710
1719
ImGui::Text (" Very very long text 1" );
1711
- ImGui::TableNextColumn ();
1712
1720
if (do_checks)
1713
- IM_CHECK_EQ_NO_RET (ImGui::GetContentRegionAvail ().x , ImGui::CalcTextSize (" Text 1" ).x );
1721
+ IM_CHECK_EQ_NO_RET (ImGui::GetContentRegionAvail ().x , width_0);
1722
+ ImGui::TableNextColumn ();
1714
1723
ImGui::Text (" Text 1" );
1724
+ if (do_checks)
1725
+ IM_CHECK_EQ_NO_RET (ImGui::GetContentRegionAvail ().x , width_1);
1715
1726
ImGui::EndTable ();
1716
1727
}
1717
1728
for (int n = 0 ; n < 2 ; n++)
@@ -1724,17 +1735,49 @@ void RegisterTests_Table(ImGuiTestEngine* e)
1724
1735
{
1725
1736
ImGui::TableNextColumn ();
1726
1737
if (do_checks)
1727
- IM_CHECK_EQ_NO_RET (ImGui::GetContentRegionAvail ().x , ImGui::CalcTextSize ( " Very very long text 1 " ). x );
1738
+ IM_CHECK_EQ_NO_RET (ImGui::GetContentRegionAvail ().x , width_0 );
1728
1739
ImGui::Text (" Text 1" );
1729
1740
ImGui::TableNextColumn ();
1730
1741
if (do_checks)
1731
- IM_CHECK_EQ_NO_RET (ImGui::GetContentRegionAvail ().x , ImGui::CalcTextSize ( " Text 2 " ). x );
1742
+ IM_CHECK_EQ_NO_RET (ImGui::GetContentRegionAvail ().x , width_1 );
1732
1743
ImGui::Text (" Text 2" );
1733
1744
ImGui::EndTable ();
1734
1745
}
1735
1746
}
1747
+ ImGui::Unindent ();
1748
+ if (vars.Step == 1 )
1749
+ {
1750
+ if (ImGui::BeginTable (" test_table" , 2 , ImGuiTableFlags_Borders | ImGuiTableFlags_SizingFixedFit))
1751
+ {
1752
+ ImGui::TableNextColumn ();
1753
+ if (do_checks)
1754
+ IM_CHECK_EQ_NO_RET (ImGui::GetContentRegionAvail ().x , width_0);
1755
+ ImGui::Text (" Text 1" );
1756
+ ImGui::TableNextColumn ();
1757
+ ImGui::Text (" Very very long text 1" );
1758
+ if (do_checks)
1759
+ IM_CHECK_EQ_NO_RET (ImGui::GetContentRegionAvail ().x , width_1);
1760
+ ImGui::EndTable ();
1761
+ }
1762
+ }
1736
1763
ImGui::End ();
1737
1764
};
1765
+ t->TestFunc = [](ImGuiTestContext* ctx)
1766
+ {
1767
+ auto & vars = ctx->GenericVars ;
1768
+ for (int step = 0 ; step < 2 ; step++)
1769
+ {
1770
+ #if IMGUI_VERSION_NUM < 19115
1771
+ if (step == 1 )
1772
+ continue ;
1773
+ #endif
1774
+ vars.Step = step;
1775
+ vars.Bool1 = false ;
1776
+ ctx->Yield (2 );
1777
+ vars.Bool1 = true ;
1778
+ ctx->Yield (2 );
1779
+ }
1780
+ };
1738
1781
#endif
1739
1782
1740
1783
// ## Test two tables in a tooltip continuously expanding tooltip size (#3162)
0 commit comments