Commit 86b71ef1 authored by yosin@chromium.org's avatar yosin@chromium.org

Move computeInlineBoxPosition() to VisibleUnits.{cpp,h} from Position.{cpp,h} and VisiblePosition.h

This patch moves |computeInlineBoxPosition()| to "VisibleUnits.{cpp,h} from
"Position.{cpp,h}" and "VisiblePosition.{cpp,h}" to consolidate |InlineBox|
dependency to "VisibleUnits.cpp" for ease of working them later.

BUG=518738
TEST=n/a; no behavior changes

Review URL: https://codereview.chromium.org/1303173002

git-svn-id: svn://svn.chromium.org/blink/trunk@200970 bbb929c8-8fbe-4397-9dbb-9b2b20218538
parent dcb20b16
......@@ -39,28 +39,12 @@
namespace blink {
class Element;
class InlineBox;
class Node;
class LayoutObject;
class Text;
enum class TextAffinity;
class TreeScope;
struct InlineBoxPosition {
InlineBox* inlineBox;
int offsetInBox;
InlineBoxPosition()
: inlineBox(nullptr), offsetInBox(0)
{
}
InlineBoxPosition(InlineBox* inlineBox, int offsetInBox)
: inlineBox(inlineBox), offsetInBox(offsetInBox)
{
}
};
enum PositionMoveType {
CodePoint, // Move by a single code point.
Character, // Move to the next Unicode character break.
......@@ -423,17 +407,6 @@ inline PositionInComposedTree fromPositionInDOMTree<EditingInComposedTreeStrateg
return toPositionInComposedTree(position);
}
// TODO(yosin) |isRenderedCharacter()| should be removed, and we should use
// |VisiblePosition::characterAfter()| and |VisiblePosition::characterBefore()|.
// TODO(yosin) We should move |isRenderedCharacter()| to "VisibleUnits.cpp",
// since it is used only in "editing/commands/"
CORE_EXPORT bool isRenderedCharacter(const Position&);
// TODO(yosin) We should move |computeInlineBoxPosition()| to "VisibleUnits.cpp"
CORE_EXPORT InlineBoxPosition computeInlineBoxPosition(const Position&, TextAffinity);
CORE_EXPORT InlineBoxPosition computeInlineBoxPosition(const Position&, TextAffinity, TextDirection primaryDirection);
CORE_EXPORT InlineBoxPosition computeInlineBoxPosition(const PositionInComposedTree&, TextAffinity);
CORE_EXPORT InlineBoxPosition computeInlineBoxPosition(const PositionInComposedTree&, TextAffinity, TextDirection primaryDirection);
// TODO(yosin) We should move |inRenderedText()| to "VisibleUnits.h" for
// reduce dependency of |LayoutObject| in |Position| class.
CORE_EXPORT bool inRenderedText(const Position&);
......
......@@ -33,6 +33,7 @@
#include "core/editing/TextAffinity.h"
#include "core/editing/VisiblePosition.h"
#include "core/editing/VisibleUnits.h"
#include "core/layout/compositing/CompositedSelectionBound.h"
#include "core/paint/DeprecatedPaintLayer.h"
......
......@@ -138,13 +138,6 @@ private:
TextAffinity m_affinity;
};
// TODO(yosin) We should move |computeInlineBoxPosition()| to "VisibleUnits.h"
// with |Position| version.
inline InlineBoxPosition computeInlineBoxPosition(const VisiblePosition& position)
{
return computeInlineBoxPosition(position.deepEquivalent(), position.affinity());
}
EphemeralRange makeRange(const VisiblePosition&, const VisiblePosition&);
CORE_EXPORT Position canonicalPositionOf(const Position&);
......
......@@ -39,10 +39,26 @@ class LayoutObject;
class Node;
class VisiblePosition;
class IntPoint;
class InlineBox;
class LocalFrame;
enum EWordSide { RightWordIfOnBoundary = false, LeftWordIfOnBoundary = true };
struct InlineBoxPosition {
InlineBox* inlineBox;
int offsetInBox;
InlineBoxPosition()
: inlineBox(nullptr), offsetInBox(0)
{
}
InlineBoxPosition(InlineBox* inlineBox, int offsetInBox)
: inlineBox(inlineBox), offsetInBox(offsetInBox)
{
}
};
// Position
// mostForward/BackwardCaretPosition are used for moving back and forth between
// visually equivalent candidates.
......@@ -126,6 +142,12 @@ VisiblePosition startOfEditableContent(const VisiblePosition&);
VisiblePosition endOfEditableContent(const VisiblePosition&);
bool isEndOfEditableOrNonEditableContent(const VisiblePosition&);
CORE_EXPORT InlineBoxPosition computeInlineBoxPosition(const Position&, TextAffinity);
CORE_EXPORT InlineBoxPosition computeInlineBoxPosition(const Position&, TextAffinity, TextDirection primaryDirection);
CORE_EXPORT InlineBoxPosition computeInlineBoxPosition(const PositionInComposedTree&, TextAffinity);
CORE_EXPORT InlineBoxPosition computeInlineBoxPosition(const PositionInComposedTree&, TextAffinity, TextDirection primaryDirection);
CORE_EXPORT InlineBoxPosition computeInlineBoxPosition(const VisiblePosition&);
// Rect is local to the returned layoutObject
LayoutRect localCaretRectOfPosition(const PositionWithAffinity&, LayoutObject*&);
bool hasRenderedNonAnonymousDescendantsWithHeight(LayoutObject*);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment