Index: ui/gfx/size_base_impl.h |
diff --git a/ui/gfx/size_base_impl.h b/ui/gfx/size_base_impl.h |
new file mode 100644 |
index 0000000000000000000000000000000000000000..9e87468a9b3f13c843ea7c367dbe85257b73dc44 |
--- /dev/null |
+++ b/ui/gfx/size_base_impl.h |
@@ -0,0 +1,37 @@ |
+// Copyright (c) 2012 The Chromium Authors. All rights reserved. |
+// Use of this source code is governed by a BSD-style license that can be |
+// found in the LICENSE file. |
+ |
+#include "ui/gfx/size_base.h" |
+ |
+#include "base/logging.h" |
+ |
+// This file provides the implementation for SizeBase template and |
+// used to instantiate the base class for Size and SizeF classes. |
+#if !defined(UI_IMPLEMENTATION) |
+#error "This file is intended for UI implementation only" |
+#endif |
+ |
+namespace gfx { |
+ |
+template<typename Class, typename Type> |
+void SizeBase<Class, Type>::set_width(Type width) { |
+ DCHECK(!(width < 0)); |
sky
2012/11/12 04:21:46
DCHECK_GE for all of these.
danakj
2012/11/12 05:52:57
I did that at first, but then the DCHECK() fires f
|
+ width_ = width < 0 ? 0 : width; |
+} |
+ |
+template<typename Class, typename Type> |
+void SizeBase<Class, Type>::set_height(Type height) { |
+ DCHECK(!(height < 0)); |
+ height_ = height < 0 ? 0 : height; |
+} |
+ |
+template<typename Class, typename Type> |
+SizeBase<Class, Type>::SizeBase(Type width, Type height) |
+ : width_(width < 0 ? 0 : width), |
+ height_(height < 0 ? 0 : height) { |
+ DCHECK(!(width < 0)); |
+ DCHECK(!(height < 0)); |
+} |
+ |
+} // namespace gfx |