| 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 <execinfo.h> | 5 #include <execinfo.h> |
| 6 | 6 |
| 7 #import "content/browser/accessibility/browser_accessibility_cocoa.h" | 7 #import "content/browser/accessibility/browser_accessibility_cocoa.h" |
| 8 | 8 |
| 9 #include <map> | 9 #include <map> |
| 10 | 10 |
| (...skipping 1532 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1543 // that backs this object. | 1543 // that backs this object. |
| 1544 - (void)accessibilityPerformAction:(NSString*)action { | 1544 - (void)accessibilityPerformAction:(NSString*)action { |
| 1545 if (!browserAccessibility_) | 1545 if (!browserAccessibility_) |
| 1546 return; | 1546 return; |
| 1547 | 1547 |
| 1548 // TODO(dmazzoni): Support more actions. | 1548 // TODO(dmazzoni): Support more actions. |
| 1549 if ([action isEqualToString:NSAccessibilityPressAction]) { | 1549 if ([action isEqualToString:NSAccessibilityPressAction]) { |
| 1550 [self delegate]->AccessibilityDoDefaultAction( | 1550 [self delegate]->AccessibilityDoDefaultAction( |
| 1551 browserAccessibility_->GetId()); | 1551 browserAccessibility_->GetId()); |
| 1552 } else if ([action isEqualToString:NSAccessibilityShowMenuAction]) { | 1552 } else if ([action isEqualToString:NSAccessibilityShowMenuAction]) { |
| 1553 NSPoint objOrigin = [self origin]; | 1553 [self delegate]->AccessibilityShowMenu(browserAccessibility_->GetId()); |
| 1554 NSSize size = [[self size] sizeValue]; | |
| 1555 gfx::Point origin = [self delegate]->AccessibilityOriginInScreen( | |
| 1556 gfx::Rect(objOrigin.x, objOrigin.y, size.width, size.height)); | |
| 1557 origin.Offset(size.width / 2, size.height / 2); | |
| 1558 [self delegate]->AccessibilityShowMenu(origin); | |
| 1559 } | 1554 } |
| 1560 } | 1555 } |
| 1561 | 1556 |
| 1562 // Returns the description of the given action. | 1557 // Returns the description of the given action. |
| 1563 - (NSString*)accessibilityActionDescription:(NSString*)action { | 1558 - (NSString*)accessibilityActionDescription:(NSString*)action { |
| 1564 if (!browserAccessibility_) | 1559 if (!browserAccessibility_) |
| 1565 return nil; | 1560 return nil; |
| 1566 | 1561 |
| 1567 return NSAccessibilityActionDescription(action); | 1562 return NSAccessibilityActionDescription(action); |
| 1568 } | 1563 } |
| 1569 | 1564 |
| 1570 // Sets an override value for a specific accessibility attribute. | 1565 // Sets an override value for a specific accessibility attribute. |
| 1571 // This class does not support this. | 1566 // This class does not support this. |
| 1572 - (BOOL)accessibilitySetOverrideValue:(id)value | 1567 - (BOOL)accessibilitySetOverrideValue:(id)value |
| 1573 forAttribute:(NSString*)attribute { | 1568 forAttribute:(NSString*)attribute { |
| 1574 return NO; | 1569 return NO; |
| 1575 } | 1570 } |
| 1576 | 1571 |
| 1577 // Sets the value for an accessibility attribute via the accessibility API. | 1572 // Sets the value for an accessibility attribute via the accessibility API. |
| 1578 - (void)accessibilitySetValue:(id)value forAttribute:(NSString*)attribute { | 1573 - (void)accessibilitySetValue:(id)value forAttribute:(NSString*)attribute { |
| 1579 if (!browserAccessibility_) | 1574 if (!browserAccessibility_) |
| 1580 return; | 1575 return; |
| 1581 | 1576 |
| 1582 if ([attribute isEqualToString:NSAccessibilityFocusedAttribute]) { | 1577 if ([attribute isEqualToString:NSAccessibilityFocusedAttribute]) { |
| 1583 BrowserAccessibilityManager* manager = browserAccessibility_->manager(); | |
| 1584 NSNumber* focusedNumber = value; | 1578 NSNumber* focusedNumber = value; |
| 1585 BOOL focused = [focusedNumber intValue]; | 1579 BOOL focused = [focusedNumber intValue]; |
| 1586 if (focused) | 1580 if (focused) |
| 1587 manager->SetFocus(browserAccessibility_, true); | 1581 [self delegate]->AccessibilitySetFocus(browserAccessibility_->GetId()); |
| 1588 } | 1582 } |
| 1589 if ([attribute isEqualToString:NSAccessibilitySelectedTextRangeAttribute]) { | 1583 if ([attribute isEqualToString:NSAccessibilitySelectedTextRangeAttribute]) { |
| 1590 NSRange range = [(NSValue*)value rangeValue]; | 1584 NSRange range = [(NSValue*)value rangeValue]; |
| 1591 [self delegate]->AccessibilitySetTextSelection( | 1585 [self delegate]->AccessibilitySetTextSelection( |
| 1592 browserAccessibility_->GetId(), | 1586 browserAccessibility_->GetId(), |
| 1593 range.location, range.location + range.length); | 1587 range.location, range.location + range.length); |
| 1594 } | 1588 } |
| 1595 } | 1589 } |
| 1596 | 1590 |
| 1597 // Returns the deepest accessibility child that should not be ignored. | 1591 // Returns the deepest accessibility child that should not be ignored. |
| (...skipping 37 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1635 return [super hash]; | 1629 return [super hash]; |
| 1636 return browserAccessibility_->GetId(); | 1630 return browserAccessibility_->GetId(); |
| 1637 } | 1631 } |
| 1638 | 1632 |
| 1639 - (BOOL)accessibilityShouldUseUniqueId { | 1633 - (BOOL)accessibilityShouldUseUniqueId { |
| 1640 return YES; | 1634 return YES; |
| 1641 } | 1635 } |
| 1642 | 1636 |
| 1643 @end | 1637 @end |
| 1644 | 1638 |
| OLD | NEW |