Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(220)

Side by Side Diff: ui/gfx/size_f.h

Issue 11269022: Add Vector2d classes that represent offsets, instead of using Point. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: vector length and conversion to size Created 8 years, 1 month ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
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 #ifndef UI_GFX_SIZE_F_H_ 5 #ifndef UI_GFX_SIZE_F_H_
6 #define UI_GFX_SIZE_F_H_ 6 #define UI_GFX_SIZE_F_H_
7 7
8 #include <string> 8 #include <string>
9 9
10 #include "ui/base/ui_export.h" 10 #include "ui/base/ui_export.h"
11 #include "ui/gfx/size_base.h" 11 #include "ui/gfx/size_base.h"
12 #include "ui/gfx/vector2d_f.h"
12 13
13 namespace gfx { 14 namespace gfx {
14 15
15 // A floating version of gfx::Size. 16 // A floating version of gfx::Size.
16 class UI_EXPORT SizeF : public SizeBase<SizeF, float> { 17 class UI_EXPORT SizeF : public SizeBase<SizeF, float> {
17 public: 18 public:
18 SizeF(); 19 SizeF();
19 SizeF(float width, float height); 20 SizeF(float width, float height);
20 ~SizeF(); 21 ~SizeF();
21 22
22 SizeF Scale(float scale) const WARN_UNUSED_RESULT { 23 SizeF Scale(float scale) const WARN_UNUSED_RESULT {
23 return Scale(scale, scale); 24 return Scale(scale, scale);
24 } 25 }
25 26
26 SizeF Scale(float x_scale, float y_scale) const WARN_UNUSED_RESULT { 27 SizeF Scale(float x_scale, float y_scale) const WARN_UNUSED_RESULT {
27 return SizeF(width() * x_scale, height() * y_scale); 28 return SizeF(width() * x_scale, height() * y_scale);
28 } 29 }
29 30
30 std::string ToString() const; 31 std::string ToString() const;
31 }; 32 };
32 33
33 inline bool operator==(const SizeF& lhs, const SizeF& rhs) { 34 inline bool operator==(const SizeF& lhs, const SizeF& rhs) {
34 return lhs.width() == rhs.width() && lhs.height() == rhs.height(); 35 return lhs.width() == rhs.width() && lhs.height() == rhs.height();
35 } 36 }
36 37
37 inline bool operator!=(const SizeF& lhs, const SizeF& rhs) { 38 inline bool operator!=(const SizeF& lhs, const SizeF& rhs) {
38 return !(lhs == rhs); 39 return !(lhs == rhs);
39 } 40 }
40 41
42 inline SizeF SizeOfVector2d(const Vector2dF& v) {
43 return SizeF(std::abs(v.x()), std::abs(v.y()));
44 }
45
41 #if !defined(COMPILER_MSVC) 46 #if !defined(COMPILER_MSVC)
42 extern template class SizeBase<SizeF, float>; 47 extern template class SizeBase<SizeF, float>;
43 #endif 48 #endif
44 49
45 } // namespace gfx 50 } // namespace gfx
46 51
47 #endif // UI_GFX_SIZE_F_H_ 52 #endif // UI_GFX_SIZE_F_H_
OLDNEW
« ui/gfx/point_f.h ('K') | « ui/gfx/size.h ('k') | ui/gfx/size_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698