2011-05-23 Sheriff Bot <webkit.review.bot@gmail.com>
[WebKit-https.git] / Source / WebCore / dom / Node.h
index 9ff632b..31fa8bf 100644 (file)
@@ -54,7 +54,7 @@ class EventContext;
 class EventListener;
 class FloatPoint;
 class Frame;
-class InputElement;
+class HTMLInputElement;
 class IntRect;
 class KeyboardEvent;
 class NSResolver;
@@ -237,6 +237,8 @@ public:
     void setPreviousSibling(Node* previous) { m_previous = previous; }
     void setNextSibling(Node* next) { m_next = next; }
 
+    virtual bool canContainRangeEndPoint() const { return false; }
+
     // FIXME: These two functions belong in editing -- "atomic node" is an editing concept.
     Node* previousNodeConsideringAtomicNodes() const;
     Node* nextNodeConsideringAtomicNodes() const;
@@ -415,10 +417,6 @@ public:
     // Number of DOM 16-bit units contained in node. Note that rendered text length can be different - e.g. because of
     // css-transform:capitalize breaking up precomposed characters and ligatures.
     virtual int maxCharacterOffset() const;
-    
-    // FIXME: We should try to find a better location for these methods.
-    virtual bool canSelectAll() const { return false; }
-    virtual void selectAll() { }
 
     // Whether or not a selection can be started in this object
     virtual bool canStartSelection() const;
@@ -448,6 +446,8 @@ public:
     // the node's rendering object from the rendering tree and delete it.
     virtual void detach();
 
+    void forceReattach();
+
     virtual void willRemove();
     void createRendererIfNeeded();
     PassRefPtr<RenderStyle> styleForRenderer();
@@ -524,7 +524,7 @@ public:
 
     virtual Node* toNode() { return this; }
 
-    virtual InputElement* toInputElement();
+    virtual HTMLInputElement* toInputElement();
 
     virtual ScriptExecutionContext* scriptExecutionContext() const;
 
@@ -734,6 +734,14 @@ inline ContainerNode* Node::parentNodeGuaranteedHostFree() const
     return parentOrHostNode();
 }
 
+inline void Node::forceReattach()
+{
+    if (!attached())
+        return;
+    detach();
+    attach();
+}
+
 } //namespace
 
 #ifndef NDEBUG