mirror of
https://github.com/RGBCube/serenity
synced 2025-07-27 00:37:45 +00:00
LibWeb: Add for_each_spanned_track to iterate spanned tracks in GFC
Introducing for_each_spanned_track that allows to iterate tracks spanned by a specific items allow to delete a lot of repeated code.
This commit is contained in:
parent
628efda754
commit
5312a140fe
2 changed files with 36 additions and 35 deletions
|
@ -160,6 +160,32 @@ private:
|
|||
Vector<TemporaryTrack> m_grid_rows;
|
||||
Vector<TemporaryTrack> m_grid_columns;
|
||||
|
||||
template<typename Callback>
|
||||
void for_each_spanned_track_by_item(GridItem const& item, GridDimension const dimension, Callback callback)
|
||||
{
|
||||
auto& tracks = dimension == GridDimension::Column ? m_grid_columns : m_grid_rows;
|
||||
for (size_t span = 0; span < item.span(dimension); span++) {
|
||||
if (item.raw_position(dimension) + span >= tracks.size())
|
||||
break;
|
||||
|
||||
auto& track = tracks[item.raw_position(dimension) + span];
|
||||
callback(track);
|
||||
}
|
||||
}
|
||||
|
||||
template<typename Callback>
|
||||
void for_each_spanned_track_by_item(GridItem const& item, GridDimension const dimension, Callback callback) const
|
||||
{
|
||||
auto const& tracks = dimension == GridDimension::Column ? m_grid_columns : m_grid_rows;
|
||||
for (size_t span = 0; span < item.span(dimension); span++) {
|
||||
if (item.raw_position(dimension) + span >= tracks.size())
|
||||
break;
|
||||
|
||||
auto const& track = tracks[item.raw_position(dimension) + span];
|
||||
callback(track);
|
||||
}
|
||||
}
|
||||
|
||||
Vector<TemporaryTrack> m_row_gap_tracks;
|
||||
Vector<TemporaryTrack> m_column_gap_tracks;
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue