mirror of https://github.com/ocornut/imgui
Tables: Made it possible to use SameLine(0,0) after TableNextColumn() or TableSetColumnIndex() in order to reuse line height from previous cell.
This commit is contained in:
parent
1362fc0c56
commit
8f5ce73140
|
@ -44,6 +44,8 @@ Breaking changes:
|
||||||
|
|
||||||
Other changes:
|
Other changes:
|
||||||
|
|
||||||
|
- Tables: Made it possible to use SameLine(0,0) after TableNextColumn() or
|
||||||
|
TableSetColumnIndex() in order to reuse line height from previous cell. (#3740)
|
||||||
- Nav, TreeNode: Pressing Left with ImGuiTreeNodeFlags_NavLeftJumpsBackHere now goes
|
- Nav, TreeNode: Pressing Left with ImGuiTreeNodeFlags_NavLeftJumpsBackHere now goes
|
||||||
through proper navigation logic: honor scrolling and selection. (#1079, #1131)
|
through proper navigation logic: honor scrolling and selection. (#1079, #1131)
|
||||||
- Sliders: Fixed an integer overflow and div-by-zero in SliderInt() when
|
- Sliders: Fixed an integer overflow and div-by-zero in SliderInt() when
|
||||||
|
|
2
imgui.h
2
imgui.h
|
@ -26,7 +26,7 @@
|
||||||
// Library Version
|
// Library Version
|
||||||
// (Integer encoded as XYYZZ for use in #if preprocessor conditionals, e.g. '#if IMGUI_VERSION_NUM >= 12345')
|
// (Integer encoded as XYYZZ for use in #if preprocessor conditionals, e.g. '#if IMGUI_VERSION_NUM >= 12345')
|
||||||
#define IMGUI_VERSION "1.89.9 WIP"
|
#define IMGUI_VERSION "1.89.9 WIP"
|
||||||
#define IMGUI_VERSION_NUM 18982
|
#define IMGUI_VERSION_NUM 18983
|
||||||
#define IMGUI_HAS_TABLE
|
#define IMGUI_HAS_TABLE
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
|
|
@ -4766,7 +4766,7 @@ static void ShowDemoWindowTables()
|
||||||
if (ImGui::TreeNode("Row height"))
|
if (ImGui::TreeNode("Row height"))
|
||||||
{
|
{
|
||||||
HelpMarker("You can pass a 'min_row_height' to TableNextRow().\n\nRows are padded with 'style.CellPadding.y' on top and bottom, so effectively the minimum row height will always be >= 'style.CellPadding.y * 2.0f'.\n\nWe cannot honor a _maximum_ row height as that would require a unique clipping rectangle per row.");
|
HelpMarker("You can pass a 'min_row_height' to TableNextRow().\n\nRows are padded with 'style.CellPadding.y' on top and bottom, so effectively the minimum row height will always be >= 'style.CellPadding.y * 2.0f'.\n\nWe cannot honor a _maximum_ row height as that would require a unique clipping rectangle per row.");
|
||||||
if (ImGui::BeginTable("table_row_height", 1, ImGuiTableFlags_BordersOuter | ImGuiTableFlags_BordersInnerV))
|
if (ImGui::BeginTable("table_row_height", 1, ImGuiTableFlags_Borders))
|
||||||
{
|
{
|
||||||
for (int row = 0; row < 10; row++)
|
for (int row = 0; row < 10; row++)
|
||||||
{
|
{
|
||||||
|
@ -4777,6 +4777,28 @@ static void ShowDemoWindowTables()
|
||||||
}
|
}
|
||||||
ImGui::EndTable();
|
ImGui::EndTable();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
HelpMarker("Showcase using SameLine(0,0) to share Current Line Height between cells.\n\nPlease note that Tables Row Height is not the same thing as Current Line Height, as a table cell may contains multiple lines.");
|
||||||
|
if (ImGui::BeginTable("table_share_lineheight", 2, ImGuiTableFlags_Borders))
|
||||||
|
{
|
||||||
|
ImGui::TableNextRow();
|
||||||
|
ImGui::TableNextColumn();
|
||||||
|
ImGui::ColorButton("##1", ImVec4(0.13f, 0.26f, 0.40f, 1.0f), ImGuiColorEditFlags_None, ImVec2(40, 40));
|
||||||
|
ImGui::TableNextColumn();
|
||||||
|
ImGui::Text("Line 1");
|
||||||
|
ImGui::Text("Line 2");
|
||||||
|
|
||||||
|
ImGui::TableNextRow();
|
||||||
|
ImGui::TableNextColumn();
|
||||||
|
ImGui::ColorButton("##2", ImVec4(0.13f, 0.26f, 0.40f, 1.0f), ImGuiColorEditFlags_None, ImVec2(40, 40));
|
||||||
|
ImGui::TableNextColumn();
|
||||||
|
ImGui::SameLine(0.0f, 0.0f); // Reuse line height from previous column
|
||||||
|
ImGui::Text("Line 1, with SameLine(0,0)");
|
||||||
|
ImGui::Text("Line 2");
|
||||||
|
|
||||||
|
ImGui::EndTable();
|
||||||
|
}
|
||||||
|
|
||||||
ImGui::TreePop();
|
ImGui::TreePop();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -1779,7 +1779,7 @@ void ImGui::TableBeginRow(ImGuiTable* table)
|
||||||
table->RowTextBaseline = 0.0f;
|
table->RowTextBaseline = 0.0f;
|
||||||
table->RowIndentOffsetX = window->DC.Indent.x - table->HostIndentX; // Lock indent
|
table->RowIndentOffsetX = window->DC.Indent.x - table->HostIndentX; // Lock indent
|
||||||
window->DC.PrevLineTextBaseOffset = 0.0f;
|
window->DC.PrevLineTextBaseOffset = 0.0f;
|
||||||
window->DC.CurrLineSize = ImVec2(0.0f, 0.0f);
|
window->DC.PrevLineSize = window->DC.CurrLineSize = ImVec2(0.0f, 0.0f); // This allows users to call SameLine() to share LineSize between columns, and to call it from first column too.
|
||||||
window->DC.IsSameLine = window->DC.IsSetPos = false;
|
window->DC.IsSameLine = window->DC.IsSetPos = false;
|
||||||
window->DC.CursorMaxPos.y = next_y1;
|
window->DC.CursorMaxPos.y = next_y1;
|
||||||
|
|
||||||
|
@ -2016,6 +2016,7 @@ void ImGui::TableBeginCell(ImGuiTable* table, int column_n)
|
||||||
window->DC.CursorPos.y = table->RowPosY1 + table->CellPaddingY;
|
window->DC.CursorPos.y = table->RowPosY1 + table->CellPaddingY;
|
||||||
window->DC.CursorMaxPos.x = window->DC.CursorPos.x;
|
window->DC.CursorMaxPos.x = window->DC.CursorPos.x;
|
||||||
window->DC.ColumnsOffset.x = start_x - window->Pos.x - window->DC.Indent.x; // FIXME-WORKRECT
|
window->DC.ColumnsOffset.x = start_x - window->Pos.x - window->DC.Indent.x; // FIXME-WORKRECT
|
||||||
|
window->DC.CursorPosPrevLine = window->DC.CursorPos; // This allows users to call SameLine() to share LineSize between columns.
|
||||||
window->DC.CurrLineTextBaseOffset = table->RowTextBaseline;
|
window->DC.CurrLineTextBaseOffset = table->RowTextBaseline;
|
||||||
window->DC.NavLayerCurrent = (ImGuiNavLayer)column->NavLayerCurrent;
|
window->DC.NavLayerCurrent = (ImGuiNavLayer)column->NavLayerCurrent;
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue