diff options
author | Mathias Agopian <mathias@google.com> | 2009-05-26 17:44:57 -0700 |
---|---|---|
committer | Mathias Agopian <mathias@google.com> | 2009-05-26 17:47:39 -0700 |
commit | 35801cea5f301c0e1d7a93b15a8f73f98e6b1033 (patch) | |
tree | 2cad208ad6212d912b6f3476c98c0873f8d56fd4 /include/ui/Rect.h | |
parent | 7419ebc96fa5ae665dd4426dc5a4277c9ae1f325 (diff) | |
download | frameworks_native-35801cea5f301c0e1d7a93b15a8f73f98e6b1033.zip frameworks_native-35801cea5f301c0e1d7a93b15a8f73f98e6b1033.tar.gz frameworks_native-35801cea5f301c0e1d7a93b15a8f73f98e6b1033.tar.bz2 |
minor clean-up to Rect and Point.
- return "const" objects for overloaded operators to disallow constructs like: (a+b) = c;
- don't return references to non-static members, it's not always safe.
- Point.cpp was empty, so get rid of it
Diffstat (limited to 'include/ui/Rect.h')
-rw-r--r-- | include/ui/Rect.h | 40 |
1 files changed, 17 insertions, 23 deletions
diff --git a/include/ui/Rect.h b/include/ui/Rect.h index d232847..da72944 100644 --- a/include/ui/Rect.h +++ b/include/ui/Rect.h @@ -33,23 +33,16 @@ public: // we don't provide copy-ctor and operator= on purpose // because we want the compiler generated versions - inline Rect() - { + inline Rect() { } - inline Rect(int w, int h) - : left(0), top(0), right(w), bottom(h) - { + : left(0), top(0), right(w), bottom(h) { } - inline Rect(int l, int t, int r, int b) - : left(l), top(t), right(r), bottom(b) - { + : left(l), top(t), right(r), bottom(b) { } - inline Rect(const Point& lt, const Point& rb) - : left(lt.x), top(lt.y), right(rb.x), bottom(rb.y) - { + : left(lt.x), top(lt.y), right(rb.x), bottom(rb.y) { } void makeInvalid(); @@ -78,21 +71,22 @@ public: return bottom-top; } - // returns left-top Point non-const reference, can be assigned - inline Point& leftTop() { - return reinterpret_cast<Point&>(left); + void setLeftTop(const Point& lt) { + left = lt.x; + top = lt.y; } - // returns right bottom non-const reference, can be assigned - inline Point& rightBottom() { - return reinterpret_cast<Point&>(right); + + void setRightBottom(const Point& rb) { + right = rb.x; + bottom = rb.y; } // the following 4 functions return the 4 corners of the rect as Point - inline const Point& leftTop() const { - return reinterpret_cast<const Point&>(left); + Point leftTop() const { + return Point(left, top); } - inline const Point& rightBottom() const { - return reinterpret_cast<const Point&>(right); + Point rightBottom() const { + return Point(right, bottom); } Point rightTop() const { return Point(right, top); @@ -133,8 +127,8 @@ public: Rect& operator -= (const Point& rhs) { return offsetBy(-rhs.x, -rhs.y); } - Rect operator + (const Point& rhs) const; - Rect operator - (const Point& rhs) const; + const Rect operator + (const Point& rhs) const; + const Rect operator - (const Point& rhs) const; void translate(int dx, int dy) { // legacy, don't use. offsetBy(dx, dy); |