mirror of
https://github.com/RGBCube/serenity
synced 2025-07-25 18:37:35 +00:00
LibWeb: Support x
and y
attributes on nested SVGs
This allows positioning a child SVG relative to its parent SVG. Note: These have been implemented as CSS properties as in SVG 2, these are geometry properties that can be used in CSS (see https://www.w3.org/TR/SVG/geometry.html), but there is not much browser support for this. It is nicer to implement than the ad-hoc SVG attribute parsing though, so I feel it may make sense to port the rest of the attributes specified here (which should fix some issues with viewport relative sizes).
This commit is contained in:
parent
556679fedd
commit
b10f58a1fe
8 changed files with 91 additions and 2 deletions
|
@ -161,6 +161,8 @@ public:
|
|||
static CSS::TableLayout table_layout() { return CSS::TableLayout::Auto; }
|
||||
static QuotesData quotes() { return QuotesData { .type = QuotesData::Type::Auto }; }
|
||||
static CSS::TransformBox transform_box() { return CSS::TransformBox::ViewBox; }
|
||||
static LengthPercentage x() { return CSS::Length::make_px(0); }
|
||||
static LengthPercentage y() { return CSS::Length::make_px(0); }
|
||||
|
||||
static CSS::MaskType mask_type() { return CSS::MaskType::Luminance; }
|
||||
static CSS::MathShift math_shift() { return CSS::MathShift::Normal; }
|
||||
|
@ -392,6 +394,8 @@ public:
|
|||
CSS::TextAnchor text_anchor() const { return m_inherited.text_anchor; }
|
||||
Optional<MaskReference> const& mask() const { return m_noninherited.mask; }
|
||||
CSS::MaskType mask_type() const { return m_noninherited.mask_type; }
|
||||
LengthPercentage const& x() const { return m_noninherited.x; }
|
||||
LengthPercentage const& y() const { return m_noninherited.y; }
|
||||
|
||||
Vector<CSS::Transformation> const& transformations() const { return m_noninherited.transformations; }
|
||||
CSS::TransformBox const& transform_box() const { return m_noninherited.transform_box; }
|
||||
|
@ -545,6 +549,8 @@ protected:
|
|||
|
||||
Optional<MaskReference> mask;
|
||||
CSS::MaskType mask_type { InitialValues::mask_type() };
|
||||
LengthPercentage x { InitialValues::x() };
|
||||
LengthPercentage y { InitialValues::x() };
|
||||
} m_noninherited;
|
||||
};
|
||||
|
||||
|
@ -667,6 +673,8 @@ public:
|
|||
void set_outline_width(CSS::Length value) { m_noninherited.outline_width = value; }
|
||||
void set_mask(MaskReference value) { m_noninherited.mask = value; }
|
||||
void set_mask_type(CSS::MaskType value) { m_noninherited.mask_type = value; }
|
||||
void set_x(LengthPercentage x) { m_noninherited.x = x; }
|
||||
void set_y(LengthPercentage y) { m_noninherited.y = y; }
|
||||
|
||||
void set_math_shift(CSS::MathShift value) { m_inherited.math_shift = value; }
|
||||
void set_math_style(CSS::MathStyle value) { m_inherited.math_style = value; }
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue