OLD | NEW |
1 /* | 1 /* |
2 * Copyright (C) 2004, 2005, 2006, 2007, 2008, 2009 Apple Inc. All rights reserv
ed. | 2 * Copyright (C) 2004, 2005, 2006, 2007, 2008, 2009 Apple Inc. All rights reserv
ed. |
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 1539 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1550 return pos.isNotNull() && pos.deepEquivalent() == startOfBlock(pos, CanCross
EditingBoundary).deepEquivalent(); | 1550 return pos.isNotNull() && pos.deepEquivalent() == startOfBlock(pos, CanCross
EditingBoundary).deepEquivalent(); |
1551 } | 1551 } |
1552 | 1552 |
1553 bool isEndOfBlock(const VisiblePosition& pos) | 1553 bool isEndOfBlock(const VisiblePosition& pos) |
1554 { | 1554 { |
1555 return pos.isNotNull() && pos.deepEquivalent() == endOfBlock(pos, CanCrossEd
itingBoundary).deepEquivalent(); | 1555 return pos.isNotNull() && pos.deepEquivalent() == endOfBlock(pos, CanCrossEd
itingBoundary).deepEquivalent(); |
1556 } | 1556 } |
1557 | 1557 |
1558 // --------- | 1558 // --------- |
1559 | 1559 |
1560 VisiblePosition startOfDocument(const Node* node) | 1560 template <typename Strategy> |
| 1561 static VisiblePositionTemplate<Strategy> startOfDocumentAlgorithm(const VisibleP
ositionTemplate<Strategy>& visiblePosition) |
1561 { | 1562 { |
| 1563 Node* node = visiblePosition.deepEquivalent().anchorNode(); |
1562 if (!node || !node->document().documentElement()) | 1564 if (!node || !node->document().documentElement()) |
1563 return VisiblePosition(); | 1565 return VisiblePositionTemplate<Strategy>(); |
1564 | 1566 |
1565 return createVisiblePosition(firstPositionInNode(node->document().documentEl
ement())); | 1567 return createVisiblePosition(PositionAlgorithm<Strategy>::firstPositionInNod
e(node->document().documentElement())); |
1566 } | 1568 } |
1567 | 1569 |
1568 VisiblePosition startOfDocument(const VisiblePosition& c) | 1570 VisiblePosition startOfDocument(const VisiblePosition& c) |
1569 { | 1571 { |
1570 return startOfDocument(c.deepEquivalent().anchorNode()); | 1572 return startOfDocumentAlgorithm<EditingStrategy>(c); |
| 1573 } |
| 1574 |
| 1575 VisiblePositionInComposedTree startOfDocument(const VisiblePositionInComposedTre
e& c) |
| 1576 { |
| 1577 return startOfDocumentAlgorithm<EditingInComposedTreeStrategy>(c); |
1571 } | 1578 } |
1572 | 1579 |
1573 template <typename Strategy> | 1580 template <typename Strategy> |
1574 static VisiblePositionTemplate<Strategy> endOfDocumentAlgorithm(const VisiblePos
itionTemplate<Strategy>& visiblePosition) | 1581 static VisiblePositionTemplate<Strategy> endOfDocumentAlgorithm(const VisiblePos
itionTemplate<Strategy>& visiblePosition) |
1575 { | 1582 { |
1576 Node* node = visiblePosition.deepEquivalent().anchorNode(); | 1583 Node* node = visiblePosition.deepEquivalent().anchorNode(); |
1577 if (!node || !node->document().documentElement()) | 1584 if (!node || !node->document().documentElement()) |
1578 return VisiblePositionTemplate<Strategy>(); | 1585 return VisiblePositionTemplate<Strategy>(); |
1579 | 1586 |
1580 Element* doc = node->document().documentElement(); | 1587 Element* doc = node->document().documentElement(); |
(...skipping 1469 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
3050 { | 3057 { |
3051 return previousPositionOfAlgorithm<EditingStrategy>(visiblePosition, rule); | 3058 return previousPositionOfAlgorithm<EditingStrategy>(visiblePosition, rule); |
3052 } | 3059 } |
3053 | 3060 |
3054 VisiblePositionInComposedTree previousPositionOf(const VisiblePositionInComposed
Tree& visiblePosition, EditingBoundaryCrossingRule rule) | 3061 VisiblePositionInComposedTree previousPositionOf(const VisiblePositionInComposed
Tree& visiblePosition, EditingBoundaryCrossingRule rule) |
3055 { | 3062 { |
3056 return previousPositionOfAlgorithm<EditingInComposedTreeStrategy>(visiblePos
ition, rule); | 3063 return previousPositionOfAlgorithm<EditingInComposedTreeStrategy>(visiblePos
ition, rule); |
3057 } | 3064 } |
3058 | 3065 |
3059 } // namespace blink | 3066 } // namespace blink |
OLD | NEW |