Index: Source/core/editing/EditingUtilities.h |
diff --git a/Source/core/editing/EditingUtilities.h b/Source/core/editing/EditingUtilities.h |
index 56009402f6bf37b9c5b7ff1492e8cc0792c82454..8a597ea318081c3d9204ef6fd28b8daede631a8b 100644 |
--- a/Source/core/editing/EditingUtilities.h |
+++ b/Source/core/editing/EditingUtilities.h |
@@ -36,6 +36,12 @@ |
namespace blink { |
+enum class PositionMoveType { |
+ CodePoint, // Move by a single code point. |
+ Character, // Move to the next Unicode character break. |
+ BackwardDeletion // Subject to platform conventions. |
+}; |
+ |
class Document; |
class Element; |
class HTMLBRElement; |
@@ -48,7 +54,6 @@ class Range; |
class VisiblePosition; |
class VisibleSelection; |
- |
// This file contains a set of helper functions used by the editing commands |
// ------------------------------------------------------------------------- |
@@ -177,6 +182,18 @@ inline Position lastPositionInOrAfterNode(Node* node) |
Position lastEditablePositionBeforePositionInRoot(const Position&, Node*); |
PositionInComposedTree lastEditablePositionBeforePositionInRoot(const PositionInComposedTree&, Node*); |
+// Move up or down the DOM by one position. |
+// Offsets are computed using layout text for nodes that have layoutObjects - |
+// but note that even when using composed characters, the result may be inside |
+// a single user-visible character if a ligature is formed. |
+CORE_EXPORT Position previousPositionOf(const Position&, PositionMoveType); |
+CORE_EXPORT Position nextPositionOf(const Position&, PositionMoveType); |
+CORE_EXPORT PositionInComposedTree previousPositionOf(const PositionInComposedTree&, PositionMoveType); |
+CORE_EXPORT PositionInComposedTree nextPositionOf(const PositionInComposedTree&, PositionMoveType); |
+ |
+CORE_EXPORT int uncheckedPreviousOffset(const Node*, int current); |
+CORE_EXPORT int uncheckedNextOffset(const Node*, int current); |
+ |
// comparision functions on Position |
// |disconnected| is optional output parameter having true if specified |