| // Copyright (c) 2012 The Chromium Authors. All rights reserved. |
| // Use of this source code is governed by a BSD-style license that can be |
| // found in the LICENSE file. |
| |
| #ifndef UI_ACCESSIBILITY_AX_TEXT_UTILS_H_ |
| #define UI_ACCESSIBILITY_AX_TEXT_UTILS_H_ |
| |
| #include <vector> |
| |
| #include "base/basictypes.h" |
| #include "base/strings/string16.h" |
| #include "ui/accessibility/ax_export.h" |
| |
| namespace ui { |
| |
| // Boundaries that can be passed to FindAccessibleTextBoundary, |
| // representing various visual boundaries in (potentially multi-line) |
| // text. This is used by assistive technology in order to, for example, |
| // retrieve the nearest word to the cursor, or retrieve all of the |
| // text from the current cursor position to the end of the line. |
| // These should be self-explanatory; "line" here refers to the visual |
| // line as currently displayed (possibly affected by wrapping). |
| enum TextBoundaryType { |
| CHAR_BOUNDARY, |
| WORD_BOUNDARY, |
| LINE_BOUNDARY, |
| SENTENCE_BOUNDARY, |
| PARAGRAPH_BOUNDARY, |
| ALL_BOUNDARY |
| }; |
| |
| // A direction when searching for the next boundary. |
| enum TextBoundaryDirection { |
| // Search forwards for the next boundary past the starting position. |
| FORWARDS_DIRECTION, |
| // Search backwards for the previous boundary before the starting position. |
| BACKWARDS_DIRECTION |
| }; |
| |
| // Convenience method needed to implement platform-specific text |
| // accessibility APIs like IAccessible2. Search forwards or backwards |
| // (depending on |direction|) from the given |start_offset| until the |
| // given boundary is found, and return the offset of that boundary, |
| // using the vector of line break character offsets in |line_breaks|. |
| size_t AX_EXPORT |
| FindAccessibleTextBoundary(const base::string16& text, |
| const std::vector<int>& line_breaks, |
| TextBoundaryType boundary, |
| size_t start_offset, |
| TextBoundaryDirection direction); |
| |
| } // namespace ui |
| |
| #endif // UI_ACCESSIBILITY_AX_TEXT_UTILS_H_ |