diff options
Diffstat (limited to 'base/gfx')
-rw-r--r-- | base/gfx/rect.cc | 7 | ||||
-rw-r--r-- | base/gfx/rect.h | 3 |
2 files changed, 10 insertions, 0 deletions
diff --git a/base/gfx/rect.cc b/base/gfx/rect.cc index 0f9708c..fa81023 100644 --- a/base/gfx/rect.cc +++ b/base/gfx/rect.cc @@ -115,6 +115,13 @@ void Rect::Inset(int horizontal, int vertical) { set_height(std::max(height() - (vertical * 2), 0)); } +void Rect::Inset(int left, int top, int right, int bottom) { + set_width(std::max(width() - left - right, 0)); + set_height(std::max(height() - top - bottom, 0)); + set_x(left); + set_y(top); +} + void Rect::Offset(int horizontal, int vertical) { set_x(x() + horizontal); set_y(y() + vertical); diff --git a/base/gfx/rect.h b/base/gfx/rect.h index a7a3d9c..ac730bd 100644 --- a/base/gfx/rect.h +++ b/base/gfx/rect.h @@ -74,6 +74,9 @@ class Rect { // Shrink the rectangle by a horizontal and vertical distance on all sides. void Inset(int horizontal, int vertical); + // Shrink the rectangle by the specified amount on each side. + void Inset(int left, int top, int right, int bottom); + // Move the rectangle by a horizontal and vertical distance. void Offset(int horizontal, int vertical); |