65 lines
2.2 KiB
Rust
65 lines
2.2 KiB
Rust
use stretch::style::Dimension;
|
|
use stretch2 as stretch;
|
|
|
|
#[test]
|
|
fn relayout() {
|
|
let mut stretch = stretch::Stretch::new();
|
|
let node1 = stretch
|
|
.new_node(
|
|
stretch::style::Style {
|
|
size: stretch::geometry::Size { width: Dimension::Points(8f32), height: Dimension::Points(80f32) },
|
|
..Default::default()
|
|
},
|
|
&[],
|
|
)
|
|
.unwrap();
|
|
let node0 = stretch
|
|
.new_node(
|
|
stretch::style::Style {
|
|
align_self: stretch::prelude::AlignSelf::Center,
|
|
size: stretch::geometry::Size { width: Dimension::Auto, height: Dimension::Auto },
|
|
// size: stretch::geometry::Size { width: Dimension::Percent(1.0), height: Dimension::Percent(1.0) },
|
|
..Default::default()
|
|
},
|
|
&[node1],
|
|
)
|
|
.unwrap();
|
|
let node = stretch
|
|
.new_node(
|
|
stretch::style::Style {
|
|
size: stretch::geometry::Size { width: Dimension::Percent(1f32), height: Dimension::Percent(1f32) },
|
|
..Default::default()
|
|
},
|
|
&[node0],
|
|
)
|
|
.unwrap();
|
|
println!("0:");
|
|
stretch
|
|
.compute_layout(
|
|
node,
|
|
stretch::geometry::Size {
|
|
width: stretch::prelude::Number::Defined(100f32),
|
|
height: stretch::prelude::Number::Defined(100f32),
|
|
},
|
|
)
|
|
.unwrap();
|
|
let initial = stretch.layout(node).unwrap().location;
|
|
let initial0 = stretch.layout(node0).unwrap().location;
|
|
let initial1 = stretch.layout(node1).unwrap().location;
|
|
for i in 1..10 {
|
|
println!("\n\n{i}:");
|
|
stretch
|
|
.compute_layout(
|
|
node,
|
|
stretch::geometry::Size {
|
|
width: stretch::prelude::Number::Defined(100f32),
|
|
height: stretch::prelude::Number::Defined(100f32),
|
|
},
|
|
)
|
|
.unwrap();
|
|
assert_eq!(stretch.layout(node).unwrap().location, initial);
|
|
assert_eq!(stretch.layout(node0).unwrap().location, initial0);
|
|
assert_eq!(stretch.layout(node1).unwrap().location, initial1);
|
|
}
|
|
}
|