| 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/browser_accessibility_win.h" | 5 #include "content/browser/accessibility/browser_accessibility_win.h" |
| 6 | 6 |
| 7 #include <UIAutomationClient.h> | 7 #include <UIAutomationClient.h> |
| 8 #include <UIAutomationCoreApi.h> | 8 #include <UIAutomationCoreApi.h> |
| 9 | 9 |
| 10 #include <algorithm> | 10 #include <algorithm> |
| (...skipping 4355 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 4366 } | 4366 } |
| 4367 NOTREACHED(); | 4367 NOTREACHED(); |
| 4368 return ui::CHAR_BOUNDARY; | 4368 return ui::CHAR_BOUNDARY; |
| 4369 } | 4369 } |
| 4370 | 4370 |
| 4371 LONG BrowserAccessibilityWin::FindBoundary( | 4371 LONG BrowserAccessibilityWin::FindBoundary( |
| 4372 const base::string16& text, | 4372 const base::string16& text, |
| 4373 IA2TextBoundaryType ia2_boundary, | 4373 IA2TextBoundaryType ia2_boundary, |
| 4374 LONG start_offset, | 4374 LONG start_offset, |
| 4375 ui::TextBoundaryDirection direction) { | 4375 ui::TextBoundaryDirection direction) { |
| 4376 // If the boundary is relative to the caret, use the selection |
| 4377 // affinity, otherwise default to downstream affinity. |
| 4378 ui::AXTextAffinity affinity = |
| 4379 start_offset == IA2_TEXT_OFFSET_CARET ? |
| 4380 manager()->GetTreeData().sel_focus_affinity : |
| 4381 ui::AX_TEXT_AFFINITY_DOWNSTREAM; |
| 4382 |
| 4376 HandleSpecialTextOffset(text, &start_offset); | 4383 HandleSpecialTextOffset(text, &start_offset); |
| 4377 if (ia2_boundary == IA2_TEXT_BOUNDARY_WORD) | 4384 if (ia2_boundary == IA2_TEXT_BOUNDARY_WORD) |
| 4378 return GetWordStartBoundary(static_cast<int>(start_offset), direction); | 4385 return GetWordStartBoundary(static_cast<int>(start_offset), direction); |
| 4379 if (ia2_boundary == IA2_TEXT_BOUNDARY_LINE) | 4386 if (ia2_boundary == IA2_TEXT_BOUNDARY_LINE) { |
| 4380 return GetLineStartBoundary(static_cast<int>(start_offset), direction); | 4387 return GetLineStartBoundary( |
| 4388 static_cast<int>(start_offset), direction, affinity); |
| 4389 } |
| 4381 | 4390 |
| 4382 ui::TextBoundaryType boundary = IA2TextBoundaryToTextBoundary(ia2_boundary); | 4391 ui::TextBoundaryType boundary = IA2TextBoundaryToTextBoundary(ia2_boundary); |
| 4383 const std::vector<int32_t>& line_breaks = | 4392 const std::vector<int32_t>& line_breaks = |
| 4384 GetIntListAttribute(ui::AX_ATTR_LINE_BREAKS); | 4393 GetIntListAttribute(ui::AX_ATTR_LINE_BREAKS); |
| 4385 return ui::FindAccessibleTextBoundary( | 4394 return ui::FindAccessibleTextBoundary( |
| 4386 text, line_breaks, boundary, start_offset, direction); | 4395 text, line_breaks, boundary, start_offset, direction, affinity); |
| 4387 } | 4396 } |
| 4388 | 4397 |
| 4389 LONG BrowserAccessibilityWin::FindStartOfStyle( | 4398 LONG BrowserAccessibilityWin::FindStartOfStyle( |
| 4390 LONG start_offset, | 4399 LONG start_offset, |
| 4391 ui::TextBoundaryDirection direction) const { | 4400 ui::TextBoundaryDirection direction) const { |
| 4392 LONG text_length = static_cast<LONG>(GetText().length()); | 4401 LONG text_length = static_cast<LONG>(GetText().length()); |
| 4393 DCHECK_GE(start_offset, 0); | 4402 DCHECK_GE(start_offset, 0); |
| 4394 DCHECK_LE(start_offset, text_length); | 4403 DCHECK_LE(start_offset, text_length); |
| 4395 | 4404 |
| 4396 switch (direction) { | 4405 switch (direction) { |
| (...skipping 796 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 5193 return static_cast<BrowserAccessibilityWin*>(obj); | 5202 return static_cast<BrowserAccessibilityWin*>(obj); |
| 5194 } | 5203 } |
| 5195 | 5204 |
| 5196 const BrowserAccessibilityWin* | 5205 const BrowserAccessibilityWin* |
| 5197 ToBrowserAccessibilityWin(const BrowserAccessibility* obj) { | 5206 ToBrowserAccessibilityWin(const BrowserAccessibility* obj) { |
| 5198 DCHECK(!obj || obj->IsNative()); | 5207 DCHECK(!obj || obj->IsNative()); |
| 5199 return static_cast<const BrowserAccessibilityWin*>(obj); | 5208 return static_cast<const BrowserAccessibilityWin*>(obj); |
| 5200 } | 5209 } |
| 5201 | 5210 |
| 5202 } // namespace content | 5211 } // namespace content |
| OLD | NEW |