summaryrefslogtreecommitdiffstats
path: root/base/gfx
diff options
context:
space:
mode:
Diffstat (limited to 'base/gfx')
-rw-r--r--base/gfx/rect.cc7
-rw-r--r--base/gfx/rect.h3
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);