summaryrefslogtreecommitdiffstats
path: root/ui/gfx/size_f.h
diff options
context:
space:
mode:
Diffstat (limited to 'ui/gfx/size_f.h')
-rw-r--r--ui/gfx/size_f.h46
1 files changed, 40 insertions, 6 deletions
diff --git a/ui/gfx/size_f.h b/ui/gfx/size_f.h
index 733e368..23b6f3b 100644
--- a/ui/gfx/size_f.h
+++ b/ui/gfx/size_f.h
@@ -8,9 +8,8 @@
#include <string>
+#include "build/build_config.h"
#include "ui/base/ui_export.h"
-#include "ui/gfx/size.h"
-#include "ui/gfx/size_base.h"
#if !defined(ENABLE_DIP)
#error "This class should be used only when DIP feature is enabled"
@@ -18,16 +17,51 @@
namespace gfx {
-// A floating version of gfx::Size.
-class UI_EXPORT SizeF : public SizeBase<SizeF, float> {
+// A floating versino of gfx::Size. This is copied, instead of using
+// template, to avoid conflict with m19 branch.
+// TODO(oshima): Merge this to ui/gfx/size.h using template.
+class UI_EXPORT SizeF {
public:
SizeF();
SizeF(float width, float height);
- virtual ~SizeF();
+ ~SizeF();
- Size ToSize() const;
+ float width() const { return width_; }
+ float height() const { return height_; }
+
+ float GetArea() const { return width_ * height_; }
+
+ void SetSize(float width, float height) {
+ set_width(width);
+ set_height(height);
+ }
+
+ void Enlarge(float width, float height) {
+ set_width(width_ + width);
+ set_height(height_ + height);
+ }
+
+ void set_width(float width);
+ void set_height(float height);
+
+ bool operator==(const SizeF& s) const {
+ return width_ == s.width_ && height_ == s.height_;
+ }
+
+ bool operator!=(const SizeF& s) const {
+ return !(*this == s);
+ }
+
+ bool IsEmpty() const {
+ // Size doesn't allow negative dimensions, so testing for 0 is enough.
+ return (width_ == 0) || (height_ == 0);
+ }
std::string ToString() const;
+
+ private:
+ float width_;
+ float height_;
};
} // namespace gfx