46
47// This file contains a set of helper functions used by the editing commands
48
49// -------------------------------------------------------------------------
50// Node
51// -------------------------------------------------------------------------
52
53// Functions returning Node
54
55Node* highestAncestor(Node*);
56Node* highestEditableRoot(const Position&);
57Node* highestEnclosingNodeOfType(const Position&, bool (*nodeIsOfType)(const Node*));
58Node* lowestEditableAncestor(Node*);
59
60Node* enclosingBlock(Node*);
61Node* enclosingTableCell(const Position&);
62Node* enclosingEmptyListItem(const VisiblePosition&);
63Node* enclosingAnchorElement(const Position&);
64Node* enclosingNodeWithTag(const Position&, const QualifiedName&);
65Node* enclosingNodeOfType(const Position&, bool (*nodeIsOfType)(const Node*), bool onlyReturnEditableNodes = true);
66
67Node* tabSpanNode(const Node*);
68Node* nearestMailBlockquote(const Node*);
69Node* isLastPositionBeforeTable(const VisiblePosition&);
70Node* isFirstPositionAfterTable(const VisiblePosition&);
71
72// offset functions on Node
73