mirror of
https://github.com/LadybirdBrowser/ladybird.git
synced 2026-06-28 12:10:28 +00:00
Resolved grid-template-columns and grid-template-rows values are needed
for getComputedStyle(), even when DevTools is not connected. Store them
separately from GridLayoutData again so the later lazy DevTools data
work can skip inspector-only geometry without changing CSSOM behavior.
Partly reverts 540b53ac1a.
71 lines
1.4 KiB
C++
71 lines
1.4 KiB
C++
/*
|
|
* Copyright (c) 2026, Ladybird contributors
|
|
*
|
|
* SPDX-License-Identifier: BSD-2-Clause
|
|
*/
|
|
|
|
#pragma once
|
|
|
|
#include <AK/String.h>
|
|
#include <AK/Vector.h>
|
|
#include <LibWeb/CSS/Enums.h>
|
|
#include <LibWeb/Forward.h>
|
|
#include <LibWeb/PixelUnits.h>
|
|
|
|
namespace Web::Layout {
|
|
|
|
enum class GridTrackType : u8 {
|
|
Explicit,
|
|
Implicit,
|
|
};
|
|
|
|
enum class GridTrackState : u8 {
|
|
Static,
|
|
Repeat,
|
|
Removed,
|
|
};
|
|
|
|
struct GridLayoutLine {
|
|
Vector<String> names;
|
|
CSSPixels start { 0 };
|
|
CSSPixels breadth { 0 };
|
|
GridTrackType type { GridTrackType::Implicit };
|
|
u32 number { 0 };
|
|
i32 negative_number { 0 };
|
|
};
|
|
|
|
struct GridLayoutTrack {
|
|
CSSPixels start { 0 };
|
|
CSSPixels breadth { 0 };
|
|
GridTrackType type { GridTrackType::Implicit };
|
|
GridTrackState state { GridTrackState::Static };
|
|
};
|
|
|
|
struct GridLayoutArea {
|
|
String name;
|
|
GridTrackType type { GridTrackType::Explicit };
|
|
u32 row_start { 0 };
|
|
u32 row_end { 0 };
|
|
u32 column_start { 0 };
|
|
u32 column_end { 0 };
|
|
};
|
|
|
|
struct GridLayoutDimension {
|
|
Vector<GridLayoutLine> lines;
|
|
Vector<GridLayoutTrack> tracks;
|
|
};
|
|
|
|
struct GridLayoutFragment {
|
|
Vector<GridLayoutArea> areas;
|
|
GridLayoutDimension columns;
|
|
GridLayoutDimension rows;
|
|
};
|
|
|
|
struct GridLayoutData {
|
|
CSS::Direction direction { CSS::Direction::Ltr };
|
|
CSS::WritingMode writing_mode { CSS::WritingMode::HorizontalTb };
|
|
bool is_subgrid { false };
|
|
Vector<GridLayoutFragment> fragments;
|
|
};
|
|
|
|
}
|