1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-07-26 04:47:34 +00:00

LibWeb: Split GridAreaShorthandStyleValue out of StyleValue.{h,cpp}

This commit is contained in:
Sam Atkins 2023-03-24 14:48:19 +00:00 committed by Linus Groh
parent 4dc99e49a1
commit 675cb3b9da
8 changed files with 100 additions and 55 deletions

View file

@ -714,47 +714,6 @@ private:
} m_properties;
};
class GridAreaShorthandStyleValue final : public StyleValueWithDefaultOperators<GridAreaShorthandStyleValue> {
public:
static ValueComparingNonnullRefPtr<GridAreaShorthandStyleValue> create(
ValueComparingNonnullRefPtr<GridTrackPlacementStyleValue const> row_start,
ValueComparingNonnullRefPtr<GridTrackPlacementStyleValue const> column_start,
ValueComparingNonnullRefPtr<GridTrackPlacementStyleValue const> row_end,
ValueComparingNonnullRefPtr<GridTrackPlacementStyleValue const> column_end)
{
return adopt_ref(*new GridAreaShorthandStyleValue(row_start, column_start, row_end, column_end));
}
static ValueComparingNonnullRefPtr<GridAreaShorthandStyleValue> create(GridTrackPlacement row_start, GridTrackPlacement column_start, GridTrackPlacement row_end, GridTrackPlacement column_end)
{
return adopt_ref(*new GridAreaShorthandStyleValue(GridTrackPlacementStyleValue::create(row_start), GridTrackPlacementStyleValue::create(column_start), GridTrackPlacementStyleValue::create(row_end), GridTrackPlacementStyleValue::create(column_end)));
}
virtual ~GridAreaShorthandStyleValue() override = default;
auto row_start() const { return m_properties.row_start; }
auto column_start() const { return m_properties.column_start; }
auto row_end() const { return m_properties.row_end; }
auto column_end() const { return m_properties.column_end; }
virtual ErrorOr<String> to_string() const override;
bool properties_equal(GridAreaShorthandStyleValue const& other) const { return m_properties == other.m_properties; }
private:
GridAreaShorthandStyleValue(ValueComparingNonnullRefPtr<GridTrackPlacementStyleValue const> row_start, ValueComparingNonnullRefPtr<GridTrackPlacementStyleValue const> column_start, ValueComparingNonnullRefPtr<GridTrackPlacementStyleValue const> row_end, ValueComparingNonnullRefPtr<GridTrackPlacementStyleValue const> column_end)
: StyleValueWithDefaultOperators(Type::GridAreaShorthand)
, m_properties { .row_start = move(row_start), .column_start = move(column_start), .row_end = move(row_end), .column_end = move(column_end) }
{
}
struct Properties {
ValueComparingNonnullRefPtr<GridTrackPlacementStyleValue const> row_start;
ValueComparingNonnullRefPtr<GridTrackPlacementStyleValue const> column_start;
ValueComparingNonnullRefPtr<GridTrackPlacementStyleValue const> row_end;
ValueComparingNonnullRefPtr<GridTrackPlacementStyleValue const> column_end;
bool operator==(Properties const&) const = default;
} m_properties;
};
class GridTrackSizeStyleValue final : public StyleValueWithDefaultOperators<GridTrackSizeStyleValue> {
public:
static ValueComparingNonnullRefPtr<GridTrackSizeStyleValue> create(CSS::GridTrackSizeList grid_track_size_list);