mirror of
https://github.com/RGBCube/serenity
synced 2025-07-26 03:27:45 +00:00
LibWeb: Add Layout::Box::is_scroll_container()
The computed `overflow` property values determine whether a box is a scroll container or not, so let's have a simple helper for asking this.
This commit is contained in:
parent
3932afdc6a
commit
8038824211
2 changed files with 23 additions and 0 deletions
|
@ -29,6 +29,27 @@ Box::~Box()
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// https://www.w3.org/TR/css-overflow-3/#overflow-control
|
||||||
|
bool overflow_value_makes_box_a_scroll_container(CSS::Overflow overflow)
|
||||||
|
{
|
||||||
|
switch (overflow) {
|
||||||
|
case CSS::Overflow::Clip:
|
||||||
|
case CSS::Overflow::Visible:
|
||||||
|
return false;
|
||||||
|
case CSS::Overflow::Auto:
|
||||||
|
case CSS::Overflow::Hidden:
|
||||||
|
case CSS::Overflow::Scroll:
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// https://www.w3.org/TR/css-overflow-3/#scroll-container
|
||||||
|
bool Box::is_scroll_container() const
|
||||||
|
{
|
||||||
|
return overflow_value_makes_box_a_scroll_container(computed_values().overflow_x())
|
||||||
|
|| overflow_value_makes_box_a_scroll_container(computed_values().overflow_y());
|
||||||
|
}
|
||||||
|
|
||||||
bool Box::is_scrollable() const
|
bool Box::is_scrollable() const
|
||||||
{
|
{
|
||||||
// FIXME: Support horizontal scroll as well (overflow-x)
|
// FIXME: Support horizontal scroll as well (overflow-x)
|
||||||
|
|
|
@ -42,6 +42,8 @@ public:
|
||||||
|
|
||||||
virtual JS::GCPtr<Painting::Paintable> create_paintable() const override;
|
virtual JS::GCPtr<Painting::Paintable> create_paintable() const override;
|
||||||
|
|
||||||
|
bool is_scroll_container() const;
|
||||||
|
|
||||||
bool is_scrollable() const;
|
bool is_scrollable() const;
|
||||||
CSSPixelPoint scroll_offset() const { return m_scroll_offset; }
|
CSSPixelPoint scroll_offset() const { return m_scroll_offset; }
|
||||||
void set_scroll_offset(CSSPixelPoint);
|
void set_scroll_offset(CSSPixelPoint);
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue