mirror of
https://github.com/LadybirdBrowser/ladybird.git
synced 2024-11-25 09:00:22 +00:00
LibGfx: Add Rect::unite_{horizontally,vertically}()
These functions unite the rect with another rect, but only in one axis.
This commit is contained in:
parent
7af7e90e3f
commit
d620dd516c
Notes:
sideshowbarker
2024-07-16 23:52:22 +09:00
Author: https://github.com/awesomekling Commit: https://github.com/SerenityOS/serenity/commit/d620dd516c Pull-request: https://github.com/SerenityOS/serenity/pull/19975
2 changed files with 42 additions and 0 deletions
|
@ -56,3 +56,29 @@ TEST_CASE(rect_closest_to)
|
|||
closest = screen_rect.closest_to(p);
|
||||
EXPECT_EQ(screen_rect.side(closest), Gfx::IntRect::Side::Top);
|
||||
}
|
||||
|
||||
TEST_CASE(rect_unite_horizontally)
|
||||
{
|
||||
Gfx::IntRect rect { 10, 10, 100, 100 };
|
||||
Gfx::IntRect huge_rect { 0, 0, 1000, 1000 };
|
||||
|
||||
rect.unite_horizontally(huge_rect);
|
||||
|
||||
EXPECT_EQ(rect.left(), 0);
|
||||
EXPECT_EQ(rect.right(), 1000);
|
||||
EXPECT_EQ(rect.top(), 10);
|
||||
EXPECT_EQ(rect.bottom(), 110);
|
||||
}
|
||||
|
||||
TEST_CASE(rect_unite_vertically)
|
||||
{
|
||||
Gfx::IntRect rect { 10, 10, 100, 100 };
|
||||
Gfx::IntRect huge_rect { 0, 0, 1000, 1000 };
|
||||
|
||||
rect.unite_vertically(huge_rect);
|
||||
|
||||
EXPECT_EQ(rect.top(), 0);
|
||||
EXPECT_EQ(rect.bottom(), 1000);
|
||||
EXPECT_EQ(rect.left(), 10);
|
||||
EXPECT_EQ(rect.right(), 110);
|
||||
}
|
||||
|
|
|
@ -870,6 +870,22 @@ public:
|
|||
return { { point.x() - size.width() / 2, point.y() - size.height() / 2 }, size };
|
||||
}
|
||||
|
||||
void unite_horizontally(Rect<T> const& other)
|
||||
{
|
||||
auto new_left = min(left(), other.left());
|
||||
auto new_right = max(right(), other.right());
|
||||
set_left(new_left);
|
||||
set_right(new_right);
|
||||
}
|
||||
|
||||
void unite_vertically(Rect<T> const& other)
|
||||
{
|
||||
auto new_top = min(top(), other.top());
|
||||
auto new_bottom = max(bottom(), other.bottom());
|
||||
set_top(new_top);
|
||||
set_bottom(new_bottom);
|
||||
}
|
||||
|
||||
[[nodiscard]] Rect<T> united(Rect<T> const& other) const
|
||||
{
|
||||
if (is_empty())
|
||||
|
|
Loading…
Reference in a new issue