Add an unittest for gallery/js/image_editor/image_encoder.js.
[chromium-blink-merge.git] / ui / accessibility / ax_text_utils.h
blob2dc2d2f03eec5a5b4e00c5d511de4dd03c93330b
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
3 // found in the LICENSE file.
5 #ifndef UI_ACCESSIBILITY_AX_TEXT_UTILS_H_
6 #define UI_ACCESSIBILITY_AX_TEXT_UTILS_H_
8 #include <vector>
10 #include "base/basictypes.h"
11 #include "base/strings/string16.h"
12 #include "ui/accessibility/ax_export.h"
14 namespace ui {
16 // Boundaries that can be passed to FindAccessibleTextBoundary,
17 // representing various visual boundaries in (potentially multi-line)
18 // text. This is used by assistive technology in order to, for example,
19 // retrieve the nearest word to the cursor, or retrieve all of the
20 // text from the current cursor position to the end of the line.
21 // These should be self-explanatory; "line" here refers to the visual
22 // line as currently displayed (possibly affected by wrapping).
23 enum TextBoundaryType {
24 CHAR_BOUNDARY,
25 WORD_BOUNDARY,
26 LINE_BOUNDARY,
27 SENTENCE_BOUNDARY,
28 PARAGRAPH_BOUNDARY,
29 ALL_BOUNDARY
32 // A direction when searching for the next boundary.
33 enum TextBoundaryDirection {
34 // Search forwards for the next boundary past the starting position.
35 FORWARDS_DIRECTION,
36 // Search backwards for the previous boundary before the starting position.
37 BACKWARDS_DIRECTION
40 // Convenience method needed to implement platform-specific text
41 // accessibility APIs like IAccessible2. Search forwards or backwards
42 // (depending on |direction|) from the given |start_offset| until the
43 // given boundary is found, and return the offset of that boundary,
44 // using the vector of line break character offsets in |line_breaks|.
45 size_t AX_EXPORT
46 FindAccessibleTextBoundary(const base::string16& text,
47 const std::vector<int>& line_breaks,
48 TextBoundaryType boundary,
49 size_t start_offset,
50 TextBoundaryDirection direction);
52 } // namespace ui
54 #endif // UI_ACCESSIBILITY_AX_TEXT_UTILS_H_