mirror of
				https://github.com/ocornut/imgui.git
				synced 2025-10-26 12:27:30 +00:00 
			
		
		
		
	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:
		| @@ -44,6 +44,8 @@ Breaking 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 | ||||
|   through proper navigation logic: honor scrolling and selection. (#1079, #1131) | ||||
| - Sliders: Fixed an integer overflow and div-by-zero in SliderInt() when | ||||
|   | ||||
							
								
								
									
										2
									
								
								imgui.h
									
									
									
									
									
								
							
							
						
						
									
										2
									
								
								imgui.h
									
									
									
									
									
								
							| @@ -26,7 +26,7 @@ | ||||
| // Library Version | ||||
| // (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_NUM   18982 | ||||
| #define IMGUI_VERSION_NUM   18983 | ||||
| #define IMGUI_HAS_TABLE | ||||
|  | ||||
| /* | ||||
|   | ||||
| @@ -4766,7 +4766,7 @@ static void ShowDemoWindowTables() | ||||
|     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."); | ||||
|         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++) | ||||
|             { | ||||
| @@ -4777,6 +4777,28 @@ static void ShowDemoWindowTables() | ||||
|             } | ||||
|             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(); | ||||
|     } | ||||
|  | ||||
|   | ||||
| @@ -1779,7 +1779,7 @@ void ImGui::TableBeginRow(ImGuiTable* table) | ||||
|     table->RowTextBaseline = 0.0f; | ||||
|     table->RowIndentOffsetX = window->DC.Indent.x - table->HostIndentX; // Lock indent | ||||
|     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.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.CursorMaxPos.x = window->DC.CursorPos.x; | ||||
|     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.NavLayerCurrent = (ImGuiNavLayer)column->NavLayerCurrent; | ||||
|  | ||||
|   | ||||
		Reference in New Issue
	
	Block a user
	 ocornut
					ocornut