#ifndef VisiblePosition_h
#define VisiblePosition_h
-#include "core/dom/Position.h"
#include "core/editing/EditingBoundary.h"
+#include "core/editing/PositionWithAffinity.h"
#include "platform/heap/Handle.h"
#include "platform/text/TextDirection.h"
-namespace WebCore {
+namespace blink {
// VisiblePosition default affinity is downstream because
// the callers do not really care (they just want the
#define VP_UPSTREAM_IF_POSSIBLE UPSTREAM
class InlineBox;
-class Node;
+class Range;
class VisiblePosition FINAL {
DISALLOW_ALLOCATION();
bool isOrphan() const { return m_deepPosition.isOrphan(); }
Position deepEquivalent() const { return m_deepPosition; }
+ Position toParentAnchoredPosition() const { return deepEquivalent().parentAnchoredEquivalent(); }
EAffinity affinity() const { ASSERT(m_affinity == UPSTREAM || m_affinity == DOWNSTREAM); return m_affinity; }
void setAffinity(EAffinity affinity) { m_affinity = affinity; }
Element* enclosingBlockFlowElement(const VisiblePosition&);
-bool isFirstVisiblePositionInNode(const VisiblePosition&, const Node*);
-bool isLastVisiblePositionInNode(const VisiblePosition&, const Node*);
+bool isFirstVisiblePositionInNode(const VisiblePosition&, const ContainerNode*);
+bool isLastVisiblePositionInNode(const VisiblePosition&, const ContainerNode*);
-} // namespace WebCore
+} // namespace blink
#ifndef NDEBUG
// Outside the WebCore namespace for ease of invocation from gdb.
-void showTree(const WebCore::VisiblePosition*);
-void showTree(const WebCore::VisiblePosition&);
+void showTree(const blink::VisiblePosition*);
+void showTree(const blink::VisiblePosition&);
#endif
#endif // VisiblePosition_h