| OLD | NEW |
| 1 // Copyright 2013 The Chromium Authors. All rights reserved. | 1 // Copyright 2013 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 #include "ui/accessibility/ax_node_data.h" | 5 #include "ui/accessibility/ax_node_data.h" |
| 6 | 6 |
| 7 #include <stddef.h> | 7 #include <stddef.h> |
| 8 | 8 |
| 9 #include <algorithm> | 9 #include <algorithm> |
| 10 #include <set> | 10 #include <set> |
| 11 | 11 |
| 12 #include "base/strings/string_number_conversions.h" | 12 #include "base/strings/string_number_conversions.h" |
| 13 #include "base/strings/string_util.h" | 13 #include "base/strings/string_util.h" |
| 14 #include "base/strings/stringprintf.h" | 14 #include "base/strings/stringprintf.h" |
| 15 #include "base/strings/utf_string_conversions.h" | 15 #include "base/strings/utf_string_conversions.h" |
| 16 #include "ui/gfx/transform.h" |
| 16 | 17 |
| 17 using base::DoubleToString; | 18 using base::DoubleToString; |
| 18 using base::IntToString; | 19 using base::IntToString; |
| 19 | 20 |
| 20 namespace ui { | 21 namespace ui { |
| 21 | 22 |
| 22 namespace { | 23 namespace { |
| 23 | 24 |
| 24 std::string IntVectorToString(const std::vector<int>& items) { | 25 std::string IntVectorToString(const std::vector<int>& items) { |
| 25 std::string str; | 26 std::string str; |
| (...skipping 36 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 62 state(0xFFFFFFFF) { | 63 state(0xFFFFFFFF) { |
| 63 } | 64 } |
| 64 | 65 |
| 65 AXNodeData::~AXNodeData() { | 66 AXNodeData::~AXNodeData() { |
| 66 } | 67 } |
| 67 | 68 |
| 68 AXNodeData::AXNodeData(const AXNodeData& other) { | 69 AXNodeData::AXNodeData(const AXNodeData& other) { |
| 69 id = other.id; | 70 id = other.id; |
| 70 role = other.role; | 71 role = other.role; |
| 71 state = other.state; | 72 state = other.state; |
| 72 location = other.location; | |
| 73 string_attributes = other.string_attributes; | 73 string_attributes = other.string_attributes; |
| 74 int_attributes = other.int_attributes; | 74 int_attributes = other.int_attributes; |
| 75 float_attributes = other.float_attributes; | 75 float_attributes = other.float_attributes; |
| 76 bool_attributes = other.bool_attributes; | 76 bool_attributes = other.bool_attributes; |
| 77 intlist_attributes = other.intlist_attributes; | 77 intlist_attributes = other.intlist_attributes; |
| 78 html_attributes = other.html_attributes; | 78 html_attributes = other.html_attributes; |
| 79 child_ids = other.child_ids; | 79 child_ids = other.child_ids; |
| 80 location = other.location; |
| 81 if (other.transform) |
| 82 transform.reset(new gfx::Transform(*other.transform)); |
| 80 } | 83 } |
| 81 | 84 |
| 82 AXNodeData& AXNodeData::operator=(AXNodeData other) { | 85 AXNodeData& AXNodeData::operator=(AXNodeData other) { |
| 83 id = other.id; | 86 id = other.id; |
| 84 role = other.role; | 87 role = other.role; |
| 85 state = other.state; | 88 state = other.state; |
| 86 location = other.location; | |
| 87 string_attributes = other.string_attributes; | 89 string_attributes = other.string_attributes; |
| 88 int_attributes = other.int_attributes; | 90 int_attributes = other.int_attributes; |
| 89 float_attributes = other.float_attributes; | 91 float_attributes = other.float_attributes; |
| 90 bool_attributes = other.bool_attributes; | 92 bool_attributes = other.bool_attributes; |
| 91 intlist_attributes = other.intlist_attributes; | 93 intlist_attributes = other.intlist_attributes; |
| 92 html_attributes = other.html_attributes; | 94 html_attributes = other.html_attributes; |
| 93 child_ids = other.child_ids; | 95 child_ids = other.child_ids; |
| 96 location = other.location; |
| 97 if (other.transform) |
| 98 transform.reset(new gfx::Transform(*other.transform)); |
| 94 return *this; | 99 return *this; |
| 95 } | 100 } |
| 96 | 101 |
| 97 bool AXNodeData::HasBoolAttribute(AXBoolAttribute attribute) const { | 102 bool AXNodeData::HasBoolAttribute(AXBoolAttribute attribute) const { |
| 98 auto iter = FindInVectorOfPairs(attribute, bool_attributes); | 103 auto iter = FindInVectorOfPairs(attribute, bool_attributes); |
| 99 return iter != bool_attributes.end(); | 104 return iter != bool_attributes.end(); |
| 100 } | 105 } |
| 101 | 106 |
| 102 bool AXNodeData::GetBoolAttribute(AXBoolAttribute attribute) const { | 107 bool AXNodeData::GetBoolAttribute(AXBoolAttribute attribute) const { |
| 103 bool result; | 108 bool result; |
| (...skipping 227 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 331 if (state & (1 << AX_STATE_VERTICAL)) | 336 if (state & (1 << AX_STATE_VERTICAL)) |
| 332 result += " VERTICAL"; | 337 result += " VERTICAL"; |
| 333 if (state & (1 << AX_STATE_VISITED)) | 338 if (state & (1 << AX_STATE_VISITED)) |
| 334 result += " VISITED"; | 339 result += " VISITED"; |
| 335 | 340 |
| 336 result += " (" + IntToString(location.x()) + ", " + | 341 result += " (" + IntToString(location.x()) + ", " + |
| 337 IntToString(location.y()) + ")-(" + | 342 IntToString(location.y()) + ")-(" + |
| 338 IntToString(location.width()) + ", " + | 343 IntToString(location.width()) + ", " + |
| 339 IntToString(location.height()) + ")"; | 344 IntToString(location.height()) + ")"; |
| 340 | 345 |
| 346 if (transform && !transform->IsIdentity()) |
| 347 result += " transform=" + transform->ToString(); |
| 348 |
| 341 for (size_t i = 0; i < int_attributes.size(); ++i) { | 349 for (size_t i = 0; i < int_attributes.size(); ++i) { |
| 342 std::string value = IntToString(int_attributes[i].second); | 350 std::string value = IntToString(int_attributes[i].second); |
| 343 switch (int_attributes[i].first) { | 351 switch (int_attributes[i].first) { |
| 344 case AX_ATTR_SCROLL_X: | 352 case AX_ATTR_SCROLL_X: |
| 345 result += " scroll_x=" + value; | 353 result += " scroll_x=" + value; |
| 346 break; | 354 break; |
| 347 case AX_ATTR_SCROLL_X_MIN: | 355 case AX_ATTR_SCROLL_X_MIN: |
| 348 result += " scroll_x_min=" + value; | 356 result += " scroll_x_min=" + value; |
| 349 break; | 357 break; |
| 350 case AX_ATTR_SCROLL_X_MAX: | 358 case AX_ATTR_SCROLL_X_MAX: |
| (...skipping 323 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 674 bool AXNodeData::IsRoot() const { | 682 bool AXNodeData::IsRoot() const { |
| 675 return (role == AX_ROLE_ROOT_WEB_AREA || | 683 return (role == AX_ROLE_ROOT_WEB_AREA || |
| 676 role == AX_ROLE_DESKTOP); | 684 role == AX_ROLE_DESKTOP); |
| 677 } | 685 } |
| 678 | 686 |
| 679 void AXNodeData::SetRoot() { | 687 void AXNodeData::SetRoot() { |
| 680 role = AX_ROLE_ROOT_WEB_AREA; | 688 role = AX_ROLE_ROOT_WEB_AREA; |
| 681 } | 689 } |
| 682 | 690 |
| 683 } // namespace ui | 691 } // namespace ui |
| OLD | NEW |