mirror of
https://github.com/penpot/penpot.git
synced 2025-07-18 15:37:12 +02:00
✨ Modifiers grid multi-span
This commit is contained in:
parent
87650de9bc
commit
a59014cad0
4 changed files with 373 additions and 203 deletions
|
@ -412,94 +412,6 @@ fn calculate_track_positions(
|
|||
track.anchor = next_anchor;
|
||||
next_anchor = next_anchor + layout_axis.across_v * real_gap;
|
||||
}
|
||||
|
||||
/*
|
||||
match align_content {
|
||||
AlignContent::End => {
|
||||
let total_across_size_gap: f32 =
|
||||
total_across_size + (tracks.len() - 1) as f32 * layout_axis.gap_across;
|
||||
|
||||
let delta =
|
||||
layout_axis.across_size - total_across_size_gap - layout_axis.padding_across_end;
|
||||
let mut next_anchor = layout_bounds.nw + layout_axis.across_v * delta;
|
||||
|
||||
for track in tracks.iter_mut() {
|
||||
track.anchor = next_anchor;
|
||||
next_anchor = next_anchor
|
||||
+ layout_axis.across_v * (track.across_size + layout_axis.gap_across);
|
||||
}
|
||||
}
|
||||
|
||||
AlignContent::Center => {
|
||||
let total_across_size_gap: f32 =
|
||||
total_across_size + (tracks.len() - 1) as f32 * layout_axis.gap_across;
|
||||
let center_margin = (layout_axis.across_size - total_across_size_gap) / 2.0;
|
||||
|
||||
let mut next_anchor = layout_bounds.nw + layout_axis.across_v * center_margin;
|
||||
|
||||
for track in tracks.iter_mut() {
|
||||
track.anchor = next_anchor;
|
||||
next_anchor = next_anchor
|
||||
+ layout_axis.across_v * (track.across_size + layout_axis.gap_across);
|
||||
}
|
||||
}
|
||||
|
||||
AlignContent::SpaceBetween => {
|
||||
let mut next_anchor =
|
||||
layout_bounds.nw + layout_axis.across_v * layout_axis.padding_across_start;
|
||||
|
||||
let effective_gap = f32::max(
|
||||
layout_axis.gap_across,
|
||||
(layout_axis.across_space() - total_across_size) / (tracks.len() - 1) as f32,
|
||||
);
|
||||
|
||||
for track in tracks.iter_mut() {
|
||||
track.anchor = next_anchor;
|
||||
next_anchor =
|
||||
next_anchor + layout_axis.across_v * (track.across_size + effective_gap);
|
||||
}
|
||||
}
|
||||
|
||||
AlignContent::SpaceAround => {
|
||||
let effective_gap =
|
||||
(layout_axis.across_space() - total_across_size) / tracks.len() as f32;
|
||||
|
||||
let mut next_anchor = layout_bounds.nw
|
||||
+ layout_axis.across_v * (layout_axis.padding_across_start + effective_gap / 2.0);
|
||||
|
||||
for track in tracks.iter_mut() {
|
||||
track.anchor = next_anchor;
|
||||
next_anchor =
|
||||
next_anchor + layout_axis.across_v * (track.across_size + effective_gap);
|
||||
}
|
||||
}
|
||||
|
||||
AlignContent::SpaceEvenly => {
|
||||
let effective_gap =
|
||||
(layout_axis.across_space() - total_across_size) / (tracks.len() + 1) as f32;
|
||||
|
||||
let mut next_anchor = layout_bounds.nw
|
||||
+ layout_axis.across_v * (layout_axis.padding_across_start + effective_gap);
|
||||
|
||||
for track in tracks.iter_mut() {
|
||||
track.anchor = next_anchor;
|
||||
next_anchor =
|
||||
next_anchor + layout_axis.across_v * (track.across_size + effective_gap);
|
||||
}
|
||||
}
|
||||
|
||||
_ => {
|
||||
let mut next_anchor =
|
||||
layout_bounds.nw + layout_axis.across_v * layout_axis.padding_across_start;
|
||||
|
||||
for track in tracks.iter_mut() {
|
||||
track.anchor = next_anchor;
|
||||
next_anchor = next_anchor
|
||||
+ layout_axis.across_v * (track.across_size + layout_axis.gap_across);
|
||||
}
|
||||
}
|
||||
|
||||
}*/
|
||||
}
|
||||
|
||||
fn calculate_track_data(
|
||||
|
@ -708,8 +620,8 @@ pub fn reflow_flex_layout(
|
|||
let auto_across_size = if layout_axis.is_auto_across {
|
||||
tracks.iter().map(|track| track.across_size).sum::<f32>()
|
||||
+ (tracks.len() - 1) as f32 * layout_axis.gap_across
|
||||
+ layout_axis.padding_main_start
|
||||
+ layout_axis.padding_main_end
|
||||
+ layout_axis.padding_across_start
|
||||
+ layout_axis.padding_across_end
|
||||
} else {
|
||||
0.0
|
||||
};
|
||||
|
@ -723,8 +635,8 @@ pub fn reflow_flex_layout(
|
|||
})
|
||||
.reduce(f32::max)
|
||||
.unwrap_or(0.01)
|
||||
+ layout_axis.padding_across_start
|
||||
+ layout_axis.padding_across_end
|
||||
+ layout_axis.padding_main_start
|
||||
+ layout_axis.padding_main_end
|
||||
} else {
|
||||
0.0
|
||||
};
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue