use super::{do_fit, ArrangementCalculator}; use crate::{ layout::{cache::NodeState, LayoutNodeAccess, SizePolicy}, math::{PixelBox, PixelPoint, PixelSize}, }; use std::ops::Add; #[derive(Clone, Debug)] pub struct TableArrangement; impl TableArrangement { fn max_coord(&self, node: &LayoutNodeAccess) -> Option<(usize, usize)> { let Some(tc) = &node.table_cells else { return None; }; let mut max_row = None; let mut max_col = None; for cell in tc.iter() { max_col = max_col.max(Some(cell.0 .0)); max_row = max_row.max(Some(cell.0 .1)); } max_row.zip(max_col) } } impl ArrangementCalculator for TableArrangement { fn arrange_step( &self, node: LayoutNodeAccess, child_policies: Vec<(SizePolicy, SizePolicy)>, ) -> (SizePolicy, SizePolicy) { // pull row/column information from child node properties todo!() } fn layout_step(&self, node: LayoutNodeAccess, inside: PixelBox) {} }