mirror of
https://github.com/RGBCube/serenity
synced 2025-05-24 05:55:06 +00:00
LibWeb: Parse the CSS scrollbar-width property
This commit is contained in:
parent
c74fc4c171
commit
8d9e20cb03
7 changed files with 37 additions and 0 deletions
|
@ -138,6 +138,7 @@ position: static
|
||||||
quotes: auto
|
quotes: auto
|
||||||
right: auto
|
right: auto
|
||||||
row-gap: auto
|
row-gap: auto
|
||||||
|
scrollbar-width: auto
|
||||||
stop-color: rgb(0, 0, 0)
|
stop-color: rgb(0, 0, 0)
|
||||||
stop-opacity: 1
|
stop-opacity: 1
|
||||||
stroke: none
|
stroke: none
|
||||||
|
|
|
@ -177,6 +177,8 @@ public:
|
||||||
static CSS::MathShift math_shift() { return CSS::MathShift::Normal; }
|
static CSS::MathShift math_shift() { return CSS::MathShift::Normal; }
|
||||||
static CSS::MathStyle math_style() { return CSS::MathStyle::Normal; }
|
static CSS::MathStyle math_style() { return CSS::MathStyle::Normal; }
|
||||||
static int math_depth() { return 0; }
|
static int math_depth() { return 0; }
|
||||||
|
|
||||||
|
static CSS::ScrollbarWidth scrollbar_width() { return CSS::ScrollbarWidth::Auto; }
|
||||||
};
|
};
|
||||||
|
|
||||||
enum class BackgroundSize {
|
enum class BackgroundSize {
|
||||||
|
@ -432,6 +434,8 @@ public:
|
||||||
CSS::MathStyle math_style() const { return m_inherited.math_style; }
|
CSS::MathStyle math_style() const { return m_inherited.math_style; }
|
||||||
int math_depth() const { return m_inherited.math_depth; }
|
int math_depth() const { return m_inherited.math_depth; }
|
||||||
|
|
||||||
|
CSS::ScrollbarWidth scrollbar_width() const { return m_noninherited.scrollbar_width; }
|
||||||
|
|
||||||
NonnullOwnPtr<ComputedValues> clone_inherited_values() const
|
NonnullOwnPtr<ComputedValues> clone_inherited_values() const
|
||||||
{
|
{
|
||||||
auto clone = make<ComputedValues>();
|
auto clone = make<ComputedValues>();
|
||||||
|
@ -564,6 +568,8 @@ protected:
|
||||||
CSS::MaskType mask_type { InitialValues::mask_type() };
|
CSS::MaskType mask_type { InitialValues::mask_type() };
|
||||||
LengthPercentage x { InitialValues::x() };
|
LengthPercentage x { InitialValues::x() };
|
||||||
LengthPercentage y { InitialValues::x() };
|
LengthPercentage y { InitialValues::x() };
|
||||||
|
|
||||||
|
CSS::ScrollbarWidth scrollbar_width { InitialValues::scrollbar_width() };
|
||||||
} m_noninherited;
|
} m_noninherited;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -694,6 +700,8 @@ public:
|
||||||
void set_math_shift(CSS::MathShift value) { m_inherited.math_shift = value; }
|
void set_math_shift(CSS::MathShift value) { m_inherited.math_shift = value; }
|
||||||
void set_math_style(CSS::MathStyle value) { m_inherited.math_style = value; }
|
void set_math_style(CSS::MathStyle value) { m_inherited.math_style = value; }
|
||||||
void set_math_depth(int value) { m_inherited.math_depth = value; }
|
void set_math_depth(int value) { m_inherited.math_depth = value; }
|
||||||
|
|
||||||
|
void set_scrollbar_width(CSS::ScrollbarWidth value) { m_noninherited.scrollbar_width = value; }
|
||||||
};
|
};
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -361,6 +361,11 @@
|
||||||
"middle",
|
"middle",
|
||||||
"end"
|
"end"
|
||||||
],
|
],
|
||||||
|
"scrollbar-width": [
|
||||||
|
"auto",
|
||||||
|
"thin",
|
||||||
|
"none"
|
||||||
|
],
|
||||||
"text-align": [
|
"text-align": [
|
||||||
"center",
|
"center",
|
||||||
"justify",
|
"justify",
|
||||||
|
|
|
@ -2034,6 +2034,18 @@
|
||||||
],
|
],
|
||||||
"percentages-resolve-to": "length"
|
"percentages-resolve-to": "length"
|
||||||
},
|
},
|
||||||
|
"scrollbar-width": {
|
||||||
|
"affects-layout": false,
|
||||||
|
"animation-type": "by-computed-value",
|
||||||
|
"inherited": false,
|
||||||
|
"initial": "auto",
|
||||||
|
"valid-types": [ "scrollbar-width" ],
|
||||||
|
"valid-identifiers": [
|
||||||
|
"auto",
|
||||||
|
"thin",
|
||||||
|
"none"
|
||||||
|
]
|
||||||
|
},
|
||||||
"stop-color": {
|
"stop-color": {
|
||||||
"affects-layout": false,
|
"affects-layout": false,
|
||||||
"animation-type": "by-computed-value",
|
"animation-type": "by-computed-value",
|
||||||
|
|
|
@ -1110,4 +1110,10 @@ QuotesData StyleProperties::quotes() const
|
||||||
return InitialValues::quotes();
|
return InitialValues::quotes();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Optional<CSS::ScrollbarWidth> StyleProperties::scrollbar_width() const
|
||||||
|
{
|
||||||
|
auto value = property(CSS::PropertyID::ScrollbarWidth);
|
||||||
|
return value_id_to_scrollbar_width(value->to_identifier());
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -158,6 +158,8 @@ public:
|
||||||
|
|
||||||
QuotesData quotes() const;
|
QuotesData quotes() const;
|
||||||
|
|
||||||
|
Optional<CSS::ScrollbarWidth> scrollbar_width() const;
|
||||||
|
|
||||||
static NonnullRefPtr<Gfx::Font const> font_fallback(bool monospace, bool bold);
|
static NonnullRefPtr<Gfx::Font const> font_fallback(bool monospace, bool bold);
|
||||||
|
|
||||||
private:
|
private:
|
||||||
|
|
|
@ -835,6 +835,9 @@ void NodeWithStyle::apply_style(const CSS::StyleProperties& computed_style)
|
||||||
|
|
||||||
computed_values.set_object_position(computed_style.object_position());
|
computed_values.set_object_position(computed_style.object_position());
|
||||||
|
|
||||||
|
if (auto scrollbar_width = computed_style.scrollbar_width(); scrollbar_width.has_value())
|
||||||
|
computed_values.set_scrollbar_width(scrollbar_width.value());
|
||||||
|
|
||||||
propagate_style_to_anonymous_wrappers();
|
propagate_style_to_anonymous_wrappers();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue