| Index: ui/gfx/selection_model.h
|
| diff --git a/ui/gfx/selection_model.h b/ui/gfx/selection_model.h
|
| deleted file mode 100644
|
| index 356416df9c3394fb87ec2dafe32058ef2eac5869..0000000000000000000000000000000000000000
|
| --- a/ui/gfx/selection_model.h
|
| +++ /dev/null
|
| @@ -1,110 +0,0 @@
|
| -// 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_GFX_SELECTION_MODEL_H_
|
| -#define UI_GFX_SELECTION_MODEL_H_
|
| -
|
| -#include <string>
|
| -
|
| -#include "ui/gfx/gfx_export.h"
|
| -#include "ui/gfx/range/range.h"
|
| -
|
| -namespace gfx {
|
| -
|
| -// VisualCursorDirection and LogicalCursorDirection represent directions of
|
| -// motion of the cursor in BiDi text. The combinations that make sense are:
|
| -//
|
| -// base::i18n::TextDirection VisualCursorDirection LogicalCursorDirection
|
| -// LEFT_TO_RIGHT CURSOR_LEFT CURSOR_BACKWARD
|
| -// LEFT_TO_RIGHT CURSOR_RIGHT CURSOR_FORWARD
|
| -// RIGHT_TO_LEFT CURSOR_RIGHT CURSOR_BACKWARD
|
| -// RIGHT_TO_LEFT CURSOR_LEFT CURSOR_FORWARD
|
| -enum VisualCursorDirection {
|
| - CURSOR_LEFT,
|
| - CURSOR_RIGHT
|
| -};
|
| -enum LogicalCursorDirection {
|
| - CURSOR_BACKWARD,
|
| - CURSOR_FORWARD
|
| -};
|
| -
|
| -// TODO(xji): publish bidi-editing guide line and replace the place holder.
|
| -// SelectionModel is used to represent the logical selection and visual
|
| -// position of cursor.
|
| -//
|
| -// For bi-directional text, the mapping between visual position and logical
|
| -// position is not one-to-one. For example, logical text "abcDEF" where capital
|
| -// letters stand for Hebrew, the visual display is "abcFED". According to the
|
| -// bidi editing guide (http://bidi-editing-guideline):
|
| -// 1. If pointing to the right half of the cell of a LTR character, the current
|
| -// position must be set after this character and the caret must be displayed
|
| -// after this character.
|
| -// 2. If pointing to the right half of the cell of a RTL character, the current
|
| -// position must be set before this character and the caret must be displayed
|
| -// before this character.
|
| -//
|
| -// Pointing to the right half of 'c' and pointing to the right half of 'D' both
|
| -// set the logical cursor position to 3. But the cursor displayed visually at
|
| -// different places:
|
| -// Pointing to the right half of 'c' displays the cursor right of 'c' as
|
| -// "abc|FED".
|
| -// Pointing to the right half of 'D' displays the cursor right of 'D' as
|
| -// "abcFED|".
|
| -// So, besides the logical selection start point and end point, we need extra
|
| -// information to specify to which character the visual cursor is bound. This
|
| -// is given by a "caret affinity" which is either CURSOR_BACKWARD (indicating
|
| -// the trailing half of the 'c' in this case) or CURSOR_FORWARD (indicating
|
| -// the leading half of the 'D').
|
| -class GFX_EXPORT SelectionModel {
|
| - public:
|
| - // Create a default SelectionModel to be overwritten later.
|
| - SelectionModel();
|
| - // Create a SelectionModel representing a caret |position| without a
|
| - // selection. The |affinity| is meaningful only when the caret is positioned
|
| - // between bidi runs that are not visually contiguous: in that case, it
|
| - // indicates the run to which the caret is attached for display purposes.
|
| - SelectionModel(size_t position, LogicalCursorDirection affinity);
|
| - // Create a SelectionModel representing a selection (which may be empty).
|
| - // The caret position is the end of the range.
|
| - SelectionModel(const Range& selection, LogicalCursorDirection affinity);
|
| -
|
| - const Range& selection() const { return selection_; }
|
| - size_t caret_pos() const { return selection_.end(); }
|
| - LogicalCursorDirection caret_affinity() const { return caret_affinity_; }
|
| -
|
| - // WARNING: Generally the selection start should not be changed without
|
| - // considering the effect on the caret affinity.
|
| - void set_selection_start(size_t pos) { selection_.set_start(pos); }
|
| -
|
| - bool operator==(const SelectionModel& sel) const;
|
| - bool operator!=(const SelectionModel& sel) const { return !(*this == sel); }
|
| -
|
| - std::string ToString() const;
|
| -
|
| - private:
|
| - // Logical selection. The logical caret position is the end of the selection.
|
| - Range selection_;
|
| -
|
| - // The logical direction from the caret position (selection_.end()) to the
|
| - // character it is attached to for display purposes. This matters only when
|
| - // the surrounding characters are not visually contiguous, which happens only
|
| - // in bidi text (and only at bidi run boundaries). The text is treated as
|
| - // though it was surrounded on both sides by runs in the dominant text
|
| - // direction. For example, supposing the dominant direction is LTR and the
|
| - // logical text is "abcDEF", where DEF is right-to-left text, the visual
|
| - // cursor will display as follows:
|
| - // caret position CURSOR_BACKWARD affinity CURSOR_FORWARD affinity
|
| - // 0 |abcFED |abcFED
|
| - // 1 a|bcFED a|bcFED
|
| - // 2 ab|cFED ab|cFED
|
| - // 3 abc|FED abcFED|
|
| - // 4 abcFE|D abcFE|D
|
| - // 5 abcF|ED abcF|ED
|
| - // 6 abc|FED abcFED|
|
| - LogicalCursorDirection caret_affinity_;
|
| -};
|
| -
|
| -} // namespace gfx
|
| -
|
| -#endif // UI_GFX_SELECTION_MODEL_H_
|
|
|