Index: ui/gfx/render_text.h |
diff --git a/ui/gfx/render_text.h b/ui/gfx/render_text.h |
index 99b4033f03f483d275d5f9a0bff674a6c06015f9..c30b6c14a4079cca83aa0bb21bfce5575006fefe 100644 |
--- a/ui/gfx/render_text.h |
+++ b/ui/gfx/render_text.h |
@@ -49,7 +49,10 @@ struct UI_API StyleRange { |
typedef std::vector<StyleRange> StyleRanges; |
-// TODO(msw): Distinguish between logical character and glyph? |
+// TODO(msw): Distinguish between logical character stops and glyph stops? |
+// CHARACTER_BREAK cursor movements should stop at neighboring characters. |
+// WORD_BREAK cursor movements should stop at the nearest word boundaries. |
+// LINE_BREAK cursor movements should stop at the text ends as shown on screen. |
enum BreakType { |
CHARACTER_BREAK, |
WORD_BREAK, |
@@ -186,9 +189,6 @@ class UI_API RenderText { |
// Moves the cursor left or right. Cursor movement is visual, meaning that |
// left and right are relative to screen, not the directionality of the text. |
// If |select| is false, the selection range is emptied at the new position. |
- // If |break_type| is CHARACTER_BREAK, move to the neighboring character. |
- // If |break_type| is WORD_BREAK, move to the nearest word boundary. |
- // If |break_type| is LINE_BREAK, move to text edge as shown on screen. |
void MoveCursorLeft(BreakType break_type, bool select); |
void MoveCursorRight(BreakType break_type, bool select); |
@@ -263,12 +263,15 @@ class UI_API RenderText { |
const StyleRanges& style_ranges() const { return style_ranges_; } |
- // Get the cursor position that visually neighbors |position|. |
- // If |move_by_word| is true, return the neighboring word delimiter position. |
- virtual SelectionModel GetLeftCursorPosition(const SelectionModel& current, |
- bool move_by_word); |
- virtual SelectionModel GetRightCursorPosition(const SelectionModel& current, |
- bool move_by_word); |
+ // Get the selection model that visually neighbors |position| by |break_type|. |
+ // The returned value represents a cursor/caret position without a selection. |
+ virtual SelectionModel GetLeftSelectionModel(const SelectionModel& current, |
+ BreakType break_type); |
+ virtual SelectionModel GetRightSelectionModel(const SelectionModel& current, |
+ BreakType break_type); |
+ |
+ // Get the logical index of the grapheme preceeding the argument |position|. |
+ virtual size_t GetIndexOfPreviousGrapheme(size_t position) const; |
// Apply composition style (underline) to composition range and selection |
// style (foreground) to selection range. |