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 |