Lines Matching refs:offset
128 return m_start.offset();
148 return m_end.offset();
182 void Range::setStart(PassRefPtr<Node> refNode, int offset, ExceptionCode& ec)
200 Node* childNode = checkNodeWOffset(refNode.get(), offset, ec);
204 m_start.set(refNode, offset, childNode);
220 void Range::setEnd(PassRefPtr<Node> refNode, int offset, ExceptionCode& ec)
238 Node* childNode = checkNodeWOffset(refNode.get(), offset, ec);
242 m_end.set(refNode, offset, childNode);
271 bool Range::isPointInRange(Node* refNode, int offset, ExceptionCode& ec)
294 checkNodeWOffset(refNode, offset, ec);
298 return compareBoundaryPoints(refNode, offset, m_start.container(), m_start.offset()) >= 0
299 && compareBoundaryPoints(refNode, offset, m_end.container(), m_end.offset()) <= 0;
302 short Range::comparePoint(Node* refNode, int offset, ExceptionCode& ec) const
306 // refNode node and an offset within the node is before, same as, or after the range respectively.
324 checkNodeWOffset(refNode, offset, ec);
329 if (compareBoundaryPoints(refNode, offset, m_start.container(), m_start.offset()) < 0)
333 if (compareBoundaryPoints(refNode, offset, m_end.container(), m_end.offset()) > 0)
531 return compareBoundaryPoints(boundaryA.container(), boundaryA.offset(), boundaryB.container(), boundaryB.offset());
623 // everything >= start offset and < end offset
629 c->deleteData(m_end.offset(), c->length() - m_end.offset(), ec);
630 c->deleteData(0, m_start.offset(), ec);
634 static_cast<CharacterData*>(m_start.container())->deleteData(m_start.offset(), m_end.offset() - m_start.offset(), ec);
638 c->setData(c->data().substring(m_start.offset(), m_end.offset() - m_start.offset()), ec);
644 data.remove(m_start.offset(), m_end.offset() - m_start.offset());
650 for (i = 0; n && i < m_start.offset(); i++) // skip until start offset
652 int endOffset = m_end.offset();
653 while (n && i < endOffset) { // delete until end offset
693 c->deleteData(0, m_start.offset(), ec);
698 m_start.offset(), static_cast<CharacterData*>(m_start.container())->length() - m_start.offset(), ec);
702 c->setData(c->data().substring(m_start.offset()), ec);
708 pi->setData(data.left(m_start.offset()), ec);
714 for (int i = 0; n && i < m_start.offset(); i++) // skip until start offset
759 c->deleteData(m_end.offset(), static_cast<CharacterData*>(m_end.container())->length() - m_end.offset(), ec);
763 static_cast<CharacterData*>(m_end.container())->deleteData(0, m_end.offset(), ec);
767 c->setData(c->data().left(m_end.offset()), ec);
772 pi->setData(pi->data().substring(m_end.offset()), ec);
778 if (n && m_end.offset()) {
779 for (int i = 0; i + 1 < m_end.offset(); i++) { // skip to end.offset()
825 for (int i = 0; i < m_start.offset(); i++)
836 for (int i = 0; i < m_end.offset(); i++)
984 RefPtr<Text> newText = static_cast<Text*>(m_start.container())->splitText(m_start.offset(), ec);
1000 int startOffset = m_start.offset();
1026 int start = (n == m_start.container()) ? min(max(0, m_start.offset()), length) : 0;
1027 int end = (n == m_end.container()) ? min(max(start, m_end.offset()), length) : length;
1089 Node* Range::checkNodeWOffset(Node* n, int offset, ExceptionCode& ec) const
1100 if (static_cast<unsigned>(offset) > static_cast<CharacterData*>(n)->length())
1104 if (static_cast<unsigned>(offset) > static_cast<ProcessingInstruction*>(n)->data().length())
1113 if (!offset)
1115 Node* childBefore = n->childNode(offset - 1);
1183 return Range::create(m_ownerDocument, m_start.container(), m_start.offset(), m_end.container(), m_end.offset());
1536 if (Node* child = m_start.container()->childNode(m_start.offset()))
1538 if (!m_start.offset())
1550 VisiblePosition visiblePosition(m_start.container(), m_start.offset(), VP_DEFAULT_AFFINITY);
1580 if (Node* child = m_end.container()->childNode(m_end.offset()))
1610 int startOffset = node == startContainer ? m_start.offset() : 0;
1611 int endOffset = node == endContainer ? m_end.offset() : numeric_limits<int>::max();
1630 int startOffset = node == startContainer ? m_start.offset() : 0;
1631 int endOffset = node == endContainer ? m_end.offset() : numeric_limits<int>::max();
1647 result += "from offset ";
1648 result += String::number(m_start.offset());
1652 result += " to offset ";
1653 result += String::number(m_end.offset());
1744 static inline void boundaryTextInserted(RangeBoundaryPoint& boundary, Node* text, unsigned offset, unsigned length)
1748 unsigned boundaryOffset = boundary.offset();
1749 if (offset >= boundaryOffset)
1754 void Range::textInserted(Node* text, unsigned offset, unsigned length)
1758 boundaryTextInserted(m_start, text, offset, length);
1759 boundaryTextInserted(m_end, text, offset, length);
1762 static inline void boundaryTextRemoved(RangeBoundaryPoint& boundary, Node* text, unsigned offset, unsigned length)
1766 unsigned boundaryOffset = boundary.offset();
1767 if (offset >= boundaryOffset)
1769 if (offset + length >= boundaryOffset)
1770 boundary.setOffset(offset);
1775 void Range::textRemoved(Node* text, unsigned offset, unsigned length)
1779 boundaryTextRemoved(m_start, text, offset, length);
1780 boundaryTextRemoved(m_end, text, offset, length);
1783 static inline void boundaryTextNodesMerged(RangeBoundaryPoint& boundary, NodeWithIndex& oldNode, unsigned offset)
1786 boundary.set(oldNode.node()->previousSibling(), boundary.offset() + offset, 0);
1787 else if (boundary.container() == oldNode.node()->parentNode() && boundary.offset() == oldNode.index())
1788 boundary.set(oldNode.node()->previousSibling(), offset, 0);
1791 void Range::textNodesMerged(NodeWithIndex& oldNode, unsigned offset)
1799 boundaryTextNodesMerged(m_start, oldNode, offset);
1800 boundaryTextNodesMerged(m_end, oldNode, offset);
1807 unsigned boundaryOffset = boundary.offset();
1919 int startOffset = (node == startContainer) ? m_start.offset() : 0;
1920 int endOffset = (node == endContainer) ? m_end.offset() : INT_MAX;
1942 fprintf(stderr, "start offset: %d, end offset: %d\n", start.deprecatedEditingOffset(), end.deprecatedEditingOffset());