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 |