12345678910111213141516171819202122232425262728293031323334353637 |
- 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) {}
- }
|