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
3 // found in the LICENSE file.
5 #ifndef UI_GFX_SIZE_F_H_
6 #define UI_GFX_SIZE_F_H_
10 #include "base/compiler_specific.h"
11 #include "ui/base/ui_export.h"
12 #include "ui/gfx/size_base.h"
16 // A floating version of gfx::Size.
17 class UI_EXPORT SizeF
: public SizeBase
<SizeF
, float> {
19 SizeF() : SizeBase
<SizeF
, float>(0, 0) {}
20 SizeF(float width
, float height
) : SizeBase
<SizeF
, float>(width
, height
) {}
23 void Scale(float scale
) {
27 void Scale(float x_scale
, float y_scale
) {
28 SetSize(width() * x_scale
, height() * y_scale
);
31 std::string
ToString() const;
34 inline bool operator==(const SizeF
& lhs
, const SizeF
& rhs
) {
35 return lhs
.width() == rhs
.width() && lhs
.height() == rhs
.height();
38 inline bool operator!=(const SizeF
& lhs
, const SizeF
& rhs
) {
42 UI_EXPORT SizeF
ScaleSize(const SizeF
& p
, float x_scale
, float y_scale
);
44 inline SizeF
ScaleSize(const SizeF
& p
, float scale
) {
45 return ScaleSize(p
, scale
, scale
);
48 #if !defined(COMPILER_MSVC)
49 extern template class SizeBase
<SizeF
, float>;
54 #endif // UI_GFX_SIZE_F_H_