Home | History | Annotate | Download | only in editing

Lines Matching refs:Position

96 int comparePositions(const Position& a, const Position& b)
135 Node* highestEditableRoot(const Position& position)
137 Node* node = position.node();
141 Node* highestRoot = editableRootForPosition(position);
174 bool isEditablePosition(const Position& p)
186 bool isAtUnsplittableElement(const Position& pos)
193 bool isRichlyEditablePosition(const Position& p)
205 Element* editableRootForPosition(const Position& p)
220 Element* unsplittableElementForPosition(const Position& p)
231 Position nextCandidate(const Position& position)
233 PositionIterator p = position;
239 return Position();
242 Position nextVisuallyDistinctCandidate(const Position& position)
244 Position p = position;
245 Position downstreamStart = p.downstream();
251 return Position();
254 Position previousCandidate(const Position& position)
256 PositionIterator p = position;
262 return Position();
265 Position previousVisuallyDistinctCandidate(const Position& position)
267 Position p = position;
268 Position downstreamStart = p.downstream();
274 return Position();
277 VisiblePosition firstEditablePositionAfterPositionInRoot(const Position& position, Node* highestRoot)
279 // position falls before highestRoot.
280 if (comparePositions(position, firstDeepEditingPositionForNode(highestRoot)) == -1 && highestRoot->isContentEditable())
283 Position p = position;
298 VisiblePosition lastEditablePositionBeforePositionInRoot(const Position& position, Node* highestRoot)
300 // When position falls after highestRoot, the result is easy to compute.
301 if (comparePositions(position, lastDeepEditingPositionForNode(highestRoot)) == 1)
304 Position p = position;
327 // FIXME: Pass a position to this function. The enclosing block of [table, x] for example, should be the
332 return static_cast<Element*>(enclosingNodeOfType(Position(node, 0), isBlock));
336 // example, in <div><img /></div>, Editing might use (img, 1) for the position
338 // position to a Range object. Ideally all internal positions should
340 Position rangeCompliantEquivalent(const Position& pos)
343 return Position();
350 return Position(node, 0);
354 return Position(node, min(node->maxCharacterOffset(), pos.deprecatedEditingOffset()));
362 // use the highest allowed position in the node
363 return Position(node, maxCompliantOffset);
369 return node->parentNode() ? positionInParentBeforeNode(node) : Position(node, 0);
375 return Position(pos);
378 Position rangeCompliantEquivalent(const VisiblePosition& vpos)
386 // on a Position before using it to create a DOM Range, or an exception will be thrown.
462 if (renderer->style()->position() != StaticPosition)
500 static Node* firstInSpecialElement(const Position& pos)
516 static Node* lastInSpecialElement(const Position& pos)
532 bool isFirstVisiblePositionInSpecialElement(const Position& pos)
537 Position positionBeforeContainingSpecialElement(const Position& pos, Node** containingSpecialElement)
542 Position result = positionInParentBeforeNode(n);
550 bool isLastVisiblePositionInSpecialElement(const Position& pos)
555 Position positionAfterContainingSpecialElement(const Position& pos, Node **containingSpecialElement)
560 Position result = positionInParentAfterNode(n);
568 Position positionOutsideContainingSpecialElement(const Position &pos, Node **containingSpecialElement)
579 Position upstream(visiblePosition.deepEquivalent().upstream());
588 Position downstream(visiblePosition.deepEquivalent().downstream());
595 // Returns the visible position at the beginning of a node
605 // Returns the visible position at the ending of a node
616 // create(PassRefPtr<Document>, const Position&, const Position&); will use deprecatedEditingOffset
666 Node* enclosingNodeWithTag(const Position& p, const QualifiedName& tagName)
684 Node* enclosingNodeOfType(const Position& p, bool (*nodeIsOfType)(const Node*), bool onlyReturnEditableNodes)
691 // Don't return a non-editable node if the input position was editable, since
704 Node* highestEnclosingNodeOfType(const Position& p, bool (*nodeIsOfType)(const Node*))
718 Node* enclosingTableCell(const Position& p)
723 Node* enclosingAnchorElement(const Position& p)
739 Node* root = highestEditableRoot(Position(node, 0));
757 Node* root = highestEditableRoot(Position(node, 0));
797 // Check that position is on a line by itself inside a list item
929 Position positionBeforeTabSpan(const Position& pos)
989 unsigned numEnclosingMailBlockquotes(const Position& p)
1018 // For rendered text nodes, return the last position that a caret could occupy.
1030 bool lineBreakExistsAtPosition(const Position& position)
1032 if (position.isNull())
1035 if (position.anchorNode()->hasTagName(brTag) && position.atFirstEditingPositionForNode())
1038 if (!position.anchorNode()->isTextNode() || !position.anchorNode()->renderer()->style()->preserveNewline())
1041 Text* textNode = static_cast<Text*>(position.anchorNode());
1042 unsigned offset = position.offsetInContainerNode();
1079 Position p(visiblePosition.deepEquivalent());
1080 RefPtr<Range> range = Range::create(p.node()->document(), Position(p.node()->document(), 0), rangeCompliantEquivalent(p));
1086 bool isVisiblyAdjacent(const Position& first, const Position& second)
1159 updatedSelection.setBase(Position(node->parentNode(), node->nodeIndex()));
1164 updatedSelection.setExtent(Position(node->parentNode(), node->nodeIndex()));