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 #include "ui/gfx/rect_base.h" | 5 #include "ui/gfx/rect_base.h" |
6 | 6 |
7 #include "base/logging.h" | 7 #include "base/logging.h" |
8 #include "base/stringprintf.h" | 8 #include "base/stringprintf.h" |
9 | 9 |
10 // This file provides the implementation for RectBaese template and | 10 // This file provides the implementation for RectBaese template and |
(...skipping 84 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
95 } | 95 } |
96 | 96 |
97 template<typename Class, | 97 template<typename Class, |
98 typename PointClass, | 98 typename PointClass, |
99 typename SizeClass, | 99 typename SizeClass, |
100 typename InsetsClass, | 100 typename InsetsClass, |
101 typename VectorClass, | 101 typename VectorClass, |
102 typename Type> | 102 typename Type> |
103 void RectBase<Class, PointClass, SizeClass, InsetsClass, VectorClass, Type>:: | 103 void RectBase<Class, PointClass, SizeClass, InsetsClass, VectorClass, Type>:: |
104 Inset(Type left, Type top, Type right, Type bottom) { | 104 Inset(Type left, Type top, Type right, Type bottom) { |
105 Offset(left, top); | 105 origin_ += VectorClass(left, top); |
106 set_width(std::max(width() - left - right, static_cast<Type>(0))); | 106 set_width(std::max(width() - left - right, static_cast<Type>(0))); |
107 set_height(std::max(height() - top - bottom, static_cast<Type>(0))); | 107 set_height(std::max(height() - top - bottom, static_cast<Type>(0))); |
108 } | 108 } |
109 | 109 |
110 template<typename Class, | 110 template<typename Class, |
111 typename PointClass, | 111 typename PointClass, |
112 typename SizeClass, | 112 typename SizeClass, |
113 typename InsetsClass, | 113 typename InsetsClass, |
114 typename VectorClass, | 114 typename VectorClass, |
115 typename Type> | 115 typename Type> |
116 void RectBase<Class, PointClass, SizeClass, InsetsClass, VectorClass, Type>:: | 116 void RectBase<Class, PointClass, SizeClass, InsetsClass, VectorClass, Type>:: |
117 Offset(Type horizontal, Type vertical) { | 117 Offset(Type horizontal, Type vertical) { |
118 origin_.Offset(horizontal, vertical); | 118 origin_ += VectorClass(horizontal, vertical); |
119 } | 119 } |
120 | 120 |
121 template<typename Class, | 121 template<typename Class, |
| 122 typename PointClass, |
| 123 typename SizeClass, |
| 124 typename InsetsClass, |
| 125 typename VectorClass, |
| 126 typename Type> |
| 127 void RectBase<Class, PointClass, SizeClass, InsetsClass, VectorClass, Type>:: |
| 128 operator+=(const VectorClass& offset) { |
| 129 origin_ += offset; |
| 130 } |
| 131 |
| 132 template<typename Class, |
| 133 typename PointClass, |
| 134 typename SizeClass, |
| 135 typename InsetsClass, |
| 136 typename VectorClass, |
| 137 typename Type> |
| 138 void RectBase<Class, PointClass, SizeClass, InsetsClass, VectorClass, Type>:: |
| 139 operator-=(const VectorClass& offset) { |
| 140 origin_ -= offset; |
| 141 } |
| 142 |
| 143 template<typename Class, |
122 typename PointClass, | 144 typename PointClass, |
123 typename SizeClass, | 145 typename SizeClass, |
124 typename InsetsClass, | 146 typename InsetsClass, |
125 typename VectorClass, | 147 typename VectorClass, |
126 typename Type> | 148 typename Type> |
127 bool RectBase<Class, PointClass, SizeClass, InsetsClass, VectorClass, Type>:: | 149 bool RectBase<Class, PointClass, SizeClass, InsetsClass, VectorClass, Type>:: |
128 operator<(const Class& other) const { | 150 operator<(const Class& other) const { |
129 if (origin_ == other.origin_) { | 151 if (origin_ == other.origin_) { |
130 if (width() == other.width()) { | 152 if (width() == other.width()) { |
131 return height() < other.height(); | 153 return height() < other.height(); |
(...skipping 195 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
327 typename Type> | 349 typename Type> |
328 bool RectBase<Class, PointClass, SizeClass, InsetsClass, VectorClass, Type>:: | 350 bool RectBase<Class, PointClass, SizeClass, InsetsClass, VectorClass, Type>:: |
329 SharesEdgeWith(const Class& rect) const { | 351 SharesEdgeWith(const Class& rect) const { |
330 return (y() == rect.y() && height() == rect.height() && | 352 return (y() == rect.y() && height() == rect.height() && |
331 (x() == rect.right() || right() == rect.x())) || | 353 (x() == rect.right() || right() == rect.x())) || |
332 (x() == rect.x() && width() == rect.width() && | 354 (x() == rect.x() && width() == rect.width() && |
333 (y() == rect.bottom() || bottom() == rect.y())); | 355 (y() == rect.bottom() || bottom() == rect.y())); |
334 } | 356 } |
335 | 357 |
336 } // namespace gfx | 358 } // namespace gfx |
OLD | NEW |