diff options
Diffstat (limited to 'include/ui/Rect.h')
-rw-r--r-- | include/ui/Rect.h | 19 |
1 files changed, 19 insertions, 0 deletions
diff --git a/include/ui/Rect.h b/include/ui/Rect.h index 31e28d2..3886f93 100644 --- a/include/ui/Rect.h +++ b/include/ui/Rect.h @@ -18,6 +18,7 @@ #define ANDROID_UI_RECT #include <utils/Flattenable.h> +#include <utils/Log.h> #include <utils/TypeHelpers.h> #include <ui/Point.h> @@ -30,6 +31,8 @@ class Rect : public ARect, public LightFlattenablePod<Rect> public: typedef ARect::value_type value_type; + static const Rect INVALID_RECT; + // we don't provide copy-ctor and operator= on purpose // because we want the compiler generated versions @@ -43,6 +46,22 @@ public: bottom = h; } + inline Rect(uint32_t w, uint32_t h) { + if (w > INT32_MAX) { + ALOG(LOG_WARN, "Rect", + "Width %u too large for Rect class, clamping", w); + w = INT32_MAX; + } + if (h > INT32_MAX) { + ALOG(LOG_WARN, "Rect", + "Height %u too large for Rect class, clamping", h); + h = INT32_MAX; + } + left = top = 0; + right = w; + bottom = h; + } + inline Rect(int32_t l, int32_t t, int32_t r, int32_t b) { left = l; top = t; |