Chromium Code Reviews| Index: ui/accessibility/ax_relative_bounds.cc |
| diff --git a/ui/accessibility/ax_relative_bounds.cc b/ui/accessibility/ax_relative_bounds.cc |
| new file mode 100644 |
| index 0000000000000000000000000000000000000000..5d036747444a850515ecee0b0e92c5a2092bfcd3 |
| --- /dev/null |
| +++ b/ui/accessibility/ax_relative_bounds.cc |
| @@ -0,0 +1,77 @@ |
| +// Copyright 2016 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/accessibility/ax_relative_bounds.h" |
| + |
| +#include "base/strings/string_number_conversions.h" |
| +#include "ui/gfx/transform.h" |
| + |
| +using base::IntToString; |
| + |
| +namespace ui { |
| + |
| +AXRelativeBounds::AXRelativeBounds() |
| + : offset_container_id(-1) { |
| +} |
| + |
| +AXRelativeBounds::~AXRelativeBounds() { |
| +} |
| + |
| +AXRelativeBounds::AXRelativeBounds(const AXRelativeBounds& other) { |
| + offset_container_id = other.offset_container_id; |
| + bounds = other.bounds; |
| + if (other.transform) |
| + transform.reset(new gfx::Transform(*other.transform)); |
| +} |
| + |
| +AXRelativeBounds& AXRelativeBounds::operator=(AXRelativeBounds other) { |
| + offset_container_id = other.offset_container_id; |
| + bounds = other.bounds; |
| + if (other.transform) |
| + transform.reset(new gfx::Transform(*other.transform)); |
| + return *this; |
| +} |
| + |
| +bool AXRelativeBounds::operator==(const AXRelativeBounds& other) { |
| + if (offset_container_id != other.offset_container_id) |
| + return false; |
| + if (bounds != other.bounds) |
| + return false; |
| + if (!transform && !other.transform) |
| + return true; |
| + if ((transform && !other.transform) || (!transform && other.transform)) |
| + return false; |
| + return *transform == *other.transform; |
| +} |
| + |
| +bool AXRelativeBounds::operator!=(const AXRelativeBounds& other) { |
|
aboxhall
2016/08/12 16:05:10
Why can't this delegate to operator==?
dmazzoni
2016/08/15 05:31:11
Much better idea. Done.
|
| + if (offset_container_id != other.offset_container_id) |
| + return true; |
| + if (bounds != other.bounds) |
| + return true; |
| + if (!transform && !other.transform) |
| + return false; |
| + if ((transform && !other.transform) || (!transform && other.transform)) |
| + return true; |
| + return *transform != *other.transform; |
| +} |
| + |
| +std::string AXRelativeBounds::ToString() const { |
| + std::string result; |
| + |
| + if (offset_container_id != -1) |
| + result += "offset_container_id=" + IntToString(offset_container_id) + " "; |
| + |
| + result += "(" + IntToString(bounds.x()) + ", " + |
| + IntToString(bounds.y()) + ")-(" + |
| + IntToString(bounds.width()) + ", " + |
| + IntToString(bounds.height()) + ")"; |
| + |
| + if (transform && !transform->IsIdentity()) |
| + result += " transform=" + transform->ToString(); |
| + |
| + return result; |
| +} |
| + |
| +} // namespace ui |