Index: ui/gfx/geometry/size.h |
diff --git a/ui/gfx/geometry/size.h b/ui/gfx/geometry/size.h |
index 10b90a5985ec0e35499b9b0dda39340bf6397780..7f2a9037a498ff8a2244c526a14bddd0f6cd380f 100644 |
--- a/ui/gfx/geometry/size.h |
+++ b/ui/gfx/geometry/size.h |
@@ -9,7 +9,6 @@ |
#include <string> |
#include "base/compiler_specific.h" |
-#include "ui/gfx/geometry/size_base.h" |
#include "ui/gfx/geometry/size_f.h" |
#include "ui/gfx/gfx_export.h" |
@@ -24,12 +23,15 @@ typedef struct tagSIZE SIZE; |
namespace gfx { |
// A size has width and height values. |
-class GFX_EXPORT Size : public SizeBase<Size, int> { |
+class GFX_EXPORT Size { |
public: |
- Size() : SizeBase<Size, int>(0, 0) {} |
- Size(int width, int height) : SizeBase<Size, int>(width, height) {} |
+ Size() : width_(0), height_(0) {} |
+ Size(int width, int height) |
+ : width_(width < 0 ? 0 : width), height_(height < 0 ? 0 : height) {} |
#if defined(OS_MACOSX) |
- explicit Size(const CGSize& s); |
+ explicit Size(const CGSize& s) |
+ : width_(s.width < 0 ? 0 : s.width), |
+ height_(s.height < 0 ? 0 : s.height) {} |
#endif |
~Size() {} |
@@ -41,14 +43,38 @@ class GFX_EXPORT Size : public SizeBase<Size, int> { |
#if defined(OS_WIN) |
SIZE ToSIZE() const; |
#elif defined(OS_MACOSX) |
- CGSize ToCGSize() const; |
+ CGSize ToCGSize() const { return CGSizeMake(width(), height()); } |
#endif |
+ int width() const { return width_; } |
+ int height() const { return height_; } |
+ |
+ void set_width(int width) { width_ = width < 0 ? 0 : width; } |
+ void set_height(int height) { height_ = height < 0 ? 0 : height; } |
+ |
+ int GetArea() const; |
+ |
+ void SetSize(int width, int height) { |
+ set_width(width); |
+ set_height(height); |
+ } |
+ |
+ void Enlarge(int grow_width, int grow_height); |
+ |
+ void SetToMin(const Size& other); |
+ void SetToMax(const Size& other); |
+ |
+ bool IsEmpty() const { return !width() || !height(); } |
+ |
operator SizeF() const { |
return SizeF(width(), height()); |
} |
std::string ToString() const; |
+ |
+ private: |
+ int width_; |
+ int height_; |
}; |
inline bool operator==(const Size& lhs, const Size& rhs) { |
@@ -59,10 +85,6 @@ inline bool operator!=(const Size& lhs, const Size& rhs) { |
return !(lhs == rhs); |
} |
-#if !defined(COMPILER_MSVC) && !defined(__native_client__) |
-extern template class SizeBase<Size, int>; |
-#endif |
- |
// This is declared here for use in gtest-based unit tests but is defined in |
// the gfx_test_support target. Depend on that to use this in your unit test. |
// This should not be used in production code - call ToString() instead. |