| OLD | NEW |
| 1 /* | 1 /* |
| 2 * Copyright (C) 2004 Apple Computer, Inc. All rights reserved. | 2 * Copyright (C) 2004 Apple Computer, Inc. All rights reserved. |
| 3 * | 3 * |
| 4 * Redistribution and use in source and binary forms, with or without | 4 * Redistribution and use in source and binary forms, with or without |
| 5 * modification, are permitted provided that the following conditions | 5 * modification, are permitted provided that the following conditions |
| 6 * are met: | 6 * are met: |
| 7 * 1. Redistributions of source code must retain the above copyright | 7 * 1. Redistributions of source code must retain the above copyright |
| 8 * notice, this list of conditions and the following disclaimer. | 8 * notice, this list of conditions and the following disclaimer. |
| 9 * 2. Redistributions in binary form must reproduce the above copyright | 9 * 2. Redistributions in binary form must reproduce the above copyright |
| 10 * notice, this list of conditions and the following disclaimer in the | 10 * notice, this list of conditions and the following disclaimer in the |
| (...skipping 59 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 70 // [boundary, 0] for any of the positions from [boundary, 0] to the first | 70 // [boundary, 0] for any of the positions from [boundary, 0] to the first |
| 71 // candidate in boundary, where | 71 // candidate in boundary, where |
| 72 // endsOfNodeAreVisuallyDistinctPositions(boundary) is true. | 72 // endsOfNodeAreVisuallyDistinctPositions(boundary) is true. |
| 73 // | 73 // |
| 74 // mostForwardCaretPosition() returns the right one and also returns the | 74 // mostForwardCaretPosition() returns the right one and also returns the |
| 75 // last position in the last atomic node in boundary for all of the positions | 75 // last position in the last atomic node in boundary for all of the positions |
| 76 // in boundary after the last candidate, where | 76 // in boundary after the last candidate, where |
| 77 // endsOfNodeAreVisuallyDistinctPositions(boundary). | 77 // endsOfNodeAreVisuallyDistinctPositions(boundary). |
| 78 // FIXME: This function should never be called when the line box tree is dirty. | 78 // FIXME: This function should never be called when the line box tree is dirty. |
| 79 // See https://bugs.webkit.org/show_bug.cgi?id=97264 | 79 // See https://bugs.webkit.org/show_bug.cgi?id=97264 |
| 80 CORE_EXPORT Position mostBackwardCaretPosition(const Position &, EditingBoundary
CrossingRule = CannotCrossEditingBoundary); | 80 CORE_EXPORT Position mostBackwardCaretPosition(const Position&, EditingBoundaryC
rossingRule = CannotCrossEditingBoundary); |
| 81 CORE_EXPORT PositionInComposedTree mostBackwardCaretPosition(const PositionInCom
posedTree &, EditingBoundaryCrossingRule = CannotCrossEditingBoundary); | 81 CORE_EXPORT PositionInComposedTree mostBackwardCaretPosition(const PositionInCom
posedTree&, EditingBoundaryCrossingRule = CannotCrossEditingBoundary); |
| 82 CORE_EXPORT Position mostForwardCaretPosition(const Position &, EditingBoundaryC
rossingRule = CannotCrossEditingBoundary); | 82 CORE_EXPORT Position mostForwardCaretPosition(const Position&, EditingBoundaryCr
ossingRule = CannotCrossEditingBoundary); |
| 83 CORE_EXPORT PositionInComposedTree mostForwardCaretPosition(const PositionInComp
osedTree &, EditingBoundaryCrossingRule = CannotCrossEditingBoundary); | 83 CORE_EXPORT PositionInComposedTree mostForwardCaretPosition(const PositionInComp
osedTree&, EditingBoundaryCrossingRule = CannotCrossEditingBoundary); |
| 84 | 84 |
| 85 CORE_EXPORT bool isVisuallyEquivalentCandidate(const Position&); | 85 CORE_EXPORT bool isVisuallyEquivalentCandidate(const Position&); |
| 86 CORE_EXPORT bool isVisuallyEquivalentCandidate(const PositionInComposedTree&); | 86 CORE_EXPORT bool isVisuallyEquivalentCandidate(const PositionInComposedTree&); |
| 87 | 87 |
| 88 // words | 88 // words |
| 89 CORE_EXPORT VisiblePosition startOfWord(const VisiblePosition &, EWordSide = Rig
htWordIfOnBoundary); | 89 CORE_EXPORT VisiblePosition startOfWord(const VisiblePosition&, EWordSide = Righ
tWordIfOnBoundary); |
| 90 CORE_EXPORT VisiblePosition endOfWord(const VisiblePosition &, EWordSide = Right
WordIfOnBoundary); | 90 CORE_EXPORT VisiblePosition endOfWord(const VisiblePosition&, EWordSide = RightW
ordIfOnBoundary); |
| 91 VisiblePosition previousWordPosition(const VisiblePosition &); | 91 VisiblePosition previousWordPosition(const VisiblePosition&); |
| 92 VisiblePosition nextWordPosition(const VisiblePosition &); | 92 VisiblePosition nextWordPosition(const VisiblePosition&); |
| 93 VisiblePosition rightWordPosition(const VisiblePosition&, bool skipsSpaceWhenMov
ingRight); | 93 VisiblePosition rightWordPosition(const VisiblePosition&, bool skipsSpaceWhenMov
ingRight); |
| 94 VisiblePosition leftWordPosition(const VisiblePosition&, bool skipsSpaceWhenMovi
ngRight); | 94 VisiblePosition leftWordPosition(const VisiblePosition&, bool skipsSpaceWhenMovi
ngRight); |
| 95 | 95 |
| 96 // sentences | 96 // sentences |
| 97 CORE_EXPORT VisiblePosition startOfSentence(const VisiblePosition &); | 97 CORE_EXPORT VisiblePosition startOfSentence(const VisiblePosition&); |
| 98 CORE_EXPORT VisiblePosition endOfSentence(const VisiblePosition &); | 98 CORE_EXPORT VisiblePosition endOfSentence(const VisiblePosition&); |
| 99 VisiblePosition previousSentencePosition(const VisiblePosition &); | 99 VisiblePosition previousSentencePosition(const VisiblePosition&); |
| 100 VisiblePosition nextSentencePosition(const VisiblePosition &); | 100 VisiblePosition nextSentencePosition(const VisiblePosition&); |
| 101 | 101 |
| 102 // lines | 102 // lines |
| 103 VisiblePosition startOfLine(const VisiblePosition &); | 103 VisiblePosition startOfLine(const VisiblePosition&); |
| 104 VisiblePosition endOfLine(const VisiblePosition &); | 104 VisiblePosition endOfLine(const VisiblePosition&); |
| 105 CORE_EXPORT VisiblePosition previousLinePosition(const VisiblePosition&, LayoutU
nit lineDirectionPoint, EditableType = ContentIsEditable); | 105 CORE_EXPORT VisiblePosition previousLinePosition(const VisiblePosition&, LayoutU
nit lineDirectionPoint, EditableType = ContentIsEditable); |
| 106 CORE_EXPORT VisiblePosition nextLinePosition(const VisiblePosition&, LayoutUnit
lineDirectionPoint, EditableType = ContentIsEditable); | 106 CORE_EXPORT VisiblePosition nextLinePosition(const VisiblePosition&, LayoutUnit
lineDirectionPoint, EditableType = ContentIsEditable); |
| 107 CORE_EXPORT bool inSameLine(const VisiblePosition &, const VisiblePosition &); | 107 CORE_EXPORT bool inSameLine(const VisiblePosition&, const VisiblePosition&); |
| 108 CORE_EXPORT bool inSameLine(const PositionWithAffinity&, const PositionWithAffin
ity &); | 108 CORE_EXPORT bool inSameLine(const PositionWithAffinity&, const PositionWithAffin
ity&); |
| 109 CORE_EXPORT bool inSameLine(const PositionInComposedTreeWithAffinity&, const Pos
itionInComposedTreeWithAffinity&); | 109 CORE_EXPORT bool inSameLine(const PositionInComposedTreeWithAffinity&, const Pos
itionInComposedTreeWithAffinity&); |
| 110 bool isStartOfLine(const VisiblePosition &); | 110 bool isStartOfLine(const VisiblePosition&); |
| 111 bool isEndOfLine(const VisiblePosition &); | 111 bool isEndOfLine(const VisiblePosition&); |
| 112 VisiblePosition logicalStartOfLine(const VisiblePosition &); | 112 VisiblePosition logicalStartOfLine(const VisiblePosition&); |
| 113 VisiblePosition logicalEndOfLine(const VisiblePosition &); | 113 VisiblePosition logicalEndOfLine(const VisiblePosition&); |
| 114 bool isLogicalEndOfLine(const VisiblePosition &); | 114 bool isLogicalEndOfLine(const VisiblePosition&); |
| 115 VisiblePosition leftBoundaryOfLine(const VisiblePosition&, TextDirection); | 115 VisiblePosition leftBoundaryOfLine(const VisiblePosition&, TextDirection); |
| 116 VisiblePosition rightBoundaryOfLine(const VisiblePosition&, TextDirection); | 116 VisiblePosition rightBoundaryOfLine(const VisiblePosition&, TextDirection); |
| 117 | 117 |
| 118 // paragraphs (perhaps a misnomer, can be divided by line break elements) | 118 // paragraphs (perhaps a misnomer, can be divided by line break elements) |
| 119 VisiblePosition startOfParagraph(const VisiblePosition&, EditingBoundaryCrossing
Rule = CannotCrossEditingBoundary); | 119 VisiblePosition startOfParagraph(const VisiblePosition&, EditingBoundaryCrossing
Rule = CannotCrossEditingBoundary); |
| 120 VisiblePosition endOfParagraph(const VisiblePosition&, EditingBoundaryCrossingRu
le = CannotCrossEditingBoundary); | 120 VisiblePosition endOfParagraph(const VisiblePosition&, EditingBoundaryCrossingRu
le = CannotCrossEditingBoundary); |
| 121 VisiblePosition startOfNextParagraph(const VisiblePosition&); | 121 VisiblePosition startOfNextParagraph(const VisiblePosition&); |
| 122 VisiblePosition previousParagraphPosition(const VisiblePosition &, LayoutUnit x)
; | 122 VisiblePosition previousParagraphPosition(const VisiblePosition&, LayoutUnit x); |
| 123 VisiblePosition nextParagraphPosition(const VisiblePosition &, LayoutUnit x); | 123 VisiblePosition nextParagraphPosition(const VisiblePosition&, LayoutUnit x); |
| 124 bool isStartOfParagraph(const VisiblePosition &, EditingBoundaryCrossingRule = C
annotCrossEditingBoundary); | 124 bool isStartOfParagraph(const VisiblePosition&, EditingBoundaryCrossingRule = Ca
nnotCrossEditingBoundary); |
| 125 bool isEndOfParagraph(const VisiblePosition &, EditingBoundaryCrossingRule = Can
notCrossEditingBoundary); | 125 bool isEndOfParagraph(const VisiblePosition&, EditingBoundaryCrossingRule = Cann
otCrossEditingBoundary); |
| 126 bool inSameParagraph(const VisiblePosition &, const VisiblePosition &, EditingBo
undaryCrossingRule = CannotCrossEditingBoundary); | 126 bool inSameParagraph(const VisiblePosition&, const VisiblePosition&, EditingBoun
daryCrossingRule = CannotCrossEditingBoundary); |
| 127 | 127 |
| 128 // blocks (true paragraphs; line break elements don't break blocks) | 128 // blocks (true paragraphs; line break elements don't break blocks) |
| 129 VisiblePosition startOfBlock(const VisiblePosition &, EditingBoundaryCrossingRul
e = CannotCrossEditingBoundary); | 129 VisiblePosition startOfBlock(const VisiblePosition&, EditingBoundaryCrossingRule
= CannotCrossEditingBoundary); |
| 130 VisiblePosition endOfBlock(const VisiblePosition &, EditingBoundaryCrossingRule
= CannotCrossEditingBoundary); | 130 VisiblePosition endOfBlock(const VisiblePosition&, EditingBoundaryCrossingRule =
CannotCrossEditingBoundary); |
| 131 bool inSameBlock(const VisiblePosition &, const VisiblePosition &); | 131 bool inSameBlock(const VisiblePosition&, const VisiblePosition&); |
| 132 bool isStartOfBlock(const VisiblePosition &); | 132 bool isStartOfBlock(const VisiblePosition&); |
| 133 bool isEndOfBlock(const VisiblePosition &); | 133 bool isEndOfBlock(const VisiblePosition&); |
| 134 | 134 |
| 135 // document | 135 // document |
| 136 VisiblePosition startOfDocument(const Node*); | 136 VisiblePosition startOfDocument(const Node*); |
| 137 VisiblePosition endOfDocument(const Node*); | 137 VisiblePosition endOfDocument(const Node*); |
| 138 VisiblePosition startOfDocument(const VisiblePosition &); | 138 VisiblePosition startOfDocument(const VisiblePosition&); |
| 139 VisiblePosition endOfDocument(const VisiblePosition &); | 139 VisiblePosition endOfDocument(const VisiblePosition&); |
| 140 bool isStartOfDocument(const VisiblePosition &); | 140 bool isStartOfDocument(const VisiblePosition&); |
| 141 bool isEndOfDocument(const VisiblePosition &); | 141 bool isEndOfDocument(const VisiblePosition&); |
| 142 | 142 |
| 143 // editable content | 143 // editable content |
| 144 VisiblePosition startOfEditableContent(const VisiblePosition&); | 144 VisiblePosition startOfEditableContent(const VisiblePosition&); |
| 145 VisiblePosition endOfEditableContent(const VisiblePosition&); | 145 VisiblePosition endOfEditableContent(const VisiblePosition&); |
| 146 bool isEndOfEditableOrNonEditableContent(const VisiblePosition&); | 146 bool isEndOfEditableOrNonEditableContent(const VisiblePosition&); |
| 147 | 147 |
| 148 CORE_EXPORT InlineBoxPosition computeInlineBoxPosition(const Position&, TextAffi
nity); | 148 CORE_EXPORT InlineBoxPosition computeInlineBoxPosition(const Position&, TextAffi
nity); |
| 149 CORE_EXPORT InlineBoxPosition computeInlineBoxPosition(const Position&, TextAffi
nity, TextDirection primaryDirection); | 149 CORE_EXPORT InlineBoxPosition computeInlineBoxPosition(const Position&, TextAffi
nity, TextDirection primaryDirection); |
| 150 CORE_EXPORT InlineBoxPosition computeInlineBoxPosition(const PositionInComposedT
ree&, TextAffinity); | 150 CORE_EXPORT InlineBoxPosition computeInlineBoxPosition(const PositionInComposedT
ree&, TextAffinity); |
| 151 CORE_EXPORT InlineBoxPosition computeInlineBoxPosition(const PositionInComposedT
ree&, TextAffinity, TextDirection primaryDirection); | 151 CORE_EXPORT InlineBoxPosition computeInlineBoxPosition(const PositionInComposedT
ree&, TextAffinity, TextDirection primaryDirection); |
| 152 CORE_EXPORT InlineBoxPosition computeInlineBoxPosition(const VisiblePosition&); | 152 CORE_EXPORT InlineBoxPosition computeInlineBoxPosition(const VisiblePosition&); |
| 153 | 153 |
| 154 // Rect is local to the returned layoutObject | 154 // Rect is local to the returned layoutObject |
| 155 CORE_EXPORT LayoutRect localCaretRectOfPosition(const PositionWithAffinity&, Lay
outObject*&); | 155 CORE_EXPORT LayoutRect localCaretRectOfPosition(const PositionWithAffinity&, Lay
outObject*&); |
| 156 CORE_EXPORT LayoutRect localCaretRectOfPosition(const PositionInComposedTreeWith
Affinity&, LayoutObject*&); | 156 CORE_EXPORT LayoutRect localCaretRectOfPosition(const PositionInComposedTreeWith
Affinity&, LayoutObject*&); |
| 157 bool hasRenderedNonAnonymousDescendantsWithHeight(LayoutObject*); | 157 bool hasRenderedNonAnonymousDescendantsWithHeight(LayoutObject*); |
| 158 | 158 |
| 159 // Returns a hit-tested VisiblePosition for the given point in contents-space | 159 // Returns a hit-tested VisiblePosition for the given point in contents-space |
| 160 // coordinates. | 160 // coordinates. |
| 161 CORE_EXPORT VisiblePosition visiblePositionForContentsPoint(const IntPoint&, Loc
alFrame*); | 161 CORE_EXPORT VisiblePosition visiblePositionForContentsPoint(const IntPoint&, Loc
alFrame*); |
| 162 | 162 |
| 163 CORE_EXPORT bool rendersInDifferentPosition(const Position&, const Position&); | 163 CORE_EXPORT bool rendersInDifferentPosition(const Position&, const Position&); |
| 164 | 164 |
| 165 } // namespace blink | 165 } // namespace blink |
| 166 | 166 |
| 167 #endif // VisibleUnits_h | 167 #endif // VisibleUnits_h |
| OLD | NEW |