mirror of
				https://github.com/RGBCube/serenity
				synced 2025-10-31 01:02:45 +00:00 
			
		
		
		
	 62974160da
			
		
	
	
		62974160da
		
	
	
	
	
		
			
			This function should return the automatic height of the formatting context's root box. Until now, we've been relying on some magical handshakes between parent and child context, when negotiating the height of child context root boxes. This is a step towards something more reasonable.
		
			
				
	
	
		
			36 lines
		
	
	
	
		
			920 B
		
	
	
	
		
			C++
		
	
	
	
	
	
			
		
		
	
	
			36 lines
		
	
	
	
		
			920 B
		
	
	
	
		
			C++
		
	
	
	
	
	
| /*
 | |
|  * Copyright (c) 2020, Andreas Kling <kling@serenityos.org>
 | |
|  *
 | |
|  * SPDX-License-Identifier: BSD-2-Clause
 | |
|  */
 | |
| 
 | |
| #pragma once
 | |
| 
 | |
| #include <AK/Forward.h>
 | |
| #include <LibWeb/Layout/BlockFormattingContext.h>
 | |
| 
 | |
| namespace Web::Layout {
 | |
| 
 | |
| struct ColumnWidth {
 | |
|     float min { 0 };
 | |
|     float max { 0 };
 | |
|     float used { 0 };
 | |
|     bool is_auto { true };
 | |
| };
 | |
| 
 | |
| class TableFormattingContext final : public BlockFormattingContext {
 | |
| public:
 | |
|     explicit TableFormattingContext(LayoutState&, BlockContainer const&, FormattingContext* parent);
 | |
|     ~TableFormattingContext();
 | |
| 
 | |
|     virtual void run(Box const&, LayoutMode) override;
 | |
|     virtual float automatic_content_height() const override;
 | |
| 
 | |
| private:
 | |
|     void calculate_column_widths(Box const& row, CSS::Length const& table_width, Vector<ColumnWidth>& column_widths);
 | |
|     void layout_row(Box const& row, Vector<ColumnWidth>& column_widths);
 | |
| 
 | |
|     float m_automatic_content_height { 0 };
 | |
| };
 | |
| 
 | |
| }
 |