| OLD | NEW |
| 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 // A template for a simple rectangle class. The containment semantics | 5 // A template for a simple rectangle class. The containment semantics |
| 6 // are array-like; that is, the coordinate (x, y) is considered to be | 6 // are array-like; that is, the coordinate (x, y) is considered to be |
| 7 // contained by the rectangle, but the coordinate (x + width, y) is not. | 7 // contained by the rectangle, but the coordinate (x + width, y) is not. |
| 8 // The class will happily let you create malformed rectangles (that is, | 8 // The class will happily let you create malformed rectangles (that is, |
| 9 // rectangles with negative width and/or height), but there will be assertions | 9 // rectangles with negative width and/or height), but there will be assertions |
| 10 // in the operations (such as Contains()) to complain in this case. | 10 // in the operations (such as Contains()) to complain in this case. |
| (...skipping 47 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 58 | 58 |
| 59 // Shrink the rectangle by the specified amount on each side. | 59 // Shrink the rectangle by the specified amount on each side. |
| 60 void Inset(Type left, Type top, Type right, Type bottom); | 60 void Inset(Type left, Type top, Type right, Type bottom); |
| 61 | 61 |
| 62 // Move the rectangle by a horizontal and vertical distance. | 62 // Move the rectangle by a horizontal and vertical distance. |
| 63 void Offset(Type horizontal, Type vertical); | 63 void Offset(Type horizontal, Type vertical); |
| 64 void Offset(const PointClass& point) { | 64 void Offset(const PointClass& point) { |
| 65 Offset(point.x(), point.y()); | 65 Offset(point.x(), point.y()); |
| 66 } | 66 } |
| 67 | 67 |
| 68 /// Scales the rectangle by |scale|. | |
| 69 Class Scale(float scale) const WARN_UNUSED_RESULT { | |
| 70 return Scale(scale, scale); | |
| 71 } | |
| 72 | |
| 73 Class Scale(float x_scale, float y_scale) const WARN_UNUSED_RESULT { | |
| 74 return Class(origin_.Scale(x_scale, y_scale), | |
| 75 size_.Scale(x_scale, y_scale)); | |
| 76 } | |
| 77 | |
| 78 InsetsClass InsetsFrom(const Class& inner) const { | 68 InsetsClass InsetsFrom(const Class& inner) const { |
| 79 return InsetsClass(inner.y() - y(), | 69 return InsetsClass(inner.y() - y(), |
| 80 inner.x() - x(), | 70 inner.x() - x(), |
| 81 bottom() - inner.bottom(), | 71 bottom() - inner.bottom(), |
| 82 right() - inner.right()); | 72 right() - inner.right()); |
| 83 } | 73 } |
| 84 | 74 |
| 85 // Returns true if the area of the rectangle is zero. | 75 // Returns true if the area of the rectangle is zero. |
| 86 bool IsEmpty() const { return size_.IsEmpty(); } | 76 bool IsEmpty() const { return size_.IsEmpty(); } |
| 87 | 77 |
| (...skipping 75 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 163 ~RectBase(); | 153 ~RectBase(); |
| 164 | 154 |
| 165 private: | 155 private: |
| 166 PointClass origin_; | 156 PointClass origin_; |
| 167 SizeClass size_; | 157 SizeClass size_; |
| 168 }; | 158 }; |
| 169 | 159 |
| 170 } // namespace gfx | 160 } // namespace gfx |
| 171 | 161 |
| 172 #endif // UI_GFX_RECT_BASE_H_ | 162 #endif // UI_GFX_RECT_BASE_H_ |
| OLD | NEW |