| OLD | NEW |
| 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 #include "content/browser/accessibility/accessibility_tree_formatter.h" | 5 #include "content/browser/accessibility/accessibility_tree_formatter.h" |
| 6 | 6 |
| 7 #import <Cocoa/Cocoa.h> | 7 #import <Cocoa/Cocoa.h> |
| 8 | 8 |
| 9 #include "base/files/file_path.h" | 9 #include "base/files/file_path.h" |
| 10 #include "base/json/json_writer.h" | 10 #include "base/json/json_writer.h" |
| (...skipping 24 matching lines...) Expand all Loading... |
| 35 const char* kRangeLenDictAttr = "len"; | 35 const char* kRangeLenDictAttr = "len"; |
| 36 | 36 |
| 37 scoped_ptr<base::DictionaryValue> PopulatePosition( | 37 scoped_ptr<base::DictionaryValue> PopulatePosition( |
| 38 const BrowserAccessibility& node) { | 38 const BrowserAccessibility& node) { |
| 39 scoped_ptr<base::DictionaryValue> position(new base::DictionaryValue); | 39 scoped_ptr<base::DictionaryValue> position(new base::DictionaryValue); |
| 40 // The NSAccessibility position of an object is in global coordinates and | 40 // The NSAccessibility position of an object is in global coordinates and |
| 41 // based on the lower-left corner of the object. To make this easier and less | 41 // based on the lower-left corner of the object. To make this easier and less |
| 42 // confusing, convert it to local window coordinates using the top-left | 42 // confusing, convert it to local window coordinates using the top-left |
| 43 // corner when dumping the position. | 43 // corner when dumping the position. |
| 44 BrowserAccessibility* root = node.manager()->GetRootManager()->GetRoot(); | 44 BrowserAccessibility* root = node.manager()->GetRootManager()->GetRoot(); |
| 45 BrowserAccessibilityCocoa* cocoa_root = root->ToBrowserAccessibilityCocoa(); | 45 BrowserAccessibilityCocoa* cocoa_root = ToBrowserAccessibilityCocoa(root); |
| 46 NSPoint root_position = [[cocoa_root position] pointValue]; | 46 NSPoint root_position = [[cocoa_root position] pointValue]; |
| 47 NSSize root_size = [[cocoa_root size] sizeValue]; | 47 NSSize root_size = [[cocoa_root size] sizeValue]; |
| 48 int root_top = -static_cast<int>(root_position.y + root_size.height); | 48 int root_top = -static_cast<int>(root_position.y + root_size.height); |
| 49 int root_left = static_cast<int>(root_position.x); | 49 int root_left = static_cast<int>(root_position.x); |
| 50 | 50 |
| 51 BrowserAccessibilityCocoa* cocoa_node = | 51 BrowserAccessibilityCocoa* cocoa_node = |
| 52 const_cast<BrowserAccessibility*>(&node)->ToBrowserAccessibilityCocoa(); | 52 ToBrowserAccessibilityCocoa(const_cast<BrowserAccessibility*>(&node)); |
| 53 NSPoint node_position = [[cocoa_node position] pointValue]; | 53 NSPoint node_position = [[cocoa_node position] pointValue]; |
| 54 NSSize node_size = [[cocoa_node size] sizeValue]; | 54 NSSize node_size = [[cocoa_node size] sizeValue]; |
| 55 | 55 |
| 56 position->SetInteger(kXCoordDictAttr, | 56 position->SetInteger(kXCoordDictAttr, |
| 57 static_cast<int>(node_position.x - root_left)); | 57 static_cast<int>(node_position.x - root_left)); |
| 58 position->SetInteger(kYCoordDictAttr, | 58 position->SetInteger(kYCoordDictAttr, |
| 59 static_cast<int>(-node_position.y - node_size.height - root_top)); | 59 static_cast<int>(-node_position.y - node_size.height - root_top)); |
| 60 return position; | 60 return position; |
| 61 } | 61 } |
| 62 | 62 |
| (...skipping 151 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 214 } | 214 } |
| 215 | 215 |
| 216 AccessibilityTreeFormatterMac::~AccessibilityTreeFormatterMac() { | 216 AccessibilityTreeFormatterMac::~AccessibilityTreeFormatterMac() { |
| 217 } | 217 } |
| 218 | 218 |
| 219 void AccessibilityTreeFormatterMac::AddProperties( | 219 void AccessibilityTreeFormatterMac::AddProperties( |
| 220 const BrowserAccessibility& node, | 220 const BrowserAccessibility& node, |
| 221 base::DictionaryValue* dict) { | 221 base::DictionaryValue* dict) { |
| 222 dict->SetInteger("id", node.GetId()); | 222 dict->SetInteger("id", node.GetId()); |
| 223 BrowserAccessibilityCocoa* cocoa_node = | 223 BrowserAccessibilityCocoa* cocoa_node = |
| 224 const_cast<BrowserAccessibility*>(&node)->ToBrowserAccessibilityCocoa(); | 224 ToBrowserAccessibilityCocoa(const_cast<BrowserAccessibility*>(&node)); |
| 225 NSArray* supportedAttributes = [cocoa_node accessibilityAttributeNames]; | 225 NSArray* supportedAttributes = [cocoa_node accessibilityAttributeNames]; |
| 226 | 226 |
| 227 string role = SysNSStringToUTF8( | 227 string role = SysNSStringToUTF8( |
| 228 [cocoa_node accessibilityAttributeValue:NSAccessibilityRoleAttribute]); | 228 [cocoa_node accessibilityAttributeValue:NSAccessibilityRoleAttribute]); |
| 229 dict->SetString(SysNSStringToUTF8(NSAccessibilityRoleAttribute), role); | 229 dict->SetString(SysNSStringToUTF8(NSAccessibilityRoleAttribute), role); |
| 230 | 230 |
| 231 NSString* subrole = | 231 NSString* subrole = |
| 232 [cocoa_node accessibilityAttributeValue:NSAccessibilitySubroleAttribute]; | 232 [cocoa_node accessibilityAttributeValue:NSAccessibilitySubroleAttribute]; |
| 233 if (subrole != nil) { | 233 if (subrole != nil) { |
| 234 dict->SetString(SysNSStringToUTF8(NSAccessibilitySubroleAttribute), | 234 dict->SetString(SysNSStringToUTF8(NSAccessibilitySubroleAttribute), |
| (...skipping 95 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 330 | 330 |
| 331 const string AccessibilityTreeFormatterMac::GetAllowString() { | 331 const string AccessibilityTreeFormatterMac::GetAllowString() { |
| 332 return "@MAC-ALLOW:"; | 332 return "@MAC-ALLOW:"; |
| 333 } | 333 } |
| 334 | 334 |
| 335 const string AccessibilityTreeFormatterMac::GetDenyString() { | 335 const string AccessibilityTreeFormatterMac::GetDenyString() { |
| 336 return "@MAC-DENY:"; | 336 return "@MAC-DENY:"; |
| 337 } | 337 } |
| 338 | 338 |
| 339 } // namespace content | 339 } // namespace content |
| OLD | NEW |