Chromium Code Reviews| 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 [self delegate]->AccessibilityShowMenu(browserAccessibility_->GetId()); | 1553 NSPoint objOrigin = [self origin]; |
| 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.set_x(origin.x() + size.width / 2); | |
| 1558 origin.set_y(origin.y() + size.width / 2); | |
|
ncarter (slow)
2014/07/15 01:23:28
Should this be size.height instead of .width?
You
dmazzoni
2014/07/15 07:55:03
Good catch, thanks!
| |
| 1559 [self delegate]->AccessibilityShowMenu(origin); | |
| 1554 } | 1560 } |
| 1555 } | 1561 } |
| 1556 | 1562 |
| 1557 // Returns the description of the given action. | 1563 // Returns the description of the given action. |
| 1558 - (NSString*)accessibilityActionDescription:(NSString*)action { | 1564 - (NSString*)accessibilityActionDescription:(NSString*)action { |
| 1559 if (!browserAccessibility_) | 1565 if (!browserAccessibility_) |
| 1560 return nil; | 1566 return nil; |
| 1561 | 1567 |
| 1562 return NSAccessibilityActionDescription(action); | 1568 return NSAccessibilityActionDescription(action); |
| 1563 } | 1569 } |
| 1564 | 1570 |
| 1565 // Sets an override value for a specific accessibility attribute. | 1571 // Sets an override value for a specific accessibility attribute. |
| 1566 // This class does not support this. | 1572 // This class does not support this. |
| 1567 - (BOOL)accessibilitySetOverrideValue:(id)value | 1573 - (BOOL)accessibilitySetOverrideValue:(id)value |
| 1568 forAttribute:(NSString*)attribute { | 1574 forAttribute:(NSString*)attribute { |
| 1569 return NO; | 1575 return NO; |
| 1570 } | 1576 } |
| 1571 | 1577 |
| 1572 // Sets the value for an accessibility attribute via the accessibility API. | 1578 // Sets the value for an accessibility attribute via the accessibility API. |
| 1573 - (void)accessibilitySetValue:(id)value forAttribute:(NSString*)attribute { | 1579 - (void)accessibilitySetValue:(id)value forAttribute:(NSString*)attribute { |
| 1574 if (!browserAccessibility_) | 1580 if (!browserAccessibility_) |
| 1575 return; | 1581 return; |
| 1576 | 1582 |
| 1577 if ([attribute isEqualToString:NSAccessibilityFocusedAttribute]) { | 1583 if ([attribute isEqualToString:NSAccessibilityFocusedAttribute]) { |
| 1584 BrowserAccessibilityManager* manager = browserAccessibility_->manager(); | |
| 1578 NSNumber* focusedNumber = value; | 1585 NSNumber* focusedNumber = value; |
| 1579 BOOL focused = [focusedNumber intValue]; | 1586 BOOL focused = [focusedNumber intValue]; |
| 1580 if (focused) | 1587 if (focused) |
| 1581 [self delegate]->AccessibilitySetFocus(browserAccessibility_->GetId()); | 1588 manager->SetFocus(browserAccessibility_, true); |
| 1582 } | 1589 } |
| 1583 if ([attribute isEqualToString:NSAccessibilitySelectedTextRangeAttribute]) { | 1590 if ([attribute isEqualToString:NSAccessibilitySelectedTextRangeAttribute]) { |
| 1584 NSRange range = [(NSValue*)value rangeValue]; | 1591 NSRange range = [(NSValue*)value rangeValue]; |
| 1585 [self delegate]->AccessibilitySetTextSelection( | 1592 [self delegate]->AccessibilitySetTextSelection( |
| 1586 browserAccessibility_->GetId(), | 1593 browserAccessibility_->GetId(), |
| 1587 range.location, range.location + range.length); | 1594 range.location, range.location + range.length); |
| 1588 } | 1595 } |
| 1589 } | 1596 } |
| 1590 | 1597 |
| 1591 // Returns the deepest accessibility child that should not be ignored. | 1598 // Returns the deepest accessibility child that should not be ignored. |
| (...skipping 37 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 1629 return [super hash]; | 1636 return [super hash]; |
| 1630 return browserAccessibility_->GetId(); | 1637 return browserAccessibility_->GetId(); |
| 1631 } | 1638 } |
| 1632 | 1639 |
| 1633 - (BOOL)accessibilityShouldUseUniqueId { | 1640 - (BOOL)accessibilityShouldUseUniqueId { |
| 1634 return YES; | 1641 return YES; |
| 1635 } | 1642 } |
| 1636 | 1643 |
| 1637 @end | 1644 @end |
| 1638 | 1645 |
| OLD | NEW |